Yanıtlar:
xmodmap
eski; bu yüzden gerçekten xkb
araçlar ile yapılmalıdır .
İstediğiniz takas, varsayılan wth X11 dosyaları tarafından dahil edilmemiş gibi görünüyor; bu yüzden kendiniz yazmak zorundasınız.
Http://madduck.net/docs/extending-xkb/ sayfası , anlamamı ve bunu yapmanın bir yolunu bulmama yardımcı oldu.
Çıktısını ~/.xkb/keymap/mykbd
koyduğunuz bir dosya oluşturun setxkbmap
, temel klavye tanımınız olacaktır; Örneğin:
setxkbmap -print > ~/.xkb/keymap/mykbd
ardından anahtar değişiminizi tanımlamak için bir semboller dosyası oluşturun, örneğin ~/.xkb/symbols/myswap
orada, aşağıdaki satırları koyun:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
ardından ~/.xkb/keymap/mykbd
dosyayı düzenleyin ve xkb_symbols
eklenecek satırı değiştirin
+myswap(swap_l_shift_ctrl)
son olarak, ile yükleyebilirsiniz xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
( -I
parametre için "~" kullanamazsınız ). Muhtemelen bazı nadir anahtarlar için tanımlanmamış semboller hakkında çok sayıda uyarı verecektir, ancak bunları yok sayabilirsiniz (örneğin, hatayı dave'ye yönlendirin:) 2> /dev/null
.
Normal ve ters ctrl / shift'leriniz arasında kolayca geçiş yapmak istiyorsanız; sadece ~/.xkb/keymap/
ekstra "myswap" seçeneği olmadan başka bir dosya altında oluşturun ve ile yükleyin xkbcomp
. Bunları yüklemek için iki küçük komut dosyası oluşturabilirsiniz.
xkbcomp $DISPLAY some.dump
IBus'u çağırmadan önce ve önce deneyin ve iki dökümün bir farkını yapın (bunlar tam klavye tanımıdır); muhtemelen farklılıklar göreceksiniz.
setxkbmap -option caps:escape
çalıştığına dikkat edin . IBus, değiştirilen Esc ve Caps_Lock tuşlarını hatırladı Ancak, değiştirilen Sol Shift ve Sol Kontrol tuşları için yapmaz.
Ben haritalama bazı sorunlarla karşılaştıysanız LALT
için Control_L
kullanan Pablo'nun çözümünü , bu ayarlamak gerekmez göründüğü modifier_map
sıra seçenekleri.
Bir şablondan /usr/share/X11/xkb/symbols/altwin
- ara - kopyaladım xkb_symbols "ctrl_alt_win"
ve aşağıdaki değişiklikleri ayarlamak için değiştirdim:
Son ~/.xkb/symbols/myswap
dosya:
partial modifier_keys
xkb_symbols "swap" {
key <MENU> { [ Super_L ] };
key <LALT> { [ Control_L, Control_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Alt_R, Meta_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <LCTL> { [ Control_L ] };
key <RCTL> { [ Control_R ] };
modifier_map Control { <LALT>, <LCTL>, <RCTL> };
modifier_map Mod1 { <LWIN>, <RALT> };
modifier_map Mod4 { <MENU> };
};
Ayrıca yeni bir kabuk açarken uyarı çıkışını önlemek -w0
için xkbcomp
komuta ekledim .
xkbcomp -w0 -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY
** Mac ve Linux arasında çok fazla geçiş yaparken, kas hafızamın Mac klavyesine yaklaşmak için Linux'ta iki kontrol tuşum olmasını seviyorum.