先のシェルスクリプトを形にしました
zsh
- TOP
- Old Archives
- 先のシェルスクリプトを形にしました
一時キーボード無効
Temporary Disable Keyboard @GitHub
Xinputを使用してデバイスを無効/有効にするためのもの。
主な変更点は次の通り
- 無効化を「時間制」「ダイアログ」「無限」から選択できるようにした
- Zenityダイアログを若干調整
- ランチャー用の
.desktop
ファイルを追加
Zshスクリプトだが、case
内で非常に珍しい;&
(フォールスルーする)を使用している。
ターミナルエミュレータ選択機能
主な変更点は次の通り
- ランチャー用の
.desktop
ファイルを追加 - KDE Service用の
.desktop
ファイルを追加 - Nemo用の
.nemo_action
ファイルを追加 - 対応する端末を大幅に増加
- 利用できない端末を選択肢から除外するように変更
- Zenityダイアログを調整
- 柔軟に端末を追加できるようにファイルマネージャでの起動用の引数対応が連想配列で使用できるように変更
連想配列を使用するための方式は次のようなものだ。
typeset -a termopt=("${=setworkdir[$termcmd[1]]}")
typeset -i dirpos=${termopt[(i)*<DIR>*]}
if $dirpos > ${#termopt}
then
exit 2
else
termopt[$dirpos]="${termopt[$dirpos]/<DIR>/$1}"
fi
termcmd+=("${termopt[@]}")
わざわざ連想配列をテンプレート文字列とし、そこから配列に変換している理由は
- 連想配列に格納できるのは文字列のみ
- 置き換えしてからでは
DIR
がIFSを含む可能性がある