{"id":167629,"date":"2026-05-18T07:03:47","date_gmt":"2026-05-18T04:03:47","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=167629"},"modified":"2026-05-18T07:40:17","modified_gmt":"2026-05-18T04:40:17","slug":"things-to-do-after-installing-cachyos","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/things-to-do-after-installing-cachyos\/","title":{"rendered":"Things to Do After Installing CachyOS"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You have just finished a fresh <strong>CachyOS<\/strong> install (or you are still on the way and <a href=\"https:\/\/computingforgeeks.com\/install-cachyos-step-by-step\/\">following the step-by-step install guide<\/a>) and you are looking at a clean KDE Plasma desktop. The install guide walked you through the Calamares wizard, but the actual work of turning that fresh disk image into a daily-driver workstation happens in the first hour after first boot. This is the comprehensive, tested walkthrough of <strong>things to do after installing CachyOS<\/strong>: rate mirrors, finish the first update, learn paru and the AUR, add Flatpak, set up the fish shell or swap it for zsh, install the apps you will actually use, theme KDE Plasma, lock down the firewall, and pick up the small set of CLI tools that make Linux less painful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every command and screenshot below was captured on a fresh CachyOS install on a UEFI machine, no exceptions. The order matters: do the update first, the AUR helper second, theming and apps after, and the firewall before you take the laptop anywhere public.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tested May 2026 on the CachyOS 260426 desktop ISO with linux-cachyos 7.0.8 (EEVDF), KDE Plasma 6 on Wayland, fish 4.x, paru 2.x, Flatpak 1.x, and a BTRFS root using zstd compression. Hardware: 4 vCPU host CPU passthrough, 8 GB RAM, 80 GB virtual SSD.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Rate mirrors and do the first system update<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The CachyOS ISO ships a mirrorlist that was current the day the ISO was built. Days or weeks later, the fastest mirror for your network is almost certainly a different one. CachyOS includes <code>cachyos-rate-mirrors<\/code>, which benchmarks the entire mirror list against your network and rewrites <code>\/etc\/pacman.d\/cachyos-mirrorlist<\/code> sorted by speed. Run it before any pacman command:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo cachyos-rate-mirrors<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The tool prints the ranked mirror list as it works and writes the new mirrorlist file. On a fresh install the run takes 30-60 seconds:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output.png\" alt=\"Terminal output of sudo cachyos-rate-mirrors showing the ranked mirror list being written to \/etc\/pacman.d\/cachyos-mirrorlist on a fresh CachyOS install\" class=\"wp-image-167619\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-rate-mirrors-output-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now run the first system update. CachyOS is a rolling release, so the ISO image is always slightly behind the live repos. The first <code>pacman -Syu<\/code> will pull anywhere from a handful of packages to several hundred depending on how old the ISO is:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -Syu<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This single command does three things: refreshes the package databases (the <code>-y<\/code>), checks for upgrades to every installed package, and applies them with confirmation. Hit Enter to accept the proposed upgrade. The output looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"2218\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade.png\" alt=\"Terminal output of sudo pacman -Syu on a fresh CachyOS install showing database sync, upgrade list, and successful package installation\" class=\"wp-image-167635\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade-249x300.png 249w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade-849x1024.png 849w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade-768x926.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade-1274x1536.png 1274w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-pacman-syu-first-upgrade-1699x2048.png 1699w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If a new kernel landed in the update, reboot. The new kernel modules are loaded only on a fresh boot, and skipping the reboot leaves the running kernel and its modules out of sync, which causes weird breakage later. After the reboot, you are on the latest CachyOS stack.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Confirm paru is installed and learn the four commands that matter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS ships <strong>paru<\/strong> as its default AUR helper, already installed. paru wraps pacman and adds the ability to install packages from the <a href=\"https:\/\/aur.archlinux.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Arch User Repository<\/a>, the community-maintained build-script repository where you find software not in the official Arch repos (proprietary apps, niche dev tools, latest pre-release versions). Confirm paru is there:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>paru --version\nwhich paru<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The four paru commands that cover 95% of daily use:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Command<\/th><th>What it does<\/th><\/tr><\/thead><tbody>\n<tr><td><code>paru<\/code><\/td><td>Alias for <code>paru -Syu<\/code>. Updates official repos AND the AUR packages you have installed.<\/td><\/tr>\n<tr><td><code>paru -S package<\/code><\/td><td>Install a package from either the official repos or the AUR.<\/td><\/tr>\n<tr><td><code>paru -Ss query<\/code><\/td><td>Search both repos and AUR for a name or description match.<\/td><\/tr>\n<tr><td><code>paru -Rns package<\/code><\/td><td>Remove a package along with its unused dependencies and config files.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A real example: search the AUR for a chat client, see what is available, install one:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>paru -Ss visual-studio-code-bin\nparu -S visual-studio-code-bin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">paru shows you the PKGBUILD before installing, asks if you want to edit it, and only proceeds when you say yes. That review step is the single biggest reason to use paru over <code>yay<\/code> on a serious machine: the AUR is unaudited, and an AUR helper that quietly auto-builds anything is an attack surface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur.png\" alt=\"Terminal showing paru searching the AUR for visual-studio-code-bin and the PKGBUILD review prompt before install\" class=\"wp-image-167620\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-paru-search-aur-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Add Flathub and use Flatpak for sandboxed apps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Flatpak is the third package source on a CachyOS box (alongside the official pacman repos and the AUR). It ships sandboxed apps from <a href=\"https:\/\/flathub.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Flathub<\/a>, the cross-distro Flatpak registry. Flatpak is not in the default install, so pull it in first. The Flathub remote needs <code>sudo<\/code> for a system-wide install:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S --noconfirm flatpak\nsudo flatpak remote-add --if-not-exists flathub https:\/\/flathub.org\/repo\/flathub.flatpakrepo\nflatpak remotes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now Discover (the KDE app store) and the <code>flatpak<\/code> CLI both pull from Flathub. Install an app from Flathub:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>flatpak install flathub org.signal.Signal\nflatpak run org.signal.Signal<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The captured output of the Flathub setup looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup.png\" alt=\"Terminal output of flatpak remote-add for Flathub and flatpak remotes listing the configured remotes on CachyOS\" class=\"wp-image-167621\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-flatpak-flathub-setup-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The general rule for which package source to use:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>pacman<\/strong> for everything in the official repos. Always first choice. Native packages, lowest overhead, full pacman snapshot integration.<\/li>\n<li><strong>AUR via paru<\/strong> for software not packaged in the official repos: latest pre-release dev tools, proprietary apps (Visual Studio Code, Slack, Zoom), niche utilities, anything that builds against a specific upstream.<\/li>\n<li><strong>Flatpak from Flathub<\/strong> for sandboxed graphical apps, especially ones you want isolated from the rest of the system (browsers, chat, media players). Discover surfaces both pacman and Flatpak versions; pick the pacman one when both exist.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install the apps you will actually use<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS Hello has an <strong>Apps\/Tweaks<\/strong> button at the bottom that launches <code>cachyos-pi<\/code>, a Qt GUI that bundles categorised app picks (browsers, dev tools, multimedia, office, gaming, fonts). It is a reasonable shortcut if you do not want to learn pacman flags first. Click into it once to see what is on offer:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-package-installer-gui.png\" alt=\"CachyOS Package Installer Qt GUI showing categorised app picks for browsers, development tools, multimedia, office, gaming, and fonts on a fresh CachyOS install\" class=\"wp-image-167622\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-package-installer-gui.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-package-installer-gui-300x225.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-package-installer-gui-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For everyone past their first day on Linux, the terminal is faster. Here is a curated set of native pacman packages that covers most of what a developer or power user needs on day one. Split into logical chunks so you can pick what fits your laptop:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code># Browsers and chat (pick one of each)\nsudo pacman -S firefox chromium thunderbird\n\n# Office and PDF\nsudo pacman -S libreoffice-fresh okular gwenview\n\n# Dev essentials\nsudo pacman -S base-devel git github-cli docker docker-compose neovim\n\n# Languages and runtimes\nsudo pacman -S python python-pip nodejs npm go rust\n\n# Multimedia\nsudo pacman -S vlc mpv obs-studio audacity gimp inkscape\n\n# CLI quality-of-life\nsudo pacman -S htop btop fastfetch micro eza bat ripgrep fd fzf zoxide tmux<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8220;CLI quality-of-life&#8221; line at the bottom is the one most users skip and then regret. <code>eza<\/code> replaces <code>ls<\/code> with a faster, prettier alternative; <code>bat<\/code> replaces <code>cat<\/code> with syntax highlighting; <code>ripgrep<\/code> replaces <code>grep<\/code> with one tool that handles every file type; <code>fzf<\/code> adds fuzzy finding everywhere; <code>zoxide<\/code> replaces <code>cd<\/code> with a directory-jumper that learns your habits. Install them now, build the muscle memory later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Captured output of installing the CLI tools and a quick version check on a few of them:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"834\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools.png\" alt=\"Terminal showing pacman -S of htop btop fastfetch micro eza bat ripgrep fd fzf zoxide tmux on CachyOS plus eza bat ripgrep version output\" class=\"wp-image-167627\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools-300x136.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools-1024x464.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools-768x348.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-cli-quality-of-life-tools-1536x696.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For proprietary or AUR-only apps, paru is the path. The common ones for a fresh laptop:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>paru -S visual-studio-code-bin slack-desktop zoom google-chrome 1password<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">paru will show each PKGBUILD before building. Read them on first run, accept on subsequent updates. None of those packages take more than a minute or two to build.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Get to know fish, the default shell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS sets <strong>fish<\/strong> as the default user shell, which is a meaningful departure from bash and zsh that you will hit immediately. fish gives you three things that &#8220;just work&#8221; with no config:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Autosuggestions.<\/strong> As you type, the rest of a command from your history fades in greyed-out. Hit Right Arrow or Ctrl+E to accept.<\/li>\n<li><strong>Syntax highlighting.<\/strong> Real-time colour: valid commands are blue, invalid ones red, files purple, options yellow. Catches typos before you press Enter.<\/li>\n<li><strong>Smart tab completion.<\/strong> fish knows the man-page flags for hundreds of commands and offers them inline.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The trade-off: fish is not POSIX. Bash scripts and one-liners that work in <code>sh<\/code> may not work as-is in fish. The pragmatic split is to use fish interactively and bash for scripts (shebang <code>#!\/usr\/bin\/env bash<\/code> at the top).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fish commands worth learning on day one:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code># Web-based config: themes, prompt, key bindings, history viewer\nfish_config\n\n# Create an abbreviation (expands when you press Space)\nabbr -a gs git status\nabbr -a gp git push\n\n# Set an environment variable in a way that persists across sessions and is exported\nset -Ux EDITOR nvim\nset -Ux MANPAGER 'nvim +Man!'\n\n# Define a function (saved to ~\/.config\/fish\/functions\/NAME.fish on save)\nfunction mkcd\n  mkdir -p $argv[1]; and cd $argv[1]\nend\nfuncsave mkcd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>fish_config<\/code> opens a local web page where you can pick a colour theme, configure the prompt, browse your command history, and see every function and variable in scope. It is genuinely the easiest way to make fish look the way you want.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config.png\" alt=\"fish_config web interface running on localhost showing theme picker, prompt configuration, and command history viewer on CachyOS\" class=\"wp-image-167623\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fish-shell-config-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If fish ends up not fitting your brain, switch to zsh. Both are first-class on CachyOS:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S zsh zsh-completions\nchsh -s \/usr\/bin\/zsh\n# Log out and back in for the change to take effect<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Add Starship for a consistent prompt across shells<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Starship is a Rust-built prompt that works the same in fish, zsh, and bash. It auto-detects what is in the current directory (git repo, language version, kubectl context, AWS profile, etc.) and renders a contextual prompt with no per-shell config. It is the easiest way to get a &#8220;powerline-looking&#8221; prompt without per-shell theme files.<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S starship\n# Wire it into fish (only line you need)\necho 'starship init fish | source' &gt;&gt; ~\/.config\/fish\/config.fish\n# Open a new terminal to see the new prompt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The default Starship config is sensible. Configuration lives at <code>~\/.config\/starship.toml<\/code> when you want to tweak it. The Starship docs catalogue every module and how to disable or restyle it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Make fastfetch the system info you actually run<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS preinstalls <code>fastfetch<\/code>, the actively-maintained successor to <code>neofetch<\/code> (which is unmaintained). fastfetch is the screenshot-worthy &#8220;OS \/ kernel \/ DE \/ theme \/ RAM&#8221; tool you see in every Linux configuration post. Run it bare:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>fastfetch<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Captured output looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"1342\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output.png\" alt=\"fastfetch output on CachyOS showing the CachyOS logo, kernel 7.0.8-1-cachyos, KDE Plasma 6, BTRFS, memory and uptime in a Konsole window\" class=\"wp-image-167624\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output-300x219.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output-1024x747.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output-768x560.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-fastfetch-output-1536x1120.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The default output is the CachyOS logo plus a sensible info column. To make it your own, generate a config and edit the JSONC file:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>fastfetch --gen-config\n$EDITOR ~\/.config\/fastfetch\/config.jsonc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The config is plain JSON with comments; modules can be added, removed, or restyled. A useful trick is to set fastfetch as a Konsole start-up command so every new shell shows a small system summary.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Theme KDE Plasma<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The CachyOS default theme is fine, but the entire point of KDE Plasma is that everything is themeable. The settings live in <strong>System Settings \u2192 Appearance<\/strong>. The five panels that actually matter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Global Theme<\/strong>: one-click bundles that change everything at once (window decoration, plasma style, colours, fonts, icons). Browse &#8220;Get New Global Themes&#8221; for community options; the official Plasma 6 themes (Breeze Dark \/ Light) are solid defaults.<\/li>\n<li><strong>Colors<\/strong>: independent colour schemes overlay any Global Theme. Useful when you like a theme but want a different accent or background tone.<\/li>\n<li><strong>Icons<\/strong>: Papirus, Tela, Reversal, Numix are the popular alternatives to Breeze. Install via Discover or pacman: <code>sudo pacman -S papirus-icon-theme<\/code>.<\/li>\n<li><strong>Cursors<\/strong>: Bibata is the de facto Linux cursor theme of the last few years. <code>paru -S bibata-cursor-theme<\/code>.<\/li>\n<li><strong>Fonts<\/strong>: install a programmer font with ligatures (<code>sudo pacman -S ttf-jetbrains-mono ttf-jetbrains-mono-nerd ttf-fira-code<\/code>) and set it for the system + monospace font.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kde-global-theme.png\" alt=\"KDE Plasma System Settings Global Theme picker showing available themes including Breeze Dark on a CachyOS install\" class=\"wp-image-167625\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kde-global-theme.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kde-global-theme-300x225.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kde-global-theme-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The two GUI dialogs you will spend the most time in. First, Global Theme picker (above). Second, the Application Style and Window Decorations sub-panels:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you have a Global Theme picked, scroll past the appearance panels to <strong>Workspace Behavior \u2192 Desktop Effects<\/strong>. The two effects worth knowing about are <em>Wobbly Windows<\/em> (cosmetic, optional) and <em>Magic Lamp<\/em> (minimise animation). Disable both if you want maximum performance on integrated graphics; keep them if you like the eye candy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Tune the panel, widgets, and shortcuts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Right-click on the taskbar panel and pick <strong>Enter Edit Mode<\/strong> to redesign the panel. You can move it to the top, change its height, add widgets, or rearrange existing ones. The widgets most people add on day one:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Application Title Bar<\/strong> shows the current window title in the panel, great on a laptop where the panel is your main reference point.<\/li>\n<li><strong>System Load Viewer<\/strong> tiny CPU \/ RAM \/ network graphs you can park next to the clock.<\/li>\n<li><strong>Pager<\/strong> if you use virtual desktops, lets you click between them instead of remembering Ctrl+Alt+Arrow.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Keyboard shortcuts live under <strong>System Settings \u2192 Shortcuts<\/strong>. The few worth confirming or changing right away:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Action<\/th><th>Default<\/th><th>Why<\/th><\/tr><\/thead><tbody>\n<tr><td>Launch terminal<\/td><td>Ctrl+Alt+T<\/td><td>Set this if it is not already; opening a terminal in one shortcut is the single best return on muscle memory.<\/td><\/tr>\n<tr><td>KRunner<\/td><td>Alt+Space<\/td><td>Spotlight-like search and command runner.<\/td><\/tr>\n<tr><td>Screenshot<\/td><td>PrintScreen<\/td><td>Plasma 6&#8217;s Spectacle is the default. Region select with Shift+PrintScreen.<\/td><\/tr>\n<tr><td>Switch window<\/td><td>Alt+Tab<\/td><td>Alt+Tab cycles through windows; Meta+Tab is the activity switcher.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 10: Tune power, display, and fonts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Three System Settings panels matter on day one for any laptop or desktop:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Display Configuration<\/strong> for resolution and HiDPI scaling. On a HiDPI laptop, set Global Scale to 150% or 200% under <strong>System Settings \u2192 Display &amp; Monitor<\/strong>. Plasma 6 handles per-output scaling cleanly, so an external monitor at 100% can sit alongside an internal panel at 200%.<\/li>\n<li><strong>Energy Saving<\/strong> for screen and suspend timeouts on AC and battery separately. The default 5-minute screen off on battery is too aggressive for most use; 10-15 minutes is saner.<\/li>\n<li><strong>Fonts<\/strong> for system and monospace fonts. After installing the JetBrains Mono package above, set monospace font to &#8220;JetBrains Mono&#8221; 11pt and watch every terminal and code editor become more readable.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Deeper laptop power tuning (TLP vs auto-cpufreq vs power-profiles-daemon, suspend-then-hibernate, thermal monitoring) is the topic of a separate Day-2 guide in this series.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 11: Enable the firewall<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>firewalld<\/code> is not in the default install. Install it and enable the service in one go. On a laptop that connects to networks you do not control (coffee shop, hotel, conference), turn it on:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S --noconfirm firewalld\nsudo systemctl enable --now firewalld\nsudo firewall-cmd --state\nsudo firewall-cmd --get-default-zone\nsudo firewall-cmd --list-all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The default zone is <code>public<\/code>, which blocks inbound traffic except for ssh and DHCP responses. That is correct for almost every laptop. If you need to allow a specific port (e.g., to run a local dev server reachable from another machine on the network), open it once:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo firewall-cmd --add-port=3000\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Captured firewalld state from a freshly enabled install:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"972\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup.png\" alt=\"firewalld systemctl status and firewall-cmd state output on CachyOS showing the firewall enabled and the public zone active\" class=\"wp-image-167626\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup-300x158.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup-1024x541.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup-768x406.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-firewalld-setup-1536x811.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 12: Snapper snapshots + Limine integration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Calamares BTRFS layout you installed onto is already set up for snapper. Every <code>pacman<\/code> transaction takes pre and post snapshots automatically (the snapper post-transaction hook), and the Limine bootloader exposes those snapshots as bootable entries under the <strong>[+] Snapshots<\/strong> menu. When a kernel update breaks the system, you reboot, pick a pre-update snapshot from the boot menu, and you are back in a working state in under thirty seconds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the single most useful Day-2 feature on a rolling release. List the current snapshots to confirm the integration is working:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo snapper -c root list\nsudo btrfs subvolume list \/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The snapshot setup, automation policy, retention, and the recovery flow itself are covered in a dedicated Day-2 guide on BTRFS snapshots and rollback.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 13: A handful of small quality-of-life tweaks<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Set git identity now.<\/strong> <code>git config --global user.name \"Your Name\"<\/code> and <code>git config --global user.email \"you@example.com\"<\/code>. Otherwise the first commit you try in a new repo prompts you for it.<\/li>\n<li><strong>Add yourself to common groups.<\/strong> CachyOS picks the right defaults during install, but if you plan to use Docker, KVM, or wheel-specific tools, confirm: <code>sudo usermod -aG docker,libvirt,wheel $USER<\/code> then log out and back in.<\/li>\n<li><strong>Generate an SSH key.<\/strong> <code>ssh-keygen -t ed25519 -C \"you@example.com\"<\/code> creates an Ed25519 keypair at <code>~\/.ssh\/id_ed25519<\/code>. Upload the <code>.pub<\/code> to GitHub, GitLab, or whatever you push to.<\/li>\n<li><strong>Pin a fallback kernel.<\/strong> Install <code>linux-cachyos-lts<\/code> so the Limine menu has a second kernel to fall back on. Coverage of this lives in the dedicated <a href=\"https:\/\/computingforgeeks.com\/cachyos-kernel-manager-performance-tuning\/\">kernel manager and performance tuning guide<\/a>.<\/li>\n<li><strong>Backup somewhere off the laptop.<\/strong> Snapshots are not backups. Pick one: <code>restic<\/code> to a remote object store, <code>borg<\/code> over SSH, or a simple <code>rsync<\/code> cron to a NAS. The choice matters less than the existence of one.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is the realistic post-install setup on CachyOS. The list looks long the first time you read it, but the actual time spent is roughly one hour: thirty minutes for updates and apps, twenty for theming, ten for shells and prompt. After that, the laptop is a daily-driver. The Day-2 articles in this series go deeper on each of the things this post only pointed at: <a href=\"https:\/\/computingforgeeks.com\/cachyos-kernel-manager-performance-tuning\/\">kernel manager and performance tuning<\/a>, laptop power and battery, snapper-based rollback, gaming, and the rolling-release update survival kit.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You have just finished a fresh CachyOS install (or you are still on the way and following the step-by-step install guide) and you are looking at a clean KDE Plasma desktop. The install guide walked you through the Calamares wizard, but the actual work of turning that fresh disk image into a daily-driver workstation happens &#8230; <a title=\"Things to Do After Installing CachyOS\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/things-to-do-after-installing-cachyos\/\" aria-label=\"Read more about Things to Do After Installing CachyOS\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":167628,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,712,47,50],"tags":[228,781,714,282],"cfg_series":[39846],"class_list":["post-167629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arch-linux","category-desktop","category-linux","category-linux-tutorials","tag-arch-linux","tag-desktop","tag-desktop-environment","tag-linux","cfg_series-cachyos-laptops"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=167629"}],"version-history":[{"count":2,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167629\/revisions"}],"predecessor-version":[{"id":167636,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167629\/revisions\/167636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/167628"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=167629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=167629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=167629"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=167629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}