config

My configuration files and custom scripts.
git clone https://git.tronto.net/config
Download | Log | Files | Refs

commit e016de2d214752242ebde664091af86ed9cd881c
parent bbb1de5abb5ba94dd0d29d7175f86e6f6d6d188f
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Sat,  4 Jul 2026 21:40:18 +0200

Add new script to spawn ssh session

Diffstat:
M.config/dwm/config.h | 1+
Ascripts/ssh-terminal | 42++++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/.config/dwm/config.h b/.config/dwm/config.h @@ -139,6 +139,7 @@ focusmaster(const Arg *arg) static Key keys[] = { /* modifier key function argument */ { MODKEY, XK_o, spawn, SHCMD("open-file") }, + { MODKEY, XK_i, spawn, SHCMD("ssh-terminal") }, { MODKEY, XK_p, spawn, {.v = dmenucmd} }, { MODKEY, XK_n, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, diff --git a/scripts/ssh-terminal b/scripts/ssh-terminal @@ -0,0 +1,42 @@ +#!/bin/sh + +# Prompts the user to select a known host from $HOME/.ssh/config, +# then connects to it via a configurable client (default: mosh) and +# executes a command on the server (default: tmux). +# Requires: dmenu (or similar), st (or other terminal), an ssh client + +# Usage: ssh-terminal [-m menu] [-s ssh_client] [-e server_cmd] + +menu="dmenu" +terminal="st" +ssh_client="mosh" +server_cmd="tmux" + +usage() { + echo "Usage: ssh-terminal [-m MENU] [-s SSH_CLIENT] [-e SERVER_CMD]" +} + +while getopts "e:m:s:" opt; do + case "$opt" in + e) + server_cmd="$OPTARG" + ;; + m) + menu="$OPTARG" + ;; + s) + ssh_client="$OPTARG" + ;; + *) + usage + exit 1 + ;; + esac +done + +selection=$(grep '^Host' $HOME/.ssh/config | awk '{print $2}' | sort | $menu) +if [ -n "$selection" ]; then + echo "Executing: " + echo $terminal "$ssh_client" "$selection" "$server_cmd" + $terminal "$ssh_client" "$selection" "$server_cmd" +fi