Skip to content

funnydman/my-dot-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

200 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Hyprland Dotfiles

A modern, keyboard-driven Wayland desktop environment for developers who love vim keybindings

Arch Linux Hyprland Wayland

๐Ÿ“– Table of Contents

โœจ Features

๐ŸŽฎ Hybrid GPU Zero-Lag Setup

Optimized for laptops with Intel + NVIDIA GPUs. Eliminates input lag on external displays through smart GPU routing.

  • ๐Ÿ“บ Internal display โ†’ Intel iGPU (direct rendering)
  • ๐Ÿ–ฅ๏ธ External display โ†’ NVIDIA dGPU (direct rendering)
  • โšก No cross-GPU frame copying = zero lag
  • ๐Ÿ“„ Full docs: NVIDIA_HYBRID_FIX.md

๐ŸŽฏ Smart Display Management

  • ๐Ÿ”† Auto brightness detection (internal vs external)
  • ๐ŸŽš๏ธ F5/F6 for brightness control (5% steps)
  • ๐Ÿ–ฅ๏ธ Super+P to toggle monitors
  • ๐Ÿ’ก Waybar brightness widget with scroll support

โŒจ๏ธ Vim Everywhere

  • ๐ŸŽฏ hjkl navigation throughout the system
  • ๐ŸชŸ Window management with vim bindings
  • ๐Ÿ“ Consistent keybindings across all apps
  • ๐Ÿš€ Super (Windows) key as modifier

๐ŸŽจ Beautiful & Fast

  • ๐ŸŒˆ Gruvbox color scheme
  • ๐ŸŽญ Arc-Dark GTK theme
  • โšก Buttery smooth animations
  • ๐Ÿ–ผ๏ธ Transparent terminal (0.8 opacity)

๐Ÿ–ผ๏ธ Screenshots

Desktop

  • ๐Ÿ”’ Lock screen with blur effect
  • ๐Ÿ“Š Waybar status bar with custom modules
  • ๐Ÿ–ฅ๏ธ Kitty terminal with Gruvbox theme

๐ŸŽจ What's Inside

๐ŸชŸ Core Desktop

Component What I Use Why
๐Ÿ—” Compositor Hyprland 0.53.3 Modern tiling Wayland compositor
๐Ÿ“Š Bar Waybar Highly customizable status bar
๐Ÿ’ป Terminal Kitty Fast, GPU-accelerated, Wayland-native
๐Ÿ“ฅ Dropdown Kitty (Super+C / F12) Centered floating scratchpad terminal
๐Ÿ” Launcher Rofi Quick app launcher
๐Ÿ”” Notifications mako Lightweight notification daemon
๐Ÿ”’ Lock hyprlock Beautiful lock screen with blur
๐Ÿ“ธ Screenshots grim + slurp + swappy Screenshot, select, edit, done!

๐Ÿ› ๏ธ Development Stack

  • ๐Ÿ“ Editors: Neovim + VS Code (Wayland-native)
  • ๐Ÿ IDE: PyCharm (native Wayland via WLToolkit)
  • ๐Ÿš Shell: ZSH with custom completions
  • ๐Ÿ“ฆ Dotfiles: Bare git repo (no symlinks!)

๐Ÿ”Š Audio & Media

  • ๐ŸŽต Audio: PipeWire + WirePlumber (auto device switching)
  • ๐ŸŽง USB-C headphones: Plug & play, auto-routes on connect/disconnect
  • ๐Ÿ”Š Volume: wpctl with 100% cap (wpctl set-volume -l 1.0)
  • ๐Ÿ“„ PDF: Sioyek (replaced Zathura)
  • ๐ŸŽฌ Video: mpv (Vulkan, gpu-next, uosc + thumbfast)

๐ŸŽจ Theme & Appearance

  • ๐ŸŽจ GTK: Arc-Dark
  • ๐ŸŽญ Icons: Papirus-Dark
  • ๐Ÿ”ค UI Font: Noto Sans 10
  • ๐Ÿ’ป Terminal Font: Hack 10
  • ๐ŸŒˆ Colors: Gruvbox Dark Soft
    • Terminal: #32302f
    • Waybar: #1d2021

๐Ÿ’ป Hardware

Device: ThinkPad X1 Extreme 2nd Gen (20QV0007US)

