diff options
Diffstat (limited to 'modules/scripts')
| -rw-r--r-- | modules/scripts/default.nix | 57 | ||||
| -rw-r--r-- | modules/scripts/vpn-connect.sh | 20 |
2 files changed, 50 insertions, 27 deletions
diff --git a/modules/scripts/default.nix b/modules/scripts/default.nix index 3fea3df..68b4000 100644 --- a/modules/scripts/default.nix +++ b/modules/scripts/default.nix @@ -1,39 +1,42 @@ { config, lib, + pkgs, ... }: # Scripts - Home directory shell scripts (deep-clean, screen-recording, system-monitor) +let + mkScript = + name: path: + pkgs.writeShellScriptBin name '' + #!${ + if config.tools.zsh.enable then (lib.getExe config.programs.zsh.package) else "#!/usr/bin/env sh" + } + ${builtins.readFile path} + ''; +in { config = { - home.sessionPath = [ - "${config.home.homeDirectory}/scripts" - ]; + home.packages = [ + # Always included + (mkScript "deep-clean" ./deep-clean.sh) + + # Conditional scripts (requies some tools) + (lib.mkIf (config.tools.ffmpeg.enable && config.tools.slop.enable) ( + mkScript "screen-recording" ./screen-recording.sh + )) - home.file = - let - shellScript = path: { - text = '' - #!${ - if config.tools.zsh.enable then (lib.getExe config.programs.zsh.package) else "#!/usr/bin/env sh" - } - ${builtins.readFile path} - ''; - executable = true; - }; - in - { - "scripts/deep-clean" = shellScript ./deep-clean.sh; - "scripts/screen-recording" = lib.mkIf (config.tools.ffmpeg.enable && config.tools.slop.enable) ( - shellScript ./screen-recording.sh - ); - "scripts/system-monitor" = lib.mkIf ( - config.tools.bottom.enable - && config.tools.nvtop.enable - && config.tools.tmux.enable - && config.tools.kitty.enable - ) (shellScript ./system-monitor.sh); - }; + (lib.mkIf ( + config.tools.bottom.enable + && config.tools.nvtop.enable + && config.tools.tmux.enable + && config.tools.kitty.enable + ) (mkScript "system-monitor" ./system-monitor.sh)) + + (lib.mkIf (config.tools.openvpn.enable && config.tools.fzf.enable) ( + mkScript "vpn-connect" ./vpn-connect.sh + )) + ]; }; } diff --git a/modules/scripts/vpn-connect.sh b/modules/scripts/vpn-connect.sh new file mode 100644 index 0000000..f325e17 --- /dev/null +++ b/modules/scripts/vpn-connect.sh @@ -0,0 +1,20 @@ +# Define directories +CONF_DIR="$HOME/.config/openvpn" +CREDS_DIR="$CONF_DIR/credentials" +SERVERS_DIR="$CONF_DIR/servers" + +# Create directories if they don't exist +mkdir -p "$CREDS_DIR" "$SERVERS_DIR" + +# Select the credential file +CRED=$(find "$CREDS_DIR" -type f | fzf --prompt="Select Credentials > ") +[ -z "$CRED" ] && exit 1 + +# Select the VPN server config +SERVER=$(find "$SERVERS_DIR" -type f \( -name "*.conf" -o -name "*.ovpn" \) | fzf --prompt="Select VPN Server > ") +[ -z "$SERVER" ] && exit 1 + +echo "Connecting to $SERVER using $CRED..." + +# Execute openvpn +sudo openvpn --config "$SERVER" --auth-user-pass "$CRED" |
