Mode_switch değiştiricisi ne için?


29

İle oynamak xmodmapben duymamıştım bir değiştirici tuşa karşılaştı: Mode_switch. Özel karakterler eklemekle ilgisi var gibi görünüyor.

Bir anahtara atadım ama etkisinin yok gibi görünüyor. Bu ne için? ISO_Level3_Shift(Alt Gr) dan farklı mı ?



Yanıtlar:


29

Mode_switchAltGrBirçok klavye düzeninde çağrılan tuşun eski stil (XKB öncesi) adıdır . Bu benzer Shift, o eğer bir karaktere karşılık, farklı bir karakter olsun bir tuşa bastığınızda Shiftveya AltGrda basılır. Aksine Shift, Mod_switchX11 anlamında bir değiştirici değildir , çünkü normalde işlev tuşlarına değil karakterlere uygulanır, bu nedenle uygulamaların yalnızca istenen efekti elde etmek için bir karakter araması yapmaları gerekir.

ISO_Level3_Shiftbu anahtarın XKB sürümüdür. Genel olarak konuşursak, XKB çok daha karmaşık ve bazı ekstra şeyler yapabilir. XKB'nin mekanizması, klavye düzenlerinin hangi değiştiricilerin hangi tuşlardan etkilendiğini değiştirmesine izin verdiği için daha geneldir, yapışkan ( CapsLockstil) ve eşzamanlı bas ( Shiftstil) değiştiricileri genelleştirir .


ISO_Level3_Shift'Yapışkan' davranabileceğini bilmek harika, uzun zamandır bu işlevselliği arıyordum: unix.stackexchange.com/questions/39014/…
vemv

@Gilles Peki, AltGrve Mode_switchaynı anahtarlar? Olmazsa, bu bağlantıda , aynı şeylermiş gibi ses çıkarırlar. Bunu biraz açıklayabilir misiniz?
Utku

@ Unku Mode_switchve ISO_Level3_Shiftaynı şeyi biraz farklı şekillerde yapın. Farklılıkları anladığımı iddia etmiyorum; çoğu zaman farketmezler ama xmodmap'ı XKB isimleriyle karıştırmanın bazen değiştiricilerin doğru çalışmamasına neden olduğunu hatırlıyorum.
Gilles 'SO- kötülük yapmayı bırak'

@Gilles Ben de farklılıkları anlamak yok ama birlikte ya kadar bitiriyorum us(cz_sk_de)özellikleri veya olmamasına bağlı olarak bazı tuşlar için özel xmodmap eşleştirmeleri (örneğin virgül) ile AltGrolan Mode_switchveya ISO_Level3_Shiftaynı anda her iki özellikleri almak mümkün değil.
Pavel Šimerda

4
Yapışkan tuşlar CapsLocktarzı değildir . Yapışkan tuşlara “mandal”, kilit tuşlarına kilit denir. Yapışkan tuşlar bir sonraki değiştiriciye basıldıktan sonra serbest bırakılırken, tuşlar tekrar basılana kadar etkinleşir.
Guildenstern

12

Bu cevap @Gilles'in cevabına aykırı değil, ancak "az aydınlatılmış" olduğunu düşündüğüm Giriş başka bir yönünü açıklamak içindir .

Hem ISO_Level3_Shift(Alt-Gr) hem Mode_switchde aynı anda farklı sonuçlarla kullanabilirsiniz . Bazı yapılandırmalar gerektirir, ancak her ikisine de sahip olabilir ve fiziksel klavye tuşu başına 6 farklı anahtar üretmek için bunları kullanabilirsiniz !

Şunları yapabilirsiniz örneğin yapılandırmak Tabiçin olmak Mode_switchile tuttuğunda ve sonra aşağıdaki karakterler / tuşları üretebilir klavyede "H" etiketli anahtarı örneğin,:

h
H
← (Cursor)
← (Symbol)

with H
with ShiftH
with AltGrH
with AltGrShiftH
with TabH
with TabShiftH

