ZSH PS1アップデート/キープロンプト

ZSH PS1アップデート/キープロンプト

私のZSHプロンプトの一部はCaps Lockインジケータです。

function Capslock(){
    x=$(xset -q | grep Caps) 2> /dev/null || exit 0
    x=${x:22:1}
    if [[ $x == "n" ]]; then

        echo ""
    fi
}
POWERLEVEL9K_CUSTOM_CAPS="Capslock"
POWERLEVEL9K_CUSTOM_CAPS_BACKGROUND="red"
POWERLEVEL9K_CUSTOM_CAPS_FOREGROUND="white"

この問題に必要かどうかはわかりませんが、POWERLEVEL9kテーマでoh-my-zshを使用していることがわかります。

Caps Lockボタンを押したときにプロンプ​​トを再描画したいと思います。可能ですか?

編集する:

ご回答ありがとうございます。どちらも機能します。私は両方の答えを受け入れる正しい方法を探しています。

ベストアンサー1

GNU / Linuxの場合は、ファイルのXセッションでインストールして実行できxbindkeysます~/.xbindkeysrc

"echo . > ~/.caps"
  Caps_Lock

次に〜/.zshrcから:

exec {CAPS_MONITOR}< <(tail -f ~/.caps 2> /dev/null)
caps-monitor() {
  if
    read <&$CAPS_MONITOR # consume the input
  then
    zle -R # redraw the prompt
    #zle -M "CapsLock pressed [$((++n))]" # uncomment to verify it works
  else
    zle -M "CapsLock handler dysfunctional, stopping the monitoring"
    zle -F $CAPS_MONITOR
  fi
}
zle -N caps-monitor
zle -wF $CAPS_MONITOR caps-monitor

おすすめ記事