diff options
author | Adrian Kummerlaender | 2019-02-24 21:45:28 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2019-02-24 21:45:28 +0100 |
commit | 52b136997fbe7243f508522bf0239932be80deb8 (patch) | |
tree | 9190e7c504d714f02c845b7256da71d81e97523a /module | |
parent | 224ac2ea3e7585bc732397b9bf39a8e0fd24fbc3 (diff) | |
download | nixos_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.nix | 59 |
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; +} |