Büyük harf kilidi geçiş etkisi, yeniden açılmadan veya devre dışı bırakılmadan nasıl önlenir?


22

Caps-lock kapan ve kullanan bir X11 programım var. Sorun, normal büyük harf kilidini açmayı devre dışı bırakmak istiyorum, ancak bunu yapmak anahtarı devre dışı bırakmak gibi görünüyor.

Öyleyse, X11 büyük harf kilidi tuşlarına ne elde ederse, yine de alması gerekir (anahtarı devre dışı bırakmamak veya başka bir tuşa tekrar koymak değildir); ).

Tarama kodunu değiştirmeyi denedim, ama bu sadece anahtarı yeniden açtı. Capslock girişini de kaldırdım xmodmap, ancak bu aynı zamanda caps'ı da devre dışı bıraktı.

Çekirdeğe caps tuşunu görmezden gelmesini nasıl söylerim (normal işlevselliği ile) ancak yine de iletiyi X'e iletebilirim?

Sadece biraz daha detay eklemek için:

Çalıştırmaya çalıştığım 'program' insancıllaştırılmış 'enso'. Anahtar olmadığında "CRITICAL: root: Quasimode anahtarı bulunamadı" hatası alıyorum. Hata olmadığında, enso'yu keplerle kullanabilirim, ancak enar hala buna ulaşabiliyorken, sofar keplerin işlevselliğini nasıl devre dışı bırakacağını çözemedi.


Lütfen neyi denediğinizle ilgili ayrıntıları, yani tam xmodmap ifadelerini belirtin. Detaylar olmadan ne yapıp neyi yanlış yaptığınızı, yanlış yaptığınızı veya doğru yaptığınızı ancak kodun başka bir nedenden dolayı başarısız olup olmadığını bilemeyiz. Ayrıca, kullandığınız işletim sisteminizi bize verin, çünkü bazılarının X sunucu seviyesinin altında gerçekleşen anahtar kod işlemesi var.
Kyle Jones

@Kyle "Lock = Caps_Lock" u ve sonra "keycode 66 =" (CapsLock ile eşleştirildi) denedim. 64bit bir makinede ubuntu 12.10 kullanıyorum.
Chris2048

Başka bir olasılık, başka bir anahtara yeniden göndermektir. setxkbmap -option ctrl:nocapsiçin remaps Control_Lörneğin.
Chris Down,

Kontrol anahtarını söylemek için kapak kilidini yeniden ayarlamanın bir yolunu bulabilir miyiz, iyi olacağını mı söylüyorsun yoksa peşinde olduğun şey bu değil mi? Bu sorunun biraz kafa karıştırıcı olduğu gibi, şu ana kadar ne denemiş olduğunuz sorusuna ayrıntı eklerseniz çok uzun bir yol kat edecektir.
slm

Sadece biz de temizleyelim, Ubuntu 12.10'da büyük harf kontrolü ek bir kontrol anahtarı yapabileceğiniz bir özellik var. "Yeniden eşleme" derken düşündüğün şey bu mu? İşte iletişimin bir ekran görüntüsü: flickr.com/photos/11708996@N00/3010939023
slm

Yanıtlar:


28

CapslockAnahtarın değiştirilmesini devre dışı bırakma, ancak tamamen bir arada bırakmama veya klavyedeki başka bir tuşa yeniden kaydetmeme yönelik bir tekniğim olduğunu düşünüyorum .

Bu komutu kullanırsanız:

setxkbmap -option caps:none

Klavye artık değişmeyecek. Bunu Fedora 14 çalıştıran dizüstü bilgisayarımda onayladım, LED artık yanmıyor ve normal Capslockişlevsellik kayboldu.

Bununla birlikte, xev kullanmak hala tuşa basıldığını gösteriyor:

$ xev
...
...
KeyPress event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504852, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504971, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
    ...

Bu nedenle, basılmakta olan tuş, diğer uygulamaların bunları alması için hala bozulmadan kalır.

