abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 3
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 8
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    17.4. 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 1
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (19%)
    Celkem 560 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Pystromo - šikovné (pře)mapování kláves

    2. 2. 2012 | David Kolibáč | Hardware | Návody | 3354×

    Původním cílem projektu Pystromo bylo vytvoření nástroje umožňujícího nastavení kláves na herním zařízení Belkin Nostromo n52, jehož variantu n52te si v tomto článku představíme. Vedle toho se také podíváme na možnosti použití programu Pystromo, který nakonec můžeme použít k "přeprogramování" funkce tlačítek na takřka libovolném vstupním zařízení.

    Obsah

    Belkin SpeedPad n52te

    Mezi hráči si vydobyla nemalou popularitu zařízení jako Logitech G13 nebo právě řada Nostromo od Belkinu, resp. Razeru. Jde o minimalistické klávesnice pro jednu, obvykle levou, ruku. Právě pro hráče je podstatná možnost nastavit si funkce jednotlivých kláves, případně jejich kombinací, což na MS Windows obstarává specializovaný software od výrobce. Jak to ale souvisí s GNU/Linuxem, který se nedá považovat za typickou herní platformu? Důvody jsou dva úzce provázané. Za prvé jsou takováto zařízení řešena poměrně ergonomicky oproti většině běžných klávesnic, za druhé si jde na klávesy navázat klávesové zkratky nebo makra. Využití to najde při práci se specializovaným softwarem nebo třeba i obyčejným webovým prohlížečem.

    Belkin n52te se od asi nejpopulárnějšího modelu n52 liší jen v detailech jako podsvícení, firmware atp. Je to na první pohled docela zvláštní zařízení s futuristickým tvarem. Matná opěrka slouží pro opření levé dlaně, palec padne na čtyřsměrnou křížovou páčku a zbývající prsty pokryjí pole s klávesami. Je to velice pohodlné — především díky provedení opěrky, jež je jednak pogumovaná (hodí se v případě potící se dlaně), jednak nastavitelná do jedné ze dvou pozic podle délky prstů (aby pohodlně dosáhly na všechna tlačítka).

    Na spodní straně najdeme přepínač, kterým se zapíná podsvícení. Ale osobně jej prakticky nevyužívám, jelikož klávesy jsou pokryty prsty, takže na ně není vidět, podsvícení kolečka mi zase tak kritické nepřipadá a z polohy, v níž sedím, není pozorovatelné ani podsvícení prostoru mezi klávesami. Navíc bych ocenil, kdyby mi do obličeje neustále nesvítila dioda umístěná vedle palce. Když už jsme u toho, další "módní" záležitost, totiž lesklý černý plast, zde výjimečně příliš nevadí, protože na povrchu nezůstávají vidět otisky prstů.

    Ale konečně k tomu nejpodstatnějšímu, totiž klávesám. Je jich celkem patnáct a k tomu čtyřsměrná páčka, jedno tlačítko vedle ní a kolečko jako u myši. Trojice kláves v sloupci nejvíce vlevo (v režii malíčku) se ve výchozím stavu chová jako Tab, Caps Lock a Shift; dalších jedenáct kláves zastupuje levou část QWERTY, tu v hrách nejvyužívanější, tedy po řádcích QWER, ASDF a ZXC; poslední klávesa se nachází pod kloubem palce a hlásí se jako mezerník. Tyto klávesy jsou běžné membránové a mají výraznou odezvu. Kolečko u ukazováčku hlasitě "cvaká" a jde poměrně ztuha stisknout — chová se jako běžné kolečko myši. Zbývá nám tlačítko u palce, to se hlásí jako Alt a je to obyčejné tlačítko (nikoliv jako u klávesnice), a nakonec páčka pro palec — bříško prstu padne přesně na hrubý klobouček a dá se tak snadno pohybovat (ve výchozím stavu kurzorovými šipkami).

    Ohledně přítomných ovládacích prvků nemám velké výhrady. Opěrka dlaně je skvělá, přístup ke klávesám je také velice dobrý, byť tu a tam lehce narážím problém s nedostatečnou délkou svých prstů. Ocenil bych snazší manipulaci s kolečkem, ovšem jsem si vědom toho, že to by šlo spíše proti hernímu využití. Taktéž bych byl rád (a nejsem sám) za kvalitnější klávesy s mikrospínači s lineárním průběhem stisku (vizte modifikaci).

    Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te Belkin SpeedPad n52te

    Pystromo

    link

    A nyní se pojďme podívat na Pystromo. Poslední verze (s označením 0.6.0) je staršího data, ale stále by měla posloužit. Ke stažení ji najdeme na Launchpadu, na balíčky si musíme nechat zajít chuť.

    Instalace

    Instalace je poměrně jednoduchá:

    1. Zavedeme modul uinput, tedy se superuživatelskými právy provedeme modprobe uinput a pro příště přidáme uinput na nový řádek do souboru /etc/modules.
    2. Rozbalíme stažený archiv. Pokud nechceme Pystromo spouštět se superuživatelskými právy, zkopírujeme do /etc/udev/rules.d/ soubor 52-pystromo.rules (resp. 52-pystromo-debian.rules v případě Ubuntu/Debianu nebo 52-pystromo-suse.rules v případě OpenSUSE) z adresáře config v archivu. (Nechceme-li restartovat systém, pravidla uvedeme v platnost příkazy udevadm control --reload-rules a udevadm trigger.) Na tomto místě považuji za vhodné podotknout, že se jedná o potenciální bezpečnostní riziko, neboť se tím uživatelům zpřístupňují "syrová" data ze vstupních zařízení.
    3. Konfiguraci udržujeme typicky v adresáři ~/.config/pystromo/.

    Soubory aplikace Pystromo

    Použití

    link

    Základním programem je pystromo-remap.py — stará se o samotné přemapování kláves. Volá se zpravidla pystromo-remap.py -m soubor, což provede mapování podle pravidel uvedených v zadaném souboru. Argument -m můžeme použít vícekrát najednou. Další (volitelné) argumenty jsou -R (program pak kontroluje, zda se konfigurační soubor nezměnil — jestliže ano, pak se podle toho zachová) a -v (vypisuje informace o běhu programu, dá se použít jednou až třikrát najednou a podle toho jsou vypisované informace detailní).

    Užitečný může být démon pystromo-mon.py, který sleduje běžící procesy a v závislosti na nich volá démona pystromo-remap.py. To znamená, že si můžeme zvolit specifická nastavení pro různé aplikace. Konfiguruje se to v souboru ~/.config/pystromo/monitor.conf, příp. v souboru předaném při spuštění démona: pystromo-mon.py -c soubor — takovýcho souborů můžeme opět předat více. Pozoruhodný je také argument -a, který způsobí, že démon sleduje procesy všech uživatelů. A samozřejmě nechybí argument -v s obvyklým významem.

    Pravděpodobně budeme chtít spustit Pystromo při každém přihlášení či startu grafického prostředí, takže se podle toho zařídíme.

    Konfigurace

    link

    Nejprve k nastavení pystromo-mon.py — ukázkový konfigurační soubor je config/monitor.conf a obsahuje následující pravidla:

    *=config/test.map
    kcalc=config/saitek-p2500.map
    kcalc=config/n50.map
    

    Myslím, že význam je zřejmý. První řádek způsobí, že se v každém případě pro přemapování použije konfigurační soubor config/test.map. Další řádky pak říkají, že po dobu běhu procesu (zde se jménem kcalc) poběží navíc pystromo-remap.py s konfigurací ze souborů config/saitek-p2500.map, resp. config/n50.map.

    Nakonec ale to nejzajímavější, tedy konfigurace samotného přemapování (omlouvám se za podivné počeštění, ale stručné a přitom výstižné synonymum mě nenapadlo). V souboru config/test.map najdeme celou řadu příkladů, zde uvedu stručnou kuchařku.

    Nejprve musíme definovat zařízení, která nás budou zajímat — přitom budeme potřebovat nejlépe výstup příkazu lsusb. Na začátku konfiguračního souboru tedy uvedeme blok (může jich být i více) jako následující:

    # Nostromo n52te
    [Device:n52te]
    vendor=0x050d
    product=0x0200
    

    Na prvním řádku je komentář pro snazší orientaci, nás bude zajímat až to další. Na druhém řádku zařízení přiřazujeme jméno n52te, pomocí nějž k němu budeme posléze přistupovat. Na dalších dvou řádcích specifikujeme, podle čeho se má zařízení identifikovat — viz výstup lsusb: Bus 005 Device 003: ID 050d:0200 Belkin Components (číslo před dvojtečkou označuje výrobce, číslo za ní konkrétní model; 0x přidáváme do konfiguračního souboru proto, že jde o čísla v šestnáctkové soustavě).

    Dále konfigurační soubor obsahuje bloky uvozené řádkem [Map:zařízení], kde zařízení nahradíme jménem, které jsme zařízení přiřadili (viz např. [Device:n52te] výše), nebo ho necháme prázdné, pak se následující přemapování budou vztahovat na všechna zařízení (specifikovaná výše v konfiguračním souboru).

    Tyto bloky obsahují samotná pravidla pro přemapování. Ta mají obecně tvar dvojic klávesa:cíl, kde

    • část vlevo je kód, který vrací hardwarová klávesa, resp. jméno, které ho zastupuje — kód zjistíme např. z výstupu programu showkey, odpovídající jméno vyhledáme v souboru lib/constants.py;
    • dvojtečka může být nahrazena znakem "rovná se" a plní funkci oddělovače;
    • pravá část udává, na co se klávesa přemapuje, jak se bude hlásit v systému — opět jde obecně o konstanty ze souboru lib/constants.py.

    Například můžeme chtít, aby se klávesa Caps Lock chovala jako Ctrl. Docílíme toho řádkem KEY_CAPSLOCK:KEY_LEFTCTRL. To je docela jednoduché, ale Pystromo umožňuje i složitější záležitosti — několik příkladů:

    KEY_CAPSLOCK, KEY_BACKSPACE:KEY_LEFTCTRL
    Caps Lock a Backspace se budou chovat jako Ctrl
    KEY_LEFTMETA, KEY_RIGHTMETA:
    deaktivujeme obě klávesy Windows
    KEY_LEFTSHIFT + KEY_RIGHTSHIFT:KEY_CAPSLOCK
    současné stisknutí obou kláves Shift bude znamenat Caps Lock
    KEY_LEFTMETA:KEY_LEFTALT + KEY_F2
    levá klávesa Windows se bude chovat jako stisknutí levé klávesy Alt a F2 současně
    KEY_RIGHTMETA:KEY_LEFTALT + KEY_F2. KEY_RIGHTMETA
    pravá klávesa Windows se bude cyklicky chovat jako stisknutí levé klávesy Alt a F2 současně (pro liché stisky) nebo pravá klávesa Windows (pro sudé stisky) — podstatná je tečka mezi jednotlivými výrazy
    KEY_EJECTCD:KEY_LEFTSHIFT + KEY_A, KEY_H, KEY_O, KEY_J, KEY_LEFTSHIFT + KEY_1
    klávesa vysunutí mechaniky vypíše "Ahoj!" (resp. postupně zašle kódy odpovídající uvedeným klávesám — pak záleží na rozvržení kláves, tedy na české QWERTZ (oproti americké QWERTY) by se v tomto případě vypsalo "Ahoj1")
    KEY_EJECTCD:KEY_LEFTSHIFT + KEY_A, 1000, KEY_H, 1000, KEY_O, 1000, KEY_J, 1000, KEY_LEFTSHIFT + KEY_1
    klávesa vysunutí mechaniky vypíše "Ahoj!" jako v předchozím příkladu, ovšem se sekundovými pauzami mezi znaky
    REL_WHEEL<=KEY_DOWN
    točení kolečkem "k sobě" se bude chovat jako kurzorová šipka "dolů"
    KEY_RIGHTALT:KEY_LEFTSHIFT+2000
    stisknutí pravé klávesy Alt bude znamenat podržení levé klávesy Shift po dobu dvou sekund

    Další příklady najdete v souboru config/test.map — zahrnují např. rozsvícení informačních diod (Num Lock, Caps Lock apod.) nebo manipulaci s osami joysticku, ovšem ani jedno jsem nemohl vyzkoušet, protože jsem na to (a) neměl k dispozici hardware, nebo (b) mi to nefungovalo. Zajímavé je reálné využití Pystromo k umožnění ovládání Google Earth pomocí ovladače (gamepadu) z PlayStation 3.

    Ovšem Pystromo není bez chyby. Např. pokus o jakékoliv přemapování tlačítek trackballu Logitech TrackMan Marble mi způsobí zaseknutí kurzoru nebo pokud se pokouším nastavit cokoliv, aby to fungovalo jako kolečko myši, dočkám se posouvání pouze jedním směrem, nikoliv oběma.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Fluttershy, yay! avatar 2.2.2012 00:06 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: Pystromo - šikovné (pře)mapování kláves

    A jedna praktická ukázka:

    # apple-aluminium.map
    
    # Apple, Inc. Aluminum Mini Keyboard (ISO)
    [Device:apple-aluminium]
    vendor=0x05ac
    product=0x021e
    
    [Map:apple-aluminium]
    # swap right Meta and AltGr
    KEY_RIGHTMETA:KEY_RIGHTALT
    KEY_RIGHTALT:KEY_RIGHTMETA
    
    # pseudo-big-ass Enter instead of ISO
    KEY_BACKSLASH:KEY_ENTER
    # move backslash to the corner (Eject)
    KEY_EJECTCD:KEY_BACKSLASH
    # pseudo-ANSI left Shift instead of that ISO cripple
    KEY_102ND:KEY_LEFTSHIFT

    a pak

    $ ./pystromo-remap.py -m apple-aluminium.map
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.