dotfiles

August 15, 2026 · View on GitHub

Personal configuration files for Omarchy (Arch Linux) and Fedora, managed with yadm.

Quick Start (New Machine)

1. Install yadm

  • Arch / Omarchy: sudo pacman -S yadm
  • Fedora: sudo dnf install yadm

2. Clone and Bootstrap

Clone the repository and run the automated installer:

yadm clone --bootstrap git@github.com:sheikhlimon/dotfiles.git

3. Decrypt Secrets

Decrypt private SSH keys, Claude skills, and API credentials:

yadm decrypt

Tool Stack

  • Manager: yadm with GPG archive encryption and automated lifecycle hooks
  • Shell: Modular Zsh (env, options, tools, completions, plugins, aliases)
  • Plugin Loader: Zero-overhead native loader (~/.local/share/zsh/plugins) with auto-clone fallback
  • History Engine: Atuin (interactive TUI, relative time, directory filtering, SQLite sync)
  • Prompt: Starship
  • Directory Jumper: Zoxide (cd / z)
  • Fuzzy Finder: FZF + fzf-tab (16-color ANSI theme, bat/eza previews)
  • Editor: Neovim and VS Code
  • Terminals: Ghostty and Kitty
  • Window Manager: Hyprland
  • File Manager: Yazi
  • Git: Delta (Flexoki Light theme) and Lazygit
  • Multiplexer: Tmux
  • Containers: Lazydocker + Podman / Docker

Directory Structure

~
├── .config/
│   ├── hypr/          # Hyprland window manager configuration
│   ├── nvim/          # Neovim configuration and LSP settings
│   ├── zsh/           # Modular Zsh configuration (env, options, tools, aliases)
│   ├── ghostty/       # Ghostty terminal configuration
│   ├── kitty/         # Kitty terminal configuration
│   ├── lazygit/       # Lazygit configuration (Flexoki Light)
│   ├── lazydocker/    # Lazydocker configuration
│   ├── starship/      # Starship prompt configuration
│   ├── yazi/          # Yazi terminal file manager
│   └── yadm/          # Bootstrap installer, encryption list, and hooks
├── .local/
│   ├── bin/           # Global user scripts (screenshot, screenrecord)
│   └── share/yadm/    # Encrypted archive vault (archive)
├── .gitconfig         # Git configuration (Delta pager, zdiff3)
├── .tmux.conf         # Tmux multiplexer configuration
└── .zshrc             # Zsh entrypoint loader

Daily Workflow

CommandDescription
yadm statusCheck status of tracked dotfiles
yadm diffView unstaged changes
yadm add <file>Stage modified or new configuration
yadm commit -m "message"Commit staged changes
yadm pushPush changes to remote repository
yadm pullPull updates from remote repository
yadm encryptRe-encrypt private files (auto-staged via hook)
yadm decryptDecrypt private credentials on current machine