Skip to content
eapolinarioPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

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 — preflights selected components, backs up replaced files, and stows individual files; service activation requires --enable-services
  • ghostty/ — terminal config; colors follow the active Omarchy theme
  • hypr/ — Hyprland Lua overrides: bindings.lua, input.lua, looknfeel.lua, scripts
  • Neovim uses common/nvim/, stowed as individual files with --no-folding. Omarchy’s generated theme, local lockfile, transparency and clipboard support remain in the live config alongside the shared links. FFF keeps the primary search keys; Telescope supplies the shared Doom-style directory searches. The installer backs up replaced files and migrates the former omarchy/nvim/ symlinks. See the shared Neovim configuration.
  • systemd/ — Grasp relay unit plus explicitly opt-in Downloads cleanup; neither service is automatically enabled by the default installation
  • chromium-extensions.md — reference list of Web Store extensions to reinstall; not stowed or applied by the installer

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)
  • nvim/ — shared LazyVim configuration, extras and keybindings; platform branches preserve Omarchy integration and keep Nix-managed tooling NixOS-only
  • 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
  • pi/ — pi agent settings, prompts, and extensions. On Omarchy, selected Claude, Copilot, and pi components discover all shared skills at installation time rather than depending on the older tracked skill aliases

Installation

Arch Linux / omarchy

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

Requires Bash, GNU Stow, coreutils, and findutils. Pass --dry-run to preview changes without touching the filesystem, or --doctor to report runtime prerequisites without installing anything. Use --only doom,copilot (for example) to limit the selected components. Missing/locked authinfo is skipped with a warning; --require-secrets makes it a preflight failure.

The default installation does not enable or start services. Downloads cleanup requires explicit selection (--only downloads-cleanup or --with-downloads-cleanup); it permanently deletes eligible contents and defaults to seven-day retention. Starting services from the installer requires --enable-services. The former zero-age global cleanup rule is now a harmless compatibility placeholder.

See the Omarchy operations guide for destinations, prerequisites, activation, backups, rollback, and recovery. Run make check-omarchy for the isolated Linux/shared-configuration regression suites.

To install or migrate only Neovim, without changing services or other dotfiles:

./omarchy/install.sh --nvim-only --dry-run
./omarchy/install.sh --nvim-only

On Omarchy, keep ~/.config/nvim and its plugin directories real, not directory symlinks. An explicit Omarchy Neovim refresh replaces the config; rerun the targeted installer afterwards. Shared files need their own review of upstream changes, rather than assuming package updates merge those changes automatically.

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.

On Omarchy, the installer detects a locked authinfo file, warns, and leaves existing credentials untouched. It never decrypts the repository or prints credential contents.

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