| bin | ||
| config | ||
| settings | ||
| .gitignore | ||
| .nvim.lua | ||
| hyprland.conf | ||
| IDEAS.md | ||
| main.conf | ||
| monitors.conf | ||
| README.md | ||
| settings.json | ||
| workspaces.conf | ||
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