aboutsummaryrefslogtreecommitdiffstats
path: root/modules/media/screen-recording/default.nix
blob: 7a68f086bcdc865349c2bf0a3957c5272f17e537 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Screen recording script using wf-recorder and slurp
{
  config,
  lib,
  pkgs,
  ...
}:
let
  inherit ((import ../../lib/script.nix { inherit lib pkgs; })) mkScriptModule;
  script = mkScriptModule {
    scope = [ "media" ];
    name = "screen-recording";
    path = ./screen-recording.sh;
    description = "Screen recording script using wf-recorder and slurp for region selection\nRecords Wayland screen to MP4\nUsage: screen-recording.sh [-s|--select]\n  -s, --select  Launch slurp to select recording region";
    deps = [
      pkgs.bash
      config.media.slurp.package
      config.media.wf-recorder.package
    ];
    completion.zsh = builtins.readFile ./screen-recording.zsh;
    desktop = {
      enable = true;
      displayName = "Screen Recording";
      icon = "obs";
    };
    inherit config;
  };
in
{
  options = script.options;
  config = lib.mkMerge [
    script.config
    {
      assertions = import ./assertions.nix { inherit config lib; };
      home.file.".local/share/icons/hicolor/scalable/apps/obs.svg" = {
        source = ../../../assets/icons/obs.svg;
      };
    }
  ];
}