From 6d9616f9bb09e01eaa7ccc159003be63ed241367 Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Mon, 8 Mar 2021 16:43:18 +0100 Subject: [PATCH] Fix terminal titles --- home-manager/roles/default.nix | 2 ++ home-manager/roles/neovim/vimrc | 1 + home-manager/roles/zsh/default.nix | 9 ++++++++ home-manager/roles/zsh/zshrc | 35 ++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) diff --git a/home-manager/roles/default.nix b/home-manager/roles/default.nix index 49ff5ab7..f4e843db 100644 --- a/home-manager/roles/default.nix +++ b/home-manager/roles/default.nix @@ -25,6 +25,8 @@ extraConfig = '' set -g set-titles on set -g status off + set -g set-titles-string '#T - #W - tmux @ #h' + set -g allow-rename on ''; }; password-store = { diff --git a/home-manager/roles/neovim/vimrc b/home-manager/roles/neovim/vimrc index 9b24eb8f..546513d6 100644 --- a/home-manager/roles/neovim/vimrc +++ b/home-manager/roles/neovim/vimrc @@ -21,6 +21,7 @@ set laststatus=2 set incsearch set mouse= set showcmd +set title set backupdir=~/.vimbackupfiles/ set undodir=~/.vimhist/ diff --git a/home-manager/roles/zsh/default.nix b/home-manager/roles/zsh/default.nix index b729e47c..3a77409c 100644 --- a/home-manager/roles/zsh/default.nix +++ b/home-manager/roles/zsh/default.nix @@ -17,6 +17,15 @@ plugins = [ "colored-man-pages" ]; }; plugins = [ + #{ + #name = "titles"; + #src = pkgs.fetchFromGitHub { + #owner = "jreese"; + #repo = "zsh-titles"; + #rev = "b7d46d7"; + #sha256 = "0rca9a22vz11pnkks5vlspfnmd3m1s38hz901gvgfa39ch3va9ad"; + #}; + #} { name = "auto-notify"; src = pkgs.fetchFromGitHub { diff --git a/home-manager/roles/zsh/zshrc b/home-manager/roles/zsh/zshrc index 3df02bcb..f9800195 100644 --- a/home-manager/roles/zsh/zshrc +++ b/home-manager/roles/zsh/zshrc @@ -6,6 +6,41 @@ if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then fi mkdir -p /var/run/user/$UID/tmp/downloads +function title { + emulate -L zsh + setopt prompt_subst + + [[ "$INSIDE_EMACS" == *term* ]] && return + + # if $2 is unset use $1 as default + # if it is set and empty, leave it as is + : ${2=$1} + + case "$TERM" in + cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*) + print -Pn "\e]2;${2:q}\a" # set window name + print -Pn "\e]1;${1:q}\a" # set tab name + ;; + screen*|tmux*) + printf '\033]2;%s\033\\' "`print -Pn "${1:q}"`" + ;; + *) + if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then + print -Pn "\e]2;${2:q}\a" # set window name + print -Pn "\e]1;${1:q}\a" # set tab name + else + # Try to use terminfo to set the title + # If the feature is available set title + if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then + echoti tsl + print -Pn "$1" + echoti fsl + fi + fi + ;; + esac +} + setopt prompt_subst autoload -U colors && colors # Enable colors in prompt