I'm trying to set my tmux window's title to be the current directory that I am in. Now pane_current_path is perfect for this, but it prints the full path in my machine.

Is it possible to run pane_current_path though some formatting and only print out the current directory?

Currently using it like this

setw -g window-status-current-format "#{pane_current_path}"
setw -g window-status-format "#{pane_current_path}"

Tmux man page, under FORMATS section says:

The b: and d: prefixes are basename(3) and dirname(3) of the variable respectively.

Following option should effectively change window's title to basename of current directory:

setw -g automatic-rename-format "#{b:pane_current_path}"

|improve this answer|||||

(Inspired by https://stackoverflow.com/a/32426739 and https://stackoverflow.com/a/9757133)

This can be done if your shell has a 'precmd' hook (bash and zsh do); this hook would be setting tmux's pane title via escape sequence, and you'd use #{pane_title} instead of #{pane_current_path}. For bash, add something like this to ~/.bashrc:

[[ -n "$TMUX" ]] && PROMPT_COMMAND='echo -n -e "\e]2;${PWD##*/}\e\\"'
|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.