Component Spec
๐Ÿง  CPU Intel i7-9750H (6c/12t) @ 4.5GHz
๐ŸŽฎ iGPU Intel UHD 630
๐Ÿ–ฅ๏ธ dGPU NVIDIA GTX 1650 Mobile
๐Ÿ“ฑ Internal 1920ร—1080 @ 60Hz (eDP-1)
๐Ÿ–ฅ๏ธ External ASUS PA279CV 27" 4K @ 60Hz (DP-2, 1.5ร— scale)

๐Ÿ”ง Installation

๐Ÿ“ฆ Prerequisites

# Core desktop
sudo pacman -S hyprland waybar kitty rofi mako swaybg grim slurp swappy

# Audio (PipeWire + WirePlumber for auto device switching)
sudo pacman -S pipewire pipewire-pulse wireplumber

# Fonts & themes
sudo pacman -S ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols
sudo pacman -S arc-gtk-theme papirus-icon-theme

# Hybrid GPU support
sudo pacman -S nvidia-open-lts brightnessctl ddcutil

# Development tools
sudo pacman -S neovim zsh fzf ripgrep

๐Ÿ“ฅ Clone Dotfiles

# Clone as bare repo
git clone --bare https://github.com/funnydman/my-dot-files.git $HOME/.cfg

# Setup alias
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'

# Checkout configs
config checkout master

# Hide untracked files
config config --local status.showUntrackedFiles no

๐Ÿš€ Post-Install

# NVIDIA setup
sudo systemctl enable --now nvidia-persistenced
sudo udevadm control --reload-rules && sudo udevadm trigger

# Fonts
fc-cache -fv

# Launch Hyprland
Hyprland

โš™๏ธ Configuration

๐Ÿ“ Key Config Files

๐Ÿ—” Hyprland Configs
  • ~/.config/hypr/hyprland.conf (460 lines) - Main configuration
  • ~/.config/hypr/hypridle.conf - Idle management
  • ~/.config/hypr/hyprlock.conf - Lock screen config
  • ~/.config/hypr/hyprpaper.conf - Wallpaper settings
  • ~/.config/hypr/NVIDIA_HYBRID_FIX.md - GPU docs
๐Ÿ“Š Status Bar
  • ~/.config/waybar/config (120 lines) - Modules & layout
  • ~/.config/waybar/style.css (285 lines) - Gruvbox styling
๐Ÿ’ป Terminal
  • ~/.config/kitty/kitty.conf (105 lines) - Kitty config (also used as dropdown terminal)
  • ~/.claude/keybindings.json - Claude Code keybindings (image paste on Ctrl+Shift+V)

Copy/Paste Setup (IDE-style):

  • Ctrl+C - Copy if text selected, SIGINT if not (copy_and_clear_or_interrupt)
  • Ctrl+V - Paste text from clipboard
  • Ctrl+Shift+V - Paste image (in Claude Code only)
  • Remote control enabled (allow_remote_control socket-only) for TUI app compatibility
๐ŸŽจ Theme
  • ~/.config/gtk-3.0/settings.ini - GTK3 theme
  • ~/.config/gtk-4.0/settings.ini - GTK4 theme
  • ~/.gtkrc-2.0 - GTK2 legacy
  • ~/.config/fontconfig/fonts.conf - Font rendering
  • ~/.Xresources - Xft settings
๐Ÿ“ Development
  • ~/.config/nvim/init.vim (209 lines) - Neovim config
  • ~/.ideavimrc - Vim bindings for PyCharm
  • ~/.config/code-flags.conf - VS Code Wayland flags
  • ~/.zshrc (184 lines) - Shell config

๐Ÿ”ง Custom Scripts

๐Ÿ“Š Smart Brightness (~/.config/scripts/brightness-adjust.sh)

  • Auto-detects which display is active
  • Internal: brightnessctl for laptop screen
  • External: ddcutil for monitor (DDC/CI)

๐Ÿ–ฅ๏ธ Monitor Toggle (~/.config/scripts/monitor-toggle.sh)

  • Switch between internal/external displays
  • Bound to Super+P
  • Auto-runs on startup

๐Ÿ”Š Volume Control (direct in hyprland.conf)

  • Uses wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ directly
  • Legacy volume.sh script no longer used by media keys

โŒจ๏ธ Keybindings

Note: Mod = Super (Windows key)

๐ŸชŸ Window Management

