From 6cb26020c099c13d770121d346b4685f445f96d6 Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Fri, 7 Jan 2022 19:14:21 +0100 Subject: [PATCH] Add simple project launcher --- modules/default.nix | 1 + modules/desktop/default.nix | 2 ++ modules/project-manager/default.nix | 26 ++++++++++++++++++++++++++ modules/project-manager/launcher | 11 +++++++++++ modules/sway/config.nix | 11 ++++++----- 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 modules/project-manager/default.nix create mode 100755 modules/project-manager/launcher diff --git a/modules/default.nix b/modules/default.nix index 3a3096c..d89a940 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -6,6 +6,7 @@ ./desktop ./desktop/launcher.nix ./sway + ./project-manager ./dotfiles.nix ./he-dns.nix ./kea.nix diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 0983e23..042bce1 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -21,6 +21,8 @@ in config = mkIf cfg.enable { queezle.terminal.enable = true; + queezle.project-manager.enable = true; + home-manager.users."${cfg.user}".xdg = { configFile."foot/foot.ini" = { source = import ./config/foot.nix inputs; diff --git a/modules/project-manager/default.nix b/modules/project-manager/default.nix new file mode 100644 index 0000000..1de8f28 --- /dev/null +++ b/modules/project-manager/default.nix @@ -0,0 +1,26 @@ +{ lib, pkgs, ... }: +with lib; + +let + project-launcher = pkgs.writeScriptBin "project-launcher" '' + #!/usr/bin/env zsh + + set -euo pipefail + + projects=$(jq --raw-output '.projects | keys | .[]' ~/dev/projects.json) + + project=$(dmenu <<<$projects) + + projectpath=$(jq --raw-output ".projects[\"$project\"].path" ~/dev/projects.json) + + terminal --working-directory $projectpath + ''; +in { + options = { + queezle.project-manager.enable = mkEnableOption "queezles project manager"; + }; + + config = { + environment.systemPackages = [ project-launcher ]; + }; +} diff --git a/modules/project-manager/launcher b/modules/project-manager/launcher new file mode 100755 index 0000000..ff3b571 --- /dev/null +++ b/modules/project-manager/launcher @@ -0,0 +1,11 @@ +#!/usr/bin/env zsh + +set -euo pipefail + +projects=$(jq --raw-output '.projects | keys | .[]' ~/dev/projects.json) + +project=$(dmenu <<<$projects) + +projectpath=$(jq --raw-output ".projects[\"$project\"].path" ~/dev/projects.json) + +terminal --working-directory $projectpath diff --git a/modules/sway/config.nix b/modules/sway/config.nix index c6608ee..951e38a 100644 --- a/modules/sway/config.nix +++ b/modules/sway/config.nix @@ -235,18 +235,19 @@ bindsym $mod+Alt+Return exec $terminal2 # start program launcher bindsym $mod+Tab exec launcher -#bindsym $mod+Tab exec rofi -show drun -#bindsym $mod+Mod1+Tab exec rofi -show run + +# start project launcher +bindsym $mod+p exec project-launcher # start an edi shell #bindsym $mod+o exec cool-retro-term --fullscreen --profile "Default Amber" -e run/edi/edish/edish -bindsym $mod+o exec cool-retro-term --fullscreen --profile "Default Amber" -e ssh edi +#bindsym $mod+o exec cool-retro-term --fullscreen --profile "Default Amber" -e ssh edi # start a python terminal -bindsym $mod+p exec $terminal python +#bindsym $mod+p exec $terminal python # start an haskel ghci terminal (TODO) -bindsym $mod+Shift+p exec $terminal stack ghci --verbosity warning +#bindsym $mod+Shift+p exec $terminal stack ghci --verbosity warning # start a browser bindsym $mod+b exec "chromium --enable-features=WebRTCPipeWireCapturer --force-dark-mode" -- GitLab