Add Hyprland with hy3 plugin for XMonad-like tiling

Configure Hyprland to use the hy3 plugin for dynamic tiling similar to
XMonad. Uses official Hyprland and hy3 flakes pinned to v0.53.0 for
proper plugin compatibility (nixpkgs packaging had header issues).

Key changes:
- Add hyprland and hy3 flake inputs with version pinning
- Rewrite hyprland.conf with hy3 layout and XMonad-like keybindings
- Add helper scripts for window management (bring, replace, gather, etc.)
- WASD directional navigation using hy3:movefocus/movewindow
- Tab groups, horizontal/vertical splits via hy3:makegroup
- Scratchpads via Hyprland special workspaces

Also removes org-agenda-api flake integration (moved elsewhere).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-20 13:34:45 -05:00
parent 68b3e5d83c
commit cc05a1d790
13 changed files with 1198 additions and 428 deletions

View File

@@ -1,12 +1,9 @@
{ config, pkgs, lib, makeEnable, ... }:
{ config, pkgs, lib, makeEnable, inputs, ... }:
makeEnable config "myModules.hyprland" true {
programs.hyprland = {
enable = true;
# Plugins for XMonad-like experience
plugins = [
pkgs.hyprlandPlugins.hy3 # Dynamic tiling like XMonad
pkgs.hyprlandPlugins.hyprexpo # Expose/overview (like skippy-xd)
];
# Use Hyprland from the flake for proper plugin compatibility
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
};
# Hyprland-specific packages
@@ -23,7 +20,10 @@ makeEnable config "myModules.hyprland" true {
swappy # Screenshot annotation
wlsunset # Night light / blue light filter
# For hy3 directional focus
jq # JSON processing (used in scripts)
# hy3 plugin from flake (properly built against matching Hyprland)
inputs.hy3.packages.${pkgs.system}.hy3
# For scripts
jq
];
}