現在私はmyを次に.Xmodmap
変更するファイルを持っています(私はMacでLinuxを実行しています)。CommandCtrlCtrlSuper
うまく動作し、一度だけ実行すると(たとえば、デスクトップ環境(Cinnamon)を再起動するとファイルが再ロードされます.Xmodmap
)、デフォルトで変更を元に戻して設定をリセットします。希望の設定と元の設定を効果的に切り替えます。
.Xmodmap
設定を一度だけ設定し、連続実行時に再度変更しないファイルを作成するにはどうすればよいですか?これは私の既存の.Xmodmap
ファイルです。
clear control
clear mod4
keycode 105 =
keycode 206 =
keycode 133 = Control_L NoSymbol Control_L
keycode 134 = Control_R NoSymbol Control_R
keycode 37 = Super_L NoSymbol Super_L
add control = Control_L
add control = Control_R
ベストアンサー1
モードを適用する前に、地図を元の状態にリセットしてください。完全にリセットするには時間がかかるので、私が考えることができる最善は差別化です。
このコードは、存在しない.Xmodmap{.orig,.reset,.mods}
ケースを使用して.orig
現在の状態に設定し、.reset
現在の場所からその状態を復元することを計算します。申請する前に.mods
。
#!/bin/sh
# file xmodmap-reset
# rm ~/.Xmodmap.orig
# beforehand to take current setup as baseline for Xmodmap.mods changes
stem=~/.Xmodmap
orig=${stem}.orig
reset=${stem}.reset
mods=${stem}.mods
# implement -pme like -pke
#
xmodmap-pme () {
xmodmap -pm \
| sed '
1d
/ [^ ]/!d
s/^[^ ][^ ]*/clear &\nadd & =/
s/([^ ]*//g
'
}
# save baseline if none atm
test -a $orig || {
xmodmap -pke
xmodmap-pme
} > $orig
# payload, diff for commands to reset to baseline from current
{
xmodmap -pke
xmodmap-pme
} \
| {
diff -u0 $orig - \
| sed -n '
1,/^@@/d
s/^[^+]clear/clear/p
s/^-//p
'
} > $reset
xmodmap $reset
# finally ready to apply the mods
test -a $mods && xmodmap $mods
(編集:まとめ)