aboutsummaryrefslogtreecommitdiff
path: root/gui/pkgs/tasker.nix
blob: bc87ee9151e0f13548d106b59f00d1fff48f762c (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
{ pkgs, tasks, ... }:

pkgs.lib.mapAttrsToList (name: conf: let
  command = pkgs.writeTextFile {
    name        = "tasker_cmd_" + name;
    executable  = true;
    destination = "/bin/tasker_cmd_" + name;
    text = pkgs.lib.attrByPath [ conf.type ] "" {
      terminal = ''
        #!/bin/sh
        exec ${pkgs.kitty}/bin/kitty -d ${conf.directory} ${conf.command}
      '';
      launcher = ''
        #!/bin/sh
        pushd ${conf.directory}
          exec ${conf.command}
        popd
      '';
    };
  };
  shortcut = pkgs.writeTextFile {
    name        = "tasker_shortcut_" + name;
    executable  = false;
    destination = "/share/applications/tasker_shortcut_" + name + ".desktop";
    text = ''
      [Desktop Entry]
      Type=Application
      Name=${conf.description}
      GenericName=Tasker
      Exec=${command}/bin/tasker_cmd_${name}
      Terminal=false
    '';
  };
in pkgs.symlinkJoin {
  name = "tasker_task_" + name;
  paths = [ shortcut ];
}) tasks