現在、自分を変更する.Xmodmap
ファイルがあります Command に Ctrl、それから私のを変更します Ctrl に Super (私はMacでLinuxを実行しています)。
これは非常にうまく機能します。1回だけ実行すると、連続して実行すると(たとえば、デスクトップ環境(Cinnamon)を再起動すると、.Xmodmap
ファイルが再ロードされます)、基本的に変更を元に戻して設定をリセットします。希望する設定と元の設定を効果的に切り替えます。
設定を1回だけ設定し、その後の実行では元に戻さない.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
Modを適用する前に、マップを元の状態にリセットしてください。完全なリセットには永遠に時間がかかるので、私が思いつくことができる最善の方法は違います。
このコードは.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
(編集:クリーンアップ)
[システム]> [環境設定]> [スタートアップアプリケーション]に移動し、xmodmap ~/.Xmodmap
を追加します。
私はまだあなたが何を望んでいるかについて少し混乱していますが、私はこれを考えています:
これを~/.Xmodmap
に入れると、
clear control
clear mod4
keysym Super_L = Control_L
keysym Control_L = Super_L
add control = Control_L
add control = Control_R
add mod4 = Super_L
add mod4 = Super_R
その後、xmodmap ~/.Xmodmap
が実行されるたびに、左 Ctrl そして、左 ⌘ キースワップ。したがって、最初の呼び出しで、 Ctrl キーはあなたが押したかのように機能します ⌘、ただし、2回目の呼び出しで、 Ctrl もう一度キーを押します。