GNU/Linux >> Znalost Linux >  >> Linux

Přemapujte vlastní klávesy klávesnice v Linuxu – výukový program

Moderní problémy vyžadují moderní řešení. Nedávno jsem si pořídil nový testovací linuxový notebook, jeden IdeaPad 3, který jsem si koupil (bohužel kvůli nedostatku trhu) s rozložením klávesnice pro Spojené království namísto rozložení v USA. To znamená neoptimální fyzické umístění kláves – i když používáte jinou variantu klávesnice. Jmenovitě jsou klávesy bar a backspace a podobně umístěny špatně a navíc klávesa Enter je příliš malá.

Kromě toho to také znamená, že svalová paměť a všechno, skončíte tak, že budete psát \, když vlastně chcete skočit na nový řádek, a to může být docela nepříjemné. Tak jsem si řekl, že bych mohl trochu přemapovat klávesy klávesnice? Nechtěl jsem ale jen přemapovat klávesu backspace (nesoucí symboly UK tilda a hash) na „druhý“ Enter, a tím efektivně vytvořit větší klávesu Enter, stále jsem chtěl mít k dispozici klávesy bar a backspace. Proto složitější cvičení. Dovolte mi, abych vám ukázal, jak můžete toto poněkud spletité, ale super pěkné nastavení.

Úkol po ruce

Dovolte mi tedy jasně vysvětlit, co mám na mysli:

Proto chci udělat následující:

  • Přemapujte klíč se štítkem fyzického symbolu hash/tilda – používaný jako čárka/obrácené lomítko – na DRUHÝ Enter. Díky tomu bude klávesa Enter efektivně větší a já jsem chtěl ten velký Enter ve tvaru obráceného L, jako byste normálně dostali na americké klávesnici.
  • Přemapujte samostatnou klávesu se symbolem pruhu/obráceného lomítka poblíž levého Shiftu – používaného jako šipka doleva a doprava v americkém rozložení – na pruh/obrácené lomítko, protože je ztrácím přemapováním v první odrážce.

Všimněte si „rozbitého“ levého Shiftu a Enteru. Jen kvůli neefektivnímu fyzickému rozvržení.

Můj úkol vyžaduje dvě přemapování:nejprve Enter, pak pruh/zpětné lomítko. Nyní je důležité provést přemapování tímto způsobem, jinak, pokud nejprve přemapujeme pruh/obrácené lomítko, pak klávesa vedle Enter nebude mít vůbec žádné mapování. Dává to smysl?

Obchodní nástroje:xev a xmodmap

Potřebujeme dva nástroje, které jsou součástí balíčku X – nemám ponětí, jestli a jak by se to dalo udělat na Waylandu, ale pak nepoužívám Wayland obecně, protože nemá funkční paritu s X, plus Xorg je výchozí relace na většině distribucí, které skutečně používám, jako například Ubuntu nebo Kubuntu.

Přemapujeme pomocí xmodmap, ale potřebujeme „zachytit“ skutečné klíčové symboly, abychom mohli provést přemapování. Za tímto účelem spusťte xev z okna terminálu. Nástroj otevře malé okno v rohu obrazovky a začne zachycovat vstupy. Pokud stisknete klávesu na klávesnici, uvidíte v okně terminálu následující výstup – jen příklad:

Událost KeyRelease, sériové 40, syntetické NO, okno 0x5a00001,
kořen 0x6a9, subw 0x0, čas 2784437, (1131,438), kořen:(1131,475),
stav 0x0, kód klíče 94 (keysym 0x3c, less), same_screen ANO,
XLookupString poskytuje 1 bajt:(3c) "<"
XFilterEvent vrací:False

Udělejte to pro uchopení symfonu pro lištu/backspace a klávesy se šipkami. Nezapomeňte uchopit „druhou“ namapovanou klávesu (pomocí Shiftu), abyste mohli mapovat obě a ne jen jednu. V opačném případě budeme mít k dispozici buď pouze lištu nebo klávesy se zpětným lomítkem, ale ne obojí.

Než to uděláme, dovolte mi ukázat vám, jak vlastně přemapujete klíče. Při spuštěném xev stiskněte jednou klíč, který chcete nahradit, a klíč, kterým jej chcete nahradit. Poté spusťte xmodmap takto:

xmodmap -e "keysym HEX =NAME"

Přemapujete klíč s hodnotou HEX tak, aby dělal to, co má dělat klíč s hodnotou NAME. Například:

xmodmap -e "keysym 0x5c =Return"

Tento příkaz mapuje symbol klíče 0x5c (což odpovídá pruhu/zpětnému lomítku) na Enter. Jakmile tedy tento příkaz skončí, v mém případě, fyzická klávesa Spojeného království označená symbolem hash/tilda, namapovaná na funkci bar/backspace v americkém rozložení, bude nyní fungovat jako druhá klávesa Enter. Skvělé.

Nyní však také potřebujeme namapovat funkci bar/backspace.

Modifikátor

Abychom namapovali standardní i druhou (Shift) funkci pro klávesu, budeme potřebovat modifikátor. Jaké existující modifikátory existují, můžete zkontrolovat pomocí:

xmodmap -pm
xmodmap:až 4 klávesy na modifikátor, (kódy kláves v závorkách):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
ovládání Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Chcete-li nyní přemapovat klíč s DVĚMA funkcemi, syntaxe je následující:

xmodmap -e "keysym HEX MOD =NAME1 NAME2"

V našem příkladu:

xmodmap -e "keysym 0x3c Shift_L =zpětné lomítko"

