Personal configuration files for Linux development environment with Hyprland.
This repository contains configuration files for:
- Hyprland: Wayland compositor
- Waybar: Status bar for Hyprland
- Hyprpaper: Wallpaper utility
- Hyprlock: Screen locker
- Fuzzel: Application launcher
- Tmux: Terminal multiplexer
- Vim: Text editor
Install the following packages on Arch Linux:
# Core Hyprland environment
sudo pacman -S hyprland hyprpaper hyprlock waybar fuzzel
# Terminal and editor
sudo pacman -S tmux vim
# Fonts (for Waybar icons and UI)
sudo pacman -S ttf-font-awesome ttf-jetbrains-mono-nerd# For Waybar modules
sudo pacman -S brightnessctl bluez bluez-utils network-manager-applet
# Audio control
sudo pacman -S pavucontrol wireplumber pipewireThis is the recommended method for reproducible, declarative environment management.
- Install Nix (if not already installed):
sh <(curl -L https://nixos.org/nix/install) --daemon- Enable flakes:
Add to ~/.config/nix/nix.conf (create if it doesn't exist):
experimental-features = nix-command flakes
Or system-wide in /etc/nix/nix.conf (requires sudo).
- Clone and activate:
git clone https://github.com/vasumv/dotfiles ~/dotfiles
cd ~/dotfiles
# Use -b backup to automatically back up existing config files
nix run home-manager/master -- switch --flake .#vasu -b backupThis will:
- Install all required packages (Hyprland, Waybar, fonts, etc.)
- Create symbolic links for all configuration files
- Automatically back up any existing config files with
.backupextension - Set up your entire environment in one command
- Update after making changes:
cd ~/dotfiles
home-manager switch --flake .#vasuNote: The -b backup flag is only needed for first-time installation when you have existing config files.
If you prefer not to use Nix:
- Clone the repository:
git clone https://github.com/vasumv/dotfiles ~/dotfiles
cd ~/dotfiles- Install dependencies manually:
# On Arch Linux
sudo pacman -S hyprland hyprpaper hyprlock waybar fuzzel tmux vim \
kitty dolphin brightnessctl playerctl \
pipewire wireplumber pavucontrol \
ttf-font-awesome ttf-jetbrains-mono-nerd \
network-manager-applet- Run the setup script:
chmod +x setup.sh
./setup.shThe setup script will:
- Create symbolic links from this repository to your home directory
- Create necessary config directories if they don't exist
- Link all configuration files to their appropriate locations
The setup script creates the following symlinks:
~/.tmux.conf→tmux/tmux.conf
~/.vimrc.local→vim/vimrc.local~/.vimrc.bundles.local→vim/vimrc.bundles.local
~/.config/hypr/hyprland.conf→hyprland/hyprland.conf~/.config/hypr/hyprpaper.conf→hyprland/hyprpaper.conf~/.config/hypr/hyprlock.conf→hyprland/hyprlock.conf
~/.config/waybar/config→hyprland/waybar/config~/.config/waybar/config.jsonc→hyprland/waybar/config.jsonc~/.config/waybar/style.css→hyprland/waybar/style.css~/.config/waybar/README.md→hyprland/waybar/README.md
~/.config/fuzzel/fuzzel.ini→hyprland/fuzzel/fuzzel.ini
~/Pictures/wallpapers/spire.png→hyprland/wallpapers/spire.png~/Pictures/wallpapers/spire2.png→hyprland/wallpapers/spire2.png
-
Start Hyprland:
- Log out and select Hyprland from your display manager
- Or run
Hyprlandfrom a TTY
-
Verify everything works:
- Waybar should appear at the top of your screen
- Wallpaper should be set via hyprpaper
- Try opening Fuzzel (usually Super+D or check keybindings)
-
Review keybindings:
- Check
hyprland/hyprland.conffor custom keybindings - Default Super key bindings should be configured
- Check
To update your configurations:
cd ~/dotfiles
git pull
home-manager switch --flake .#vasuTo add new packages, edit home.nix:
home.packages = with pkgs; [
# ... existing packages
neofetch # Add your package here
];Then run home-manager switch --flake .#vasu.
Important: Some packages have specific naming conventions in Nix:
- KDE apps:
kdePackages.dolphin(notdolphin) - Nerd fonts:
nerd-fonts.jetbrains-mono(notnerdfonts.override) - Unfree software (like Slack): Requires
nixpkgs.config.allowUnfree = trueinhome.nix
cd ~/dotfiles
git pull
./setup.sh # Re-run to update symlinks if neededSince the files are symlinked, any changes you make to files in ~/.config/ will automatically update the files in this repository. Remember to commit your changes:
cd ~/dotfiles
git add .
git commit -m "Update configuration"
git pushOne of the benefits of Home Manager is easy rollback:
# List all generations
home-manager generations
# Rollback to a specific generation
home-manager switch --switch-generation <number>- Check if Waybar is running:
pgrep waybar - Restart Waybar:
killall waybar && waybar &
- Verify hyprpaper is running:
pgrep hyprpaper - Check wallpaper paths in
hyprland/hyprpaper.conf
- Ensure setup.sh is executable:
chmod +x setup.sh
Feel free to modify any configuration files to suit your preferences. Key files to customize:
- Hyprland keybindings:
hyprland/hyprland.conf - Waybar appearance:
hyprland/waybar/style.css - Waybar modules:
hyprland/waybar/config - Tmux keybindings:
tmux/tmux.conf - Vim settings:
vim/vimrc.local
Personal dotfiles - use at your own discretion.