Hyprland on Arch — configured in Lua, coloured by the wallpaper.
Hyprland · Waybar · Rofi · Kitty · Fish · Eww · Mako · MatugenFull quality: pics/Showcase.mp4
![]() |
![]() |
| kitty + fish + fastfetch | rofi — Apps / Calc / Files / Windows |
![]() |
|
| eww brightness popup — external monitor over DDC/CI | |
| Compositor | Hyprland 0.55+ | Lua config, dwindle, 2-pass blur, custom bezier |
| Wallpaper | hyprpaper | |
| Bar | Waybar | grouped modules, mpris, DDC brightness button, XKB menu |
| Launcher | Rofi | drun + calc + filebrowser + window, tabbed |
| Widgets | Eww | brightness slider popup |
| Terminal | Kitty | background_opacity 0.5, JetBrains Mono NL |
| Shell | Fish | fastfetch on interactive start |
| Notifications | Mako | per-app rules |
| Lock | swaylock | |
| Colours | Matugen | Material You palette from the wallpaper |
| Fetch | fastfetch | boxed layout, Kitty graphics-protocol logo |
Colours follow the wallpaper. Matugen renders matugen/templates/waybar.css → waybar/theme.css
and signals Waybar to reload live:
[templates.waybar]
input_path = '~/.config/matugen/templates/waybar.css'
output_path = '~/.config/waybar/theme.css'
reload_command = 'pkill -USR2 waybar'waybar/style.css holds the structure plus fallback colours, then @import "theme.css" so the
generated palette wins. Change wallpaper → bar re-tints, no restart.
DualSense as a launcher. controller-wofi.py reads the raw evdev device, and only acts when
nothing is fullscreen so it never fires mid-game:
| Button | Action |
|---|---|
| Options | wofi --show drun |
| ○ | close it |
| PS | steam -tenfoot |
Three keyboard layouts. us,ru,ua on Ctrl+Space. The Waybar module shows
ENG/RU/UA; waybar/scripts/lang.sh reads the live list from hyprctl and anchors a Rofi picker
under the indicator.
mainMod = Super
|
Apps
|
Window & workspace
|
Scratchpads & hardware
|
Mouse: Super+drag to move, +right-drag to resize, +scroll to change workspace.
dotfiles/
├── hypr/
│ ├── hyprland.lua # entry point
│ ├── conf/*.lua # env, monitors, input, workspaces,
│ │ # windowrules, keybinds, spotify, autostart
│ ├── hyprlang-backup/ # pre-Lua config, kept as a fallback
│ ├── hyprpaper.conf
│ └── check-config.sh
├── waybar/ config, style.css, theme.css (generated), scripts/
├── rofi/ config.rasi (+ an old wofi theme under rofi/wofi/)
├── eww/ eww.yuck, eww.scss, scripts/ ← DDC brightness
├── matugen/ config.toml, templates/
├── kitty/ kitty.conf, themes/
├── fish/ config.fish, conf.d/
├── fastfetch/ config.jsonc + logo
├── mako/ swaylock/ wofi/
├── controller-wofi.py # DualSense → launcher (lives in ~/.local/bin)
└── pics/ # wallpapers + showcase recording
Note: the directory is conf/, not conf.d/ — Lua's require() treats . as a path separator,
so "conf.d/x" would resolve to conf/d/x.
Directories mirror ~/.config, so symlink what you want:
git clone https://github.com/ByteMe6/dotfiles ~/dotfiles
cd ~/dotfiles
for d in hypr waybar rofi eww matugen kitty fish fastfetch mako swaylock wofi; do
ln -sfn "$PWD/$d" ~/.config/"$d"
done
install -Dm755 controller-wofi.py ~/.local/bin/controller-wofi.pyPackages: DEPENDENCIES.md.
hypr/check-config.sh runs hyprctl reload (it still audits the old conf.d/*.conf tree).
.gitignoreis an allowlist. New top-level dirs need an explicit!dir/line.hypr/conf/autostart.luaandhypr/hyprpaper.confhold absolute/home/samedy/…paths.swaylock/configpoints at/home/byteme/pics/yellow.jpg— stale user, stale wallpaper.hypr/conf/spotify.luabinds Super+J toUserScripts/smart-close.sh, which doesn't exist — no-op.waybar/configsays"position": "down", not a valid Waybar value; that's why the bar renders on top.fish/config.fishpoints the Kitty logo at~/pics/torfinFaceFastfetch.png, outside this repo.
pics/torfinBack.png.



