{ 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 }) ''; }; }