An open API service indexing awesome lists of open source software.

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.

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.