Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal configuration for Omarchy machines, managed with GNU stow.

Rebuilt from scratch on Omarchy 4.0. The pre-Omarchy-4 history (Hyprland + Noctalia + a much larger config surface) is preserved on the archive/pre-omarchy4 branch.

Philosophy

Omarchy already ships a curated desktop, shell, editor, and terminal stack. This repo holds only the delta on top of that, never a fork of what Omarchy provides. Concretely:

  • Hyprland: only the override files Omarchy sources, never the base config. The seven that are byte-identical to stock stay unmanaged, so Omarchy keeps updating them.
  • Where Omarchy owns a file outright, it stays unmanaged and we append a one-line include pointing at a stowed override, so ours loads last and wins. Three files work this way: ~/.zshrc to ~/.config/zsh/local.zsh, ~/.config/git/config to overrides.gitconfig, and ~/.config/ghostty/config to overrides.conf. install.sh re-adds each hook if the package ever resets the file.
  • Neovim: stock Omarchy LazyVim, unmodified.
  • Anything Omarchy installs by default is not listed in packages.lst. Check with cat /usr/share/omarchy/install/*.packages, and check provides and conflicts too, not just the name.

Everything installed on the machine is recorded in install/packages.lst (with a reason) or install/SERVICES.md, so the repo alone is enough to rebuild a box.

Install

git clone https://github.com/joegeary/dotfiles.git ~/dotfiles
~/dotfiles/install/install.sh

The script installs packages, sets up zsh, and creates all symlinks. Then read install/SERVICES.md for the setup that symlinks cannot express (Tailscale, Syncthing, DDNS, printing).

Layout

Path Purpose
home/ stow package symlinked into ~ - shared by every machine
hosts/<hostname>/ per-machine stow package (monitor layout, etc.)
install/ bootstrap script, package list, service runbook
os-migration/ inventory + scripts from the pre-Omarchy-4 migration

Usage

stow -d ~/dotfiles -t ~ home            # shared config
stow -d ~/dotfiles/hosts -t ~ "$(hostname)"   # this machine's config

stow -D -d ~/dotfiles -t ~ home         # unstow

Adding a new machine means creating hosts/<hostname>/ and stowing it. Stow packages must be direct children of the stow dir, hence the -d hosts form.

Warning

This repo is public and contains no secrets. Credentials, keys, tokens, and internal hostnames are deliberately kept out of it and restored by hand.

About

My personal dotfiles

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages