1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 18:39:26 +00:00

Compare commits

..

4 Commits

Author SHA1 Message Date
5590b56a87 Improve terminal titling
Multiplexer titles can be set independent of window and tab titles.
2014-10-10 22:15:54 -04:00
adaa029a1b Only set default zstyle when not set previously 2014-10-10 22:15:54 -04:00
141bfd8c1e Support auto titling within terminal multiplexers 2014-10-10 22:15:54 -04:00
b5bcc89ae6 Choose title for terminal multiplexers 2014-10-10 22:15:54 -04:00
5 changed files with 40 additions and 30 deletions

View File

@ -6,13 +6,9 @@
# Zeh Rizzatti <zehrizzatti@gmail.com> # Zeh Rizzatti <zehrizzatti@gmail.com>
# #
# Load manually installed NVM into the shell session. # Load NVM into the shell session.
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
source "$HOME/.nvm/nvm.sh" source "$HOME/.nvm/nvm.sh"
# Load package manager installed NVM into the shell session.
elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2>/dev/null)" ]]; then
source $(brew --prefix nvm)/nvm.sh
fi fi
# Return if requirements are not found. # Return if requirements are not found.

View File

@ -16,14 +16,10 @@ fi
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system' _rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system'
if grep -q 'xattrs' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --acls --xattrs"
fi
# Mac OS X and HFS+ Enhancements # Mac OS X and HFS+ Enhancements
# http://help.bombich.com/kb/overview/credits#opensource # http://help.bombich.com/kb/overview/credits#opensource
if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change" _rsync_cmd="${_rsync_cmd} --crtimes --acls --xattrs --fileflags --protect-decmpfs --force-change"
fi fi
alias rsync-copy="${_rsync_cmd}" alias rsync-copy="${_rsync_cmd}"

View File

@ -13,14 +13,19 @@ directory, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal' auto-title 'yes' zstyle ':prezto:module:terminal' auto-title 'yes'
Auto titling is disabled inside terminal multiplexers, except inside dvtm, since Auto titling is disabled inside terminal multiplexers (except inside dvtm)
it interferes with window names defined in configuration files and profile since it interferes with window names defined in configuration files and
managers. profile managers. This can be overridden by setting it to `always`.
zstyle ':prezto:module:terminal' auto-title 'always'
### Title formats
To format terminal window and tab titles, add the following to *zpreztorc*: To format terminal window and tab titles, add the following to *zpreztorc*:
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s' zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
zstyle ':prezto:module:terminal:tab-title' format '%m: %s' zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
`%s` will be replaced with the current working directory path or the currently `%s` will be replaced with the current working directory path or the currently
executing program name. executing program name.
@ -31,7 +36,8 @@ Functions
--------- ---------
- `set-tab-title` sets the terminal tab title. - `set-tab-title` sets the terminal tab title.
- `set-window-title` sets the terminal or terminal multiplexer window title. - `set-window-title` sets the terminal window title.
- `set-multiplexer-title` sets the terminal multiplexer title.
Authors Authors
------- -------
@ -39,6 +45,7 @@ Authors
*The authors of this module should be contacted via the [issue tracker][2].* *The authors of this module should be contacted via the [issue tracker][2].*
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Olaf Conradi](https://github.com/oohlaf)
[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -3,6 +3,7 @@
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Olaf Conradi <olaf@conradi.org>
# #
# Return if requirements are not found. # Return if requirements are not found.
@ -10,19 +11,12 @@ if [[ "$TERM" == (dumb|linux|*bsd*) ]]; then
return 1 return 1
fi fi
# Sets the terminal or terminal multiplexer window title. # Sets the terminal window title.
function set-window-title { function set-window-title {
local title_format{,ted} local title_format{,ted}
zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s" zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv" zformat -f title_formatted "$title_format" "s:$argv"
printf '\e]2;%s\a' "${(V%)title_formatted}"
if [[ "$TERM" == screen* ]]; then
title_format="\ek%s\e\\"
else
title_format="\e]2;%s\a"
fi
printf "$title_format" "${(V%)title_formatted}"
} }
# Sets the terminal tab title. # Sets the terminal tab title.
@ -30,8 +24,15 @@ function set-tab-title {
local title_format{,ted} local title_format{,ted}
zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s" zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv" zformat -f title_formatted "$title_format" "s:$argv"
printf '\e]1;%s\a' "${(V%)title_formatted}"
}
printf "\e]1;%s\a" ${(V%)title_formatted} # Sets the terminal multiplexer tab title.
function set-multiplexer-title {
local title_format{,ted}
zstyle -s ':prezto:module:terminal:multiplexer-title' format 'title_format' || title_format="%s"
zformat -f title_formatted "$title_format" "s:$argv"
printf '\ek%s\e\\' "${(V%)title_formatted}"
} }
# Sets the tab and window titles with a given command. # Sets the tab and window titles with a given command.
@ -59,8 +60,11 @@ function _terminal-set-titles-with-command {
local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}" local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}"
unset MATCH unset MATCH
set-window-title "$cmd" if [[ "$TERM" == screen* ]]; then
set-multiplexer-title "$truncated_cmd"
fi
set-tab-title "$truncated_cmd" set-tab-title "$truncated_cmd"
set-window-title "$cmd"
fi fi
} }
@ -74,8 +78,11 @@ function _terminal-set-titles-with-path {
local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}"
unset MATCH unset MATCH
set-window-title "$abbreviated_path" if [[ "$TERM" == screen* ]]; then
set-multiplexer-title "$truncated_path"
fi
set-tab-title "$truncated_path" set-tab-title "$truncated_path"
set-window-title "$abbreviated_path"
} }
# Do not override precmd/preexec; append to the hook array. # Do not override precmd/preexec; append to the hook array.
@ -110,12 +117,13 @@ then
fi fi
# Set up non-Apple terminals. # Set up non-Apple terminals.
if zstyle -t ':prezto:module:terminal' auto-title \ if zstyle -t ':prezto:module:terminal' auto-title 'always' \
&& ( ! [[ -n "$STY" || -n "$TMUX" ]] ) || (zstyle -t ':prezto:module:terminal' auto-title \
&& ( ! [[ -n "$STY" || -n "$TMUX" ]] ))
then then
# Sets the tab and window titles before the prompt is displayed. # Sets titles before the prompt is displayed.
add-zsh-hook precmd _terminal-set-titles-with-path add-zsh-hook precmd _terminal-set-titles-with-path
# Sets the tab and window titles before command execution. # Sets titles before command execution.
add-zsh-hook preexec _terminal-set-titles-with-command add-zsh-hook preexec _terminal-set-titles-with-command
fi fi

View File

@ -143,6 +143,9 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# Set the tab title format. # Set the tab title format.
# zstyle ':prezto:module:terminal:tab-title' format '%m: %s' # zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
# Set the terminal multiplexer title format.
# zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
# #
# Tmux # Tmux
# #