Skip to content

ladeixa/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal dotfiles for Omarchy on Arch Linux with Hyprland.

Designed for fast deployment on any new machine. Clone once, run one command, done.


Requirements

  • Arch Linux (fresh install)
  • Omarchy installed
  • git available

Quick Install (New Machine)

Full guide: docs/INSTALLATION.md

git clone git@github.com:singh-prithvi/dotfiles.git ~/.dotfiles
~/.dotfiles/scripts/bootstrap.sh

bootstrap.sh will:

  1. Verify Omarchy is installed
  2. Install all packages from packages/ lists
  3. Create symlinks for all configs
  4. Run a post-install health check

For just symlinking (if packages are already installed):

~/.dotfiles/scripts/install.sh

Structure

~/.dotfiles/
├── shell/          Shell config: exports, aliases, functions, paths
├── scripts/        Utility and deployment scripts (auto-added to PATH)
├── packages/       Package lists + install script
├── hypr/           Hyprland / hypridle / hyprlock / hyprsunset overrides
│   └── bindings/   Numbered binding files (00–90, loaded last)
├── nvim/           Neovim (LazyVim-based) config
├── foot/           foot terminal config (placeholder — add foot.ini here)
├── ActivityWatch/  ActivityWatch config + category export
├── themes/         Theme assets (placeholder)
├── docs/           Documentation (INSTALLATION.md, keybindings.md)
├── temp/           Scratch dir for temp files (gitignored except .gitkeep)
└── backups/        Install logs (gitignored except .gitkeep)

Shell Loading Order

On every interactive shell start, .bashrc sources:

~/.local/share/omarchy/default/bash/rc   ← Omarchy defaults (don't edit)
~/.dotfiles/shell/exports.sh             ← Environment variables + PATH
~/.dotfiles/shell/aliases.sh             ← Aliases
~/.dotfiles/shell/functions.sh           ← Shell functions
~/.dotfiles/shell/local.sh              ← Machine-specific overrides (gitignored)

Hyprland Config Layering

Omarchy defaults are loaded first, then personal overrides apply on top:

Omarchy defaults  →  ~/.config/hypr/[file].conf  →  ~/.config/hypr/bindings/*.conf

Key customizations vs Omarchy defaults:

  • SUPER+HJKL — window focus/swap/resize (vim-style, replaces Omarchy arrow defaults)
  • SUPER+D — app launcher (Walker)
  • SUPER+SPACE — Omarchy menu
  • SUPER+SHIFT+S — screenshot
  • SUPER+SHIFT+Return — floating terminal (foot)
  • Right Ctrl+Right Shift+1-6 — brightness presets (requires ddcutil)
  • SUPER+F1/F2/F3 — DDC monitor input switching

Full binding reference: docs/keybindings.md


Scripts (all auto-available in PATH)

Script Description
install.sh Create all symlinks (idempotent, safe to re-run)
bootstrap.sh Full new-machine setup
update.sh Pull latest + re-apply symlinks + sync packages
backup.sh Timestamped rsync backup to ~/backup/
dotpush.sh Stage, commit, and push dotfiles
dotsync.sh Show symlink status (read-only diagnostic)
system-check.sh Verify all symlinks, packages, and configs are healthy
cpp-run.sh Compile and run a single C++ file
extract.sh Universal archive extractor
temp-clean.sh Clean old cache and temp files
ddc-dp1.sh Switch monitor inputs to DisplayPort (SUPER+F1)
ddc-hdmi.sh Switch monitor inputs to HDMI (SUPER+F2)
ddc-both.sh Enable both monitors on their expected inputs (SUPER+F3)

Packages

File Manager Contents
packages/pacman.txt pacman Core tools
packages/aur.txt yay/paru AUR packages
packages/flatpak.txt flatpak Flatpak apps
packages/python.txt pip Python tools

Neovim

LazyVim-based setup with:

  • Catppuccin Mocha colorscheme (transparent background)
  • Clangd + Pyright + rust-analyzer LSP
  • smear-cursor with fire style (style 5)
  • F5 — run current file (C++/Python/Rust) in split terminal
  • jk → Escape in insert mode
  • Ctrl+L → jump past closing bracket/quote

Monitor Setup

Current setup: dual monitor, edit hypr/monitors.conf for your hardware.

# Run this to see available ports and resolutions:
hyprctl monitors

Always keep the fallback line: monitor=,preferred,auto,auto


Adding Machine-Specific Overrides

Create ~/.dotfiles/shell/local.sh (gitignored) for machine-specific config:

# Example ~/.dotfiles/shell/local.sh
export WORK_PROXY="http://proxy.company.com:8080"
alias vpn="sudo openconnect vpn.company.com"

Updating

update.sh

Or manually:

cd ~/.dotfiles && git pull && install.sh

Maintenance

# Check system health
system-check.sh

# Clean old cache/temp
temp-clean.sh

# Backup documents + dotfiles
backup.sh

Secrets Policy

Never commit secrets. This repo is public.

  • Use ~/.dotfiles/shell/local.sh (gitignored) for tokens and private exports
  • SSH keys stay in ~/.ssh/ (never in this repo)
  • Use pass, 1password, or environment variables for secrets

Contributing / Personal Workflow

# Always work on dev branch
git checkout dev

# Test changes, then merge to main
git checkout main && git merge dev && git push

License

Personal dotfiles. Copy freely, adapt to your needs.

About

my smol dotfiles

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages