Skip to content

About

My personal CachyOS setup with GNOME, automated with Ansible.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

CachyOS Setup

My personal CachyOS setup with GNOME, automated with Ansible.

CachyOS GNOME Ansible

CachyOS desktop with GNOME and Dash to Panel

Software

Purpose Choice
Terminal Ghostty
System monitoring Mission Center
DNS provider NextDNS via systemd-resolved — routes all system DNS queries over DNS-over-TLS with DNSSEC validation
Audio player Gapless
Video player mpv — custom MVUtensils motion interpolation for TV-style motion smoothing, toggled with Shift+I
Web browser Firefox
Code editor Visual Studio Code
AI coding agents Codex CLI, Claude Code, and Antigravity CLI
Claude desktop app claude-desktop (AUR)
Netflix browser Opera — the only browser that gives me 1080p Netflix playback on Linux
Proton version manager ProtonPlus — manages Proton-GE and Proton-CachyOS versions
System upgrades Topgrade — centralizes upgrades across packages, tools, and runtimes; replaces the preinstalled cachy-update and Shelly, which are removed

Ankama Launcher is installed from the AUR with my saved Dofus display presets: “Affichage Fournux” and “Combat Fournux”, which hides the minimap during fights. Dofus's preset file is a symlink to roles/ankama/files/dofus-preset.json, so preset changes made in game show up in git status. Applying the presets and setting “Combat Fournux” as the fight preset is done in game, once per account. Run ./bootstrap.sh run --tags ankama to apply this role on its own.

Fresh install

  1. Install CachyOS with the GNOME desktop and the Limine bootloader, and set the hostname to the machine's inventory name (cachyos-desktop or cachyos-laptop). The playbook stops early when one of these is missing.
  2. Log in to GNOME and open a terminal there: GNOME settings and extensions are only applied from inside a GNOME session.
  3. Clone this repository and run ./bootstrap.sh upgrade. It upgrades the system, then installs Ansible, the linters, yay, and the pinned Galaxy collections.
  4. Restore the vault password into .vault-password, then run chmod 600 .vault-password.
  5. Run ./bootstrap.sh run, then reboot so the login shell, environment.d, kernel module, and initramfs changes apply.
  6. Run ./bootstrap.sh run again. The recap should report changed=0; any other count points to a task that is not idempotent.

GWToolbox settings are deployed only once Guild Wars is installed in Steam. Run ./bootstrap.sh run --tags gwtoolbox after installing it.

AI coding agents

Codex, Claude Code, and Antigravity share the skills in ~/.agents/skills, the global instructions in roles/ai_agents/files/agents/AGENTS.md, Serena, Context7, and the i-have-adhd plugin. Claude Code uses the native installer with automatic updates and signs in with your Claude subscription. Run claude after setup to sign in. Its ~/.claude/skills directory contains individual links to the configured shared skills. Ansible preserves existing user state when configuring MCP servers in ~/.claude.json. Codex reads the managed settings from /etc/codex/config.toml, a system layer under ~/.codex/config.toml, so Codex keeps its own state there (project trust, notices, plugins). The ai_agents role installs its own Bun, uv, and rustup dependencies, so ./bootstrap.sh run --tags claude works on its own.

Machine profiles

The shared playbook configures both machines. Each machine is an inventory host named after its hostname, in the desktop or laptop group, and ./bootstrap.sh limits the play to the host matching uname -n. Values that identify one machine, such as its NextDNS device name, live in host_vars/<hostname>/. Packages and settings for a machine type live in group_vars/desktop/ and group_vars/laptop/, and the desktop and laptop roles only hold hardware-specific tasks, so they do not leak between machines.

Group Hostname Additional configuration
desktop cachyos-desktop Wootility, Wake-on-LAN, and no automatic suspend
laptop cachyos-laptop asusctl, supergfxctl, rog-control-center, and solaar; supergfxd is enabled and started

GNOME extensions

  • Dash to Panel — provides a horizontal taskbar similar to Windows.
  • Vitals — displays and monitors system temperatures.

Manual assets

  • show-elgato-output.sh is a validated standalone helper. Run ./show-elgato-output.sh --help; its default capture device is machine-specific and can be overridden with --video-device and --sound-device.

Appearance

Ansible Vault password

vault_password_file is intentionally omitted from ansible.cfg; bootstrap.sh supplies it only for run and check, so lint and CI do not depend on a local secret.

About

My personal CachyOS setup with GNOME, automated with Ansible.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages