From b4b21b37faee5cae63fb0d40a7a4e2031e720983 Mon Sep 17 00:00:00 2001 From: oddlama Date: Fri, 5 Jul 2024 01:37:41 +0200 Subject: [PATCH] feat: use updated gpu-screen-recorder by timschumi which allows root-capture --- flake.lock | 17 +++++++++++++++++ flake.nix | 1 + nix/hosts.nix | 2 +- nix/pkgs.nix | 2 +- pkgs/default.nix | 4 +++- users/myuser/default.nix | 5 +++++ 6 files changed, 28 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 599c768..f8e9401 100644 --- a/flake.lock +++ b/flake.lock @@ -1331,6 +1331,22 @@ "type": "github" } }, + "nixpkgs-gpu-screen-recorder": { + "locked": { + "lastModified": 1720133070, + "narHash": "sha256-fo/KKxICtGyQAyYwlvwxuCZSyGhoY4MPR55zf02Q104=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "032e70533b134ea30c0359886dcdec547134dbdd", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "032e70533b134ea30c0359886dcdec547134dbdd", + "type": "github" + } + }, "nixpkgs-lib": { "locked": { "lastModified": 1717284937, @@ -1683,6 +1699,7 @@ "nixos-hardware": "nixos-hardware", "nixos-nftables-firewall": "nixos-nftables-firewall", "nixpkgs": "nixpkgs", + "nixpkgs-gpu-screen-recorder": "nixpkgs-gpu-screen-recorder", "nixvim": "nixvim", "pre-commit-hooks": "pre-commit-hooks_5", "stylix": "stylix", diff --git a/flake.nix b/flake.nix index cce5a75..9cbe736 100644 --- a/flake.nix +++ b/flake.nix @@ -68,6 +68,7 @@ }; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs-gpu-screen-recorder.url = "github:NixOS/nixpkgs/032e70533b134ea30c0359886dcdec547134dbdd"; nixvim = { url = "github:nix-community/nixvim"; diff --git a/nix/hosts.nix b/nix/hosts.nix index 03278fd..8544745 100644 --- a/nix/hosts.nix +++ b/nix/hosts.nix @@ -30,7 +30,7 @@ { nixpkgs.config.allowUnfree = true; nixpkgs.overlays = - import ../pkgs/default.nix + (import ../pkgs/default.nix inputs) ++ [ inputs.nix-topology.overlays.default inputs.nixos-extra-modules.overlays.default diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 87b3ef9..2154651 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -25,7 +25,7 @@ inherit system; config.allowUnfree = true; overlays = - import ../pkgs/default.nix + (import ../pkgs/default.nix inputs) ++ [ inputs.nix-topology.overlays.default inputs.nixos-extra-modules.overlays.default diff --git a/pkgs/default.nix b/pkgs/default.nix index 8cc46f8..f66ae5a 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,4 +1,4 @@ -[ +inputs: [ (import ./caddy.nix) (import ./scripts) (_final: prev: { @@ -33,6 +33,8 @@ wrapProgram $out/bin/nvim --add-flags "--clean" ''; }); + gpu-screen-recorder = prev.callPackage "${inputs.nixpkgs-gpu-screen-recorder}/pkgs/applications/video/gpu-screen-recorder/default.nix" {}; + gpu-screen-recorder-gtk = prev.callPackage "${inputs.nixpkgs-gpu-screen-recorder}/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix" {}; #pythonPackagesExtensions = # prev.pythonPackagesExtensions # ++ [ diff --git a/users/myuser/default.nix b/users/myuser/default.nix index 0d9e31e..f2a1c0f 100644 --- a/users/myuser/default.nix +++ b/users/myuser/default.nix @@ -1,4 +1,5 @@ { + inputs, config, lib, pkgs, @@ -65,4 +66,8 @@ in # Autologin services.getty.autologinUser = myuser; + + # Allow screen recorder to access the framebuffer as root + imports = ["${inputs.nixpkgs-gpu-screen-recorder}/nixos/modules/programs/gpu-screen-recorder.nix"]; + programs.gpu-screen-recorder.wrapCapabilities = true; }