Alt ve Windows anahtarlarını xmodmap ile nasıl değiştiririm?


9

Alt / Win (yani Option / Command) tuşlarının normal bir PC klavyesine kıyasla ters çevrildiği bir Mac klavyem var ve bunları değiştirmek istiyorum. Şimdiye kadar xmodmap ile hiç şansım olmadı. Standart konfigürasyon aşağıdaki gibidir:

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)

Şu anda, sol / sağ alt tuşlar 64 ve 108 tuş kodları iken, sol / sağ tuşlar 133 ve 134'tür.

Herhangi bir yardım için minnettarım!


Benim için bu Alt ve Win her iki çiftleri değiştirir: setxkbmap -device 8 dvorak -option altwin:swap_alt_win,ctrl:nocaps. Sadece doğru Alt ve Win’in değiştirilmesini istiyorum. Bu sol takas "iptal" değildir: setxkbmap -device 8 dvorak -option altwin:swap_lalt_lwin,altwin:swap_alt_win,ctrl:nocaps. Görünüşe göre, hiçbir altwin:swap_ralt_rwinseçenek yoktur man xkeyboard-config.
Peter Becich

Yanıtlar:


10

Bu benim Xmodmaprc:

! Exchange left Alt and left Win
remove mod1 = Alt_L
remove mod4 = Super_L
add mod1 = Super_L
add mod4 = Alt_L
! Exchange tilde and lesser/greater
keycode  94 = grave asciitilde dead_grave dead_tilde grave asciitilde
keycode  49 = less greater less greater bar brokenbar bar brokenbar
! Steve, your keyboard sucks

Xmodmap .Xmodmaprc'yi çağırmak için .xsession veya .xinitrc'nizi değiştirmeniz gerekecektir.


6

Bunu Ubuntu 13.04'te Christophe'nin cevabını birleştirdim (bu bana yardımcı oldu, ancak değiştiriciler için işe yaramadı ve ayarların farklı seçenekleriyle oynayarak setxkbmap hakkındaki başka bir cevap ); klavye düzeni seçenekleri ( kaynak koduna bakarken bile ) ve mevcut yapılandırmayı komut kullanarak setxkbmap -query(ayrıca çalıştırmanız gereken, belirli klavye modelinizi ve düzen kodlarınızı farklı olabileceklerini kontrol etmek için) kontrol edin.

Bir Apple klavyesine geçtiğimde çağıracağım bir betiğim var (en önemli seçenek altwin:swap_lalt_lwinAlt ve Süper değiştirici tuşları değiştirmek):

# clear all options
setxkbmap -model "pc105" -layout "hr,us" -option ""  

# set the Apple keyboard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier,altwin:swap_lalt_lwin"

# swap the grave-tilde with less-greater key
#  - variant without dead keys
xmodmap -e "keycode  94 = grave asciitilde"
xmodmap -e "keycode  49 = less greater less greater bar brokenbar bar brokenbar"

Normal klavyeye geri döndüğümde aradığım bir tane daha:

# clear settings
setxkbmap -model "pc105" -layout "hr,us" -option ""

# pc keyobard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier"

Ayarları eklediğime dikkat et

terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier

ctrl + alt + backspace Gnome oturumunu sonlandırmak için, sağ win tuşunu kullanarak seviye 3 tuşlarına erişim, her iki shift tuşuna basarak düzen değiştirme ve sırasıyla Caps Lock'umu ek bir Ctrl'ye (sırasıyla) çevirin. Bazılarını veya tümünü hariç tutmak isteyebilirsiniz.

Aramayı bazı klavye kısayollarına bağlamak için AutoKey'i kullanabilir veya sizden .profileveya .bashrcApple klavyesini her zaman kullanıyorsanız kullanabilirsiniz.


1
Çok fazla bla bla. Eğer varsa , sadece sol alt ve süper anahtarı takas istiyorum , bu komutu kullanın: setxkbmap -option altwin:swap_lalt_lwinve sol ve sağ alt ve süper anahtarları hem geçiş yapmak istiyorsanız bu komutu kullanın: setxkbmap -option altwin:swap_alt_win.
erik

İyi cevap. Ama tam olarak sadece doğru kazanmak ve sağ alt (AltGr) için bunu nasıl yaparım? Geçenlerde unicomp var, AltGr yerine boşluk çubuğunun yanında doğru galibiyet var, alıştığım gibi
12'de

2

hid_appleÇekirdek modül seçeneklerini yalnızca elma klavyenizi değiştirecek ancak normal PC klavyelerini değiştirmeyecek şekilde ayarlayabilirsiniz . Xkbmap veya Xmodmapr kullanmanıza gerek yok. Sadece /etc/modules.d/hid_apple.confiçeriği içeren dosyayı oluştur

options hid_apple iso_layout=0 fnmode=2 swap_opt_cmd=1

fnmode=2fonksiyon tuşlarını F1...F12basmaya gerek kalmadan eşler Fn. Medya tuşlarını tercih ederseniz atlayın. Daha fazla bilgi için Arch Wiki'ye bakınız .

Kalıcı olarak Ubuntu'da :

echo options hid_apple iso_layout=0 fnmode=2 swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all

2

Xkb ve gnome kullanan Ubuntu 16.04'te , alt ve süper tuşların tüm kısayol davranışlarını korumak istiyorsanız, yukarıdaki Christopher Devine'nin cevap cevabına kıyasla bir kaç ilave adım daha yapmanız gerektiğini gördüm . Bu bulduğum en kolay çözümdü.

$ xev Anahtar kod numaralarınızı almak için komut satırında numarayı almak istediğiniz tuşları yazın. Bu yazı hakkında daha fazla bilgi için: xev ve xmodmap kullanımı

Bunu yapmak bana verir: Super_L133 Alt_Lanahtar koduna sahiptir 64 anahtar koduna sahiptir

Bu yüzden Windows aka Command (Mac'te) aka Super tuşunu sol Alt tuşuyla değiştirmek için:

remove mod1 = Alt_L
remove mod4 = Super_L
keycode 133 = Alt_L
keycode 64 = Super_L
add mod1 = Alt_L  
add mod4 = Super_L

Son iki satır, mod1 ve mod4'ü, aynen kaldırıldıklarında Alt_L ve Super_L'nin anahtarına geri ekler. Bu yapılmazsa, süper tuş (kısayol) ile ilgili kısayolları kaybettim ve pencereler arasında geçiş yapmak için alt + tab combo'yu da kırar.

Bu komutları .xmodmap gibi bir dosyaya ekleyebilirsiniz ve sonra $ xmodmap .xmodmapbunları çalıştıracaktır.

Alternatif olarak, bunları aşağıdaki gibi komut satırında sırayla çalıştırabilirsiniz: $ xmodmap -e <expression here>

Varsayılan anahtar eşlemelerine geri dönmek istiyorsanız, yukarıdaki koddaki sayıları, örneğin:

remove mod1 = Alt_L
remove mod4 = Super_L
keycode 64 = Alt_L
keycode 133 = Super_L
add mod1 = Alt_L  
add mod4 = Super_L

ya da Ubuntu’da sadece koşuyorum: $ setxkbmap

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.