Ubuntu 16.04'te anahtarları nasıl sürekli yeniden eşleştirebilirim?


23

Bu geçerli oturum için çalışıyor:

costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"

Sonra bu yapılandırma dosyasını yarattım:

costales@dev:~/Desktop$ cat ~/.Xmodmap 
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$ 

Ama yeniden başlatmadan sonra çalışmıyor. Remap'ı yeniden başlatılmaya devam etmek için nasıl zorlayabilirim?


Sadece xkbburada kullanarak cevap verdim : askubuntu.com/a/960097/554991 .
danwild

Yanıtlar:


15

16.04'ü bir süredir kullanıyorum ve sddm'yi masaüstü yöneticisi olarak kullanıyor gibi görünüyor. Ondan önce LightDM ve GDM idi. Her iki ön işlemcisinin de ~/.Xmodmapotomatik olarak yüklendiği belgelenmiştir ancak sddm'nin yaptığı gibi açıkça bir şey bulamıyorum.

Bu nedenle, yalnızca yeni bir komut dosyasıyla yüklenmeye zorlanması tavsiye edilebilir. Sadece koşman gerek xmodmap ~/.Xmodmapve bunu birkaç yolla yapabilirsin:

Muhtemelen bunu yapmanın birkaç yolu var, aslında aynı şeyi yapıyor.


2
Bahşiş için teşekkürler! Başlamak için Ekleme işe yaramadı ve ~ / .xinitrc çıkmadı. Ama işe yaradı ~ / .bashrc "xmodmap ~ / .Xmodmap" ekleyin! :)
Costales

