Nix-Config/modules/home/nyxerinys/linux/hyprland.nix
2026-10-10 17:01:31 -05:00

119 lines
No EOL
2.9 KiB
Nix

{ inputs, lib, ... }:
{
xdg.configFile."hypr/plugins/split-monitor-workspaces".source = inputs.split-monitor-workspaces;
wayland.windowManager.hyprland = {
enable = true;
# set the Hyprland and XDPH packages to null to use the ones from the NixOS module
package = null;
portalPackage = null;
systemd.variables = ["--all"];
# extraLuaFiles = {
# smw-setup = {
# content = ''
# local smw = require('plugins.split-monitor-workspaces')
# smw.setup({
# workspace_count = 5
# })
# '';
# };
# };
settings = {
smw = {
_var = (lib.generators.mkLuaInline "require('plugins.split-monitor-workspaces')");
};
monitor = [
{
output = "DP-1";
mode = "highres@highrr";
position = "0x0";
scale = 1;
}
{
output = "DP-2";
mode = "1680x1050@60";
position = "auto-center-right";
scale = 1;
}
{
output = "HDMI-A-1";
mode = "1920x1080@60";
position = "-1920x720";
scale = 1;
}
{
output = "DP-3";
disabled = true;
}
{
output = "";
mode = "highres@highrr";
position = "auto";
scale = 1;
}
];
bind = let
mainMod = "SUPER";
in [
{
_args = [
"${mainMod} + c"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("kitty")'')
];
}
{
_args = [
"${mainMod} + e"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("nautilus")'')
];
}
{
_args = [
"${mainMod} + q"
(lib.generators.mkLuaInline ''hl.dsp.window.close()'')
{ locked = true; }
];
}
{
_args = [
"${mainMod} + q"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "special:special", follow = true })'')
{ locked = true; }
];
}
{
_args = [
"${mainMod} + SHIFT + s"
(lib.generators.mkLuaInline ''hl.dsp.workspace.toggle_special("special")'')
{ locked = true; }
];
}
{
_args = [
"${mainMod} + mouse:272"
(lib.generators.mkLuaInline ''hl.dsp.window.drag()'')
{ mouse = true; }
];
}
{
_args = [
"${mainMod} + mouse:273"
(lib.generators.mkLuaInline ''hl.dsp.window.resize()'')
{ mouse = true; }
];
}
{
_args = [
"${mainMod} + f"
(lib.generators.mkLuaInline ''hl.dsp.window.fullscreen({mode = "fullscreen", action = "toggle"})'')
];
}
];
};
extraConfig = ''
smw.setup({
workspace_count = 5
})
'';
};
}