Tüm uygulamalar için anahtarları yeniden eşlemek istediğinizden en iyi seçenek xmodmap kullanmaktır. Esnek ve çok güçlüdür, ancak birkaç komutu bir terminale yazmayı içerir.
Adım 0 - Yaklaşım
X sunucusu klavyeyi ve tüm önemli olayları yönetir ve bunu tüm uygulamalar için anahtar kodlara dönüştürür.
Yaklaşım, bir modifiye edici anahtarı (Süper veya Sağ Alt tuşu gibi) "mod anahtarı" tuşu olarak eşlemek ve X sunucusuna, Mod tuşu basılıyken bir tuşa basılıp basılmamasına bağlı olarak farklı kodlar üretmesini söylemek olacaktır.
Varsayılan olarak mod değiştirme anahtarı tanımlanmamıştır ve mod anahtarlı veya mod anahtarsız basıldığında tüm tuşlar aynı kodu üretecek şekilde yapılandırılır. Bu iyidir, çünkü bu açıkça geçersiz kıldığınız tuşlar dışında başka hiçbir tuşun farklı davranmayacağı veya ek yapılandırmaya ihtiyacı olmayacağı anlamına gelir.
Ancak, bazı compiz eklentileri süper anahtar kısayollarını (örn., Pencere seçici, vites değiştirici vb. Eğer klavye ile compiz kontrol meraklı değilseniz o zaman Süper gayet iyi.
Xmodmap için süper anahtarlar Super_L veya Super_R olarak tanımlanır. Mod değiştirme tuşu olarak kullanmak için bir tane seçmeniz gerekir. Alternatif olarak, sağ alt tuşu Alt_R'dir. Xev komutunu çalıştırarak ve klavyenizdeki gerekli tuşlara basarak bunları onaylayabilirsiniz. Adımlar için bu gönderiye bakın .
Adım 1 - Değiştirici haritasını ayarlama
Bir terminal ( Applications -> Accesories -> Terminal
) açın ve geçerli tuş bağlantılarına sahip bir dosya oluşturmak için aşağıdaki komutu çalıştırın . Bunu başlangıç noktası olarak kullanacağız.
xmodmap -pke > curkeys.map
xmodmap -pm >> curkeys.map
Bunu favori metin düzenleyicinizde açın. gedit curkeys.map &
gedit'te açar. Dosyanın sonuna doğru, aşağıdaki gibi bazı satırlar göreceksiniz:
keycode 253 =
keycode 254 =
keycode 255 =
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
"Xmodmap: en fazla 4 ..." ile başlayan satırı sil
Değiştirici haritasını şu şekilde görünecek şekilde düzenleyin. Her satırın başına "add" kelimesini koyun ve değiştirici adından sonra "=" yazın. Ardından parantez ve virgüldeki kodları kaldırın. Ayrıca ben taşındı unutmayın Mode_switch
gelen mod5
hat mod3
boştu beri çizgi. Değiştirilen tablo şöyle görünmelidir - gerçek içerik sizin durumunuzda aşağıdakilerden biraz farklı olacaktır (klavye düzeninize bağlıdır).
add shift = Shift_L Shift_R
add lock = Caps_Lock
add control = Control_L Control_R
add mod1 = Alt_L Meta_L Alt_R
add mod2 = Num_Lock
add mod3 = Mode_switch
add mod4 = Super_L Super_R Super_L Hyper_L
add mod5 = ISO_Level3_Shift
Fiziksel mod değiştirme anahtarını yeniden eşleyin. Sonuna böyle bir satır ekleyin (Super_L yerine Super_R veya Alt_R yazın).
keysym Super_L = Mode_switch
Anahtar adını (Super_L) değiştirici tanımından kaldırın. Super_L için bu, mod4 satırından kaldırılması anlamına gelir.
add mod4 = Super_R Hyper_L
Şimdi sağ "Süper" tuşu normal bir süper anahtar gibi davranırken sol tuşun özel özellikleri olacaktır.
Şimdi Super_L tuşunu basılı tutarken basılı tutarken farklı kodlar üretmek için anahtarları yeniden eşleştirmemiz gerekiyor. keycode
Dosyamızda başlayan her satır, Mod1'e (shift tuşları) ve Mod değiştirme tuşlarına basılarak basıldığına bağlı olarak oluşturulacak her tuş için 4 tuş takımı belirtir. ( Bağlantı )
!...........................................................................
! Key Base Shift Mode Mode+Shift
!---------------------------------------------------------------------------
keycode 13 = 4 dollar 4 quotedbl
keycode 14 = 5 percent 5 colon
keycode 15 = 6 asciicircum 6 comma
keycode 16 = 7 ampersand 7 period
...
keycode 45 = k K k K
Super_L + k tuş basımının bir "+" anahtarı oluşturmasını istiyorsak, bunu okumak için değiştirmeniz gerekir.
keycode 45 = k K plus plus
Son artı ayrıca Shift + Super_L + k'yi artıya eşler, ancak bu başka bir şeyle eşlenebilir. Her anahtar için değiştirilecek tam 1 satır vardır. Daha fazla anahtarı yeniden eşleştirmek için daha fazla satır düzenleyin - normal tuşa basma davranışını korumak için ilk 2 girişi olduğu gibi bırakın.
Dosyayı kaydedin ve editörden çıkın.
Terminalde aşağıdaki komutları çalıştırarak tuş haritasını kurun. Birincisi bu oturum için kurar, ikincisi gelecekteki oturumlar için kalıcı hale getirir.
xmodmap curkeys.map
cp curkeys.map ~/.Xmodmap
Değiştirilmiş tuşlara basarak (örneğin, Super_L + k) bunu hemen test edebilirsiniz.
Adım 3 - Harita ekleme / düzeltme
Değiştirilen harita kurulduktan sonra yeni anahtarlar eklemek kolaydır.
Anahtar kodları ve anahtarları bulmak için xev komutunu kullanın
anahtarı eşlemek için bu komutu çalıştırarak test edin:
xmodmap -e "keycode <code> = <base> <shift> <new-mapping> <new-shift-mapping>"
Köşeli parantez içindeki öğeleri ( <code>
<base>
vb.) Uygun değerlerle değiştirin.
curkeys.map
Dosyayı yedekleyin .
- İlgili
curkeys.map
anahtar kodunun satırını açın ve düzenleyin.
Aşağıdaki komutlarla yeniden uygulayın (2. adımı uyguladıysanız ilk komut gerekli değildir)
xmodmap curkeys.map
cp curkeys.map ~/.Xmodmap
Not: 1 : Klavye Kısayollarında yapılan değişiklikler (örn. Aracılığıyla System -> Preferences -> Keyboard Shortcuts
) değiştirici haritayı etkiler ve bir sonraki girişte genellikle kaybolur. Lütfen bundan kaçının.
Not: 2 : Bu yöntemi kullanırken bazen böyle hata mesajları alıyorum. Bunun ne anlama geldiğini bilmiyorum, ancak bunlar genellikle zararsızdır.
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 263
Current serial number in output stream: 263
Xmodmap için ayrıntılı yardım burada mevcuttur .