My minimalistic and lightweight Hyprland config for Arch with NVIDIA support(incl. 580 devices if needed), in Catppuccin Mocha. Config is in hyprland.lua, includes runtime hardware detection (display outputs, GPU driver, undervolt support) instead of hardcoded values, so the same dotfiles port across different machines. Laptop battery life is priority, so power tooling (tlp, power-profiles-daemon, intel-undervolt) is included
- (Minimal profile) Arch Linux
- Internet connection
This should preferably run after a clean arch install
curl -fsSL https://raw.githubusercontent.com/agustux/dots/main/install.sh | bash -s -- <flags here>
Flags:
--nvidiaInstall NVIDIA drivers/config--gnomeInstall GNOME and switch the display manager from ly to GDM, still installs rest--bloatInstall Gus-curated extra tools and utilities, including the NVIDIA driver and GNOME stuff--footInstall foot instead of Ghostty as the terminal--noswapSkip creating the 4GB swapfile, for really storage constrained systems--updateOnly update dotfiles (for existing installs)--swayAlso install Sway and its packages (Hyprland stays installed)--printerInstall CUPS printing and Avahi/mDNS discovery (not included in--bloat)
The installer may modify your system configuration and will install packages. Review install.sh before running it if you want to see exactly what will be changed.
Hyprland and Sway coexist. --sway only adds Sway's packages; both configs are always installed.
Pick the session at the display manager (ly's stock "Sway" entry works).
- Waybar configs are rendered at install:
config.hyprlandandconfig.sway. Each WM startswaybar -c <file>. /usr/local/bin/swaywraps/usr/bin/sway. It sets GPU, VA-API, cursor and Qt env before launch, ashyprland.luadoes.sway-outputs.shapplies the same capped mode (max 1920 wide, native aspect ratio) and mirrors extra displays withwl-mirror.- Portals:
~/.config/xdg-desktop-portal/sway-portals.conf(gtk default, wlr for ScreenCast/Screenshot). - Existing installs: re-run with
--update. The old~/.config/waybar/configis no longer used and can be deleted. - Sway keybinds are in
.config/sway/config. - Wallpaper: sway's
output * bg(swaybg). Idle and suspend: swayidle (~/.config/swayidle/config). Lock screen: hyprlock, shared with Hyprland. - Per-machine overrides (e.g. terminal) go in untracked
~/.config/sway/local.conf, created by the installer.
Super is the main modifier.
| Keys | Action |
|---|---|
Super + Q |
Terminal (Ghostty, or foot if used --foot) |
Super + E |
File manager (Nautilus) |
Super + B |
Browser (Brave Origin) |
Super + R |
Launcher (rofi) |
Super + W |
Toggle Waybar |
Super + Shift + Q |
Lock session |
Super + M |
Exit Hyprland |
Super + Shift + R |
Reload config (Sway only; Hyprland reloads on save) |
| Keys | Action |
|---|---|
Print |
Region |
Alt + Print |
Window |
Super + Print |
Primary output |
Super + Shift + P |
Region |
Super + Alt + P |
Window |
Super + Ctrl + P |
Primary output |
| Keys | Action |
|---|---|
Super + C |
Close |
Super + P |
Pseudotile |
Super + T |
Toggle split |
Super + V |
Toggle floating |
Super + F |
Toggle fullscreen |
Super + H/J/K/L |
Focus left/down/up/right |
Super + Shift + H/J/K/L |
Swap window left/down/up/right |
Super + LMB drag |
Move |
Super + RMB drag |
Resize |
Super + Ctrl + R |
Resize mode: H/L shrink/grow width, K/J shrink/grow height, Esc/Enter exits |
| Keys | Action |
|---|---|
Super + 1–0 |
Switch to workspace 1–10 |
Super + Shift + 1–0 |
Move window to workspace 1–10 |
Super + Scroll |
Cycle workspaces |
| 3-finger swipe | Switch workspace |
Super + S |
Toggle scratchpad |
Super + Shift + S |
Move window to scratchpad |
