summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/dwm/config.h1
-rwxr-xr-xscripts/ssh-terminal42
2 files changed, 43 insertions, 0 deletions
diff --git a/.config/dwm/config.h b/.config/dwm/config.h
index 7a842d6..f618003 100644
--- a/.config/dwm/config.h
+++ b/.config/dwm/config.h
@@ -139,6 +139,7 @@ focusmaster(const Arg *arg)
139static Key keys[] = { 139static Key keys[] = {
140 /* modifier key function argument */ 140 /* modifier key function argument */
141 { MODKEY, XK_o, spawn, SHCMD("open-file") }, 141 { MODKEY, XK_o, spawn, SHCMD("open-file") },
142 { MODKEY, XK_i, spawn, SHCMD("ssh-terminal") },
142 { MODKEY, XK_p, spawn, {.v = dmenucmd} }, 143 { MODKEY, XK_p, spawn, {.v = dmenucmd} },
143 { MODKEY, XK_n, togglebar, {0} }, 144 { MODKEY, XK_n, togglebar, {0} },
144 { MODKEY, XK_j, focusstack, {.i = +1 } }, 145 { MODKEY, XK_j, focusstack, {.i = +1 } },
diff --git a/scripts/ssh-terminal b/scripts/ssh-terminal
new file mode 100755
index 0000000..99a240a
--- /dev/null
+++ b/scripts/ssh-terminal
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3# Prompts the user to select a known host from $HOME/.ssh/config,
4# then connects to it via a configurable client (default: mosh) and
5# executes a command on the server (default: tmux).
6# Requires: dmenu (or similar), st (or other terminal), an ssh client
7
8# Usage: ssh-terminal [-m menu] [-s ssh_client] [-e server_cmd]
9
10menu="dmenu"
11terminal="st"
12ssh_client="mosh"
13server_cmd="tmux"
14
15usage() {
16 echo "Usage: ssh-terminal [-m MENU] [-s SSH_CLIENT] [-e SERVER_CMD]"
17}
18
19while getopts "e:m:s:" opt; do
20 case "$opt" in
21 e)
22 server_cmd="$OPTARG"
23 ;;
24 m)
25 menu="$OPTARG"
26 ;;
27 s)
28 ssh_client="$OPTARG"
29 ;;
30 *)
31 usage
32 exit 1
33 ;;
34 esac
35done
36
37selection=$(grep '^Host' $HOME/.ssh/config | awk '{print $2}' | sort | $menu)
38if [ -n "$selection" ]; then
39 echo "Executing: "
40 echo $terminal "$ssh_client" "$selection" "$server_cmd"
41 $terminal "$ssh_client" "$selection" "$server_cmd"
42fi

Generated with cgit - Back to sebastiano.tronto.net