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 pipewire
This 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 backup
This will:
- Install all required packages (Hyprland, Waybar, fonts, etc.)
- Create symbolic links for all configuration files
- Automatically back up any existing config files with
.backup
extension - Set up your entire environment in one command
- Update after making changes:
cd ~/dotfiles
home-manager switch --flake .#vasu
Note: 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.sh
The 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
Hyprland
from 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.conf
for custom keybindings - Default Super key bindings should be configured
- Check
To update your configurations:
cd ~/dotfiles
git pull
home-manager switch --flake .#vasu
To 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 = true
inhome.nix
cd ~/dotfiles
git pull
./setup.sh # Re-run to update symlinks if needed
Since 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 push
One 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.