: Yani, Sorunuza geri gelmeyi IL3Sve Mode_switchimleç tuşları ve sahip böylece, farklı anlamlara şekilde yapılandırılabilir ~ 200 kullanışlı karakterler üzerinde (aksanlı) dilleri, kutu çizimden ve teknik karakter kümesi 35 tuşları arasında 3 harfli satırlar.

Yukarıdakileri gerçekleştirmek için:

# Initial Setup
xmodmap -e 'keycode 23 = Mode_switch ISO_Left_Tab Tab ISO_Left_Tab Tab ISO_Left_Tab'
xmodmap -e 'keycode any = Tab'
xcape -e "Mode_switch=Tab"

örnek H:

xmodmap -pke | grep 'h H'
# Make note of the keycode, note the 8 columns after the `=`,
# then edit and feed back into xmodmap with:
xmodmap -e 'keycode  43 = h H lowrightcorner uprightcorner Left leftarrow h H'

Vaov! Ben şimdi, sadece günümü 😉 kopyalayıp yapıştırmak artık gerek yapmış olduğunuz 2 son paragrafta görmek ne demek htmlarrows.com gibi yazma şeyler fn: A → B.
Patrick McLaren

Bence bunu yapmanın normal yolu kullanmaktır ISO_Level5_Shift. Bu 8 seviye üretiyor, 7. seviye lvl3+lvl5+H& c.
Toothrot

1

Mode_shiftXkb'dekiler, gruplar veya paftalar için bir kaydırma tuşudır. Birden fazla gruba sahip bir düzeniniz varsa, bir sonraki gruba erişmek için bu tuşu basılı tutabilirsiniz. Birkaç düzeniniz varsa, düzenler arasında geçiş yapmak için bu tuşu basılı tutabilirsiniz († 1).

Bu yüzden (veya ve , ve anahtar teslimi adlarını kullanmak için) seviyelerin Mode_shiftne olduğunu gruplamaktır .ShiftShift_LShift_R

Bunun Mode_shiftbir takma adı olduğunu düşünürsek bu daha belirgin hale gelebilir ISO_Group_Shift(† 2). Denilen tuşlar da vardır ISO_Group_Latchve ISO_Group_Lockhangi tekabül ISO_Level2_Latch(mandal vardiya) ve Shift_Locksırasıyla († 3).

Ayrıca farklı scriptler için birkaç takma ad vardır:

  • kana_switch
  • Arabic_switch
  • Greek_switch
  • Hebrew_switch
  • Hangul_switch

† 1: Bu, Xkb'nin “grupları” ve “düzenleri” hakkındaki düşüncelerime dayanıyor. Öyle görünüyor ki aynı tuşlarla aralarında seçim yaptıkları gibi aynı muamele görüyorlar.

† 2: Ben kayıtlı bu dayandırarak keysymdef.hiçinde bu Git depo revizyon ab8666661fc6 de (2017-05-10 “XF86XK_AudioPreset Ekle”). Kurulumlarda muhtemelen bu dosyayı bulacaksınız /usr/include/X11/keysymdef.h.

† 3: Ayrıca bir anahtar ISO_Lock, bir tür genel amaçlı kilit anahtarı da vardır.

AltGrAnahtarın anlamı

Gilles , cevabındaAltGr anahtarla olan bağlantısından bahsetti :

Mode_switchAltGrBirçok klavye düzeninde çağrılan tuşun eski stil (XKB öncesi) adıdır .

Bu, “AltGr” Mode_switchnin grupları değiştirmek için kullanıldığı için “alternatif / alternatif grup” anlamına gelebileceğinden şüphelenmeme yol açtı . Ancak bunun yanlış olduğu ortaya çıktı. Anahtardaki Wikipedia sayfasınaAltGr göre , “AltGr” IBM klavyelerinden geliyor gibi görünüyor ve el kitaplarında “alternatif grafikler” in kısaltması olduğunu söylüyor. Bu mantıklıdır, çünkü “grafik” çizmek için klavyeyi kullanmanın (metin kullanıcı arayüzlerinde kullanılan kutu çizme karakterleri) çok iyi senaryolar arasında hızlı bir şekilde geçiş yapmak için iyi bir destek almadan önce iyi geldiği görülmüştür.

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.