Skip to content

A personal collection of configuration files and scripts to customize and automate my Hyprland environment.

Notifications You must be signed in to change notification settings

mayank19o7/dotfiles

Repository files navigation

🧩 My Dotfiles

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.


📦 Modules

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

✨ Highlights

  • 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-hyprland script (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.

📦 Dependencies

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

🚀 Installation

Clone the repository:

git clone https://github.com/mayank19o7/dotfiles.git ~/Dotfiles
cd ~/Dotfiles

Using GNU Stow

Link a single module:

stow zsh

Or multiple modules:

stow hypr kitty nvim yazi

Each directory creates symlinks into your ~/.config.


📝 Notes & Tips

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-8

Verify configuration:

locale

Ensure 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-v24n

Make it permanent by adding this line to /etc/vconsole.conf:

FONT=ter-v24n

Then rebuild initramfs:

sudo mkinitcpio -P

⚙️ Hyprland Scripts

🗂️ 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-hyprland

Integration 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-udev

If 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 symlinks
  • remove-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
---

🔄 Continuous Improvement

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.

About

A personal collection of configuration files and scripts to customize and automate my Hyprland environment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published