Disattiva Blocco maiuscole quando si preme Esc


10

C'è un modo per disabilitare CapsLockogni volta che Escviene premuto. Sì, io uso VIM! In realtà ho un layout di tastiera alternativo maiuscolo attivo Ctrl-6ma lo trovo ingombrante e preferirei che il sistema operativo disabilitasse CapsLock ogni volta che Escviene premuto. Inoltre, spesso SSH su altri server per alcune ore, quindi sono su un VIM stock lì.

Si noti che mi è capitato di aver già scambiato i tasti CapsLocke Esc. Tuttavia, quando Escsi preme il tasto (che risulta essere etichettato CapsLocksulla tastiera e accanto A), ho bisogno che esegua entrambi Escapee Disable-CapsLock-If-It-Is-Enabled.

Questo è su Kubuntu 12.10. Grazie.


Devi aggiungere questa funzionalità solo per vimo per il desktop completo?
mtk

Vorrei che fosse una funzionalità desktop.
dotancohen,

Risposte:


5

In X11 (su console non lo so) puoi farlo ridefinendo il comportamento del tasto Esc. Ho guardato la definizione "shift (break_caps)" per vedere come funziona e l'ho adattata.

Guarda questa risposta su xkb per maggiori dettagli su come / dove mettere i file modificati localmente e caricarli.

E per fare quello che vuoi, hai bisogno nel file dei simboli locali (es:) ~/.xkb/symbols/mysymbolsuna sezione come questa:

partial modifier_keys
xkb_symbols "esc_breaks_caps" {
    key <ESC> {
        type = "ALPHABETIC",
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
};

e nel file keymap locale (es:; ~/.xkb/keymap/mykbdpuoi crearlo con setxkbmap -print > ~/.xkb/keymap/mykbd) cambia la xkb_symbolsriga da aggiungere +mysymbols(esc_breaks_caps).

Ora puoi caricarlo con: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY e premendo Escrimuoverai lo stato CapsLock (in realtà, l'effetto si verifica sul rilascio di Esc; Penso che solo i tasti modificatori abbiano effetto immediato; altri l'effetto è dopo il loro rilascio.)

Oh, se vuoi scambiare anche i tasti Escape e CapsLock; quindi usa questo invece (e inserisci "+ mysymbols (esc_swap_and_breaks_caps)" nel tuo file mykbd):

partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
    replace key <CAPS> {
        type = "ALPHABETIC",
        symbols = [ Escape, Escape ],
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
    replace key <ESC> { [ CapsLock, CapsLock ] };
};

notare che le chiavi fisiche sono <CAPS>e <ESC>; <CAPS>(tasto inciso CapsLocknella tastiera) invia Escape e <ESC>(tasto inciso Esc) invia CapsLock, con <CAPS>(inviando Escape) anche lo stato di blocco maiuscole


1

Aggiungi queste righe a ~/.Xmodmap:

clear lock
keycode 0x42 = Escape

Quindi, digitare il comando:

xmodmap ~/.Xmodmap

La Caps Lockchiave è ora rimappata alla Escchiave.

URL di riferimento .


Leggi anche questo simpatico articolo su Mapping CapsLock to Escape in Ubuntu , che sembra essere un utente unix.se :)


Grazie. Mi è capitato di aver già scambiato CapsLock ed Esc. Tuttavia, quando si preme il tasto Esc (che viene etichettato CapsLock sulla tastiera e si trova accanto ad A), ho bisogno che esegua sia Escape che Disable-CapsLock-If-It-Is-Enabled. Modificherò la domanda per chiarire. Grazie.
dotancohen,

Pensavo avessi bisogno del contrario. Un po 'confuso qui. Cosa succede premendo Esce Capslocksdopo questi cambiamenti?
mtk

Attualmente: quando si preme il ESCtasto la CapsLockfunzione si attiva e quando si preme il CapsLocktasto ESCviene inviato il comando (ovvero il ESCtasto viene rimappato CapsLocke il CapsLocktasto viene rimappato ESC). Il mio obiettivo con questa domanda è di premere il CapsLocktasto per eseguire entrambe le ESCfunzioni (cosa che attualmente fa) e disattivare la CapsLockfunzione se e solo se la CapsLockfunzione è abilitata (cioè non attivare o disattivare la CapsLockfunzione, ma piuttosto disabilitarla se CapsLockè abilitata).
dotancohen,

1

Non sono sicuro che questo risponda alla tua domanda, ma per mappare la Escfunzione sul CapsLocktasto, puoi usare questo:

setxkbmap -option "caps:escape"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.