Part of CachyOS Wiki Notes. From the official CachyOS wiki (last updated 2026-08-27). Recommended steps, in order.
1. Update the system
Options: Shelly (GUI & CLI), Octopi (GUI), Pacman, Offline System Update, Cachy-Update.
-
Shelly CLI:
shelly,shelly install --upgrade {pkg},shelly remove {pkg},shelly aur search {pkg}. -
Pacman:
sudo pacman -Syu -
Offline updates via
pacman-offline:sudo pacman -S pacman-offlineAdd
Include = /etc/pacman.d/offline.confto/etc/pacman.confafter the[options]section, then fill/etc/pacman.d/offline.confwithIgnorePkg =lines for the Arch and CachyOS kernels. Run once withsudo systemctl start pacman-offline-prepare.service; automate withsudo systemctl enable pacman-offline-prepare.timerand optionallypacman-offline-reboot.timer(reboots by default at 3am with a 2h randomized delay). -
Cachy-Update (fork of Arch-Update) — enable/disable in
CachyOS Hello > Apps/Tweaks. Checks once two minutes after boot, then once a day with a one hour random delay. Timer override:systemctl --user edit --full arch-update.timer; defaultsOnStartupSec=2min,RandomizedDelaySec=1h,OnUnitActiveSec=1d. Hide the tray:mkdir -p ~/.config/autostart echo -e "[Desktop Entry]\nHidden=true" > ~/.config/autostart/arch-update-tray.desktopStop checks:
systemctl --user disable --now arch-update.timer. Supports sudo, sudo-rs, doas, run0. -
Reboot after a big update, especially a kernel update.
2. Firewall (ufw)
Caution: improperly configured firewall rules can lock you out of your own system. Be careful here.
Enabled by default after installation.
sudo ufw enable
sudo ufw disable
sudo ufw allow ssh
sudo ufw allow 12345
sudo ufw deny ssh
sudo ufw deny 12345
sudo ufw status verboseDefault policy: ignore incoming, allow outgoing. Allow/deny changes take effect after ufw is restarted (disable then enable for an immediate effect). Rules can carry comments: sudo ufw allow 12345 comment 'Example'. Also configurable graphically in KDE Plasma’s Firewall settings.
3. Global menu
Some apps (VS Code, for instance) otherwise attach the menu to the parent app.
# To enable global menu support, run the command and restart the app.
sudo pacman -S appmenu-gtk-module libdbusmenu-glibOptional configurations
-
Default shell — CachyOS uses fish as the user’s login shell; bash remains root’s.
chsh -s /usr/bin/bashorchsh -s /usr/bin/zsh(CachyOS ships a zsh config aiming for 1:1 parity with its fish config). -
tldr — CachyOS uses tealdeer, a faster Rust implementation:
tldr --update, then e.g.tldr java. -
AppImages —
chmod +x /path/to/your/appimage; FUSE is required (sudo pacman -S fuse2). Manage them with Gear Lever:sudo pacman -S flatpak, restart,flatpak install flathub it.mijorus.gearlever, then log out/in. -
Samba shares — assumes a working Samba server. Back up
/etc/samba/smb.conf, installsudo pacman -S cachyos-samba-settingson the client, copy itssmb.confto the server, edit shares, thensudo systemctl restart --now samba. Access viasmb://<your_server_ip>/<share_name>. -
AppArmor (apparmor.d profiles) — the wiki is explicit: do not proceed without understanding the implications. Add the kernel parameter
lsm=landlock,lockdown,yama,integrity,apparmor,bpfin the boot manager;sudo pacman -S apparmor apparmor.d;systemctl enable --now apparmor.service; addwrite-cache,Optimize=compress-fast,cache-loc /etc/apparmor/earlypolicy/to/etc/apparmor/parser.conf; save and reboot. -
TRIM on encrypted (LUKS) devices — CachyOS enables
fstrim.timerby default, but dm-crypt/LUKS blocks discard unless passthrough is explicitly enabled, so periodic TRIM silently does nothing on encrypted partitions. Security caveat: someone with physical access could infer approximate used space, filesystem layout, or data patterns. Find the mapper withlsblk(look for thecrypttype entry, e.g.luks-1e647929-...), then:sudo cryptsetup --allow-discards --persistent refresh <mapper_name>Reboot and verify:
lsblk -D sudo fstrim -v /lsblk -Dshould show non-zeroDISC-GRANandDISC-MAX, andfstrimprints the amount trimmed.
Related: Btrfs Snapshots, Boot Manager Configuration, CachyOS Settings Package.