Ubuntu’daki bazı anahtarları yeniden açmanın bir yolunu arıyorum.
yani.
PgUp - Ana sayfa ya da PgDown - End 'i değiştirmek istiyorum.
Yerleşik komut veya araç Ubuntu / GNOME'da anahtarları yeniden atar mı?
Ubuntu’daki bazı anahtarları yeniden açmanın bir yolunu arıyorum.
yani.
PgUp - Ana sayfa ya da PgDown - End 'i değiştirmek istiyorum.
Yerleşik komut veya araç Ubuntu / GNOME'da anahtarları yeniden atar mı?
Uyarı: 2013 itibariyle, Ubuntu ve türevleri artık xmodmap
kullanmıyor, bunun yerine xkb
kullanın. Daha fazla bilgi için bkz. bu yanıt . Aşağıdaki cevap mevcut sürümler için artık geçerli değil.
Bazı tuşları yeniden programlamak için iki araç gerekir. İlk xev (komut satırı aracı) ve ikinci xmodmap (ayrıca komut satırı aracı) . Her ikisi de Ubuntu'da ekstra kurulum yapmadan kullanılabilir.
Terminal penceresini başlatın ve xev
dosyasını çalıştırın. Şimdi aktif ve bir tuşa basmanız için bekler. Ardından, davranışını değiştirmek istediğiniz tuşa basın. yani PgUp .
xev
, basılan tuş hakkında bazı bilgiler verecektir. Üçüncü çizgi önemlidir. Şuna benzer görünmelidir:
state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES,
bu örnekte Prior
, anahtarın o anda atanmış davranışının adıdır, sayı tuş kodu, anahtara tanınan iç kimliktir.
Şimdi bunu başka bir anahtarla yapın, yani PgDown bu çıkışı verin
state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES,
Burada yine ilginç olan kısım keycode 115
ve Next
- davranışın adı.
Artık iki anahtarı değiştirmek istediğinizde xmodmap
kullanın.
xmodmap -e "keycode 110 = Next"
Bu, klavyenizdeki tuş kodu 110 ile anahtarı Next
eylemine değiştirir. Oldukça basit.
Eşlemekte olduğunuz anahtarın ÜstKrkt tuşu ile kullanıldığında farklı bir anlamı olması gerektiğine dikkat edin (örneğin, İngiliz klavye düzenleri için, ÜstKrktr + 2 tırnak işaretleri verir) sonra ikincil komutu ilkinden sonra sıralayabilirsiniz. Örneğin, 53 kodlu anahtarın ters eğik çizgiyle normal olarak eşleşmesini istiyorsanız, ancak vardiyayla birlikte kullanıldığında çubuk sembolüne sahip olmak isterseniz:
xmodmap -e "keycode 53 = backslash bar"
Ek bilgi: Bu eşlemelerin dizisi Anahtar , ÜstKrkt + Anahtar , mode_switch + , mode_switch + ÜstKrktr + Tuş , AltGr + Tuşu , AltGr + ÜstKrktr + Tuş . Bir sütunu atlamak için NoSymbol
kullanın. Üstelik, buradaki tüm anahtar kelimelerin kapsamlı bir listesidir.
Not: Bu değişiklik sadece etkin X oturumu içindir ve yeniden başlatıldıktan sonra kaybolacaktır. Değişiklikleri kalıcı olarak kaydetmek istediğinizde, yukarıdaki komutlardan sonra aşağıdaki komutları çalıştırmanız gerekir:
xmodmap -pke >~/.Xmodmap
(ev dizininizde .Xmodmap
adlı bir dosya oluşturur ( ~
))
Ardından, .xinitrc
komutunu koyduğunuz ana dizininizde xmodmap .Xmodmap
adlı bir dosya oluşturmanız gerekir.
Artık değişiklikleri .Xmodmap
olarak değiştirebilir ve değişiklikleri hemen görmek için konsoldan xmodmap .Xmodmap
çalıştırabilirsiniz. % Co_de% değerindeki değişiklikler devam edecektir.
kaynak: Ubuntu Foruns
Yeniden eşleştirdiğiniz anahtarın bir duruma bağlı olarak farklı davranışı varsa (
sayısal klavyedeki tuşların NumLock'a nasıl bağlı olduğu gibi), değiştiricilerin listesini almak için .Xmodmap
'i yapmanız yeterlidir ve ardından şunu yaparsınız:
xmodmap -pm
Örneğin, sayısal klavyede virgül yerine bir süre almak istediğinizi varsayın (çoğu programcı için yararlıdır), ancak NumLock kapalıyken "silme" davranışını korumak istersiniz.
xmodmap -e "keycode 91 mod2 = KP_Delete period"
xmodmap -e "KEYCODE MODIFIER = behaviour behaviour_with_modifier"
, çünkü mod2
bize xmodmap -pm
öğesinin mod2
olduğunu, diğer adların ise Num_Lock
'deki tuşlara basılarak elde edildiğini söyler.
Bir Shift tuşunu taşımaya çalışıyorsanız, birkaç ekstra adım vardır:
xmodmap -e "keycode 62 = Up" # Shift => Up
xmodmap -e "keycode 111 = Shift_R" # Up => Shift
xmodmap -e "add shift = Shift_R" # Make the new Shift key actually do shifting
xmodmap -e "remove shift = Up" # Prevent the old Shift key from shifting
xset r 62 # Make the new Up key autorepeat
xset -r 111 # Prevent the new Shift key from autorepeating
Daha yeni bir fikrim var. Sanırım "remap" ile tamamen farklı bir şey ifade edebilirsin ... ama cevabımı olduğu gibi bırakacağım ... (Yeniden nasıl atacağımı bilmiyorum Başka bir şekilde davranacak bir anahtar)
GÜNCELLEME : 'sonradan' onaylandı; (Yanlış soruya cevap verdim:) ... lütfen NES'in Topluluk Wiki cevabını (yukarıda kabul edildi) inceleyin.
Bir tuşa yeniden basmak için remap 'ın iki genel yolu vardır.
'Bir programa yerel' yöntemleri için, bazen uygulamanın kendisinin sunduğu anahtar yönlerini değiştirmenin bir yolu vardır ... ör.
Firefox
öğesinin keyconfig adlı bir eki var ... bazı bilgiler için MozillZine yayını
Ubuntu programlarının çoğu Gnome tabanlıdır ve bu Gnome uygulamalarının herhangi bir menü öğesi için tuş vurmayı değiştirmek için özel bir yardımcı program vardır ... Editable Menu Accelerator
denir ... Bu çok 'dokunaklı' bir araçtır, fakat oldukça güçlü .. gconf-editor
(Terminal veya Alt + F2 aracılığıyla) çalıştırarak etkinleştirebilirsiniz ... desktop
- gnome
- interface
adresine gidin ve can_change_accels
'yi seçin. beğendiğiniz her şeyi sanallaştırmak için menü öğelerini değiştirin (program / pencere başına). İhtiyacınız olanı yaptığınız anda devre dışı bırakmanızı öneririz ..
Aksi takdirde Global kısayol tuşlarını ayarlayabilirsiniz. xbindkeys adlı bir program kullanıyorum. ve Ana Menü - Tercihler,
Keyboard Shortcuts
xbindkeys kullanıyorsanız, bunu "Başlangıç Uygulamaları" nıza eklemeniz gerekecektir (Ana Menü - Tercihler) ... Ayrıca (Stefano Palazzo'nun önerdiği gibi) daha önce xbindkeys hakkında daha ayrıntılı bir açıklama yazdım. bu sorubuntu sayfasını yanıtlayın
İşte ENTER anahtarının eşleştirmesini SHIFT anahtarına nasıl değiştirmeyi denedim (ve tersi):
$ uname -a
RAPORLAR:
Linux box 2.6.32-37-generic #81-Ubuntu SMP Fri Dec 2 20:35:14 UTC 2011 i686 GNU/Linux
$ which xmodmap
RAPORLAR:
/usr/bin/xmodmap
$ which xev
RAPORLAR:
/usr/bin/xev
$ xev
(sonraki elli çizgiyi yok saymayın)
PRESS THE ENTER KEY (notice the third line):
KeyPress event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263441120, (738,242), root:(771,314),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
XLookupString gives 1 bytes: (0d)
XmbLookupString gives 1 bytes: (0d)
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263441271, (738,242), root:(771,314),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
XLookupString gives 1 bytes: (0d)
XFilterEvent returns: False
PRESS THE SHIFT KEY (notice the third line):
KeyPress event, serial 30, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263592202, (464,368), root:(497,440),
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263592298, (464,368), root:(497,440),
state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Önemli olan her bir tuşa basmanın üçüncü satırı:
FOR:
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
The name "Return" is the name of the behavior of the key pressed.
The number of the key pressed is "36".
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
The name "Shift_R" is the name of the behavior of the key pressed.
The number of the key pressed is "62".
EŞLEŞTİRMENİN TERSİNİ YAPIN:
$ xmodmap -e "keycode 62 = Return"
$ xmodmap -e "keycode 36 = Shift_R"
SONUÇLARI KAYDET:
$ xmodmap -pke > ~/.Xmodmap
$ vi ~/.xinitrc
ADD
xmodmap ~/.Xmodmap
$ sudo reboot
Temel sorun, tersine çevirmenin çalışmadığıydı. ENTER tuşu SHIFT_R anahtarına eşlenmiştir; ancak SHIFT_R anahtarı ENTER anahtarına eşlenmedi. Git şekil.
X'ten bağımsız olarak global remaps yapmak için konsol kurulumunu (5) kullanabilirsiniz.
Benim durumumda Caps Lock anahtarını D olarak değiştirmek istedim, çünkü D -key bozuk:)
İlk önce dumpkeys (1) 'ı bir eşleme için bir şablon almak için kullandım, D -key durumunda, enteresan kod 32'nin eşlemesidir. (klavyemde); Grep düzeninde iki alan olduğunu unutmayın!
$ sudo dumpkeys | grep "keycode 32" > tempfile
$ cat tempfile
keycode 32 = +d
shift keycode 32 = +D
altgr keycode 32 = +eth
shift altgr keycode 32 = +ETH
control keycode 32 = Control_d
shift control keycode 32 = Control_d
altgr control keycode 32 = Control_d
shift altgr control keycode 32 = Control_d
(121 lines total...)
Haritayı Caps Lock (klavyemde tuş kodu 58) 'e uygulanacak şekilde değiştirmek için
sed 's/32/58/' -i tempfile
Şimdi okuyor
keycode 58 = +d
shift keycode 58 = +D
altgr keycode 58 = +eth
(etc...)
Bu eşlemeyi varsayılan haritaya eklemek için, yalnızca remap'a eklenmelidir. konsol kurulumu
için dosya içerirsudo sh -c 'cat tempfile >> /etc/console-setup/remap.inc'
ve konsol kurulumu 'nun yeniden yapılandırılması gerekiyor ( -phigh
ile düşük öncelikli soruların atlanması)
sudo dpkg-reconfigure console-setup -phigh
Şimdi remap tamamlanmalı ve önyüklemede otomatik olarak yüklenmelidir.
Ctrl+Pageup
için bir kısayol oluşturmaya çalışırken bir bütününü harcadım.
İlk xmodmap
denedim ancak bu değiştirici olaylar oluşturamaz. Yani, örneğin Control
olayını üreten bir kısayol oluşturmak imkansız.
Ardından xbindkeys
'si xmacro
ile denedim. Bu tür işler, ancak xbindkeys
, sistemimde Alt + ___
gibi bazı önemli kombinasyonları yakalayamıyor.
Sonunda Unity'nin kendi Klavye Kısayollarını kullandım - & gt; Kısayolumu kurmak için Özel Kısayollar.
Ve xmacro
yerine, şimdi klavye olaylarını oluşturmak için xvkbd
programını kullanıyorum, ancak bu sadece kişisel bir tercih. Her ikisi de xmacro
ve xvkbd
hemen hemen aynı. Ek bir ipucu, etkinliklerin kaybolmamasını sağlamak için xmacro
veya xvkbd
cinsinden bir gecikme parametresi eklemektir.
Yazılım Merkezi'nden AutoKey benim için en iyisini yaptı. Yeni bağlayıcı tıklama eklemek için sezgisel GUI'ye sahiptir. Yeni - & gt; İfade ve
<left>
olur (özel anahtarların listesi burada ). Etiketlerdeki diğer soruları oku shortcut-keys xorg keyboard