$ cd ../projects

thos@portfolio:~$ cd ~/projects/dots && cat README.md

── Hyprland Dotfiles ──

projet personnel · August 20, 2026

[Linux] [Hyprland]

Hyprland Dotfiles

260816-094437

Personal dotfiles for a customized Hyprland setup, focused on simplicity, aesthetics, and efficiency.

🖌️ This configuration uses matugen for dynamic Material You (MD3) color theming generated from your wallpaper.

📦 Dependencies

Make sure you have the following packages installed:

  • Hyprland
  • waybar (status bar)
  • kitty (terminal)
  • rofi (app launcher)
  • dunst (notifications)
  • awww (wallpaper manager)
  • hypridle (idle manager)
  • hyprlock (screen locker)
  • hyprpolkitagent (polkit authentication)
  • satty (screenshot tool)
  • cliphist (clipboard manager)
  • rofimoji (emoji picker)
  • networkmanager_dmenu (network manager)
  • thunar (file manager)
  • zathura (pdf reader)
  • viewnior (image viewer)
  • firefox (web browser)
  • brave (web browser, optional)
  • pamixer (volume control)
  • brightnessctl (brightness control)
  • playerctl (media control)
  • wireplumber (pipewire session manager)
  • matugen (dynamic colors)
  • jq (JSON processor, for zoom bindings)
  • xdg-user-dirs (screenshot path)
  • nvim (optional)
  • pavucontrol (optional, volume mixer GUI)
  • yazi (optional, file manager) + ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
  • pywalfox (optional, Firefox theming)
  • stow (dotfiles manager)
  • papirus-icon-theme

📦 Install dependencies on Arch (with yay)

yay -S hyprland waybar kitty rofi dunst awww hypridle hyprlock hyprpolkitagent satty thunar zathura viewnior firefox pamixer brightnessctl playerctl wireplumber matugen jq xdg-user-dirs stow nvim papirus-icon-theme cliphist pavucontrol rofimoji networkmanager_dmenu yazi ffmpeg 7zip poppler fd ripgrep fzf zoxide resvg imagemagick ttf-jetbrains-mono-nerd noto-fonts-cjk noto-fonts-emoji

🧷 Installation

  1. Clone this repo into your dotfiles directory:
git clone --depth=1 https://github.com/berthosefin/dots.git
cd dots
  1. Deploy the Hyprland configuration using GNU Stow:
chmod +x install.sh
sh install.sh

This will symlink the configuration files into your ~/.config directory.


🎨 Theming

Colors are dynamically generated from your wallpaper using matugen (HCT/CAM16 MD3 color tokens). To apply a new theme:

matugen image /path/to/wallpaper.jpg

This automatically updates: Hyprland, Hyprlock, Waybar, Rofi, Kitty, Dunst, GTK3/4, Neovim, Kvantum, Zathura, BTOP, OpenCode, VSCode, Zed, Tmux, Yazi, Firefox (via pywalfox), and Papirus-folders.

Icons

  • Icon theme: Papirus-Dark
  • Folder colors: dynamically set via papirus-folders based on the wallpaper's primary MD3 color (requires a NOPASSWD sudoers rule for the papirus-folders command)

Cursor


⌨️ Keybindings Overview

KeybindingAction
System
SUPER + Shift + QPowermenu (rofi)
SUPER + Shift + CReload Hyprland + Waybar
ALT + LLock screen
Applications
SUPER + ReturnKitty (terminal)
SUPER + Shift + ReturnKitty (floating terminal)
SUPER + DRofi drun
SUPER + RRofi run
SUPER + EFile manager (Thunar)
SUPER + WBrowser (Firefox)
SUPER + NNetwork manager
SUPER + MEmoji picker (rofimoji)
SUPER + VClipboard (cliphist)
Window management
SUPER + QClose window
SUPER + FToggle fullscreen
SUPER + SpaceToggle float
SUPER + PPseudo (tiling)
SUPER + TToggle split
SUPER + GGroup/Ungroup windows
ALT + > / ALT + <Switch grouped window
Focus
SUPER + H/J/K/LFocus left/down/up/right
SUPER + ArrowsFocus left/down/up/right
Move
SUPER + Shift + H/J/K/LMove window left/down/up/right
SUPER + Shift + ArrowsMove window left/down/up/right
Workspaces
SUPER + [1–10]Switch workspace
SUPER + Shift + [1–10]Move window to workspace
SUPER + SToggle special workspace
SUPER + Shift + SMove to special workspace
Mouse
SUPER + LMBDrag window
SUPER + RMBResize window
SUPER + ScrollSwitch workspace
Zoom
SUPER + KP_ADDZoom in
SUPER + KP_SUBTRACTZoom out
SUPER + =Reset zoom
Media
XF86Audio*Volume up/down/mute
XF86MonBrightness*Brightness up/down
XF86Audio{Next,Prev,Play}Playerctl controls

🛠 Tips

  • Keybindings are defined in home/.config/hypr/hyprland.lua.

  • To restrict Papirus-folders color changes to your user without a password prompt, add a sudoers rule:

    youruser ALL=(ALL) NOPASSWD: /usr/sbin/papirus-folders

    Make sure the filename sorts after any ALL=(ALL) ALL rule (e.g. zz_papirus-folders).