Keys Action
Mod + Return ๐Ÿ’ป Launch terminal
Mod + Q โŒ Close window
Mod + F โ›ถ Toggle fullscreen
Mod + Shift + Space ๐ŸŽˆ Toggle floating
Mod + hjkl / Arrows ๐Ÿงญ Focus windows
Mod + Shift + hjkl / Arrows ๐Ÿšš Move windows

๐Ÿ“‘ Workspaces

Keys Action
Mod + 1-9, 0 ๐Ÿ”ข Switch workspace 1-10
Mod + Shift + 1-9, 0 ๐Ÿ“ฆ Move window to workspace
Mod + Tab โฎ๏ธ Previous workspace

๐Ÿ“‹ Copy/Paste (IDE-style)

Keys Action
Ctrl + C ๐Ÿ“‹ Copy (if selected) / SIGINT (if not)
Ctrl + V ๐Ÿ“‹ Paste text from clipboard
Ctrl + Shift + V ๐Ÿ–ผ๏ธ Paste image (Claude Code)
Shift + Insert ๐Ÿ“‹ Paste text (alternative)

Nuance: Kitty intercepts Ctrl+V for text paste before TUI apps see it. Claude Code's image paste is remapped to Ctrl+Shift+V via ~/.claude/keybindings.json. Kitty's default Ctrl+Shift+V is cleared so it passes through to Claude Code.

๐Ÿš€ Applications

Keys Action
Mod + D ๐Ÿ” Launch Rofi
Mod + C / F12 ๐Ÿ“ฅ Toggle kitty dropdown
Mod + Escape ๐Ÿ”’ Lock screen

๐Ÿ–ฅ๏ธ System Controls

Keys Action
Mod + P ๐Ÿ–ฅ๏ธ Toggle monitor
F5 / F6 ๐Ÿ”† Brightness down/up
Print ๐Ÿ“ธ Screenshot region
Shift + Print ๐Ÿ“ธ Screenshot fullscreen
XF86Audio* ๐Ÿ”Š Volume/media controls

๐ŸŽฏ Advanced Modes

Keys Mode
Mod + R ๐Ÿ“ Resize mode (hjkl/arrows to resize)
Mod + X ๐Ÿšช Exit mode (L=logout, R=reboot, S=shutdown)
Mod + Shift + G ๐Ÿ“ Gap mode (O=outer, I=inner)

๐Ÿ“– Full keybindings: ~/.config/hypr/hyprland.conf (lines 209-393)

๐Ÿ› ๏ธ Troubleshooting

๐ŸŒ Input lag on external monitor?

Symptoms: 0.1-0.3s delay when typing/moving mouse

Fix: Apply the GPU configuration from NVIDIA_HYBRID_FIX.md

  • Creates stable GPU device symlinks
  • Routes each display to its physically-connected GPU
  • Eliminates cross-GPU frame copying

๐Ÿ”ค Fonts look weird?

# Rebuild font cache
fc-cache -fv

# Verify Nerd Fonts are installed
pango-list | grep -i nerd

# Check config
cat ~/.config/fontconfig/fonts.conf

โŒ Waybar icons not showing?

# Install fonts
sudo pacman -S ttf-jetbrains-mono-nerd ttf-nerd-fonts-symbols

# Restart waybar
killall waybar && waybar &

๐Ÿ”† Brightness keys don't work?

Internal display: Check brightnessctl -l

External display: Verify DDC/CI support

ddcutil detect

๐Ÿ”„ SDDM login loop?

Check GPU configuration in ~/.config/hypr/hyprland.conf:

  • Verify AQ_DRM_DEVICES setting
  • See troubleshooting in NVIDIA_HYBRID_FIX.md

๐Ÿ PyCharm terminal vim-mode broken?

PyCharm 2026's reworked terminal engine breaks zsh vi-mode. Fix:

  1. Disable "Move focus to editor with Esc" โ€” Settings โ†’ Tools โ†’ Terminal, uncheck it. Intercepts ESC before zsh vi-mode can receive it.
  2. Disable Shell integration โ€” Settings โ†’ Tools โ†’ Terminal, uncheck Shell integration. Still intercepts input even after the ESC fix.

๐Ÿ”’ Can't type password on lock screen?

If keyboard was on Russian layout when screen locked, hyprlock inherits that layout and you can't type your password. Already fixed: hyprctl switchxkblayout all 0 runs before hyprlock in both hyprland.conf and hypridle.conf.

