Skip to content

frozenloser/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles — CachyOS / i3 setup

A portable snapshot of this laptop's configuration, built to be replayed on a fresh CachyOS install. Run install.sh (or hand the repo + CLAUDE.md to a Claude agent on the new machine).

TL;DR

git clone <this-repo-url> ~/dotfiles   # or copy the folder over via USB/scp
cd ~/dotfiles
./install.sh                           # packages + dotfiles + plugin managers

install.sh is idempotent and backs up anything it would overwrite to ~/.config-backups/dotfiles-<timestamp>/.

What's in here

Path Contents
packages/pacman-explicit.txt 208 explicitly-installed native packages (pacman -Qqen)
packages/aur.txt 10 AUR packages (pacman -Qqem, plus pokemon-colorscripts-git — the fish-greeting script, installed as a dep so it didn't show in the -e listing)
home/ Top-level dotfiles → $HOME (.bashrc, .zshrc, .profile, .gitconfig, .taskrc, .gtkrc-2.0, .nvmrc, .notify-osd, .fehbg)
config/ Selected ~/.config subtrees (see below)
local-bin/lock Gruvbox-themed i3lock-color lock-screen wrapper → ~/.local/bin/lock
screenlayout/dual.sh xrandr dual-monitor layout (eDP-1 + HDMI-1) → ~/.screenlayout/
claude/ Claude Code rules/ + settings.json (optional — see notes)

Desktop / window manager

  • i3 (config/i3/) — Gruvbox Dark Hard, gaps, JetBrainsMono Nerd Font, includes wallpaper.png
  • i3status-rust (config/i3status-rust/) — the i3 bar's status command
  • polybar (config/polybar/) — alternate bar (config + launch.sh + scripts)
  • picom — compositor · dunst — notifications · rofi — launcher
  • gtk-3.0 / gtk-4.0 / .gtkrc-2.0 / Kvantum / qt5ct — Gruvbox GTK/Qt theming
  • gsimplecal, Thunar, xfce4, easyeffects, systemd (user units), mimeapps.list, user-dirs.dirs

Terminal / shell / dev

  • alacritty — terminal · fish — shell (tide prompt + fisher plugins; state files excluded)
  • tmux (tmux.conf only — plugins reinstalled by tpm) · nvim (lazy.nvim; lazy-lock.json pins versions)
  • btop, micro (settings + keybindings + colorschemes), lazygit, atuin (config.toml only)

The i3 stack (sanity check)

The package lists are authoritative, but the i3 config + lock script specifically need these to be present, so verify after install:

i3-wm  i3status-rust  i3lock-color  polybar  rofi  alacritty  picom  dunst
redshift  feh  maim  xclip  pamixer  alsa-utils  playerctl  brightnessctl
dex  polkit-gnome  easyeffects  xob  gnome-calculator  xorg-xrandr
pavucontrol  gsimplecal  ttf-jetbrains-mono-nerd

Quick check:

for p in i3status-rs rofi alacritty picom dunst feh maim xclip pamixer \
         playerctl brightnessctl dex xob i3lock; do
  command -v "$p" >/dev/null && echo "ok  $p" || echo "MISSING $p"
done

Manual follow-ups (not automated)

  1. Display manager / startx — log into the i3 session.
  2. tmux plugins — open tmux, press prefix + I.
  3. nvim plugins — first launch auto-installs via lazy.nvim.
  4. fish default shellchsh -s "$(command -v fish)".
  5. Reload i3Mod+Shift+r (wallpaper + bar appear).
  6. The screenlayout assumes eDP-1 (laptop) + HDMI-1. If the new laptop's outputs differ, edit ~/.screenlayout/dual.sh (xrandr --query to list them).

What is NOT in this repo (you must set these up yourself)

Deliberately excluded — they contain secrets or per-machine state:

  • ~/.ssh (keys), ~/.config/gh (GitHub OAuth token — re-run gh auth login)
  • Pilot Shell: ~/.pilot/.license, .hmac_key, sessions, logs — install Pilot Shell separately and re-activate your license (pilot activate <key>)
  • ~/.claude/.credentials.json, history, projects, sessions (only rules/ + settings.json are kept)
  • atuin sync key/session (~/.local/share/atuin/ — run atuin login to re-sync)
  • fish universal variables / history; shell histories
  • Browser / email / DB-client profiles: google-chrome, mozilla, evolution, obsidian, beekeeper-studio, pgadmin4, dbclient (these are data, not config)

Notes

  • claude/ is included as a backup of hand-written rules. On a machine where you install Pilot Shell, it manages ~/.claude/rules itself — only run INSTALL_CLAUDE=1 ./install.sh if you want these as a standalone reference.
  • The package list came from CachyOS, so it resolves against CachyOS repos. If one renamed/removed package aborts the whole pacman batch, drop it from packages/pacman-explicit.txt and re-run, or install in smaller chunks.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors