Kvůli rozložení mé klávesnice chci mít numlock trvale stisknutý a používat klávesu numlock jako klávesu mazání. Nedaří se mi to zprovoznit. Jakékoli nápady, jak to udělat, oceníme.
Edit:Používám Ubuntu 16
Zde je to, co jsem zkusil:
Používejte Xmodmap s numlockx
Inspirováno touto otázkou. Chápu to tak, že xmodmap je zastaralý, takže to pravděpodobně není skvělý nápad.
- Vytvořte soubor
~/.Xmodmap
s řádkemkeycode 77 = Delete NoSymbol
- Spusťte
xmodmap ~/.Xmodmap
- Spusťte
numlockx on
To umožňuje, aby numlock fungoval jako mazání a povoluje numerickou klávesnici, dokud poprvé nestisknu klávesu numlock. Potom klávesa numlock deaktivuje numerickou klávesnici.
Použít XKB
- Upravit
/usr/share/X11/xkb/symbols/us
mítkey <NMLK> { [Delete, Num_Lock] };
na konci základní mapy kláves. - restartujte počítač
také zkusil:
- Upravit
/usr/share/X11/xkb/symbols/us
mítreplace key <NMLK> { [Delete, Num_Lock] };
na konci základní mapy kláves. - restartujte počítač
To trpí podobnými problémy jako druhá metoda, možnost mazat funguje, ale klávesa numlock vypíná numerickou klávesnici. Zdá se také, že si nehraje s jinými klávesami, jako je klávesa Windows, když je povolena numerická klávesnice. Líbí se mi, že mohu ovládat numlock pomocí shift+numlock. Nenašel jsem žádný rozdíl mezi používáním nahradit a nepoužíváním.
Přijatá odpověď:
Zde je způsob, jak toho dosáhnout pouze pomocí xkb, což je podle mě lepší než použití xmodmap. Tato odpověď obsahuje více podrobností o tom, čeho jsem chtěl dosáhnout, než původní otázka. Xmodmap a xkb nehrají vždy dobře dohromady, tento přístup umožňuje mnohem větší flexibilitu:
To vše pochází z:https://wiki.archlinux.org/index.php/X_keyboard_extension
Zde je seznam dostupných keysymů, které, jak se zdá, fungují:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html
To se provádí ručně, abyste mohli začít s konfigurací, která již na vašem počítači existuje, abyste předešli problémům s kompatibilitou s různými klávesnicemi.
Příklady předchozích spuštění jsou uvedeny v config_files/linux/keyboards
Začněte spuštěním xkbcomp $DISPLAY output.xkb
získáte aktuální nastavení klávesnice
.
Poté přidejte:
interpret osfLeft{
repeat= True;
action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
};
interpret osfRight{
repeat= True;
action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
};
interpret osfDown{
repeat= True;
action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
};
interpret osfUp{
repeat= True;
action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
};
interpret osfEndLine{
repeat= True;
action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
};
interpret osfBeginLine{
repeat= True;
action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
};
interpret osfEscape{
repeat=True;
action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
};
do sekce kompatibility vygenerovaného souboru.
Související:Instalace programů do kořenových vs domácích oddílů v Ubuntu?Na konec sekce typů přidejte:
type "CUST_CAPSLOCK" {
modifiers= Shift+Lock;
map[Shift] = Level2; // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
map[Shift+Lock] = Level3; // but Lock+Shift won't map to Level2 even without this line.
map[Lock] = Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Lock";
};
interpret osfDelete{
repeat=True;
action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
};
Vyhledejte interpret Caps_Lock
a změňte LockMods
na SetMods
takže caps lock pouze nastaví modifikátor, nikoli jej uzamkne.
Chcete-li povolit, aby capslock + WASD fungovaly jako klávesy se šipkami:upravte klávesy <AD02>
, <AC01>
, <AC02>
, <AC03>
mít typ CUST_CAPSLOCK
a mají příslušně osfUp
, osfLeft
, osfDown
, osfRight
na třetí pozici.
Chcete-li povolit, aby capslock + HJKL fungovaly jako klávesy se šipkami:upravte klávesy <AC06>
, <AC07>
, <AC08>
, <AC09>
mít typ CUST_CAPSLOCK
a mají příslušně osfLeft
, osfDown
, osfUp
, osfRight
na třetí pozici.
Chcete-li povolit registraci capslock + 0 jako home a capslock + $ registraci jako end:upravte klíče <AE04>
a <AE10>
mít typ CUST_CAPSLOCK
a mají příslušně osfEndLine
a osfBeginLine
na třetí pozici.
Chcete-li povolit registraci capslock + mezerník jako escape (užitečné pro vim), upravte klíč <SPCE>
mít typ CUST_CAPSLOCK
, mít space
na druhé pozici a osfEscape
na třetí pozici.
Chcete-li změnit klíč numlock na klíč mazání a vytvořit capslock + numlock, vytvořte <NMLK>
mají typ CUST_CAPSLOCK
, mají pozici jedna a dvě mají osfDelete
a pozice tři mají Num_Lock
Nyní nahrajte změněný soubor zpět na server pomocí:xkbcomp output.xkb $DISPLAY
.
Pokud vše funguje, umístěte soubor někam, ~/.Xkeymap
funguje a vytvořte skript například s názvem ~/start_keyboard.sh
s:
#!/bin/bash
xkbcomp ~/.Xkeymap $DISPLAY
Udělejte jej spustitelným (chmod u+x ~/start_keyboard.sh
) a přidejte skript do spouštěcích aplikací.