add nix-hyprland

This commit is contained in:
KoenDR06 2026-01-07 16:39:44 +01:00
parent 304570fd73
commit 954bf2d4ba
17 changed files with 619 additions and 2779 deletions

View file

@ -7,7 +7,7 @@
cfg = config.horseman.wm.hyprland;
in {
config = mkIf cfg.enable {
horseman.wm.hyprland.config = {
nix-hyprland = {
animations = {
enabled = true;
beziers = [
@ -51,103 +51,87 @@ in {
animations = [
{
name = "global";
on = true;
speed = 10.0;
curve = "default";
}
{
name = "border";
on = true;
speed = 5.39;
curve = "easeOutQuint";
}
{
name = "windows";
on = true;
speed = 4.79;
curve = "easeOutQuint";
}
{
name = "windowsIn";
on = true;
speed = 4.1;
curve = "easeOutQuint";
style = "popin 87%";
}
{
name = "windowsOut";
on = true;
speed = 1.49;
curve = "linear";
style = "popin 87%";
}
{
name = "fadeIn";
on = true;
speed = 1.73;
curve = "almostLinear";
}
{
name = "fadeOut";
on = true;
speed = 1.46;
curve = "almostLinear";
}
{
name = "fade";
on = true;
speed = 3.03;
curve = "quick";
}
{
name = "layers";
on = true;
speed = 3.81;
curve = "easeOutQuint";
}
{
name = "layersIn";
on = true;
speed = 4.0;
curve = "easeOutQuint";
style = "fade";
}
{
name = "layersOut";
on = true;
speed = 1.5;
curve = "linear";
style = "fade";
}
{
name = "fadeLayersIn";
on = true;
speed = 1.79;
curve = "almostLinear";
}
{
name = "fadeLayersOut";
on = true;
speed = 1.39;
curve = "almostLinear";
}
{
name = "workspaces";
on = true;
speed = 1.94;
curve = "almostLinear";
style = "fade";
}
{
name = "workspacesIn";
on = true;
speed = 1.21;
curve = "almostLinear";
style = "fade";
}
{
name = "workspacesOut";
on = true;
speed = 1.94;
curve = "almostLinear";
style = "fade";

View file

@ -45,7 +45,7 @@ in {
horseman.hardware.keyd.enable = true;
horseman.wm.hyprland.config = {
nix-hyprland = {
execOnce = [
"hypridle"
"hyprpaper"
@ -54,8 +54,14 @@ in {
];
env = [
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
{
name = "XCURSOR_SIZE";
value = "24";
}
{
name = "HYPRCURSOR_SIZE";
value = "24";
}
];
windowrules = [
@ -140,10 +146,10 @@ in {
dragIntoGroup = 1;
col = {
borderActive = config.horseman.wm.hyprland.config.general.col.activeBorder; # I don't wanna believe this can't be done better :(
borderInactive = config.horseman.wm.hyprland.config.general.col.inactiveBorder;
borderLockedActive = config.horseman.wm.hyprland.config.general.col.activeBorder;
borderLockedInactive = config.horseman.wm.hyprland.config.general.col.inactiveBorder;
borderActive = config.nix-hyprland.general.col.activeBorder; # I don't wanna believe this can't be done better :(
borderInactive = config.nix-hyprland.general.col.inactiveBorder;
borderLockedActive = config.nix-hyprland.general.col.activeBorder;
borderLockedInactive = config.nix-hyprland.general.col.inactiveBorder;
};
groupbar = {
@ -164,7 +170,7 @@ in {
};
monitors = {
defaultMonitor = true;
addDefault = true;
};
sleep = {

View file

@ -7,506 +7,504 @@
cfg = config.horseman.wm.hyprland;
in {
config = mkIf cfg.enable {
horseman.wm.hyprland.config = {
keybindings = {
submaps = [
{
name = "disable-all";
enterBind = {
flags = ["o"];
mods = ["SUPER"];
key = "ESCAPE";
};
exitBind = {
flags = ["o"];
mods = ["SUPER"];
key = "ESCAPE";
};
binds = [];
}
];
binds = [
{
flags = [];
mods = ["SUPER"];
key = "SPACE";
dispatcher = "exec";
params = "pkill fuzzel || fuzzel";
}
{
flags = [];
mods = ["SUPER"];
key = "B";
dispatcher = "exec";
params = "pkill waybar || waybar";
}
{
flags = [];
mods = ["SUPER"];
key = "RETURN";
dispatcher = "exec";
params = "kitty";
}
{
flags = [];
mods = ["SUPER"];
key = "Q";
dispatcher = "killactive";
params = "";
}
{
flags = [];
mods = [];
key = "F11";
dispatcher = "fullscreen";
params = "";
}
{
nix-hyprland.keybindings = {
submaps = [
{
name = "disable-all";
enterBind = {
flags = ["o"];
mods = ["SUPER"];
key = "L";
dispatcher = "exec";
params = "hyprlock";
}
{
flags = ["e"];
key = "ESCAPE";
};
exitBind = {
flags = ["o"];
mods = ["SUPER"];
key = "TAB";
dispatcher = "changegroupactive";
params = "f";
}
key = "ESCAPE";
};
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "TAB";
dispatcher = "changegroupactive";
params = "b";
}
{
flags = [];
mods = ["SUPER"];
key = "F";
dispatcher = "togglefloating";
params = "";
}
{
flags = [];
mods = ["SUPER"];
key = "T";
dispatcher = "togglegroup";
params = "";
}
binds = [];
}
];
{
flags = [];
mods = ["SUPER"];
key = "P";
dispatcher = "pin";
params = "";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "S";
dispatcher = "exec";
params = "hyprshot -m region --clipboard-only";
}
binds = [
{
flags = [];
mods = ["SUPER"];
key = "SPACE";
dispatcher = "exec";
params = "pkill fuzzel || fuzzel";
}
{
flags = [];
mods = ["SUPER"];
key = "H";
dispatcher = "movefocus";
params = "l";
}
{
flags = [];
mods = ["SUPER"];
key = "L";
dispatcher = "movefocus";
params = "r";
}
{
flags = [];
mods = ["SUPER"];
key = "K";
dispatcher = "movefocus";
params = "u";
}
{
flags = [];
mods = ["SUPER"];
key = "J";
dispatcher = "movefocus";
params = "d";
}
{
flags = [];
mods = ["SUPER"];
key = "B";
dispatcher = "exec";
params = "pkill waybar || waybar";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "H";
dispatcher = "movewindow";
params = "l";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "L";
dispatcher = "movewindow";
params = "r";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "K";
dispatcher = "movewindow";
params = "u";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "J";
dispatcher = "movewindow";
params = "d";
}
{
flags = [];
mods = ["SUPER"];
key = "RETURN";
dispatcher = "exec";
params = "kitty";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Left";
dispatcher = "moveactive";
params = "-50 0";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Right";
dispatcher = "moveactive";
params = "50 0";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Up";
dispatcher = "moveactive";
params = "0 -50";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Down";
dispatcher = "moveactive";
params = "0 50";
}
{
flags = [];
mods = ["SUPER"];
key = "Q";
dispatcher = "killactive";
params = "";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Left";
dispatcher = "resizeactive";
params = "-50 0";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Right";
dispatcher = "resizeactive";
params = "50 0";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Up";
dispatcher = "resizeactive";
params = "0 -50";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Down";
dispatcher = "resizeactive";
params = "0 50";
}
{
flags = [];
mods = [];
key = "F11";
dispatcher = "fullscreen";
params = "";
}
{
flags = ["o"];
mods = ["SUPER"];
key = "L";
dispatcher = "exec";
params = "hyprlock";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "TAB";
dispatcher = "changegroupactive";
params = "f";
}
{
flags = [];
mods = ["SUPER"];
key = "grave";
dispatcher = "togglespecialworkspace";
params = "";
}
{
flags = [];
mods = ["SUPER"];
key = "1";
dispatcher = "workspace";
params = "1";
}
{
flags = [];
mods = ["SUPER"];
key = "2";
dispatcher = "workspace";
params = "2";
}
{
flags = [];
mods = ["SUPER"];
key = "3";
dispatcher = "workspace";
params = "3";
}
{
flags = [];
mods = ["SUPER"];
key = "4";
dispatcher = "workspace";
params = "4";
}
{
flags = [];
mods = ["SUPER"];
key = "5";
dispatcher = "workspace";
params = "5";
}
{
flags = [];
mods = ["SUPER"];
key = "6";
dispatcher = "workspace";
params = "6";
}
{
flags = [];
mods = ["SUPER"];
key = "7";
dispatcher = "workspace";
params = "7";
}
{
flags = [];
mods = ["SUPER"];
key = "8";
dispatcher = "workspace";
params = "8";
}
{
flags = [];
mods = ["SUPER"];
key = "9";
dispatcher = "workspace";
params = "9";
}
{
flags = [];
mods = ["SUPER"];
key = "0";
dispatcher = "workspace";
params = "10";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "TAB";
dispatcher = "changegroupactive";
params = "b";
}
{
flags = [];
mods = ["SUPER"];
key = "F";
dispatcher = "togglefloating";
params = "";
}
{
flags = [];
mods = ["SUPER"];
key = "T";
dispatcher = "togglegroup";
params = "";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "grave";
dispatcher = "movetoworkspace";
params = "special";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "1";
dispatcher = "movetoworkspace";
params = "1";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "2";
dispatcher = "movetoworkspace";
params = "2";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "3";
dispatcher = "movetoworkspace";
params = "3";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "4";
dispatcher = "movetoworkspace";
params = "4";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "5";
dispatcher = "movetoworkspace";
params = "5";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "6";
dispatcher = "movetoworkspace";
params = "6";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "7";
dispatcher = "movetoworkspace";
params = "7";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "8";
dispatcher = "movetoworkspace";
params = "8";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "9";
dispatcher = "movetoworkspace";
params = "9";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "0";
dispatcher = "movetoworkspace";
params = "10";
}
{
flags = [];
mods = ["SUPER"];
key = "P";
dispatcher = "pin";
params = "";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "S";
dispatcher = "exec";
params = "hyprshot -m region --clipboard-only";
}
{
flags = ["e"];
mods = ["SUPER" "CONTROL"];
key = "Right";
dispatcher = "workspace";
params = "e+1";
}
{
flags = ["e"];
mods = ["SUPER" "CONTROL"];
key = "Left";
dispatcher = "workspace";
params = "e-1";
}
{
flags = [];
mods = ["SUPER"];
key = "H";
dispatcher = "movefocus";
params = "l";
}
{
flags = [];
mods = ["SUPER"];
key = "L";
dispatcher = "movefocus";
params = "r";
}
{
flags = [];
mods = ["SUPER"];
key = "K";
dispatcher = "movefocus";
params = "u";
}
{
flags = [];
mods = ["SUPER"];
key = "J";
dispatcher = "movefocus";
params = "d";
}
{
flags = ["m"];
mods = ["SUPER"];
key = "mouse:272";
dispatcher = "movewindow";
params = "";
}
{
flags = ["m"];
mods = ["SUPER" "SHIFT"];
key = "mouse:272";
dispatcher = "resizewindow";
params = "";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "H";
dispatcher = "movewindow";
params = "l";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "L";
dispatcher = "movewindow";
params = "r";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "K";
dispatcher = "movewindow";
params = "u";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "J";
dispatcher = "movewindow";
params = "d";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioRaiseVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioLowerVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-";
}
{
flags = ["e" "l"];
mods = ["SHIFT"];
key = "XF86AudioRaiseVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 1%+";
}
{
flags = ["e" "l"];
mods = ["SHIFT"];
key = "XF86AudioLowerVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 1%-";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioMute";
dispatcher = "exec";
params = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioMicMute";
dispatcher = "exec";
params = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86MonBrightnessUp";
dispatcher = "exec";
params = "brightnessctl s 10%+";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86MonBrightnessDown";
dispatcher = "exec";
params = "brightnessctl s 10%-";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioNext";
dispatcher = "exec";
params = "playerctl next";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPause";
dispatcher = "exec";
params = "playerctl play-pause";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPlay";
dispatcher = "exec";
params = "playerctl play-pause";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPrev";
dispatcher = "exec";
params = "playerctl previous";
}
];
};
{
flags = ["e"];
mods = ["SUPER"];
key = "Left";
dispatcher = "moveactive";
params = "-50 0";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Right";
dispatcher = "moveactive";
params = "50 0";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Up";
dispatcher = "moveactive";
params = "0 -50";
}
{
flags = ["e"];
mods = ["SUPER"];
key = "Down";
dispatcher = "moveactive";
params = "0 50";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Left";
dispatcher = "resizeactive";
params = "-50 0";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Right";
dispatcher = "resizeactive";
params = "50 0";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Up";
dispatcher = "resizeactive";
params = "0 -50";
}
{
flags = ["e"];
mods = ["SUPER" "SHIFT"];
key = "Down";
dispatcher = "resizeactive";
params = "0 50";
}
{
flags = [];
mods = ["SUPER"];
key = "grave";
dispatcher = "togglespecialworkspace";
params = "";
}
{
flags = [];
mods = ["SUPER"];
key = "1";
dispatcher = "workspace";
params = "1";
}
{
flags = [];
mods = ["SUPER"];
key = "2";
dispatcher = "workspace";
params = "2";
}
{
flags = [];
mods = ["SUPER"];
key = "3";
dispatcher = "workspace";
params = "3";
}
{
flags = [];
mods = ["SUPER"];
key = "4";
dispatcher = "workspace";
params = "4";
}
{
flags = [];
mods = ["SUPER"];
key = "5";
dispatcher = "workspace";
params = "5";
}
{
flags = [];
mods = ["SUPER"];
key = "6";
dispatcher = "workspace";
params = "6";
}
{
flags = [];
mods = ["SUPER"];
key = "7";
dispatcher = "workspace";
params = "7";
}
{
flags = [];
mods = ["SUPER"];
key = "8";
dispatcher = "workspace";
params = "8";
}
{
flags = [];
mods = ["SUPER"];
key = "9";
dispatcher = "workspace";
params = "9";
}
{
flags = [];
mods = ["SUPER"];
key = "0";
dispatcher = "workspace";
params = "10";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "grave";
dispatcher = "movetoworkspace";
params = "special";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "1";
dispatcher = "movetoworkspace";
params = "1";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "2";
dispatcher = "movetoworkspace";
params = "2";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "3";
dispatcher = "movetoworkspace";
params = "3";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "4";
dispatcher = "movetoworkspace";
params = "4";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "5";
dispatcher = "movetoworkspace";
params = "5";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "6";
dispatcher = "movetoworkspace";
params = "6";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "7";
dispatcher = "movetoworkspace";
params = "7";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "8";
dispatcher = "movetoworkspace";
params = "8";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "9";
dispatcher = "movetoworkspace";
params = "9";
}
{
flags = [];
mods = ["SUPER" "SHIFT"];
key = "0";
dispatcher = "movetoworkspace";
params = "10";
}
{
flags = ["e"];
mods = ["SUPER" "CONTROL"];
key = "Right";
dispatcher = "workspace";
params = "e+1";
}
{
flags = ["e"];
mods = ["SUPER" "CONTROL"];
key = "Left";
dispatcher = "workspace";
params = "e-1";
}
{
flags = ["m"];
mods = ["SUPER"];
key = "mouse:272";
dispatcher = "movewindow";
params = "";
}
{
flags = ["m"];
mods = ["SUPER" "SHIFT"];
key = "mouse:272";
dispatcher = "resizewindow";
params = "";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioRaiseVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioLowerVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-";
}
{
flags = ["e" "l"];
mods = ["SHIFT"];
key = "XF86AudioRaiseVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 1%+";
}
{
flags = ["e" "l"];
mods = ["SHIFT"];
key = "XF86AudioLowerVolume";
dispatcher = "exec";
params = "wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 1%-";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioMute";
dispatcher = "exec";
params = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86AudioMicMute";
dispatcher = "exec";
params = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86MonBrightnessUp";
dispatcher = "exec";
params = "brightnessctl s 10%+";
}
{
flags = ["e" "l"];
mods = [];
key = "XF86MonBrightnessDown";
dispatcher = "exec";
params = "brightnessctl s 10%-";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioNext";
dispatcher = "exec";
params = "playerctl next";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPause";
dispatcher = "exec";
params = "playerctl play-pause";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPlay";
dispatcher = "exec";
params = "playerctl play-pause";
}
{
flags = ["l"];
mods = [];
key = "XF86AudioPrev";
dispatcher = "exec";
params = "playerctl previous";
}
];
};
};
}

View file

@ -11,217 +11,30 @@
cfg = config.horseman.wm.hyprland;
homeCfg = config.horseman;
keybinding = types.submodule {
options = {
flags = mkOption {
type = types.listOf (types.enum ["l" "r" "c" "g" "o" "e" "m" "t" "i" "s" "d" "p"]);
};
mods = mkOption {
type = types.listOf types.str;
};
key = mkOption {
type = types.str;
};
dispatcher = mkOption {
type = types.str;
};
params = mkOption {
type = types.str;
};
};
};
submapKeybinding = types.submodule {
options = {
flags = mkOption {
type = types.listOf (types.enum ["l" "r" "c" "g" "o" "e" "m" "t" "i" "s" "d" "p"]);
};
mods = mkOption {
type = types.listOf types.str;
};
key = mkOption {
type = types.str;
};
};
};
vec2 = types.submodule {
options = {
x = mkOption {type = types.int;};
y = mkOption {type = types.int;};
};
};
fontWeight = types.enum ["thin" "ultralight" "light" "semilight" "book" "normal" "medium" "semibold" "bold" "ultrabold" "heavy" "ultraheavy"];
in {
options.horseman.wm.hyprland.config = {
execOnce = mkOption {
type = types.listOf types.str;
default = [];
};
env = mkOption {
type = types.listOf types.str;
default = [];
};
windowrules = mkOption {
type = types.listOf types.str;
default = [];
};
workspaces = mkOption {
type = types.listOf types.str;
default = [];
};
animations = {
beziers = mkOption {
type = types.listOf (types.submodule {
options = {
name = mkOption {type = types.str;};
startX = mkOption {type = types.number;};
startY = mkOption {type = types.number;};
endX = mkOption {type = types.number;};
endY = mkOption {type = types.number;};
};
});
options.horseman.wm.hyprland.config.waybar = {
layout = {
horizontal = {
left = mkOption {type = types.listOf types.str;};
center = mkOption {type = types.listOf types.str;};
right = mkOption {type = types.listOf types.str;};
};
animations = mkOption {
type = types.listOf (types.submodule {
options = {
name = mkOption {type = types.str;};
on = mkOption {type = types.bool;};
speed = mkOption {
type = types.number;
default = 0;
};
curve = mkOption {
type = types.str;
default = "";
};
style = mkOption {
type = types.str;
default = "";
};
};
});
vertical = {
left = mkOption {type = types.listOf types.str;};
center = mkOption {type = types.listOf types.str;};
right = mkOption {type = types.listOf types.str;};
};
};
dwindle = {
pseudotile = mkOption {type = types.bool;};
preserveSplit = mkOption {type = types.bool;};
};
master = {
newStatus = mkOption {type = types.enum ["master" "slave" "inherit"];};
};
monitors = {
defaultMonitor = mkOption {type = types.bool;};
bindWorkspaces = mkOption {
type = types.enum ["no" "interlaced"];
default = "no";
};
displays = mkOption {
type = types.listOf (types.submodule {
options = {
output = mkOption {type = types.str;};
resolution = mkOption {
type = types.str;
default = "highres";
};
refreshRate = mkOption {
type = types.str;
default = "highrr";
};
x = mkOption {type = types.int;};
y = mkOption {type = types.int;};
scale = mkOption {
type = types.number;
default = 1;
};
transform = mkOption {
type = types.enum [0 1 2 3 4 5 6 7];
default = 0;
};
wallpaper = mkOption {
type = types.nullOr types.path;
default = null;
};
bar = mkOption {
type = types.enum ["" "left" "right" "top" "bottom"];
default = "";
};
};
});
};
};
keybindings = {
binds = mkOption {type = types.listOf keybinding;};
submaps = mkOption {
type = types.listOf (types.submodule {
options = {
name = mkOption {type = types.str;};
enterBind = mkOption {type = submapKeybinding;};
exitBind = mkOption {type = submapKeybinding;};
binds = mkOption {type = types.listOf keybinding;};
};
});
};
};
sleep = {
lockCommand = mkOption {type = types.str;};
listeners = mkOption {
type = types.listOf (types.submodule {
options = {
timeout = mkOption {type = types.ints.positive;};
onTimeout = mkOption {type = types.str;};
onResume = mkOption {
type = types.str;
default = "";
};
ignoreInhibit = mkOption {
type = types.bool;
default = false;
};
};
});
};
};
waybar = {
layout = {
horizontal = {
left = mkOption {type = types.listOf types.str;};
center = mkOption {type = types.listOf types.str;};
right = mkOption {type = types.listOf types.str;};
};
vertical = {
left = mkOption {type = types.listOf types.str;};
center = mkOption {type = types.listOf types.str;};
right = mkOption {type = types.listOf types.str;};
};
};
formats = {
horizontal = mkOption {
type = types.attrs;
};
vertical = mkOption {
type = types.attrs;
};
};
modules = mkOption {
formats = {
horizontal = mkOption {
type = types.attrs;
};
vertical = mkOption {
type = types.attrs;
};
};
modules = mkOption {
type = types.attrs;
};
};
@ -229,12 +42,6 @@ in {
horseman.dots = {
fuzzel.enable = true;
waybar.enable = true;
hypr = {
hyprland.enable = true;
hypridle.enable = true;
hyprpaper.enable = true;
hyprlock.enable = true;
};
};
home-manager.users.${homeCfg.username} = {
@ -248,7 +55,7 @@ in {
if (disp.bar == location)
then disp.output
else null)
cfg.config.monitors.displays
config.nix-hyprland.monitors.displays
)
);
in {