๐Ÿ” Debug Logs

# Hyprland logs
cat ~/.hyprland.log

# Check which GPU is rendering
cat /proc/$(pgrep -x Hyprland)/maps | grep -E "nvidia|i915"

# Waybar debug
killall waybar && waybar

๐Ÿ“š Documentation

๐Ÿ“– Detailed Guides

  • ๐ŸŽฎ NVIDIA_HYBRID_FIX.md - Complete hybrid GPU setup guide

    • Root cause analysis of input lag
    • Step-by-step fix with udev rules
    • Verification commands
  • โŒจ๏ธ IDEAVIM_GUIDE.md - IdeaVim configuration & plugins

    • Available plugins (20+ options)
    • Recommended additions (which-key, NERDTree, exchange)
    • Modern best practices (2025-2026)
    • Action mappings for refactoring & testing
  • ๐Ÿ”† brightness-auto-detection.md - DDC bus auto-detection for external monitor brightness

  • ๐ŸŽ mac-setup.md - MacBook Pro M4 Pro setup (display, sleep, audio, KVM)

  • ๐Ÿช‘ flexispot-e7-plus-memory.md - FlexiSpot E7 Plus memory presets

๐Ÿ”ง Quick Reference

Managing dotfiles:

# Add new config
config add ~/.config/newapp/config.conf
config commit -m "Add newapp config"
config push

# Check status
config status

# List tracked files
config ls-files

Config locations:

  • ๐Ÿ—” Hyprland: ~/.config/hypr/
  • ๐Ÿ“Š Waybar: ~/.config/waybar/
  • ๐Ÿ”ง Scripts: ~/.config/scripts/
  • ๐Ÿ“„ Docs: ~/.config/*.md

๐Ÿ“œ Changelog

Version History

Version Date Changes
v2.2 2026-03 ๐Ÿ”ง Media & Fixes
- Added Sioyek PDF viewer (replaced Zathura)
- Added mpv with Vulkan, uosc, thumbfast
- Fixed hyprlock Russian layout lockout (auto-switch to EN before lock)
- Volume keys now use wpctl directly (replaced broken volume.sh)
- Fixed monitor-toggle detection for disabled displays
- WirePlumber priority config for stable audio defaults
- Waybar startup race condition fix (delayed start)
- Kitty Ctrl+F search in terminal
v2.1 2026-02 ๐Ÿ”ง Polish & Modernization
- Replaced Guake with Kitty dropdown (Super+C, centered float)
- Per-app scratchpads (Telegram, KeePass)
- PipeWire + WirePlumber (auto USB-C audio switching)
- Fixed font rendering with croscore metric-compatible fonts
- Focus follows mouse
v2.0 2025-02 ๐ŸŽ‰ Hyprland/Wayland Migration
- Switched from i3 to Hyprland
- X11 โ†’ Wayland (native)
- polybar โ†’ Waybar
- st โ†’ Kitty (Wayland-native)
- i3lock-fancy โ†’ hyprlock
- dunst โ†’ mako
- Fixed NVIDIA hybrid GPU input lag
- Preserved vim keybindings & workflow
v1.0 2020 ๐Ÿš€ Initial i3/X11 setup

๐Ÿ”„ Key Preserved Features

Despite the major migration, these features remained unchanged:

  • โŒจ๏ธ Vim-style hjkl navigation
  • ๐Ÿ”ข Workspace numbers (1-10)
  • ๐Ÿ“ฅ Dropdown terminal (now Kitty instead of Guake)
  • ๐Ÿ“ Negative gaps (i3-style: 4px inner, -4px outer)
  • ๐ŸŽจ Arc-Dark + Gruvbox theme combination

๐Ÿ†• New in v2.0

  • โšก Zero-lag external display support
  • ๐ŸŽฎ Hybrid GPU optimization
  • ๐Ÿ”† Smart brightness control
  • ๐Ÿ–ฅ๏ธ Monitor toggle (Super+P)
  • ๐Ÿ“ธ Modern screenshot workflow (grim + slurp + swappy)
  • ๐ŸŽญ Native Wayland app support

๐Ÿ™ Credits

๐Ÿ“„ License

Personal dotfiles - use freely, modify as needed! ๐ŸŽ‰

About

My currently used dotfiles (vim driven set up) and more!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors