Büyük harf kilidi tuşunu nasıl yeniden etkinleştirebilirim?


12

Şu anda varsayılan klavye düzenimi şu şekilde ayarlıyorum:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Caps lock tuşunu devre dışı bırakır ve diğer seçeneklerden oluşan bir sürü ile birlikte ek bir ctrl tuşu yapar.

Klavye düzenlerini değiştirmek için aşağıdakileri yapmak istiyorum:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Ancak, büyük harf kilidi anahtarını yeniden etkinleştirmez; hem sol kontrol anahtarı hem de büyük harf kilidi görebildiğim kadarıyla kontrol anahtarı olarak kalır.

Tüm seçenekler listesini temizleyebileceğimi biliyorum, ancak sürdürülebilirlik açısından, seçenekleri kopyalamamayı tercih ederim. Büyük harf kilidini nasıl yeniden etkinleştiririm?

Güncelleme: xev (1) ile tuş basışlarına bakıldığında, ctrl: nocaps Control_Lher iki tuş için de a verir ve ctrl: swapcaps büyük harf kilidi tuşunu "geri yükler" (tuşa basarak verir Caps_Lock). Ancak, kapak kilidi LED'i yanmaz ve gerçekte çalışmaz.

xkeyboard-config/symbols/ctrlX.org kaynaklarındaki dosyaya bakmak soruna ipucu veriyor:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

İkinci seçenek, ne olursa olsun bir modifier_map satırından yoksun


Bana yardım etmeye çalışan herkesin klavyelerini
dvorak'a yapıştıracağını

4
X şimdi o kadar eski ve karmaşık ki pek çok insan çeşitli iç mekanizmaları gerçekten anlamıyor. Man sayfasında, (ve ben alıntı yapıyorum) diyen bölümler bile var: " Kimse bunun nasıl çalıştığını söylemek istemiyor. Belki kimse bilmiyor ... ". Ben de bu soruya bir cevap görmek ilgileniyorum ama kimse bilmiyor olabilir ...
jw013

Yanıtlar:


14

Aşağıdaki komutlar çalışmalıdır:

xmodmap -e 'keycode 0x42 = Caps_Lock'

veya

setxkbmap -option

Yukarıdaki komutlar, neredeyse hiç ihtiyaç duymadığım varsayılan davranışı geri getirmek için iyi çalışıyor.

Normalde aşağıdaki komutu kullanarak capslock'u Control (neyse ki VI / VIM, ESC yerine CTRL-C'yi destekler) ile yeniden eşlerim:

setxkbmap -option ctrl:nocaps -layout gb

Ayarları temizlemek için "setxkbmap -option" tam olarak aradığım şeydi. Davranışımı değiştirmeye çalıştım, ancak seçenekler listesine çakışan öğeler eklemeye devam etti.
m0j0

2

Deneyin setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Manpage'den:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

Ironi burada -option ctrl:swapcapsaslında geçersiz kılıyor -option ctrl:nocaps- sanırım davranış değişti.

Düzenleme: OP'nin belirttiği gibi, seçenekleri temizlemekten kaçınmak istiyor (yukarıdaki şekilde yapıldığı gibi).

/usr/share/X11/xkb/rules/xorg.lstburadan ctrl:aa_ctrlsonra büyük harf kilidini sıfırlamış gibi görünen seçeneği (sol altta kontrol) gösterir nocaps.

Sanırım denemeye değer ve ayrıca listeye ( grep ctrl\:) bakabilir ve işe yaramayacak başka bir şey olup olmadığını görebilirsiniz.

Bunun için bir seçenek yoksa, çözüm, Caps Lock'u Caps Lock tuşu ile tekrar ilişkilendirerek mevcut tuş eşlemesini hacklemektir (ancak bununla ilgili deneyime sahip değilim, tek astarlı).


Bu gerçekten seçenekler listesini temizler, ancak beste tuşları gibi büyük harflerle ilgili olmayan seçenekleri (soruda belirtildiği gibi) tutmak istiyorum.
hhaamu

Üzgünüm, soruyu yanlış okudum. Bunun işe yarayacağından emin değilim (belirttiğim gibi, swapcapsaslında burada kapak kilidini yeniden etkinleştirir), ancak, buradan sonra kapak kilidini sıfırlayan bir /usr/share/X11/xkb/rules/xorg.lstseçenek olduğunu ctrl:aa_ctrl(sol altta kontrol) görüyorum nocaps.
njsg

Ben sihirli program olduğunu düşünüyorum xmodmapama nasıl kullanılacağından emin değilim
hhaamu

0

Capslock'u etkinleştiren bir seçenek "caps: capslock" (xkb_symbols'a "+ capslock (capslock)" eklenmesiyle eşleşir) vardır.

Ancak, bu seçenek (belki de tüm büyük harfler: xxxxx?) Mevcut ctrl: xxxxx olanlardan önce eklenir ; ctrl: swapcaps, capslock anahtarını yeniden tanımlar; bu seçeneğin bir etkisi yoktur.

Yani, tüm seçenekleri kesinlikle kaldırmanız ve aslında istediklerinizi koymanız gerekir; seçeneklerin varolma şekli, bir öncekinin eylemini geri almamaları ve sıralarını tanımlayamayacağınız çakışan seçeneklere (örneğin, iki (veya daha fazla)) sahip olmaları gerekir.

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.