Hyprland config with modal keymap system https://git.blake.ly/PowerUser/hyprland
Find a file
2025-12-17 15:41:38 -08:00
bin update-mode: use light/dark mode to determine colors 2025-12-15 09:58:45 -08:00
config add window rule for bitwig sliders 2025-12-13 20:49:35 -08:00
settings un-gitignore settings 2025-12-11 00:38:15 -08:00
.gitignore ignore temp files 2025-12-11 00:38:14 -08:00
.nvim.lua initial commit 2025-11-04 01:18:40 -08:00
hyprland.conf add top-level hyprland.conf 2025-11-12 01:37:01 -08:00
IDEAS.md add ideas, split displays, almost done with application-mode-action 2025-12-11 00:38:15 -08:00
main.conf monitorss! 2025-12-11 00:38:15 -08:00
monitors.conf support nwg-displays with adapter 2025-12-11 00:38:15 -08:00
README.md update README 2025-12-17 15:41:38 -08:00
settings.json making normal mode 2025-12-11 00:38:15 -08:00
workspaces.conf pre-v52 update 2025-12-11 00:38:15 -08:00

Modal Hyprland

Minimal Hyprland config with a modal keymap system.

TODO:

  • extend workspace keymaps
  • hyprpicker
  • make workspaces operate per-display

Long-term goals

  • shader wallpaper (like this)
  • add a shell using ashell
  • lower keymap depth

Keymaps

This config implements a modal keymap system. These are the available modes. There is one for each "unit" that I've identified within the desktop:

  • window (w)
  • group (g)
  • layout/resize (r)
  • workspace (s)
  • monitor/display (d)
  • zoom (z)
  • application (a)
  • shell (e)
  • machine (m)
  • passthru (p)

The advantage of this is that when you're in a mode, you know that you'll only affect things associated with that specific mode.

Shells

Keymaps are something you do only a few ways correctly. Appearance is something that can be done a million ways correctly.

The keyboard navigation interface is (for now) more worth my time than worrying about how the interface looks. UI is still needed though, so to fill this void I use shells like caelestia and hypryou. At some point I might make a waybar config or something and replace using shells, but right now I'm enjoying not having to put much effort into this to get something functional and good-looking.

Here's what shells are currently providing for this repo:

  • Color schemes
  • Wallpaper management
  • Lock screen
  • Automatic timeout for lock and sleep
  • Battery level warnings
  • Status bar
    • Panels for quick settings and indicators (wifi/bluetooth/battery/volume)
    • System tray icons/applets
  • Power state management
  • Notification daemon (+ui)
  • Music/mpris daemon (+ui)
  • Power menu ui

Basically, lots and lots of UI.

All of these features are abstracted (by this config) in a modular way, so adding, removing, and changing shells is trivial (see config/shells). At some point I may combine a few tools (waybar, waypaper, etc.) to make my own "shell," but for the foreseeable future, I'll be using pre-built shells so I don't need to go down an endless rabbit hole of making a pleasing graphical interface.

Structure

  • Files are grouped in config/
  • Files are sourced in their numbered order
  • Files with higher numbers depend on the outputs of previous files
  • Files with equal number are not order-dependent