Skip to content

Repository files navigation

dotfiles

Personal configuration files for three platforms, organized into per-platform top-level directories.

Layout

dotfiles/
├── omarchy/      Arch Linux desktop (omarchy / Hyprland)
├── macos/        macOS
├── nixos/        NixOS
└── common/       Shared between platforms

omarchy/

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 services
  • ghostty/ — terminal config; colors follow the active Omarchy theme
  • hypr/ — Hyprland Lua overrides: bindings.lua, input.lua, looknfeel.lua, scripts
  • nvim/ — only the LazyVim files that diverge from the omarchy-nvim package: lazyvim.json (the enabled LazyVim extras) and lua/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-folding so they survive alongside the symlinks
  • systemd/ — 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 by omarchy-hyprland-monitor-scaling (sed -i)
  • ~/.config/omarchy/shell.json — bar, panel, and idle config, rewritten by omarchy bar (mv)
  • ~/.config/nvim/lua/plugins/theme.lua — recreated by omarchy-nvim-setup on 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.sh from $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.

macos/

Configurations for macOS.

  • install.sh — stows all packages below, installs Homebrew bundle, sets up oh-my-zsh, fzf, and macOS defaults
  • Brewfile — Homebrew formulae, casks, and Mac App Store apps
  • zsh/.zshrc, powerlevel10k prompt, .lessfilter.sh
  • tmux/ — tmux config and a CPU/memory status script
  • skhd/ — hotkey daemon bindings
  • yabai/ — tiling window manager rules
  • sketchybar/ — status bar; highlights the focused mission control space
  • pip/ — pip configuration

nixos/

NixOS system configuration managed with flakes and home-manager.

  • flake.nix — inputs and outputs
  • hosts/ — 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 hosts
  • deploy.sh — deployment helper script

common/

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 NixOS
  • skills/ — agent skills shared by Claude Code and Copilot CLI; claude/ and copilot/ symlink into it rather than duplicating
  • copilot/ — Copilot CLI: copilot-instructions.md (global agent instructions applied in every repository) plus skill symlinks. Stowed with --no-folding so ~/.copilot keeps its live state (config.json, logs/, session-store.db) and hand-made skill symlinks
  • claude/ — Claude Code settings.json, hooks, and the same skill symlinks; also stowed with --no-folding

Installation

Arch Linux / omarchy

make install-omarchy
# or directly:
./omarchy/install.sh

Requires stow and systemctl. Pass --dry-run to preview changes without touching the filesystem.

macOS

make install-macos
# or directly:
./macos/install.sh

Requires gpg with the signing key imported and brew available.

NixOS

cd nixos && make switch

Secrets

common/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.

Security scanning

make gitleaks          # scan against stored baseline
make gitleaks-baseline-regen  # regenerate baseline after a deliberate change

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages