Parcourir la source

Better system for host specific hyprland configuration

Johan Rong il y a 1 mois
Parent
commit
f595010b2a

+ 3 - 4
flake.nix

@@ -40,10 +40,9 @@
               allowUnfree = true;
             };
           };
-          extraSpecialArgs = { inherit inputs; };
+          extraSpecialArgs = { inherit inputs host; };
           modules = [
             ./hosts/${host.dir}/home.nix
-            #mango.homeManagerModules.mango
           ] ++ modules;
         };
 
@@ -58,7 +57,7 @@
         nixpkgs.lib.nixosSystem {
           system = host.arch;
           specialArgs = {
-            inherit inputs;
+            inherit inputs host;
           };
           modules = [
             nix-flatpak.nixosModules.nix-flatpak
@@ -66,7 +65,7 @@
             { nixpkgs.overlays = overlays; }
             home-manager.nixosModules.home-manager
             {
-              home-manager.extraSpecialArgs = { inherit inputs; };
+              home-manager.extraSpecialArgs = { inherit inputs host; };
               home-manager.useGlobalPkgs = true;
               home-manager.useUserPackages = true;
               home-manager.backupFileExtension = "backup";

+ 6 - 17
home/modules/desktop/hyprland/default.nix

@@ -1,5 +1,8 @@
-{ config, pkgs, lib, inputs, ... }:
+{ config, pkgs, lib, inputs, host, ... }:
 
+let
+  hostname = host.hostname;
+in 
 {
   config = {
     home.file.".config/hypr/hyprland.lua".source = ./hypr/hyprland.lua;
@@ -10,8 +13,8 @@
     home.file.".config/hypr/modules/input.lua".source = ./hypr/modules/input.lua; 
     home.file.".config/hypr/modules/keybindings.lua".source = ./hypr/modules/keybindings.lua; 
     home.file.".config/hypr/modules/windows_and_workspaces.lua".source = ./hypr/modules/windows_and_workspaces.lua; 
-    home.file.".config/hypr/modules/monitors.lua".text = config.custom.hyprExtras.monitors;
-    home.file.".config/hypr/modules/shell.lua".text = config.custom.hyprExtras.shell;
+    home.file.".config/hypr/modules/monitors.lua".source = (./. + "/../../../../hosts/${hostname}/home/modules/desktop/hyprland/hypr/modules/monitors.lua");
+    home.file.".config/hypr/modules/shell.lua".source = (./. + "/../../../../hosts/${hostname}/home/modules/desktop/hyprland/hypr/modules/shell.lua");
 
     xdg = {
       userDirs = {
@@ -56,18 +59,4 @@
       };
     };
   };
-
-  options.custom.hyprExtras = {
-    monitors = lib.mkOption {
-      type = lib.types.lines;
-      default = ''
-        hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
-      '';
-      description = "Host-specific monitor configuration for Hyprland";
-    };
-    shell = lib.mkOption {
-      type = lib.types.lines;
-      default = '''';
-    };
-  };
 }

+ 0 - 21
home/modules/shells/dms-shell/default.nix

@@ -32,25 +32,4 @@
       isLightMode = false;
     };
   };
-
-  custom.hyprExtras = {
-    shell = ''
-      mainMod = "ALT"
-      secMod = "SUPER"
-
-      --hl.on("hyprland.start", function ()
-      --    hl.exec_cmd("dms run")
-      --end)
-
-      hl.bind(mainMod .. " + D", hl.dsp.exec_cmd("dms ipc spotlight toggle"))
-      hl.bind(secMod .. " + V", hl.dsp.exec_cmd("dms ipc clipboard open"))
-      hl.bind(mainMod .. " + SHIFT + E", hl.dsp.exec_cmd("dms ipc powermenu open"))
-      hl.bind("CONTROL + ALT + DELETE", hl.dsp.exec_cmd("dms ipc powermenu open"))
-      hl.bind(secMod .. " + L", hl.dsp.exec_cmd("dms ipc lock lock"))
-      hl.bind(secMod .. " + SHIFT + S", hl.dsp.exec_cmd("dms screenshot"))
-
-      hl.bind("CONTROL + SHIFT + ESCAPE", hl.dsp.exec_cmd("dms ipc call processlist open"))
-      hl.bind(secMod .. " + CONTROL + SHIFT + C", hl.dsp.exec_cmd("dms ipc color-picker toggle"))
-    '';
-  };
 }

+ 1 - 0
hosts/ideapad/home/modules/desktop/hyprland/hypr/modules/monitors.lua

@@ -0,0 +1 @@
+hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })

+ 12 - 0
hosts/ideapad/home/modules/desktop/hyprland/hypr/modules/shell.lua

@@ -0,0 +1,12 @@
+mainMod = "ALT"
+secMod = "SUPER"
+
+hl.bind(mainMod .. " + D", hl.dsp.exec_cmd("dms ipc spotlight toggle"))
+hl.bind(secMod .. " + V", hl.dsp.exec_cmd("dms ipc clipboard open"))
+hl.bind(mainMod .. " + SHIFT + E", hl.dsp.exec_cmd("dms ipc powermenu open"))
+hl.bind("CONTROL + ALT + DELETE", hl.dsp.exec_cmd("dms ipc powermenu open"))
+hl.bind(secMod .. " + L", hl.dsp.exec_cmd("dms ipc lock lock"))
+hl.bind(secMod .. " + SHIFT + S", hl.dsp.exec_cmd("dms screenshot"))
+
+hl.bind("CONTROL + SHIFT + ESCAPE", hl.dsp.exec_cmd("dms ipc call processlist open"))
+hl.bind(secMod .. " + CONTROL + SHIFT + C", hl.dsp.exec_cmd("dms ipc color-picker toggle"))

+ 0 - 25
hosts/nixstation/home/default.nix

@@ -10,29 +10,4 @@
     ../../../home/modules/configs/alacritty.nix
     ../../../home/modules/configs/fish.nix
   ];
-
-  custom.hyprExtras = {
-    monitors = ''
-      hl.monitor({ output = "DP-1", mode = "1920x1080@143.98", position = "0x0", scale = 1 })
-      hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@143.98", position = "1920x0", scale = 1 })
-
-      -- fallback:
-      hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
-
-      -- rules
-      for i = 1, 10 do
-        hl.workspace_rule({ workspace = i % 10, monitor = "DP-1", default = true })
-      end
-
-      for i = 11, 20 do
-        hl.workspace_rule({ workspace = i, monitor = "HDMI-A-1", default = true })
-      end
-
-      hl.config({
-          cursor = {
-              default_monitor = "DP-2"
-          }
-      })
-    '';
-  };
 }

+ 20 - 0
hosts/nixstation/home/modules/desktop/hyprland/hypr/modules/monitors.lua

@@ -0,0 +1,20 @@
+hl.monitor({ output = "DP-1", mode = "1920x1080@143.98", position = "0x0", scale = 1 })
+hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@143.98", position = "1920x0", scale = 1 })
+
+-- fallback:
+hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
+
+-- rules
+for i = 1, 10 do
+    hl.workspace_rule({ workspace = i % 10, monitor = "DP-1", default = true })
+end
+
+for i = 11, 20 do
+    hl.workspace_rule({ workspace = i, monitor = "HDMI-A-1", default = true })
+end
+
+hl.config({
+    cursor = {
+        default_monitor = "DP-2"
+    }
+})

+ 12 - 0
hosts/nixstation/home/modules/desktop/hyprland/hypr/modules/shell.lua

@@ -0,0 +1,12 @@
+mainMod = "ALT"
+secMod = "SUPER"
+
+hl.bind(mainMod .. " + D", hl.dsp.exec_cmd("dms ipc spotlight toggle"))
+hl.bind(secMod .. " + V", hl.dsp.exec_cmd("dms ipc clipboard open"))
+hl.bind(mainMod .. " + SHIFT + E", hl.dsp.exec_cmd("dms ipc powermenu open"))
+hl.bind("CONTROL + ALT + DELETE", hl.dsp.exec_cmd("dms ipc powermenu open"))
+hl.bind(secMod .. " + L", hl.dsp.exec_cmd("dms ipc lock lock"))
+hl.bind(secMod .. " + SHIFT + S", hl.dsp.exec_cmd("dms screenshot"))
+
+hl.bind("CONTROL + SHIFT + ESCAPE", hl.dsp.exec_cmd("dms ipc call processlist open"))
+hl.bind(secMod .. " + CONTROL + SHIFT + C", hl.dsp.exec_cmd("dms ipc color-picker toggle"))