A collection of personal configuration files (dotfiles) for managing my Hyprland desktop and development environment — including the shell, window manager, editors, and utilities. Each module is self-contained with its own README and configuration, and managed using GNU Stow for easy deployment across systems.
| Module | Description |
|---|---|
| Bat | A cat with wings |
| Btop | A monitor of resources |
| Cava | Console-based Audio Visualizer |
| Dunst | Notification daemon |
| Fastfetch | System information tool |
| Fuzzel | Application launcher with fuzzy search |
| Git | A git related tools and its configurations |
| GreetD | Lightweight display/login manager with TUI interface |
| Hyprland | Dynamic tiling Wayland compositor and window manager |
| Imv | An X11/Wayland Image viewer |
| Kitty | GPU-accelerated terminal emulator |
| Matugen | A cross-platform material you color generation tool |
| Micro | Terminal-based text editor |
| Neovim | Extensible Vim-compatible text editor |
| rEFInd | Boot manager for UEFI systems |
| SDDM | Simple Desktop Display Manager |
| SysHud | System HUD for volume and brightness indicators |
| Waybar | A fast, modular, and highly customizable status bar |
| Waypaper | Wallpaper setter |
| wlogout | Graphical logout and power menu |
| Yazi | Terminal file manager written in Rust |
| Zsh | Unix shell and command interpreter |
- Fully modular — each program has its own README and configuration directory.
- Managed with GNU Stow — link or unlink modules easily.
- Auto-login support via the
start-hyprlandscript (details below). - Multi-GPU setup through a dedicated script,
setup-multigpu-udev(details below). - Screenshot utility script supports area and full-workspace capture with notifications.
Required Packages
# Prerequisites
git base-devel stow zsh kitty
# Bootloader
refind
# Login and display managers
greetd sddm
# Fonts
ttf-font-awesome ttf-jetbrains-mono-nerd ttf-fira-sans terminus-font
# Hyprland and ecosystem
hyprland hyprpaper hypridle hyprlock hyprpicker
# Panels, HUDs & system bars
waybar syshud brightnessctl
# Theming, colors & appearance
matugen waypaper
# Icons & visual assets
papirus-icon-theme breeze-icons
# Shell Tools & Enhancements
bat eza fzf oh-my-zsh # (with plugins)
# Core utilities & apps
fastfetch yazi micro neovim dunst fuzzel wlogout
# CLI Monitoring Tools
btop git-delta lazygit
# Screenshot tools
wl-clipboard grim slurp satty
# Image viewer & media libraries
imv libheif
# Visualizers / Fun tools
cava
Clone the repository:
git clone https://github.com/mayank19o7/dotfiles.git ~/Dotfiles
cd ~/DotfilesLink a single module:
stow zshOr multiple modules:
stow hypr kitty nvim yaziEach directory creates symlinks into your ~/.config.
Some configurations (like rEFInd, GreetD, and SDDM) must be applied manually since they do not reside under .config.
🐚 Set Zsh as Default Shell
To make Zsh your default login shell:
chsh -s $(which zsh)🌐 Ensure UTF-8 Locale Is Set
Ensure your system locale is configured for UTF-8 to prevent character display issues.
Edit /etc/locale.gen and uncomment:
en_US.UTF-8 UTF-8
Then run:
sudo locale-gen
sudo localectl set-locale LANG=en_US.UTF-8Verify configuration:
localeEnsure LANG and related variables show a UTF-8 locale (e.g., en_US.UTF-8).
🖋️ TTY Font Configuration
To increase TTY font size using Terminus font:
setfont ter-v24nMake it permanent by adding this line to /etc/vconsole.conf:
FONT=ter-v24n
Then rebuild initramfs:
sudo mkinitcpio -P🗂️ Location:
~/.config/hypr/scripts
▶ start-hyprland
Launches a Hyprland session — either from TTY (vt1) or through GreetD (config.toml).
Features
- Starts the Hyprland compositor.
- Hides logs from TTY while saving them to
$HOME/.local/share/hyprland.log. - Works seamlessly when launched manually, from TTY (1), or via GreetD / Tuigreet.
Installation
sudo cp scripts/start-hyprland /usr/local/bin/
sudo chmod +x /usr/local/bin/start-hyprlandIntegration with Tuigreet
Example /etc/greetd/config.toml:
[default_session]
command = "tuigreet --cmd start-hyprland"From TTY
Example ~/.zprofile:
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && command -v start-hyprland >/dev/null 2>&1; then
exec start-hyprland
fi🖥️ Multi-GPU Setup
Before stowing Hyprland configuration, run the Multi-GPU setup script
(located under hypr/scripts/ and documented in README-MULTI-GPU):
sudo ./setup-multigpu-udevIf you don’t have multiple GPUs, comment the following line in
hypr/environment.conf to avoid errors:
env = AQ_DRM_DEVICES,/dev/dri/nvidia-gpu:/dev/dri/igpu
Scripts included
setup-multigpu-udev→ creates udev rules and GPU symlinksremove-multigpu-udev→ removes those rules and cleans up
These ensure correct GPU device mapping for hybrid setups (e.g., NVIDIA + AMD or Intel + NVIDIA).
📸 Screenshot Utility
A script for capturing screenshots — with options to copy, save, or edit, and display desktop notifications on capture.
See README-SCREENSHOT.md for more information.
😀 Emoji Picker
A simple emoji-picker utility for Wayland, using fuzzel, wl-copy, and a custom emoji list.
usage :
bind = SUPER, semicolon, exec, ~/.config/hypr/scripts/emoji-picker
This dotfiles repository is under continuous development and refinement. Configurations, scripts, and visual elements are regularly updated. Future plans include adding a setup script to automate dependency installation and Stow linking for a faster, hands-free setup.