Setting Konsole title to $USER@$HOSTNAME

First: Settings -> Configure Konsole -> General -> Show window title on the titlebar (checked)

Then: System -> Configure Konsole -> Profiles -> [Default] -> Edit… -> Tabs:

  • Tab title format: %w
  • Remote table title format: %w

Then you need this config and these two shell functions in your .bashrc:

# 2023-12-29 jj5 - if not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# 2023-12-29 jj5 - set the Konsole window title
echo -ne "\033]2;$USER@$HOSTNAME\007" >&2

# 2023-12-29 jj5 - intercept ssh and sudo commands to reset window title on exit:
ssh() {
    /usr/bin/ssh "$@"
    echo -ne "\033]2;$USER@$HOSTNAME\007" >&2
}
sudo() {
    /usr/bin/sudo "$@"
    echo -ne "\033]2;$USER@$HOSTNAME\007" >&2
}

Entering SSH passphrase once in a KDE Pulse session

If you want KDE to remember your SSH key’s passphrase for your whole desktop session you can create a ~/.config/autostart/ssh-add.desktop file like this:

[Desktop Entry]
Type=Application
Name=ssh-add
Comment=Adds my private key to my session.
Exec=/usr/bin/konsole -e 'ssh-add /home/$USER/.ssh/id_rsa'

Making SSH client use line buffered stream

So I found out about stdbuf. To get it:

# apt-get install coreutils

If you want your ssh client to use line-buffered streams use -t -t.

So I ended up with:

# su -c "stdbuf -oL ssh -t -t /usr/bin/tail -f /var/input.log | stdbuf -oL tr -c '\\11\\12\\15\\40-\\176" myuser \
  | tee -a /tmp/input.log \
  | grep --line-buffered -v "...ignore..." \
  >> /tmp/output.log

Holy command-line Batman!