Skip to content

AiODillen/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Hyprland rice on Arch Linux with Catppuccin Mocha theming across the entire desktop.

Arch Linux Hyprland Catppuccin Mocha

What's included

Desktop environment

Component Tool
Window manager Hyprland (Wayland)
Terminal Kitty
Shell Fish with bang-bang, eza aliases, and done notifications
App launcher Hyprlauncher
Notifications Dunst
Wallpaper swww
Screenshots Grimblast
Audio mixer Wiremix (TUI, bound to Super+S)
File manager Nautilus
Editors Zed, Micro
System monitor btop

Theming (Catppuccin Mocha everywhere)

Hyprland borders, Kitty, Fish, Dunst, GTK apps, Qt apps (Kvantum), btop, Zed, Micro, Steam (Millennium), Discord (BetterDiscord).

  • GTK theme: catppuccin-mocha-mauve-standard+default
  • Cursor: catppuccin-mocha-mauve-cursors
  • Icons: Papirus-Dark (Dunst), Breeze-Dark (GTK)
  • Fonts: JetBrainsMono Nerd Font (terminal/code), Noto Sans (UI)

Custom scripts

  • game-replay-watcher -- Monitors Hyprland IPC events to detect game windows. Automatically starts gpu-screen-recorder in replay buffer mode when a game launches and stops it when the last game window closes.
  • gsr-save-replay -- Saves the current replay buffer (bound to Super+P). Sends a desktop notification on save.

Services (systemd user units)

  • discord-vc-notify -- Discord bot that sends a desktop notification when someone joins a voice channel you're in.
  • game-replay-watcher -- Runs the game detection script as a background service tied to your graphical session.

Gaming

Steam with Millennium UI theming, Gamemode, Gamescope, MangoHud overlay, ProtonPlus, gpu-screen-recorder replay buffer, LSfG-VK (Vulkan frame scaling), MelonDS emulator.

Structure

dotfiles/
├── config/                        # -> ~/.config/
│   ├── hypr/                      #    Hyprland, hypridle, color palette
│   ├── kitty/                     #    Terminal
│   ├── fish/                      #    Shell config, Catppuccin colors, done plugin
│   ├── dunst/                     #    Notifications
│   ├── btop/                      #    System monitor + theme
│   ├── gtk-3.0/                   #    GTK theme, icons, cursor
│   ├── zed/                       #    Editor settings + theme
│   ├── micro/                     #    Editor settings + colorschemes
│   ├── millennium/                #    Steam UI theme
│   ├── BetterDiscord/themes/      #    Discord theme
│   ├── game-replay-watcher/       #    Replay watcher config
│   ├── lsfg-vk/                   #    Vulkan scaling config
│   ├── kdeglobals.d/              #    KDE/Qt color scheme
│   └── mimeapps.list              #    File associations
├── local/bin/                     # -> ~/.local/bin/
│   ├── game-replay-watcher        #    Game detection + replay buffer script
│   └── gsr-save-replay            #    Save replay hotkey script
├── services/
│   └── discord-vc-notify/         #    Discord VC notification bot
│       ├── bot.py
│       └── requirements.txt
├── wallpapers/                    # -> ~/Pictures/
├── packages.txt                   #    Arch/AUR package list
└── install.sh                     #    Installer

Requirements

  • Arch Linux (or an Arch-based distro)
  • base-devel and git (needed to bootstrap the AUR helper)
  • An AMD GPU is assumed for some packages (vulkan-radeon, mesa). If you use NVIDIA or Intel, swap the GPU driver packages.

Install

Quick start

git clone https://github.com/aiodillen/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

This runs all steps: packages, configs, scripts, wallpaper, and services. Each step asks for confirmation before making changes.

Step by step

If you prefer to install pieces individually:

# 1. Install packages only
./install.sh --packages

# 2. Symlink configs only
./install.sh --configs

# 3. Link custom scripts to ~/.local/bin
./install.sh --scripts

# 4. Set up wallpaper + Screenshots directory
./install.sh --wallpaper

# 5. Set up systemd services (discord bot, replay watcher)
./install.sh --services

What the installer does

--packages

  1. Checks if paru (AUR helper) is installed. If not, offers to build it from the AUR.
  2. Reads packages.txt, skips comment lines, and finds packages not yet installed.
  3. Installs missing packages via paru (falls back to pacman if paru was declined).

--configs

Creates symlinks from the repo into ~/.config/. Some configs are directory-level symlinks (hypr, kitty, dunst, etc.), others are file-level to avoid clobbering auto-generated files in shared directories (fish, btop, zed, micro).

fish_variables is copied rather than symlinked because Fish writes to it on every session.

If an existing config is found, it's backed up to <name>.bak.<timestamp> before being replaced.

--scripts

Symlinks game-replay-watcher and gsr-save-replay into ~/.local/bin/ and marks them executable.

--wallpaper

Symlinks wallpapers into ~/Pictures/ and creates ~/Pictures/Screenshots/ (used by the Grimblast screenshot keybinds).

--services

  1. discord-vc-notify: Creates a Python venv, installs discord.py, generates a .env template for your bot token, and writes the systemd unit file.
  2. game-replay-watcher: Writes the systemd unit file tied to graphical-session.target.
  3. Enables both services and optionally starts them.

Setting up the Discord bot

After running ./install.sh --services, you need to provide your bot credentials:

  1. Go to the Discord Developer Portal and create an application.
  2. Go to Bot and copy the token. Enable the Server Members Intent and Message Content Intent under Privileged Gateway Intents if needed.
  3. Go to OAuth2 > URL Generator, select bot scope, and invite it to your server.
  4. Edit the .env file:
nano ~/dotfiles/services/discord-vc-notify/.env
DISCORD_TOKEN=your_actual_bot_token
MY_USER_ID=your_discord_user_id

To get your user ID: Discord Settings > Advanced > enable Developer Mode, then right-click your name > Copy User ID.

  1. Start the service:
systemctl --user restart discord-vc-notify

Things you might want to customize

File What to change
config/hypr/hyprland.conf Keybindings, monitor layout, keyboard layout (kb_layout = de)
config/game-replay-watcher/config MONITOR="DP-1" -- set to your display output
config/game-replay-watcher/config Replay duration, FPS, quality, codec, audio devices
config/dunst/dunstrc Notification position, size, timeout
config/fish/config.fish Default editor (zed), greeting, aliases

Keybindings

Key Action
Super + Q Open Kitty terminal
Super + E Open Nautilus file manager
Super + R App launcher (Hyprlauncher)
Super + S Audio mixer (Wiremix in Kitty)
Super + C Close window
Super + V Toggle floating
Super + Shift + F Fullscreen
Super + P Save replay buffer
Super + M Logout
Super + 1-0 Switch workspace
Super + Shift + 1-0 Move window to workspace
Print Screenshot (full screen)
Super + Print Screenshot (active window)
Shift + Print Screenshot (select area)
XF86Audio* Volume / mute / media controls
XF86MonBrightness* Brightness up/down

Managing the dotfiles

Since configs are symlinked, any changes you make in ~/.config/ are reflected in the repo. To save changes:

cd ~/dotfiles
git add -A
git commit -m "description of changes"
git push

To re-run the installer after pulling updates:

cd ~/dotfiles
git pull
./install.sh

The installer is safe to run multiple times -- it replaces existing symlinks and backs up real files.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors