]> git.sev.monster Git - dotfiles.git/blame - etc/zsh/.zlogout
vimrc: fix modeline aucmd
[dotfiles.git] / etc / zsh / .zlogout
CommitLineData
6d54344e 1### cleanup
2# XXX: since .zlogout isn't guaranteed to have been run in the same shell as
3# our .zprofile was (since we source it in .zshenv for SHLVL=1 among other
4# situations) we are not guaranteed to clean up our current session's tmp,
5# but it should be cleared out on next session launch
6_sev_zcleanup
7## unset vars that use our tmp since above will remove them
e69caf64 8[[ XDG_CACHE_HOME = $_sev_tmp/.xdg.cache ]] && unset XDG_CACHE_DIR
9[[ XDG_RUNTIME_DIR = $TMPDIR/.xdg.runtime ]] && unset XDG_RUNTIME_DIR
6d54344e 10## clean up any remaining sockets from gpg forwarding
e69caf64 11[[ -v _GNUPG_SOCK_DEST_BASE ]] && rm -f $_GNUPG_SOCK_DEST_BASE*(=N)
79d4a356 12
b484bab8 13## manually reset terminal for interactive logout
833b2af3 14if [[ -o interactive ]] {
b484bab8 15 # send xterm scrollback clear extension just in case:
16 # - TERM may not be set correctly
17 # - terminfo/termcap database entry for reset may be buggy
294ed44e 18 echo -en '\e[3J'
b484bab8 19 # use terminfo/termcap directly instead of relying on system clear/reset:
20 # - often they are just wrappers for ncurses tput or other tools
21 # - they may not even exist on lightweight systems
22 # - provided scripts/binaries may be buggy or broken
b8a33b95 23 y=1
24 if [[ -v terminfo ]] {
25 for x (rs1 rs2 rs3) {
26 [[ -v terminfo[$x] ]] || continue
27 echoti $x
28 y=0
29 }
b484bab8 30 }
b8a33b95 31 if { (( y )) && -v termcap ]] } {
b484bab8 32 for x (rs r1 r2 r3) {
33 [[ -v termcap[$x] ]] || continue
34 echotc $x
b8a33b95 35 y=0
b484bab8 36 }
37 }
b8a33b95 38 if (( y )) {
b484bab8 39 # fallback, send ECMA-48 clear
294ed44e 40 echo -en '\e[2J'
b484bab8 41 }
833b2af3 42 echo logout
833b2af3 43}
8eb81f95 44
45### load site-specific
4ced48ed 46load-site-dotfile zlogout
This page took 0.0896 seconds and 4 git commands to generate.