vte.shは私のgnome-terminalディレクトリを新しいタブに保持しません。

vte.shは私のgnome-terminalディレクトリを新しいタブに保持しません。

私はgnome-terminalで新しいタブを開くときに作業ディレクトリを維持しようとしましたが、この機能を再度インポートしたいと思います。私の研究/etc/profile.d/vte.shでは、私のソーシング(Zシェルを使用)を指摘しましたが、~/.zshrc問題は変わらず、新しいタブがまだそこにありました~

この機能をどのように復元できますか?必要に応じて、これは汚れたハッキン​​グになる可能性があります。

私のバージョン

~$ uname -a
Linux konradslaptop2 3.17.2-1-ARCH #1 SMP PREEMPT Thu Oct 30 20:49:39 CET 2014 x86_64 GNU/Linux
~$ gnome-terminal --version
GNOME-Terminal 3.14.2
~$ zsh --version
zsh 5.0.7 (x86_64-unknown-linux-gnu)

私の~/.zshrc(最小の例)

. /etc/profile.d/vte.sh
# auto generated by .zsh installation
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then       
    function zle-line-init () {
        printf '%s' "${terminfo[smkx]}"
    }
    function zle-line-finish () {
        printf '%s' "${terminfo[rmkx]}"
    }
    zle -N zle-line-init
    zle -N zle-line-finish
fi

ベストアンサー1

~/.zshrc非常に簡単な回避策は、作業ディレクトリを覚えてzshが開かれたときにそれを変更する関数をファイルに含めることです。

cd $(<>/dev/shm/$USER-pwd)

__cd(){
    \cd "$@"
    pwd >/dev/shm/$USER-pwd
}
alias cd=__cd

私たちは使用/dev/shm変える/tmpディスクの書き込みを防ぐために/tmpもう一つかもしれない一時ファイルシステムあなたのシステムから。\cd避けるために使用されるフォーク爆弾

gnome-terminalでのみこの機能を使用するには、ifステートメントを含む現在の端末またはアクティブウィンドウを確認できます。また、他のユーザーが最後のディレクトリが何であるかを知っている可能性がある場合は、権限を変更できます$USER-pwdchmod

if xprop -id $(xprop -root 32x ' $0' _NET_ACTIVE_WINDOW | awk '{print $NF}') WM_CLASS | grep -q gnome-terminal; then
    cd    $(<>/dev/shm/$USER-pwd)
    chmod 600 /dev/shm/$USER-pwd

    __cd(){
        \cd "$@"
        pwd >/dev/shm/$USER-pwd
    }
    alias cd=__cd
fi

おすすめ記事