Use this file as a post-it for packages to install on laptop/desktop. add notation about awk as Select everything but the second field: awk '!($2="")' add notation about tr (translate command): replace every newline with a single space: tr '\n' ' ' add notation about using find to list only files in current directory and NOT subdirectory: find $dir -maxdepth 1 -type f add notation about using pick to parse through output, and pipe that using xargs to another command: example: ls | pick | xargs bat # will give you a choice of the files from ls, pick displays a menu to "pick" the file, which then is parsed to xargs bat (invokes bat on choice from ls | pick) https://medium.com/techie-delight/top-25-algorithms-every-programmer-should-know-373246b4881b sudo chmod 755 /usr/local/bin/pkgtop Finally figured out how to get language servers working neovim, you have to npm install -g each of them from ~/.local/nvim/share/lsp-servers (note that there is still work to be done here...) Download and install in virtmanager Windows 10 iso (for purposes of software tests) Use this site (microsoft only has .exe now... 64 bit, version 21H2) https://www.itechtics.com/windows-10-download-iso/ To understand google-font-installer(gfi): visit: https://github.com/lordgiotto/google-font-installer Check out artix-news on github and look at its source code to understand a basic web-scraper written in python: https://github.com/ryukinix/artix-news SOLVED:Currently troubleshooting fail2ban to work with this, but due to no systemd, fail2ban needs further configuration that I have yet to figure out ANSWER: In /etc/fail2ban/jail.conf, comment out the line that says 'polling' under the search for 'backend' This will allow for logging to be done with a native logger instead of it searching for systemd's journald by default. Then create a file called /etc/fail2ban/jail.d/sshd.local and input the following: [sshd] enabled = true filter = sshd banaction = ufw backend = polling maxretry = 3 findtime = 1d bantime = 1d ignoreip = 127.0.0.1/8 In /etc/ssh/sshd_config Change LogLevel to VERBOSE restart the fail2ban service and test it with: doas fai2ban -client status install paxtest doas pacman -S paxtest install firejail doas pacman -S firejail doas firecfg doas apparmor_parser -r /etc/appamor.d/firejail-default to disable certain applications in firejail, simply navigate to /usr/local/bin where you will find many of the soft links created by firejail: doas mv someapp someapp_disabled (will break the link, simply name it back to its original to reenable it) rtorrent, newsboat, mpv, librewolf, chromium, links, steam, steam-runtime also comment out in /etc/firejail/steam* all rules cd /etc/firejail doas nvim steam-native.profile doas nvim steam.profile doas nvim steam-runtime.profile Install ncpamixer (ncurses pavu controller replacement) paru ncpamixer (1st) Install difftastic (better diff version with colors written in rust) subtle change here paru difftastic (only 1 option, very new program) Install local network sniffer avahi: doas pacman -S avahi avahi-runit nss-mdns doas ln -s /etc/runit/sv/avahi-daemon /run/runit/service/ Install brother printer drivers paru brother-mfc-j615w 1.1.3-2 Set up the printer using first by searching for all printers in the area: lpinfo --include-schemes dnssd -v This will provide you with the needed uri to name the printer: lpadmin -p Brother lpadmin -p Brother -E -v socket://10.0.0.251 Install ripdrag: cargo install ripdrag your zshrc has ~/.cargo/bin added to the $PATH variable to use ripdrag Set difftastic as git diff default: git config --global diff.external difft Install glsxinfo (mesa-utils): doas pacman -S glsxinfo Install extra backgrounds doas pacman -S artix-backgrounds artix-backgrounds-extra Install mktorrent doas pacman -S mktorrent Add difftastic to IgnorePkg in /etc/pacman.conf (compiling does not recognize update on paru): IgnorePkg = difftastic-git Install calibre (ebooks utilities package): doas pacman -S calibre Install pdfgrep (grep utility within pdfs) doas pacman -S pdfgrep Install cpu-x paru cpu-x (choose x11 from galaxy when prompted) Install byzanz and silentcast (gif recorders, silentcast good for finding pixel start points for byzanz) doas pacman -S byzanz paru silentcast Install asciinema (records terminal sessions for demoing of cli projects and uploads it to asciinema.org for use, login via proton): doas pacman -S asciinema Install figma-linux (sign in using email z3r pr@w) paru figma-linux Install brave and uninstall ungoogled chromium (configure brave first with extensions and chrome://flags) Install css LSP in neovim Install openresolv (for use with Mullvad) doas pacman -S openresolv log into mullvadvpn using your account number (see offline notes on desktop): download configuration files (use default udp) xtract -zip the mullvad.zip configuration and copy all files to /etc/openvpn/client edit mullvad_x.conf to reflect all files to /etc/openvpn/client/files* In /etc/runit/sv/openvpn/run, edit to exec /usr/bin/openvpn --config /etc/openvpn/client/mullvad_x.conf Install mkcert (good for ssl certification generation so you can use https on localhost...just have to figure out how it works...) doas pacman -S mkcert Install gobuster and dirb and strace doas pacman -S strace paru gobuster (1st option) paru dirb (1st option) Go to Chrome store and install CSS Dig on brave Install slop and gifsicle and libimage-exiftool-perl and rebuild-detector and keynav and dvtm and dtach and lowdown and inotify-tools doas pacman -S slop gifsicle libimage-exiftool-perl rebuild-detector keynav dvtm lowdown inotify-tools lynis socat diffstat paru dtach sherlock-git moar devour Install moreutils package (pretty awesome), yapf (python formatter), shfmt (shell formatter), stylua (lua formatter), ttf-joypixels (emojis in terminal), progress (useful for large file downloads) doas pacman -S moreutils yapf shfmt stylua ttf-joypixels progress Install xmlstarlet and liferea (xml parser and rss reader): doas pacman -S xmlstarlet liferea Install openoffice-bin and xidel (minimal office suite and web scraper) paru openoffice (choose bin) paru xidel(1st option) Install foliate (epub book reader) and xournalpp (pdf signer) and dash (for emergency shell) and jpegoptim (obvious) doas pacman -S foliate xounralapp dash jpegoptim Install autoprefixer for css files: npm install -g postcss postcss-cli autoprefixer Install firefox (for when privacy facing browsers just can't do it...) And thunderbird doas pacman -S firefox thunderbird Install cloc (counts lines of code from terminal): neomutt and urlscan doas pacman -S cloc neomutt urlscan Remove cmus (no longer use in pref of straight mpv) doas pacman -Rs cmus Install tmux-resurrect (persist tmux sessions after reboot): paru tmux-resurrect Install wemux (pair programming in tmux, lol): paru wemux (follow instructions on updating /etc/wemux/wemux.conf) Uninstall gtktranslate-bin (use your own ltranslate script instead) paru -Rs gtktranslate-bin DONE AS OF 08/05/2023 06/02/2023 Install svgo (cli svg optimization tool) paru svgo DONE AS OF 08/05/2023 06/02/2023 Install Marksman (code assister for markdown) AND Install httpie (more simple cli than curl for http requests) AND Install mypy (typechecker for python) And Install sqlitebrowser(sqlite from browser?): doas pacman -S marksman httpie mypy sqlitebrowser DONE AS OF 08/05/2023 06/15/2023 You took up typescript apparently... Install typescript doas npm i -g typescript Install rome in nvim to get proper linting :Mason select rome DONE AS OF 08/05/2023 06/19/2023 Install nginx and html-minifier (and uglifycss and uglifyjs if not already) doas pacman -S nginx nginx-runit doas sv ln -s /etc/runit/sv/nginx /run/runit/service/ doas npm install -g html-minifier uglifyjs uglifycss DONE AS OF 08/05/2023 06/23/2023 Install rsspls (cli tool to generate rss feeds) paru rsspls DONE AS OF 08/05/2023 06/25/2023 Install html2pug (it is what it sounds like) doas npm install -g html2pug DONE AS OF 08/05/2023 07/02/2023 Install gfeeds (minimal rss reader) doas pacman -S gfeeds DONE AS OF 08/05/2023 07/03/2023 doas pacman -S wine-mono DONE AS OF 08/05/2023 07/17/2023 Install gpm and gpm-runit (allows use of mouse in tty) doas pacman -S gpm gpm-runit ln -s /etc/runit/sv/gpm/ /run/runit/service/ DONE AS OF 08/05/2023 07/27/2023 Install metalog and metalog-runit doas pacman -S metalog metalog-runit do the whole ln -s thing Remove syslog-ng and syslog-ng-runit doas pacman -Rs syslog-ng syslog-ng-runit Remove service files and soft link 08/05/2023 Install python-pipx (easy way to set up python virtual environments) doas pacman -S python-pipx Install nvtop-nosystemd-git (nvtop started needing systemd): paru nvtop (select 2) 08/10/2023 Install android-file-transfer: doas pacman -S android-file-transfer Make a mount point: mkdir /mnt/media/pixel Change ownership of directory: doas chown USER:USER /mnt/media/pixel 09/05/2023 Install words (for us dictionary): doas pacman -S words 09/11/2023 Uninstall librewolf as artix no longer supports it doas pacman -Rs librewolf And reinstall from AUR: paru librewolf-bin Should work out of the box with old configs and bookmarks Install python-requests-html library (for web scraping) paru requests-html (or python-requests-html) Apply new pacman.conf to /etc/pacman.conf See if you can get your NVIDIA gpu to be recognized, this possibly has to do with the way GRUB is loading kernel modules: https://bbs.archlinux.org/viewtopic.php?id=277640 Research and pray it works...keep a good iso handy for chrooting... 10/06/2023 Install arch-install-scripts doas pacman -S arch-install-scripts 10/09/2023 In neovim, install emmet-ls for use in javascriptreact files 10/17/2023 Install thorium and uninstall ungoogled-chromium paru -S thorium (choose thorium-browser-bin) doas pacman -Rs ungoogled-chromium 11/01/2023 Reinstall ungoogled-chromium and uninstall thorium (chromium more private and up to date): doas pacman -S ungoogled-chromium paru -Rs thorium-browser-bin 11/13/2023 Install pnpm (more efficient version of npm): doas pacman -S pnpm 11/14/2023 Install php (i guess i'll be getting into this a bit...): doas pacman -S php And additional packages: doas pacman -S php-sqlite php-fpm php-fpm-runit php-cgi And adjust /etc/php/php.ini according to arch wiki docs: https://wiki.archlinux.org/title/PHP For the basics on how to get a local web server running via nginx, see this article from Linode/Akamai: https://www.linode.com/docs/guides/install-php-8-for-apache-and-nginx-on-ubuntu/ 11/19/2023 Install csvkit (for csvparsing from terminal): doas pacman -S csvkit 11/21/2023 Install php-composer (depenedency manager): doas pacman -S composer 11/22/2023 Install profanity (terminal xmpp client similar to irssi): doas pacman -S profanity 11/25/2023 Install python-virtualenvwrapper (for easily creating python venvs on Arch) python-virtualenvwrapper 11/26/2023 Uninstall pug-cli from npm and use paru instead: doas npm -g uninstall pug-cli paru pug-cli 11/28/2023 Install ack (command line tool along the lines of grep): doas pacman -S ack 11/30/2023 Reinstall paru (updated to v2): doas rm /usr/bin/paru git clone "https://aur.archlinux.org/paru.git" cd paru makepkg -si 12/02/2023 Install huggingface-cli from AUR: paru huggingface-cli (1st choice, not -git) 12/03/2023 Config already set up for it, but install new packages and set up Codeium(code completion AI similar to Github Copilot) You already have an api key set up, just log in using your details (see keepassxc) https://github.com/Exafunction/codeium.vim#-installation-options 12/12/2023 Install redis doas pacman -S redis redis-runit 12/15/2023 Recently there were memory issues installing redis server within docker. After researching, I found that editing our /etc/rc.local file holds the answer. Append the following and reboot: sysctl vm.overcommit_memory=1 sysctl fs.file-max=100000 01/04/2024 Install gobble to replace devour (doesn't work on wayland, but is supposedly better than devour): paru -S gobble paru -Rs devour 01/21/2024 Reset omniverse repo mirror list in /etc/pacman.conf: https://wiki.artixlinux.org/Main/Repositories#Omniverse Once done, paru -Rs librewolf-bin ungoogled-chromium And reinstall using pacman: doas pacman -S librewolf ungoogled-chromium Also, install ctop (top for seeing running docker containers) doas pacman -S ctop 02/19/2024 Install stitchy (stitches two pics together from cli): rustup update cargo install stitchy 02/21/2024 Add gopls lsp to neovim from Mason Add Wappalyzer extension to browsers (reveals tech used on websites/web apps) 02/25/2024 Uninstall foliate and install fbreader doas pacman -Rs foliate && doas pacman -S fbreader 02/26/2024 Install sqlc and goose for use with golang doas pacman -S sqlc paru goose 02/28/2024 Install browser-sync using npm (aur version is orphaned). doas npm install -g browser-sync 02/29/2024 Install silicon (a cli tool to generate code snippet pics): doas pacman -S silicon 03/03/2024 Install libreoffice-still doas pacman -S libreoffice (choose still from galaxy repo) Run in safe mode first libreoffice --safe-mode Choose to configure it to work with out hardware acceleration and then choose apply and restart 03/04/2024 Uninstall onlyoffice-bin doas pacman -Rs onlyoffice-bin 03/09/2024 Install restic (backup tool similar to timeshift) doas pacman -S restic 03/16/2024 Install yad doas pacman -S yad Install obs-studio (video recording and streaming software) doas pacman -S obs-studio 03/20/2024 Install vsce (vscode compiler for extensions not found in MS store, i.e. cloned from github) doas npm install -g vsce 03/22/2024 Install the lldb (LLVM debugger) doas pacman -S lldb 03/26/2024 Install gcolor2 (gcolor3 breaks due to dependency hell, add gcolor3 to IgnorePkg for now) paru gcolor2 03/29/2024 Install rust-analyzer doas pacman -S rust-analyzer 03/30/2024 Install sox (cli audio editor) doas pacman -S sox Install anoise/anoise-gui (white noise audio) paru anoise (choose both anoise and anoise-gui) 04/10/2024 Install pkgfile (dependency checker for packages on Arch based systems) doas pacman -S pkgfile doas pkgfile --update 04/14/2024 Install nvtop from world repo (nvtop-nosystemd-git no longer maintained in AUR) doas pacman -S nvtop Uninstall tut and tootle (Mastodon clients I never use) paru -R tootle doas pacman -Rs tut 04/22/2024 Install sqlx (sql parsing lib for rust) doas pacman -S sqlx 05/06/2024 Add ${USER} to docker group: doas usermod -aG docker ${USER} 06/04/2024 Install entr (runs on file save, haven't quite figured it out) doas pacman -S entr Install concurrently and livereload: doas npm install -g livereload concurrently 07/29/2024 Install zig and use it to install fex doas pacman -S zig cd ~/aur_packages/ git clone https://github.com/18alantom/fex && cd fex zig build-exe -O ReleaseSafe main.zig -lc mv main /usr/bin/fex 08/04/2024 Remove ncpamixer doas pacman -R ncpamixer 08/07/2024 Install cargo-watch cargo install cargo-watch Install trunk cargo install trunk Install wasm32 rustup target add wasm32-unknown-unknown Install leptosfmt cargo install leptosfmt 08/08/2024 Install stylance-cli cargo install stylance-cli 08/09/2024 Install lftp (like curl/wget): doas pacman -S lftp 08/11/2024 Install cargo-leptos: cargo install cargo-leptos 08/12/2024 Install isort and stylelint doas pacman -S python-isort stylelint Install sql-formatter paru sql-formatter Install black (python formatter) doas pacman -S python-black Install taplo (TOML formatter) doas pacman -S taplo Install deno doas pacman -S deno Install bun curl -fsSL https://bun.sh/install | bash Install fastapi doas pacman -S python-fastapi Install python-poetry (modern python package manager) doas pacman -S python-poetry Install rye (even more modern python package manager) doas pacman -S rye Then invoke rye to install it (note choose to not have rye choose your global python version, use OS) rye 08/21/2024 Install pnpm-shell-completion paru -S pnpm-shell-completion 09/07/2024 doas npm install -g typescript-language-server typescript 09/15/2024 Reinstall paru (recent updates to paru break libalpm) cd ~/aur_packages/ git clone https://aur.archlinux.org/paru-git.git cd paru-git makepkg -si 09/16/2024 Install duf (alternative for df): paru duf-git Install doggo (alternative for dig): paru doggo-bin Install i2pd and i2pd-runit: doas pacman -S i2pd i2pd-runit doas ln -s /etc/runit/sv/i2pd /run/runit/service/i2pd Make sure ufw enables i2p: doas ufw allow 4444 And make sure that you forward i2p traffic through privoxy (note: must be beneath all other forwards in /etc/privoxy/config): forward .i2p localhost:4444 To access i2p sites, you'll need to modify the /etc/i2pd/i2pd.conf file: [addressbook] subscriptions= http://add2here.i2p/hosts.txt (note: the hosts.txt is how i2p resolves) 09/23/2024 Add a script for rustdesk as it now needs a service daemon: cd /etc/runit/sv/ doas mkdir rustdesk cd rustdesk doas touch run doas chmod +x run doas nvim run ```sh #!/bin/sh exec /usr/bin/rustdesk --service ```` doas ln -s /etc/runit/sv/rustdesk /run/runit/service/ doas sv start rustdesk doas touch down 10/13/2024 Remove rustdesk-bin: paru -Rs rustdesk-bin 10/26/2024 Install and test use wireshark doas pacman -S wireshark-qt doas groupadd wireshark doas usermod -aG wireshark "$USER" doas chgrp wireshark /usr/bin/dumpcap doas setcap cap_net_raw,cap_net_admin=ep /usr/bin/dumpcap To monitor wlan0(wifi) traffic: wireshark -i wlan0 -k Install and use tcpdump doas pacman -S tcpdump doas groupadd pcap doas usermod -aG pcap "$USER" doas chgrp pcap /usr/bin/tcpdump doas setcap cap_net_raw,cap_net_admin=ep /usr/bin/tcpdump Install adwaita-qt6 (not git version) paru adwaita-qt6 Install dxvk-bin and set it up (may need to re-run whenever installing new vulkan drivers) paru dxvk-bin setup_dxvk install 11/02/2024 Install qalculate doas pacman -S qalculate-qt Adjust style: Preferences > Check Dark Mode > Adjust Fonts each up font size by 2 units Uninstall galculator doas pacman -Rs galculator 11/05/2024 Install lksctp-tools (TCP Tools) doas pacman -S lksctp-tools Install tcc (tiny c compiler): doas pacman -S tcc Install minimodem paru minimodem Install cowsay doas pacman -S cowsay Reinstall pgcli from official artix repos: paru -Rs pgcli-git doas pacman -S pgcli Install pipeviewer (pv): doas pacman -S pv Uninstall old tldr and replace with tealdeer doas pacman -Rs tldr && doas pacman -S tealdeer && tldr --update Install btop-theme-catppuccin paru -S btop-theme-catppuccin Install ipython (better python interpreter): doas pacman -S ipython Configure ipython to use vi keybindings ipython profile create in ~/.ipython/profile_default/ipython_config.py, edit c.TerminalInteractiveShell.editing_mode = 'vi' On updating mycli, you'll need some new python packages: paru python-sqlglot python-pyfzf Remove global postgresql: doas pacman -Rs postgresql postgresql-runit Install cargo-update cargo install cargo-update Install kalker (cli calculator app) cargo install kalker Update all cargo packages using cargo-u alias: cargo-u Install macchanger doas pacman -S macchanger Also in /etc/NetworkManager/conf.d/wifi_rand_mac.conf (need to create this), write: ``` [device-mac-randomization] # "yes" is already the default for scanning wifi.scan-rand-mac-address=yes [connection-mac-randomization] # Randomize MAC for every ethernet connection ethernet.cloned-mac-address=random # Generate a random MAC for each Wi-Fi and associate the two permanently. wifi.cloned-mac-address=stable ``` 02/09/2025 Install tinycss2 (for Inkscape): doas pacman -S python-tinycss2 02/17/2025 Remove gfeeds doas pacman -rs gfeeds 02/20/2025 Install pacman-static doas pacman -S pacman-static 02/23/2025 Install audacity doas pacman -S audacity 02/26/2025 install wireshark-dumpcap.hook (See ./custom_hooks/) 03/04/2025 Adjust ~/.gitconfig according to https://blog.gitbutler.com/how-git-core-devs-configure-git/ 03/28/2025 Install @vue/typescript-plugin and language-server: doas npm install -g @vue/typescript-plugin doas npm install -g @vue/language-server 04/03/2025 Install chromium-extension-web-store doas pacman -S chromium-extension-web-store And change flag in chrome: chrome://flags/#extension-mime-request-handling to Always prompt for install if you are using ungoogled-chromium 04/08/2025 Update mirrorlist as clarkson.edu is out of date Edit the /etc/pacman.d/mirrorlist and comment out the clarkson.edu mirror for now Remove calibre from extra and replace with omniverse doas pacman -Rs calibre && doas pacman -S omniverse/calibre Remove cpu-x doas pacman -Rs cpu-x Reinstall pug-cli paru -Rs nodejs-pug-cli doas npm install -g pug-cli Install js-beautify doas npm install -g js-beautify Reinstall html-minifier and uglify-js doas npm uninstall -g html-minifier uglify-js && doas npm install -g html-minifier uglify-js 04/15/2025 Update to the latest minor version of paru: Follow simple instructions on: https://github.com/Morganamilo/paru 04/27/2025 Install typst doas pacman -S typst And make sure to copy in your new nvim configs to ensure proper lsp and previewer plugin are installed. 05/02/2025 Remove rest and upgrade doas pacman -Rs rest && doas pacman -Syu 05/07/2025 Install new theme doas pacman -S arc-gtk-theme arc-icon-theme gtk-engine-murrine gnome-themes-extra Get as much from world/ as possible and set it up in lxappearance (papirus-icon-theme is kind of broken atm) 05/21/2025 Uninstall redis: doas pacman -Rs valkey redis-runit && doas rm /run/runit/service/redis 05/25/2025 Uninstall libcpuid-git paru -Rs libcpuid-git 05/26/2025 Reinstall eza until Artix package is fixed: doas pacman -Rs eza && cargo install eza --force --features vendored-libgit2 Install transmission-cli doas pacman -S transmission-cli 06/23/2025 Setup Device Level DNS Resolver: Install stubby and dnsmasq-runit: doas pacman -S stubby stubby-runit dnsmasq-runit doas ln -s /etc/runit/sv/stubby /run/runit/service/ doas ln -s /etc/runit/sv/dnsmasq/ /run/runit/service/ Adjust stubby init script to: exec chpst -U stubby stubby Adjust stubby config file: doas nvim /etc/stubby/stubby.yml Adjust the listen_addresses field: listen_addresses: - 127.0.0.1@54 - 0::1@54 Comment out all DEFAULT UPSTREAM and add Mullvad upstream_recursive_servers: - address_data: 194.242.2.4 tls_auth_name: "base.dns.mullvad.net" - address_data: 2a07:e340::4 tls_auth_name: "base.dns.mullvad.net" Be aware of yaml's needs for proper indentation (copy and paste from DEFAULT UPSTREAM to be sure) Adjust dnsmasq config file: doas nvim /etc/dnsmasq.conf Ensure default port is 53: port=53 Adjust listening server: server=127.0.0.1#54 listen-address=127.0.0.1 Uncomment no-resolv: no-resolv Edit /etc/resolv.conf to have the following: nameserver ::1 nameserver 127.0.0.1 options trust-ad And make resolv.conf immutable: doas chattr +i /etc/resolv.conf Start stubby and dnsmasq: doas sv start stubby && doas sv start dnsmasq You may have to kill port 53 before this will work. Test, visit (with browser with no DNS on): https://mullvad.net/en/check To ensure openvpn does not try to overwrite resolv.conf, edit the following script: doas nvim /etc/update-resolv-conf Under up) and down), simply add `exit 0` to first line of each Also, in the /etc/openvpn/client/ mullvad config file, add: ` script-security 2 down-pre pull-filter ignore "dhcp-option DNS" ` Install WebRTC Control on Ungoogled Chromium: Use the Chrome Web Store Extension to install WebRTC Control: https://chromewebstore.google.com/detail/webrtc-control/fjkmabmdepjfammlpliljpnbhleegehm 06/29/2025 Librewolf Update UI: about:config browser.urlbar.scotchBonnet.enableOverride to false 06/30/2025 Issue with linux-firmware-nvidia occurred on Arch/Artix recently. You'll see something like: ``` linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad103 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad104 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad106 exists in filesystem linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad107 exists in filesystem ``` To resolve, simply reinstall `linux-firmware`: doas pacman -Rdd linux-firmware && doas pacman -Syu linux-firmware