My personal configuration files for Arch Linux with Wayland, managed through Home Manager and traditional symlinks.
- nvim/ - Neovim config based on kickstart.nvim with custom plugins (Oil, Yazi)
- alacritty/ - Terminal emulator configuration
- home-manager/ - Nix-based declarative configuration management
- hypr/ - Hyprland compositor configuration
- waybar/ - Wayland status bar
- rofi/ - Application launcher
- wlogout/ - Logout menu
- dunst/ - Notification daemon
- sddm/ - Display manager theme
- kde/ - KDE Plasma configuration
- xdg-desktop-portal/ - Desktop integration
- starship/ - Cross-shell prompt
- pipewire/ - Audio configuration
- freeze/ - Code screenshot tool
- wallpapers/ - Background images
Home Manager provides declarative configuration management with Nix.
# Install Nix (if not already installed)
curl -L https://nixos.org/nix/install | sh
# Bootstrap Home Manager
nix run home-manager/master -- init --switch
# Clone this repo
git clone https://github.com/yourusername/dotfiles.git ~/git/dotfiles
cd ~/git/dotfiles
# Link your home-manager config
ln -s ~/git/dotfiles/home-manager ~/.config/home-manager
# Apply configuration
home-manager switchcd ~/git/dotfiles
git pull
home-manager switchFor configs not yet managed by Home Manager, use symlinks:
# Clone the repo
git clone https://github.com/yourusername/dotfiles.git ~/git/dotfiles
# Link individual configs
ln -sf ~/git/dotfiles/nvim ~/.config/nvim
ln -sf ~/git/dotfiles/alacritty ~/.config/alacritty
ln -sf ~/git/dotfiles/hypr ~/.config/hypr
ln -sf ~/git/dotfiles/waybar ~/.config/waybar
# ... and so on- β¨ Based on kickstart.nvim
- π¨ Catppuccin Latte colorscheme
- π Oil.nvim file manager
- πΌοΈ Yazi.nvim integration
- β‘ Custom keybindings and options
nvim/
βββ init.lua # Base kickstart.nvim config
βββ lua/
β βββ custom/ # Your customizations
β β βββ options.lua # Custom vim options
β β βββ keymaps.lua # Custom keybindings
β β βββ plugins/ # Custom plugins
β βββ kickstart/ # Optional kickstart plugins
βββ README-CUSTOM.md # Detailed nvim documentation
# Link config
ln -sf ~/git/dotfiles/nvim ~/.config/nvim
# Open Neovim (plugins will auto-install)
nvimPull latest kickstart.nvim changes automatically:
cd ~/git/dotfiles
git subtree pull --prefix nvim https://github.com/nvim-lua/kickstart.nvim.git master --squashOr use the provided script:
cd ~/git/dotfiles
./scripts/update-nvim-subtree.sh
``
Your customizations in `lua/custom/` are preserved automatically!
See [nvim/CUSTOMIZING.md](nvim/CUSTOMIZING.md) for detailed information.
---
## ποΈ Home Manager Integration
### Current Status
Home Manager manages:
- Core utilities and packages
- Shell configuration
- Environment variables
- Session paths
### File Structure
home-manager/ βββ home.nix # Main configuration βββ pkgs.nix # Package definitions (if exists) βββ nixgl.nix # Graphics-based packages (required for non nix-os installs) βββ dotfiles/ # Customizations to installed packages
### Configuration Example
Edit `home-manager/home.nix`:
```nix
{
home.packages = with pkgs; [
neovim
alacritty
# ... your packages
];
programs.git = {
enable = true;
userName = "Your Name";
userEmail = "your.email@example.com";
};
}
Add to home-manager/home.nix:
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink
"${config.home.homeDirectory}/git/dotfiles/nvim";This creates a symlink from ~/.config/nvim to ~/git/dotfiles/nvim.
# Single config
ln -sf ~/git/dotfiles/<config-name> ~/.config/<config-name>
# Multiple configs
for dir in nvim alacritty hypr waybar rofi; do
ln -sf ~/git/dotfiles/$dir ~/.config/$dir
doneNever commit secrets! Use:
- Environment variables
~/.config/<app>/local.conf(add to .gitignore)- sops-nix for Home Manager
- Move all pre-existing modules to home-manager
- Move nixGL configuration to its own module
- Restructure Neovim config for upstream tracking
- Refactor packages code to include common modules and further customizations
- Useful when deploying to different machines for personal or development use
- Document Hyprland setup fully
- Add screenshots and demos
See LICENSE file.
- kickstart.nvim - Neovim configuration base
- Nix & Home Manager - Configuration management
- All the amazing open-source projects that make this possible