setxkbmap dosyasını

Dosya /usr/share/X11/xkb/rules/xorg.lst, hangi seçeneklere verebileceğinizin tam listesini içerir setxkbmap.

"Cap" için bu dosya üzerinden grepping Bu satır fark ettim:

caps:none            CapsLock is disabled

Bu dosyada başka değerler de var, bu yüzden peşinde olduğun şey değilse, alternatif değerlerden biri de yerine gelir.

$ grep cap /usr/share/X11/xkb/rules/xorg.lst
  grp:caps_switch      CapsLock (while pressed), Alt+CapsLock does the original capslock action
  grp:caps_toggle      CapsLock
  grp:shift_caps_toggle Shift+CapsLock
  grp:shift_caps_switch CapsLock (to first layout), Shift+CapsLock (to last layout)
  grp:alt_caps_toggle  Alt+CapsLock
  lv3:caps_switch      CapsLock
  lv3:caps_switch_latch CapsLock (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)
  ctrl:nocaps          Make CapsLock an additional Ctrl
  ctrl:swapcaps        Swap Ctrl and CapsLock
  grp_led:caps         CapsLock
  caps                 CapsLock key behavior
  caps:internal        CapsLock uses internal capitalization. Shift "pauses" CapsLock
  caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock
  caps:shift           CapsLock acts as Shift with locking. Shift "pauses" CapsLock
  caps:shift_nocancel  CapsLock acts as Shift with locking. Shift doesn't affect CapsLock
  caps:capslock        CapsLock toggles normal capitalization of alphabetic characters
  caps:numlock         Make CapsLock an additional NumLock
  caps:swapescape      Swap ESC and CapsLock
  caps:escape          Make CapsLock an additional ESC
  caps:backspace       Make CapsLock an additional Backspace
  caps:super           Make CapsLock an additional Super
  caps:hyper           Make CapsLock an additional Hyper
  caps:shiftlock       CapsLock toggles Shift so all keys are affected
  caps:none            CapsLock is disabled
  compose:caps         CapsLock
  shift:breaks_caps    Shift cancels CapsLock
  shift:both_capslock  Both Shift-Keys together toggle CapsLock
  shift:both_capslock_cancel Both Shift-Keys together activate CapsLock, one Shift-Key deactivates

Referanslar


5
Eğer yanlışlıkla capslock açıkken komutu çalıştırırsanız, xkbmap'i çalıştırarak sıfırlayabilirsiniz setxkbmap -option "".
Nemo

Xev'de görünüyor, ancak Valve Source 2 motorunda gerçekten çalışmıyor.
Velkan,

1

Caps LockAnahtarın normal etkisine sahip olmasını istemiyorsanız, tuş takımını Lockkoruyarak değiştiriciyi kapatabilirsiniz Caps_Lock.

xmodmap -e 'clear Lock'

Capslock'u devre dışı bırakmıyor gibi görünüyor.
Chris2048

@ Chris2048 Benim İşim ™. Bazı XKB ayarlarıyla veya bazı uygulamalarla uyumlu olmayabilir (uygulamalar kendi kapak kilitleme işlemini yapar, çoğu aynı kütüphane işlevlerini kullanır ancak istisnalar vardır).
Gilles 'SO- kötülük'

0

Bu, başka bir soru için verdiğim cevaba çok benziyor . Bu xkb kod parçacığını hile yapmalı.

partial modifier_keys
xkb_symbols "capsoff" {
    key <CAPS> {
        type[Group1] = "ONE_LEVEL",
        symbols[Group1] = [ Caps_Lock ],
        actions[Group1] = [ NoAction() ]
    };
};

bu nereye gitmeli? Bu tür pasajlara, 10 dakikadır bunu çözmeden bakıyorum. Daha eksiksiz bir dosyanın parçası olmak zorunda mı yoksa tek başına durabilir ve varsayılan yapılandırma için geçerli olabilir mi?
Nikana Reklawyks,
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.