Přemapujeme klávesu, která odpovídá 0x3c - to je klávesa označená bar/backspace na fyzické britské klávesnici, mapovaná na levou a pravou šipku na americké klávesnici - aby ve skutečnosti fungovala jako bar/backspace. Modifikátorem je klávesa Left Shift. Pokud tedy klávesu stisknete samostatně, získáte zpětné lomítko, pokud ji použijete s levým Shiftem, získáte symbol čáry (roury). A nyní máme požadované rozložení.

Ještě jednou si pamatujte, že neztrácíme klávesy se šipkami, protože jsou již namapovány na klávesy čárky a tečky poblíž klávesy Right Shift. Kombinace fyzické britské a virtuální americké klávesnice ve skutečnosti vedla ke dvěma párům kláves se šipkami, takže se jedné zbavujeme a získáváme další Enter.

Automaticky spustit skript

Nedělejte si starosti, pokud uděláte chybu. Restartujte systém a vrátíte se do normálu. Proto, aby byly vlastní přemapování trvalé, budeme muset vytvořit skript automatického spuštění, který se spustí při každém přihlášení uživatele a provede potřebné změny.

Můžete to udělat mnoha způsoby. Ukážu vám, jak vytvořit skript automatického spuštění pro plochu Plasma, ačkoli principy jsou stejné pro téměř všechny plochy. Je to velmi podobné tomu, co jsem udělal s tlačítkem Zobrazit plochu v Gnome.

Otevřete okno Konsole, přejděte na ~/.config/autostart-scripts. Zde vytvořte textový soubor s následujícím obsahem:

[Desktop Entry]
Name=Key swap
Exec=key-swap.sh
Terminal=false
Typ=Aplikace

Můžete použít libovolný název a soubor můžete pojmenovat, jak chcete, ale ujistěte se, že má příponu na ploše. V mém příkladu jsem to uložil jako key-swap.desktop. Nastavit tento soubor jako spustitelný:

chmod +x ~/.config/autostart-scripts/key-swap.desktop

Nyní řádek Exec v souboru plochy odkazuje na skript, který zatím neexistuje. Normálně, když se podíváte na řádky Exec pro jiné desktopové skripty (můžete zkontrolovat Firefox nebo Chrome nebo cokoli jiného), všimnete si napsaného jediného příkazu. Protože potřebujeme dva příkazy xmodmap, nejjednodušším řešením je vložit je do samostatného skriptu shellu a poté použít skript jako příkaz Exec.

V adresáři autostart-scripts vytvořte soubor s názvem key-swap.sh – také jej udělejte spustitelným.

#!/bin/bash

xmodmap -e "keysym 0x5c =Return"
xmodmap -e "keysym 0x3c Shift_L =zpětné lomítko"

exit 0

Toto je můj příklad. Můžete mít úplně jiné potřeby a možná budete potřebovat pouze jednu xmodmapu, nebo možná sedm. Jen pro informaci a úplnost, pokud byste měli provést jedinou změnu xmodmap, můžete přeskočit skript shellu a vložit jej do souboru na ploše.

[Desktop Entry]
Name=Key swap single key
Exec=xmodmap -e "keysym 0x5c =Return"
Terminal=false
Typ=Application

Prostřednictvím nástroje Nastavení plazmy můžete skutečně ověřit, zda je vše v pořádku:

Pokud někdy změníte názor, můžete skripty zakázat nebo odstranit, použít jiná mapování klávesnice a při příštím restartu se věci vrátí do výchozího stavu nebo do nového vlastního stavu, který si přejete. Získáte tak potřebnou flexibilitu. I když jsou věci takříkajíc trvalé, můžete je kdykoli změnit.

Závěr

Tady máš. Toto je můj malý návod, který ukazuje, jak jsem vylepšil výchozí ergonomii klávesnice Lenovo IdeaPad, lépe využívám její fyzické rozložení a měním mapování kláves na vlastní hodnoty. Co dělá průvodce ještě zajímavějším, je fakt, že jsem používal americké rozložení, takže je tu ještě jeden malý obrat, ale určitě se to bude hodit, pokud používáte i jiné jazyky. Pamatujte, že fyzické označení na klávesách a aktuální funkce nemají nic společného. Je to jen vizuální odkaz, který lidem usnadní nalezení správných symbolů.

Doufejme, že to bylo praktické. Všiml jsem si okamžitého zlepšení rychlosti psaní a navíc dělám mnohem méně chyb Enter backspace. Moje ruce mohou pokračovat v rychlé práci, aniž bych se musel znovu trénovat na další fyzické rozložení, které se tak drasticky liší od většiny ostatních notebooků a/nebo klávesnic, které mám. S xev a xmodmap byste se měli dobře bavit. Pokud máte nějaké podobné, nebo možná tajemné požadavky, napište mi ping a uvidím, co mohu udělat. Příjemné psaní.


Linux
  1. Linux – režim Raw klávesnice?

  2. Linux – Hard Remap Keys?

  3. Klávesové zkratky, které jsou nezávislé na rozložení klávesnice?

  1. Jak nastavit klíče SSH pro přihlášení k ssh „bez hesla“ v systému Linux

  2. Jak nastavit klíče SSH pro přihlášení pomocí „veřejného/soukromého klíče“ SSH v systému Linux

  3. Jak mohu získat stav klávesnice v Linuxu?

  1. Moje vlastní distribuce Kali Linux

  2. Přemapujte klávesy Win, Ctrl a Alt na Linuxu

  3. Jak přemapovat klíče pod Linuxem pouze pro konkrétní klávesnici