My Hyprland desktop setup, built on end-4/dots-hyprland
(quickshell for the bar/panels, not waybar): window manager, terminal,
launcher, notifications, shell, and theming. Just the visual/config layer,
symlinked into place with install.sh. No secrets, no caches, no app data.
| Path | What |
|---|---|
config/hypr |
Hyprland config (end-4's lua-based structure), shaders, hyprlock/hypridle/hyprsunset |
config/kitty |
Terminal config |
config/rofi |
App launcher theme (style_1, launcher-image sidebar) |
config/dunst |
Notifications |
config/zsh |
Shell config, aliases |
config/starship |
Shell prompt |
config/wlogout |
Logout menu |
config/gtk-3.0, gtkrc, gtkrc-2.0 |
GTK theming |
config/qt5ct, config/qt6ct, config/Kvantum |
Qt theming |
config/fontconfig |
Font aliases |
config/nwg-look |
GTK theme picker settings |
config/xsettingsd |
Cursor/theme sync for X apps |
config/pypr |
Pyprland (scratchpads etc.) |
config/btop |
System monitor theme |
config/fastfetch |
Terminal system-info fetch |
config/environment.d |
Cursor size/theme env vars |
config/nvim |
Neovim (LazyVim-based) |
config/hypr/custom/looks |
Optional decoration presets (default, starwars, kawaii), see below |
config/hypr/hyprlock/{StarWars,Kawaii}.conf |
Matching optional hyprlock presets |
wallpapers/{StarWars,Kawaii} |
Curated wallpapers for the optional themes |
local/bin |
rofi-launcher-pick.sh (random launcher sidebar image), arsh-theme (theme switcher) |
The bar/panels themselves are quickshell
running end-4's ii shell config, which lives in its own repo at
~/.config/quickshell/ii and isn't tracked here.
Not included on purpose: anything with real credentials (gh, Discord
bot tokens, scrobbler passwords), browser profiles, and IDE/app caches. All
of that either doesn't belong in git or comes back automatically when you
install the actual tools below.
This is a personalization layer on top of end-4/dots-hyprland, not a from-scratch Hyprland setup. Install that first, then apply this repo.
On Arch/CachyOS:
# end-4/dots-hyprland itself (brings Hyprland, quickshell, rofi, dunst, theming engine, etc.)
git clone --depth 1 https://github.com/end-4/dots-hyprland ~/dots-hyprland
cd ~/dots-hyprland && ./install.sh
# extras this setup uses on top of a stock install
sudo pacman -S --needed kitty starship wlogout nwg-look qt5ct qt6ct btop fastfetch
yay -S --needed pyprland capitaine-cursorsFonts: Maple Mono NF.
Install to ~/.local/share/fonts/MapleMono-NF/ and rebuild the font cache
(fc-cache -f).
Cursor: capitaine-cursors, size 24. Set via nwg-look or
hyprctl setcursor capitaine-cursors 24.
git clone https://github.com/arshnah/dotfiles.git ~/Projects/dotfiles
~/Projects/dotfiles/install.sh
hyprctl reloadEverything is symlinked, not copied, so editing the files in this repo
changes them live. Anything already at a target path that isn't already one
of these symlinks gets backed up first (<path>.bak.<timestamp>), never
overwritten silently.
Two extra desktop looks ship alongside the default, entirely opt-in:
- starwars — lightsaber red/blue gradient border, sharp corners, tight gaps, a black-and-gold opening-crawl hyprlock, and Star Wars art in the rofi launcher sidebar.
- kawaii — pink/lavender gradient border, heavily rounded windows, wide gaps, a soft pastel hyprlock, and cute art in the rofi launcher sidebar.
Switch with:
arsh-theme starwars # or: kawaii / defaultThis swaps the Hyprland decoration (custom/general.lua), the hyprlock
preset, and the rofi launcher sidebar's image pool, then reloads Hyprland.
It does not touch your wallpaper — press Ctrl+Super+T to open the
Quickshell wallpaper picker and pick one from ~/Pictures/Wallpapers/StarWars
or ~/Pictures/Wallpapers/Kawaii (copy the ones from wallpapers/ in this
repo there first, or drop in your own).
A theme is just three files plus a folder of images, all named the same way:
config/hypr/custom/looks/<name>.lua— Hyprland decoration overrides. Copylooks/default.luaorlooks/kawaii.luaas a starting point; the keys that matter aregeneral.gaps_in/out,general.border_size,general.col.active_border/inactive_border, anddecoration.rounding/decoration.blur.*.config/hypr/hyprlock/<Name>.conf— a hyprlock preset. Copy any existing one (HyDE.conf,StarWars.conf, ...) and change the colors/fonts/text; keep the samebackground/label/input-fieldblocks.config/rofi/assets/launcher-images/<name>/— a folder of images (any of png/jpg/jpeg/gif/webp) for the launcher sidebar.- Optionally,
wallpapers/<Name>/with a few wallpapers for it.
Then add one line to local/bin/arsh-theme's case statement:
<name>) LOOK="<name>.lua"; LOCK="<Name>.conf"; WALLPAPER_DIR="<Name>"; LAUNCHER="<name>" ;;arsh-theme <name> will pick it up immediately — no other wiring needed.