My personal dotfiles, designed around OMARCHY.
Based on sheikhlimon/dotfiles, an excellent Omarchy dotfiles template — per its own philosophy: "Take anything and make it your own." This repo's history starts with a single squashed import of that base, with my own changes on top.
💡 OMARCHY Philosophy: Take anything and make it your own. These configs are a starting point - feel free to take, modify, and customize to fit your workflow.
- 🖥️ Hyprland window manager (native Lua config, Omarchy 4.0 "Quattro")
- 🐚 Omarchy shell: bar layout, custom branding, and a cloned monitor panel
- ⚡ Neovim via the official
omarchy-nvimpackage (pacman-managed, theme-synced automatically — not tracked here; runsudo pacman -Syuthenomarchy-nvim-refreshto update) - 🐟 Fish shell config (CachyOS fish preset + Omarchy
OMARCHY_PATH/starship setup) — the login shell - ✨ Starship prompt
- 📊 btop and fastfetch
- 📦 Lazygit config
- 🔎 Ripgrep config
- 🔤 Fontconfig (JetBrainsMono Nerd Font)
- 🛠️ Tmux configuration with plugins and custom keybindings
- 📋 Git configuration
- 💻 VS Code settings and keybindings
- 🚀 Automated scripts for app installation and database setup
- 🤖 Shared AI-agent context with
AGENTS.mdand.agents/
The terminal is foot, configured through Omarchy rather than tracked here.
Clone the repository:
git clone https://github.com/TheMridul/dotfiles ~/.dotfiles
cd ~/.dotfilesInstall specific configs (example):
stow --no-folding hypr
stow --no-folding fish
stow --no-folding starshipInstall everything:
stow --no-folding */Make sure to remove or back up existing config files before stowing.
Always pass --no-folding. Without it, stow replaces a whole config
directory with one symlink pointing into this repo. Any file the program then
writes — fish's fish_variables, btop's runtime btop.conf, Omarchy's
downloaded themes and installed plugins — lands inside the repository and
shows up as untracked noise. --no-folding keeps the real directories in place
and symlinks only the tracked files.
One agent-neutral layout, in two layers:
~/AGENTS.md(symlinked fromagents/AGENTS.mdhere) holds machine- and user-wide rules.~/.agents/holds user-level skills and the machine-wide memory store.AGENTS.mdat a project root holds that project's context and rules, and wins wherever it disagrees with the user-wide file..agents/holds that project's skills, references, templates, and memories.- Cursor reads
AGENTS.mddirectly. Codex reads~/.codex/AGENTS.md, which is a symlink to~/AGENTS.mdrather than a second copy. Claude Code uses a small local hook that points its main session and subagents at both layers.
Memories are not stored in an agent's private directory. A project fact goes
in that project's .agents/memory/; a machine or user fact goes in
~/.agents/memory/. Both are plain Markdown with a MEMORY.md index, so every
tool can read them. ~/.agents/memory/ is deliberately not tracked here —
this repository is public and memories carry hostnames, key fingerprints, and
hardware details. Back it up separately.
After cloning this dotfiles repository on a new machine, install the bridge:
./scripts/install-agent-context.shThe script links the hook, the statusline and all six skills into ~/.claude,
adds the required hook entries without replacing other Claude settings, links
~/AGENTS.md and the shared ~/.agents/README.md, points ~/.codex/AGENTS.md
at the same file, and creates an empty ~/.agents/memory/. It requires jq and
stops if a target file already exists rather than overwriting it.
Use the new-project, existing-project, or just-rules Claude skills to
create the same AGENTS.md and .agents/ layout in future repositories. No
project-level CLAUDE.md, .cursorrules, or .cursor/rules is needed. The
remaining skills — collaborator-tone, explain-code, mentor-mode — shape
how an agent writes and explains rather than what it scaffolds.
CachyOS-specific gotchas (SDDM theme Qt5/Qt6 crash, omarchy update wiping
pacman repos, locale/btop, keybind conflicts) are written up in
TROUBLESHOOTING.md.