Personal configuration files for three platforms, organized into per-platform top-level directories.
dotfiles/ ├── omarchy/ Arch Linux desktop (omarchy / Hyprland) ├── macos/ macOS ├── nixos/ NixOS └── common/ Shared between platforms
Configurations for an omarchy-based Arch Linux desktop running Hyprland.
Targets Omarchy 4 (“quattro”), which ships as a system package under
/usr/share/omarchy and configures Hyprland in Lua. Omarchy’s defaults load
first and these files override them afterwards.
install.sh— stows all packages below and enables user systemd servicesghostty/— terminal config; colors follow the active Omarchy themehypr/— Hyprland Lua overrides:bindings.lua,input.lua,looknfeel.lua, scriptsnvim/— only the LazyVim files that diverge from theomarchy-nvimpackage:lazyvim.json(the enabled LazyVim extras) andlua/plugins/gitsigns-blame.lua(inline current-line git blame, toggled with<leader>uB). Omarchy’s own nvim files stay package-managed so they keep picking up upstream fixes; stowed with--no-foldingso they survive alongside the symlinkssystemd/— user services (downloads cleanup, grasp browser extension relay)
Deliberately untracked, because Omarchy rewrites them in place and would replace a stowed symlink with a regular file:
~/.config/hypr/monitors.lua— rewritten byomarchy-hyprland-monitor-scaling(sed -i)~/.config/omarchy/shell.json— bar, panel, and idle config, rewritten byomarchy bar(mv)~/.config/nvim/lua/plugins/theme.lua— recreated byomarchy-nvim-setupon every run as a relative symlink into~/.local/state/omarchy. Stowing it would resolve the link from this repo instead of$HOME, breaking theme switching.~/.config/nvim/lazy-lock.json— rewritten by lazy.nvim on every:Lazy update
Also untracked on purpose, both generated by Omarchy and easy to regenerate:
~/.config/starship.toml— Omarchy’s shipped prompt. Starship has no include mechanism, so tracking it would mean vendoring the whole upstream file to carry a local tweak.~/.XCompose— written by/usr/share/omarchy/install/user/xcompose.shfrom$OMARCHY_USER_NAME/$OMARCHY_USER_EMAIL.
The status bar is no longer Waybar; Omarchy 4 renders it from Quickshell and
configures it through ~/.config/omarchy/shell.json.
Configurations for macOS.
install.sh— stows all packages below, installs Homebrew bundle, sets up oh-my-zsh, fzf, and macOS defaultsBrewfile— Homebrew formulae, casks, and Mac App Store appszsh/—.zshrc, powerlevel10k prompt,.lessfilter.shtmux/— tmux config and a CPU/memory status scriptskhd/— hotkey daemon bindingsyabai/— tiling window manager rulessketchybar/— status bar; highlights the focused mission control spacepip/— pip configuration
NixOS system configuration managed with flakes and home-manager.
flake.nix— inputs and outputshosts/— per-host configurations (fusion-vm,example)modules/— shared system-level modules (packages, services)home/eduardo/— user environment (packages, waybar, gpg-agent, nushell, fzf, zoxide)hypr/— Hyprland config for NixOS hostsdeploy.sh— deployment helper script
Shared configs used on both omarchy and macOS (and referenced from NixOS).
doom/— Doom Emacs configuration (init.el,config.el,packages.el, keybindings, org templates)authinfo/— encrypted.authinfo(git-crypted); stowed on macOS, referenced as an out-of-store symlink on NixOSskills/— agent skills shared by Claude Code and Copilot CLI;claude/andcopilot/symlink into it rather than duplicatingcopilot/— Copilot CLI:copilot-instructions.md(global agent instructions applied in every repository) plus skill symlinks. Stowed with--no-foldingso~/.copilotkeeps its live state (config.json,logs/,session-store.db) and hand-made skill symlinksclaude/— Claude Codesettings.json, hooks, and the same skill symlinks; also stowed with--no-folding
make install-omarchy
# or directly:
./omarchy/install.shRequires stow and systemctl. Pass --dry-run to preview changes without
touching the filesystem.
make install-macos
# or directly:
./macos/install.shRequires gpg with the signing key imported and brew available.
cd nixos && make switchcommon/authinfo/.authinfo is encrypted with git-crypt. Running the installers
on a machine without the key will silently skip authinfo stowing (macOS) or
produce a broken symlink (NixOS) until the repo is unlocked.
For detailed instructions on decrypting the .authinfo file, including
installation steps, GPG key requirements, and security considerations for
forking, see common/authinfo/README.md.
make gitleaks # scan against stored baseline
make gitleaks-baseline-regen # regenerate baseline after a deliberate change