aboutsummaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-02-24 21:45:28 +0100
committerAdrian Kummerlaender2019-02-24 21:45:28 +0100
commit52b136997fbe7243f508522bf0239932be80deb8 (patch)
tree9190e7c504d714f02c845b7256da71d81e97523a /module
parent224ac2ea3e7585bc732397b9bf39a8e0fd24fbc3 (diff)
downloadnixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar.gz
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar.bz2
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar.lz
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar.xz
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.tar.zst
nixos_home-52b136997fbe7243f508522bf0239932be80deb8.zip
Move Tasker into module folder
Diffstat (limited to 'module')
-rw-r--r--module/tasker.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/module/tasker.nix b/module/tasker.nix
new file mode 100644
index 0000000..8b51d94
--- /dev/null
+++ b/module/tasker.nix
@@ -0,0 +1,59 @@
+{ pkgs, config, ... }:
+
+let
+ taskivations = 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 ] "" {
+ launcher = ''
+ #!/bin/sh
+ pushd ${conf.directory}
+ exec ${conf.command}
+ popd
+ '';
+ terminal = ''
+ #!/bin/sh
+ exec ${pkgs.kitty}/bin/kitty -d ${conf.directory} ${conf.command}
+ '';
+ local-shell = ''
+ #!/bin/sh
+ exec ${pkgs.kitty}/bin/kitty -d ${conf.directory} nix-shell --command fish
+ '';
+ local-editor = ''
+ #!/bin/sh
+ pushd ${conf.directory}
+ exec nix-shell --run 'nvim-qt --no-ext-tabline'
+ popd
+ '';
+ environment = ''
+ #!/bin/sh
+ exec ${pkgs.kitty}/bin/kitty -d ${conf.directory} nix-shell \
+ ${builtins.unsafeDiscardStringContext conf.environment.drvPath} --command fish
+ '';
+ };
+ };
+
+ 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 ];
+ }) config.custom.tasks;
+
+in {
+ home.packages = taskivations;
+}