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
~/.Xmodmaps řá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/usmítkey <NMLK> { [Delete, Num_Lock] };na konci základní mapy kláves. - restartujte počítač
také zkusil:
- Upravit
/usr/share/X11/xkb/symbols/usmí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í.