https://github.com/mayank19o7/dotfiles
A personal collection of configuration files and scripts to customize and automate my Hyprland environment.
https://github.com/mayank19o7/dotfiles
dunst fastfetch fuzzel greetd-tuigreet hyprland kitty nvim oh-my-zsh refind-theme syshud yazi zsh
Last synced: about 1 month ago
JSON representation
A personal collection of configuration files and scripts to customize and automate my Hyprland environment.
- Host: GitHub
- URL: https://github.com/mayank19o7/dotfiles
- Owner: mayank19o7
- Created: 2025-09-21T06:36:14.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-11-08T12:36:43.000Z (7 months ago)
- Last Synced: 2025-11-08T14:47:23.207Z (7 months ago)
- Topics: dunst, fastfetch, fuzzel, greetd-tuigreet, hyprland, kitty, nvim, oh-my-zsh, refind-theme, syshud, yazi, zsh
- Language: Shell
- Homepage:
- Size: 13.9 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π§© 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**](bat/README.md) | A cat with wings |
| [**Btop**](btop/README.md) | A monitor of resources |
| [**Cava**](cava/README.md) | Console-based Audio Visualizer |
| [**Dunst**](dunst/README.md) | Notification daemon |
| [**Fastfetch**](fastfetch/README.md) | System information tool |
| [**Fuzzel**](fuzzel/README.md) | Application launcher with fuzzy search |
| [**Git**](git/README.md) | A git related tools and its configurations |
| [**GreetD**](greetd/README.md) | Lightweight display/login manager with TUI interface |
| [**Hyprland**](hypr/README.md) | Dynamic tiling Wayland compositor and window manager |
| [**Imv**](imv/README.md) | An X11/Wayland Image viewer |
| [**Kitty**](kitty/README.md) | GPU-accelerated terminal emulator |
| [**Matugen**](matugen/README.md) | A cross-platform material you color generation tool |
| [**Micro**](micro/README.md) | Terminal-based text editor |
| [**Neovim**](nvim/README.md) | Extensible Vim-compatible text editor |
| [**rEFInd**](refind/README.md) | Boot manager for UEFI systems |
| [**SDDM**](sddm/README.md) | Simple Desktop Display Manager |
| [**SysHud**](syshud/README.md) | System HUD for volume and brightness indicators |
| [**Waybar**](waybar/README.md) | A fast, modular, and highly customizable status bar |
| [**Waypaper**](waypaper/README.md) | Wallpaper setter |
| [**wlogout**](wlogout/README.md) | Graphical logout and power menu |
| [**Yazi**](yazi/README.md) | Terminal file manager written in Rust |
| [**Zsh**](zsh/README.md) | 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
```bash
# 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:
```bash
git clone https://github.com/mayank19o7/dotfiles.git ~/Dotfiles
cd ~/Dotfiles
```
### Using GNU Stow
Link a single module:
```bash
stow zsh
```
Or multiple modules:
```bash
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:
```bash
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:
```bash
sudo locale-gen
sudo localectl set-locale LANG=en_US.UTF-8
```
Verify configuration:
```bash
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**:
```bash
setfont ter-v24n
```
Make it permanent by adding this line to `/etc/vconsole.conf`:
```
FONT=ter-v24n
```
Then rebuild initramfs:
```bash
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**
```bash
sudo cp scripts/start-hyprland /usr/local/bin/
sudo chmod +x /usr/local/bin/start-hyprland
```
**Integration with Tuigreet**
Example `/etc/greetd/config.toml`:
```toml
[default_session]
command = "tuigreet --cmd start-hyprland"
```
**From TTY**
Example `~/.zprofile`:
```bash
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**](hypr/README-MULTI-GPU.md)):
```bash
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**](hypr/README-SCREENSHOT.md) for more information.
π Emoji Picker
A simple [emoji-picker](hypr/.config/hypr/scripts/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.