diff --git a/modules/desktop/noctalia/default.nix b/modules/desktop/noctalia/default.nix index e38a78e..8a65e8f 100644 --- a/modules/desktop/noctalia/default.nix +++ b/modules/desktop/noctalia/default.nix @@ -1,6 +1,12 @@ {self, ...}: { flake.modules = { - nixos.noctalia.nixpkgs.overlays = [self.overlays.pkgs]; + nixos.noctalia = { + nixpkgs.overlays = [self.overlays.pkgs]; + + # The screen recorder plugin captures the monitor directly, which needs the + # sys_admin capped gsr-kms-server wrapper instead of a portal session. + programs.gpu-screen-recorder.enable = true; + }; homeManager.noctalia = {lib, ...}: let inherit (lib) mkEnableOption; diff --git a/modules/desktop/noctalia/plugins.nix b/modules/desktop/noctalia/plugins.nix index 3a69384..b2c6f43 100644 --- a/modules/desktop/noctalia/plugins.nix +++ b/modules/desktop/noctalia/plugins.nix @@ -38,7 +38,6 @@ packages = with pkgs; [ # keep-sorted start fzf - gpu-screen-recorder hyprpicker performance-mode udiskie @@ -85,6 +84,9 @@ copy_to_clipboard = true; directory = "${videosDir}/Recordings"; video_codec = "hevc"; + # Portal capture cannot get multi-plane dma-buf frames from + # xdg-desktop-portal-hyprland, so capture the monitor directly. + video_source = "focused"; # keep-sorted end };