1
Bunu grafiksel başlatma araçlarıyla eklemek (yeni bir giriş oluşturur ~/.config/autostart) yaklaşık yarısı çalışır. Şimdi yaklaşık 10 kez, komutun 5 kez çalıştırıldığını ve diğerlerinin de 5 kez yeniden başlatıldığını gördüm. :-(
Alexander Rechsteiner

1
@Alexander Rechsteiner: Bu 16.04 Ubuntu'da bir problem gibi görünüyor. Başlangıç ​​komutları ve yeniden anahtarlama ile uğraşıyorum ve davranış çok tutarsız görünüyor. Bu tür bir konuda uzman değilim, ama gerçekleşmesi çok saçma görünüyor ...
nicorellius

6

/etc/X11/Xsession.d/80_xmodmapBu içeriğe sahip bir dosya ekledim :

#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error

USRMODMAP="$HOME/.Xmodmap"

if [ -x /usr/bin/xmodmap ]; then
        if [ -f "$USRMODMAP" ]; then
                /usr/bin/xmodmap "$USRMODMAP" || true
        fi
fi

Bu her zaman işe yarar.


Çalışıyor gibi gözüküyor, ancak bu mesajlar. 9 = Escape
anahtar kodu

4

GNOME oturumu özelliklerini açın. komut ve isim ekleyin. masaüstü dosyası ~ / .config / autostart içinde oluşturulacaktır.

remenber: mutlak yolu kullanın , örneğin /home/xxx/.Xmodmap. Asla '~' yi ev direktörü olarak kullanmayın.


2

Ubuntu’daki anahtarların yeniden eşleştirilmesi konusundaki uzun deneyimlerime kalıcı çözüm, adında bir dosyayı değiştirmek evdev./usr/share/X11/xkb/keycodes .

Bu komutu komut isteminde çalıştırın.

sudo gedit /usr/share/X11/xkb/keycodes/evdev

Gedit’in bir Ubuntu metin editörü olduğunu unutmayın, böylece gedit yerine nano veya vim kullanabilirsiniz.

Dosya formatıdır: ALIAS: CODE. Farklı tuşların kodlarını değiştirerek düğmeleri değiştirebilirsiniz. Örneğin, RCONTROL'ü RETURN ile değiştirmek için, evdev'deki iki satırı şöyle düzenleyin:

<RTRN> = 105;

<RCTL> = 36;

Bir düğme çalıştırmasının sayı kodunu bilmek xevTerminalde .

Daha fazla bilgi için belgelere bakın. https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf


1

Şu yöne rotayı ayarla

/usr/share/X11/xkb/symbols

Sudo ayrıcalıklarıyla, bir düzenleyicide düzenlemek istediğiniz düzeni açın. Değerleri değiştirin.

Yeniden başlattıktan sonra değişiklikler uygulanacaktır.


Klavye donanım sorunları nedeniyle tuş takımımı yeniden eşleştirmek için kullandığım bir örnek.

tuş takımı remap örneği


2
Bu dosyalara sahip olan paketlerin bir sonraki yükseltilmesinde bu düzenlemelerin üzerine yazılacaktır.
muru

Bu doğru olabilir, ancak bunların özellikle sık sık güncellendiğinden şüpheliyim. Sorunu çözdüğümden bu yana birkaç aydır bu çözümden memnun kaldım ve ek bir şey yapmam gerekmedi. Ve bunu önlemek için, dosyayı kaydedebilir ve böyle bir durumda değiştirebilir ya da (daha güvenli gibi görünen) işlemi yeniden oluşturabilirsiniz.
17'de

1

Google’da arama yaptıktan sonra dizüstü bilgisayarımın yanlış anahtarlarının yeniden çözülmesini çözebildim. Thinkpad T400'ümdeki tüm hatalı anahtarlar yeniden gönderildikten sonra iyi çalışıyor. Ayrıca, CPU çekirdeğine ekstra bir yük olmadan kalıcıdır.

  • Önce aşağıdaki komutu kullanarak klavye düzeninizi veya anahtar kodunuzu bulun.

    xevv -event keyboard 
    
  • Örneğin, Thinkpad T400 anahtar kodumda aşağıdaki gibi bulundu:

    Keycode of "z" key is 52
    Keycode of "x" key is 53
    Keycode of "c" key is 54
    Keycode of "v" key is 55
    Keycode of "F6" key is 72
    Keycode of "F10" key is 76
    Keycode of "F11" key is 95
    Keycode of "F12" key is 96 
    
  • "Z" "x" "c" "v" karakter tuşlarını "F6" "F10" "F11" "F12" fonksiyon tuşlarını atayarak yeniden eşleme.

  • Satırları aşağıdaki gibi değiştirin (Bir şeyler ters giderse kolayca geri alma işleminde herhangi bir değişiklik yapmadan önce dosyayı yedekleyin).

    sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Satırları bulun ve aşağıdaki gibi değeri değiştirin:

    <AB01> = 72;
    <AB02> = 76;
    <AB03> = 95;
    <AB04> = 96;
    
  • Bu satırları yorumlayın veya satırları kaldırın:

    //  <FK06> = 72;
    //  <FK10> = 76;
    //  <FK11> = 95;
    //  <FK12> = 96;
    
  • Kaydet ve çık.

  • Özel tuşları yeniden eşleştirmek.

  • İşler ters giderse, geri alma işleminde değişiklik yapmadan önce dosyayı yedekleyin.

    cd /usr/share/X11/xkb/symbols/
    
    sudo vi pc
    
  • "Xkb_symbols" editing "{" işlevinde aşağıdaki satırları ekleyin veya değiştirin

    key [SCLK] {    [  Prior        ]   };
    key [PAUS] {    [  Next         ]   };
    
  • Kaydet ve çık.

  • Önbelleği temizle.

    sudo rm -rf /var/lib/xkb/*
    
  • Yeniden Başlatma.


Bu tekniği kullanarak kırılmış (imleç) bir ok tuşunu başka bir tuşa kopyaladım. Bu sadece (xev) ve tarama kodunu almak için yeni tuşa basın, ardından / usr / share / X11 / xkb / keycodes / evdev komutunu düzenleyin, ardından ok tuşunun orijinal tuş kodunu yeni tuş koduyla değiştirmek ve yeni ok tuşunun satırını orijinaliyle kaldırmak için scancode. Nerede değişiklik yaptığımı yorumladım ve dosyanın yedeğini aldım. Yeniden başlatmanın ardından, yeni ok tuşuyla shift / ctrl / alt birleşimleri dahil olmak üzere mükemmel çalışıyor. Paketleri ve işletim sistemi sürümlerini yükseltirken bile değişiklik yapılmamalıdır.
Matthew,

1

Grafik editörü

gnome-tweaks > Klavye ve Fare> Ek Mizanpaj Seçenekleri

Anahtar Haritalar


0

.Xmodmap dosyalarının düzenlenmesi xkb'den çok daha kolay olduğu için .xmodmap'i 'kaynak' dosya olarak kullanırım, sonra xkb'ye dönüştürürüm. (geçerli standart) ve .bashrc yöntemini kullanarak önyüklemede otomatik yükle.

Burada yayınlanan birkaç basit adım var .

Mükemmel çalışıyor ve .xmodmap desteği düştüğünde karşı-provaları xkb kullanarak.

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.