Tuş kombinasyonlarını kullanarak yazma?


12

Ben bir Ubuntu 10.04 kullanıcısıyım, örneğin, Windowstuşu basılı tuttuğumda (bence SuperLinux dünyasında denir ) bilgisayarımın "+" karakterini yazmasını sağlayın ve tuşuna basın K. Tüm uygulamalarda çalışmak için buna ihtiyacım var. (Yazma özürlü bir kişiyim ve Ubuntu'yu ihtiyaçlarıma uyarlamam gerekiyor.) Teşekkürler!

Yanıtlar:


15

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

  1. 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
    
  2. 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)
    
  3. "Xmodmap: en fazla 4 ..." ile başlayan satırı sil

  4. 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_switchgelen mod5hat mod3boş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
    
  5. 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
    
  6. 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.

  7. Şimdi Super_L tuşunu basılı tutarken basılı tutarken farklı kodlar üretmek için anahtarları yeniden eşleştirmemiz gerekiyor. keycodeDosyamı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.

  8. Dosyayı kaydedin ve editörden çıkın.

  9. 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
    
  10. 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.

  1. Anahtar kodları ve anahtarları bulmak için xev komutunu kullanın

  2. 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.

  3. curkeys.mapDosyayı yedekleyin .

  4. İlgili curkeys.mapanahtar kodunun satırını açın ve düzenleyin.
  5. 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 .


bununla şansın var mı? Bu yardımcı değilse veya herhangi bir şekilde belirsiz pls yorum değilse, revize edeceğim ve daha kullanışlı hale getireceğim.
koushik

1
Not, Linux Mint 17 Xfce içinde (ya da orada en azından), bu olması gerektiğini lütfen ~/.Xmodmap, ~/.xmodmapdikkate alır.
zbr

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.