diff --git a/modules/features/niri.nix b/modules/features/niri.nix index c858e5b..9b24bb5 100644 --- a/modules/features/niri.nix +++ b/modules/features/niri.nix @@ -6,26 +6,45 @@ }; }; - perSystem = { pkgs, lib, self', ... }: { - packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap { - inherit pkgs; - settings = { - spawn-at-startup = [ - (lib.getExe self'.packages.myNoctalia) - ]; + perSystem = { pkgs, lib, self', ... }: + let + nixGLPackage = inputs.nixgl.packages.${pkgs.stdenv.hostPlatform.system}.nixGLIntel; + myNiriUnwrapped = inputs.wrapper-modules.wrappers.niri.wrap { + inherit pkgs; + settings = { + spawn-at-startup = [ + (lib.getExe self'.packages.myNoctalia) + ]; - xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; + xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; - input.keyboard.xkb.layout = "us,ua"; + input.keyboard.xkb.layout = "us,ua"; - layout.gaps = 5; + layout.gaps = 5; - binds = { - "Mod+Return".spawn-sh = lib.getExe pkgs.kitty; - "Mod+Q".close-window = null; - "Mod+S".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle"; + binds = { + "Mod+Return".spawn-sh = lib.getExe pkgs.kitty; + # "Mod+Q".close-window = null; + "Mod+S".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle"; + }; }; }; + in { + packages.myNiri = pkgs.symlinkJoin { + name = "my-niri-nixgl"; + paths = [ myNiriUnwrapped ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + meta.mainProgram = "niri"; + postBuild = '' + for exe in "$out"/bin/*; do + if [[ -f "$exe" ]]; then + base="$(basename "$exe")" + mv "$exe" "$out/bin/.''${base}-real" + makeWrapper ${lib.getExe nixGLPackage} "$exe" \ + --add-flags "$out/bin/.''${base}-real" + fi + done + ''; + }; }; - }; } \ No newline at end of file diff --git a/modules/features/noctalia.nix b/modules/features/noctalia.nix index fc04d76..8590391 100644 --- a/modules/features/noctalia.nix +++ b/modules/features/noctalia.nix @@ -1,10 +1,29 @@ { self, inputs, ... }: { - perSystem = { pkgs, ... }: { - packages.myNoctalia = inputs.wrapper-modules.wrappers.noctalia-shell.wrap { - inherit pkgs; # THIS PART IS VERY IMPORTAINT, I FORGOT IT IN THE VIDEO!!! - settings = - (builtins.fromJSON - (builtins.readFile ./noctalia.json)).settings; + perSystem = { pkgs, lib, ... }: + let + nixGLPackage = inputs.nixgl.packages.${pkgs.stdenv.hostPlatform.system}.nixGLIntel; + myNoctaliaUnwrapped = inputs.wrapper-modules.wrappers.noctalia-shell.wrap { + inherit pkgs; + # settings = + # (builtins.fromJSON + # (builtins.readFile ./noctalia.json)).settings; + }; + in { + packages.myNoctalia = pkgs.symlinkJoin { + name = "my-noctalia-nixgl"; + paths = [ myNoctaliaUnwrapped ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + meta.mainProgram = "noctalia-shell"; + postBuild = '' + for exe in "$out"/bin/*; do + if [[ -f "$exe" ]]; then + base="$(basename "$exe")" + mv "$exe" "$out/bin/.''${base}-real" + makeWrapper ${lib.getExe nixGLPackage} "$exe" \ + --add-flags "$out/bin/.''${base}-real" + fi + done + ''; + }; }; - }; } \ No newline at end of file diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix deleted file mode 100644 index 8d6fa02..0000000 --- a/modules/programs/niri.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ self, inputs, ... }: { - flake.modules.nixos.niri = { pkgs, lib, ... }: { - programs.niri = { - enable = true; - package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri; - }; - }; - - perSystem = { pkgs, lib, self', ... }: { - packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap { - inherit pkgs; - env.RUST_BACKTRACE = "full"; - settings = { - spawn-at-startup = [ - "${lib.getExe self'.packages.myNoctalia}" - ]; - xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; - input.keyboard.xkb.layout = "us,ua"; - layout.gaps = 5; - binds = { - "Mod+Return".spawn-sh = lib.getExe pkgs.ghostty; - "Mod+Q".close-window = null; - "Mod+S".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle"; - }; - }; - }; - }; -} \ No newline at end of file diff --git a/modules/programs/noctalia.nix b/modules/programs/noctalia.nix deleted file mode 100644 index 0707fb7..0000000 --- a/modules/programs/noctalia.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ self, inputs, ... }: { - perSystem = { pkgs, ... }: { - packages.myNoctalia = inputs.wrapper-modules.wrappers.noctalia-shell.wrap { - inherit pkgs; - # settings = (builtins.fromJSON (builtins.readFile ./noctalia.json)).settings; - }; - }; -} \ No newline at end of file