Browsed by
Tag: ergonomie

Ergonomie level PRO.

Ergonomie level PRO.

Dnešní článek přímo navazuje na minulý článek o ergonomii práce na počítači. Jak jsem už nakousl, ergo klávesnice a myš je jen část toho, co jsem si kvůli bolestem rukou vyrobil. To hlavní Vám chci ukázat dnes.

To, co vidíte vlevo vedle klávesnice, sice vypadá jako numerická klávesnice, ale není to tak :). Je to kouzelná klávesnice :)).

To, o čem dnes chci psát, je způsob, jak z jakékoli další klávesnice (numerické, klasické, gaming,….) udělat speciální ovládací “pult” s naprosto odlišnými akcemi, než jaké klávesy mají dělat. Zní to složitě? Trochu. Pojďme postupně.

Když jsem řešil ergonomii, tak zatímco pravou ruku jsem vyřešil vertikální myší, levá ruka toho při programování (a především pak ladění programů) má spoustu na starosti a bohužel řada z těchto akcí se dělá šílenými kombinacemi, které je ale většinou lepší udělat jednou rukou, než neustále přendávat pravou ruku mezi myší a klávesnicí. A tak levá ruka běžně mačká všechny různé ctrl+shift+xx nebo ctrl+alt+xxx a u toho jí všelijak lámu. A to není dobře :).

První nápad, jak jsem chtěl toto vyřešit, byla koupě nějaké externí mapovatelné kávesnice, kde si budu moct na jednotlivé tlačítka namapovat makra či akce stejně jako u myši. Jenže, toto zní snadněji než to v reálu je. Různé speciální tlačítkové panely, které toto umožňují, jsou většinou za nehorázné peníze a nabízí jen pár kláves. Například tento pěkný StreamDeck vyjde v alze na 4000kč. To je na můj vkus trochu dost :).

Jako další jsem se dostal k externím single-hand gaming klávesnicím. Po projití docela dost z nich jsem došel k závěru, že vlastně jediná rozumná je Razor Tartarus, která umožnuje mapování všech tlačítek na libovolné akce. Jenže cena u nás 3000kč. Sice lepší poměr cena ku počtu tlačítek, ale pořád nic moc.

A tak jsem se dostal k Aliexpressu. Takových klávesnic tam je plný vagón, jenže, mají jednu drobnou odlišnost. Ony už nejsou plně mapovatelné, ale jsou to obyčejné uřízlé půlklávesnice, kde jsou klasická písmena ASDF. Jenže taková klávesnice pak naopak stoji jen $13 místo $150. Ale pro mé účely se úplně nehodila. A tak jsem hledal dál.

Obrázek z fóra hidmacros

Až jsem narazil na fórum HidMacros, kde byl podobný obrázek. Když se podíváte pořádně, uvidíte vlevo a vpravo klasické klávesnice, kdy každá dělá něco jiného. Hmm, tell me more. A tím sem zjistil, jakým směrem dál ubírat mé hledání. Nejde totiž o to, najít klávesnici, co umí vše, ale najít rozumnou klávesnici za rozumné peníze a celou si ji přeprogramovat.

A tím se dostáváme k aplikaci LuaMacros, což je vlastně HidMacros V2. Stojí za ním nějajký čech (nemáme ho třeba i mezi sebou zde? :)), který vyrobil aplikaci umožnující nejen namapovat různé akce na klávesy, ale co je důležitější, umí rozlišit klávesu a usb zařízení, na kterém byla tato klávesa stisknuta. To znamená, že můžete mít klidně 5 různých klávesnic, a vy jste schopni přesně určit, na které klávesnici byl stisk písmene proveden. Famózní.

A tak jsem šel testovat. První, co zjistíte, je že HidMacros aplikace již není podporovaná. To je ze začátku určitě škoda, protože ta měla údajně i GUI, kde si člověk mohl klávesy snadno namapovat. Nevýhoda naopak byla, že uměla jen základní funkce. Autor se pak rozhodl aplikaci předělat a zmodernizovat, ale protože (jeho slovy) nemá rád vývoj GUI a pro své potřeby ho nepotřebuje, rozhodl se celou aplikaci udělat jako skriptovací engine. To znamená, že v nové LuaMacros Vás nepřivítají žádné obrazovky, žádné návody nic, ale jen prázdné scriptovací okno pro Lua script.

Když si otevřete github stránku s projektem, jako první Vás uvítá varování o tom, abyste aplikaci nepoužívali :). To mne pobavilo :). Naprosto ale chápu, proč tam to varování je. Rozchodit appku není úplně snadné a naprosto rozumím autorovi, že dělat zdarma support tisícům lidí, kteří pak neumí ani zmáčknout tlačítko Donate, je složité. Stačí ale investovat trochu času a trochu hledat a po chvilce už budete umět vyrábět vlastní scripty.

Abych Vám s tím trochu pomohl, ukážu Vám zde pár příkladů jak script napsat a jak to mám nastaveno já. Toto jsou tři nejdůležitější linky, které budete potřebovat :

Program není zas tak složitý, ale pojdmě si ho trochu okomentovat. Jako první musíte pojmenovat danou klávesnici nějakým názvem. Nejprve potřebujete zjistit identifikátor dané klávesnice. Na to je funkce lmc_assign_keyboard(‘MACROS’); a lmc_print_devices();

První příkaz Vám v aplikaci ukáže okno, které Vás vyzve ke stisku klávesy na dané klávesnici, druhý příkaz pak vypíše všechny zařízení i s jeho přiřazeným identifikátorem “MACROS”.

Version: 0.1.1.122
unassigned : \\?\HID#VID_0566&;amp;PID_3019&;MI_00#9&;1B07498&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [638197749] : keyboard 
unassigned : \\?\HID#VID_046D&;PID_C232#2&;6BACD57&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [459531] : keyboard 
unassigned : \\?\HID#VID_1050&;PID_0407&;MI_00#A&;A18C4AB&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [65613] : keyboard 
unassigned : \\?\HID#VID_046D&;PID_C52B&;MI_00#9&;3AD9A56&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [65611] : keyboard 
MACROS: \\?\HID#VID_045E&;PID_00DB&;MI_00#9&;2EFD0B1A&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [65609] : keyboard 
unassigned : \\?\HID#VID_046D&;PID_C537&;MI_01&;COL01#9&;5E731AC&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [65607] : keyboard 
unassigned : \\?\HID#VID_045E&;PID_07B2&;MI_00#9&;3B937931&;0&;0000#{884B96C3-56EF-11D1-BC8C-00A0C91405DD} [65605] : keyboard
Total number of devices: 7

Nyní už víte, že Vaše klávesnice má kód 2EFD0B1A a proto použijete příkaz lmc_device_set_name(‘MACROS’, ‘2EFD0B1A ‘).. (toto ID najdete v řetězci cca v první třetině za PID_xxx&MI_xxx&;).

Toto byla defakto ta nesložitější část. Nyní si už jen namapujete akce na klávesy. Jelikož jde o scriptovací jazyk, můžete udělat cokoli.  Jednoduchý příklad namapování je například tento:

-- assign logical name to macro keyboard
lmc_assign_keyboard('MACROS');

-- define callback for whole device
lmc_set_handler('MACROS',function(button, direction)
  if (direction == 1) then return end -- ignore down
  if (button == string.byte('C')) then lmc_spawn("calc")
  elseif (button == string.byte('N')) then lmc_spawn("notepad", "C:\\test.txt")
  elseif (button == string.byte('H')) then lmc_send_keys('Hello world')
  else print('Not yet assigned: ' .. button)
  end
end)

Tento script Vám namapuje klávesy C, N a H na spuštění kalkulačky, poznámkového bloku a H na napsání “Hello world”. Jak vidíte, v této podobě zatím script nijak nerozlišuje, která aplikace je aktuálně spuštěná a obsluhuje klávesy vždy stejně.  Na to je pak potřeba script rozšířit například o detekci názvu aktuálního okna či jinak zjistit, jaká aplikace zrovna běží. I toto všechno lze udělat a pokud budete na fóru hledat, jsou na to ukázky. Já sám zatím toto rozběhané nemám, jelikož používám zkratky jen ve Visual Studiu, takže je mi jedno, co to dělá v ostatních aplikacích.

Další script je pak mé mapovací schéma pro Visual Studio namapované na numeriku. Význam jednotlivých zkratek najdete v dokumentaci, jak vidíte, mapuji hlavně různé Shift+F10, CTRL+SHIFT+F10 a podobně.

lmc_device_set_name('MACROS', '1B07498')

-- define callback for whole device
lmc_set_handler('MACROS',function(button, direction)
  if (direction == 1) then return end  -- ignore down
    if     (button == 103 or button == 36) then lmc_send_keys('+{F11}') --7
    elseif (button == 104 or button == 38) then lmc_send_keys('{F10}') --8
    elseif (button == 105 or button == 33) then lmc_send_keys('{F11}')--9
    elseif (button == 111) then lmc_send_keys('{F5}')  -- /
    elseif (button == 106) then lmc_send_keys('{F9}')  -- *
    elseif (button == 109) then lmc_send_keys('^<{F10}')  -- -
    elseif (button == 107) then lmc_send_keys('^<+<{F10}')  -- -
    elseif (button == 100 or button == 37) then lmc_send_keys('%<o')  --4
    elseif (button == 101 or button == 40) then lmc_send_keys('%g')  --5
    elseif (button == 102 or button == 39) then lmc_send_keys('%t%t')  --6

    elseif (button == 110) then lmc_send_keys('%<{TAB}') --.

    elseif (button == 98 or button == 144) then lmc_send_keys('%<t%<p') --2
    elseif (button == 99 or button == 144) then lmc_send_keys('%<t%<n') --3
    elseif (button == 144 or button == 96) then lmc_send_keys('%<{TAB}')  --0

    elseif (button == 13) then lmc_send_keys('{ENTER}')                --Enter
    elseif (button == 8) then lmc_send_keys('{BACKSPACE}')                --BACKSPACE
    else print('Not yet assigned: ' .. button)
    end
end)

Poslední věc, která by stála za zmínku, je způsob, jak mapovat různé klávesy pro různé aplikace. Jak jsem říkal, sám to ještě nepoužívám. Ale když jsem si s LuaMacros hrál, tak jsem i toto testoval. Toto je zhruba způsob, jak můžete okna od sebe odlišit pomocí titulku okna:

function string.starts(String,Start)
   return string.sub(String,1,string.len(Start))==Start
end

-- define callback for whole device
lmc_set_handler('MACROS',function(button, direction)

  windowTitle=lmc_get_window_title()
  print(windowTitle)
  
  if string.starts(tt,"LuaMacros") then
    ...
  end
end

Tenkrát se mi nepovedlo najít, jestli lze přes script nějak vyčíst také window class, nejen window title. Ale protože jsem to extra nepotřeboval, tak jsem se s tím nezdržoval.

 

A nyní zpět ke klávesnicím. Jelikož už víme, že lze použít jakoukoli, objednal jsem z Aliexpresu na zkoušku jednak tuto druhou numeriku a pak nahoře ukázanou červeno-černou gaming klávesnici. Zatím mi dorazila jen ta bezdrátová numerická a ta určitě není špatná. Jsou na ni super ty druhé šipky, takže se lze pohybovat v kódu i levou rukou. S větším testem chci ale počkat i na tu gaming klávesnici, abych to otestoval celé najednou.

Co se samotného use-case týká, tak díky této klávesnici je pro mne práce ve Visual Studiu o dost pohodlnější. Co šlo jsem si namapoval na jednotlivé klávesy, takže nyní například celý debugging dělám jen skrz tuto klávesnici. Takže za sebe určitě doporučuji. Chce to ale věnovat tomu čas. Jednak na pochopení celého scriptovacího systému, dále pak hlavně na vymyšlení a zvyknutí si na novou klávesnici a nové rozmístění zkratek. Osobně jsem několikrát celé schéma předělával a stále ho ještě ladím. Investovaný čas se ale rozhodně vyplatí.

Další ukázka úpravy klávesnice z fóra HidMacros

Co se týká využití, tak nemusí jít nutně jen o mnou zmiňované Visual Studio, můžete si takto namapovat jakoukoli jinou aplikaci, kde potřebujete hromadu zkratek (například Photoshop, Ilustrator či cokoli jiného), stejně tak lze použít právě třeba na hry, kdy zde to autor používá na FlightSimulator. K tomu si pak pěkně polepit tlačítka konkrétníma akcemi a klávesnice je naprosto dokonalá :).

Ergonomie práce na počítači…

Ergonomie práce na počítači…

…takhle nějak se jmenovalo kolokvium, které jsme kdysi absolvovali na vejšce. Na předmět jsme nechodili, na zkoušku jsme se neučili a kolokvium uzavřeli tím, že jsme ho nějak okecali. Stále si vzpomínám, jak z nás vyučující byl úplně zničený a už fakt nevěděl, na co se nás zeptat, abychom aspoň něco věděli a nemusel nás vyrazit a zkoušet znova. Tak se nás zeptal, jestli víme, jak ulevit karpálním tunelům. Tenkrát jsme téměř dvouhlas s kolegou řekli, že “takto protřepeme ruce” a blbě se u toho smáli. Vyučujícímu to naštěstí stačilo (nebo ho to dorazilo) a my tenkrát kolokvium dostali.

Tenkrát to byla děsná legrace. Tou dobou jsme už měli za sebou stovky a tisíce programátorských hodin a my měli pocit, že se nás nějaké karpální tunely naprosto netýkají. Víme, co děláme, už jsme se u počítače něco naseděli a žádné příznaky, tak proč to řešit. A bylo to tak ještě hromadu let po téhle zkoušce.

Jenže jednou to člověka stejně dožene. Zřejmě to má i něco společného s tím, že se pomalu ale jistě blížíme do věku, který jsme v pubertě považovali za důchodový a pro nás nepředstavitelný. Jenže, čas běží, roky letí a člověk do toho věku prostě dojede. Důchod to rozhodně není, ale regenerace už nefunguje tak, jak v 18ti (a to včetně odbourávání alkoholu :)) ).

A tak to dohnalo i mě. Zřejmě i díky Covidu, kdy jsme všichni zavření ještě o dost víc, než jaký je běžný průměr ajťáka, ve své temné noře.  A tak začly karpály na obou rukách trápit i mne. Což se projevuje bolestí při pohybu zápěstí, přehnanou citlivost celé ruky, když ji mám položenou jen na stole, a vlastně celkovou neschopností dělat na počítači něco delší dobu.

A protože bez programování se žít nedá, aspoň pro mě, bylo potřeba to nějak vyřešit :). Krom fixačních ortéz, které mi dost pomáhají, jsem začal řešit zase trochu víc i ergonomii práce. Klávesnici používám ergonomickou už dlouhou dobu (od Microsoftu Ergonomic 4000) a tak jsem se rozhodl k přidat i vertikální myš, která by měla (a opravdu to tak je) hodně ulevit ruce díky tomu, že zápěstí není neustále vytočený v nepřirozené poloze.

Ze začátku se mi nechtělo rovnou platit drahý Logitech za 2999 Kč, a tak jsem zkusil nejprve hledat jinde. No, měl jsem ji vzít rovnou, ušetřil bych si hromadu času a vzteku. Hledal jsem myš s více tlačítky, jelikož jsem potřeboval nahradit stávající Logitech G602, která má tlačítek 10 a které při práci hodně využívám. A tak jsem jako první vyzkoušel myš značky Trust. Tuhle značku jsem nikdy moc nemusel, ale vizuálně vypadala myš dobře, má i více tlačítek a celkově působila profesionálně.

Blbý nápad. Bohužel, co Vás fakt při pořizování nenapadne je, že všech 7 tlačítek jde naprogramovat jen pomocí vnitřního myšího menu a jdou na tlačítka nastavit jen funkce jako je kalkulačka, ztlumení zvuku a další naprosto zbytečné funkce. Na mapování vlastních klávesových zkratek, maker a jiných pokročilých věcí zapomeňte. Takže značka Trust opět nezklamala a jen jsme se ujistil, že od nich fakt výrobky nechci. A tak šla myš hodně rychle z domu.

Další pokus byla myš z Aliexpresu. Měla přijít přes Fast shipping, ale trvalo jí to. Navíc po několika dnech čekání ve mne začala hlodat nejistota, že to stejně bude stát za prd a spolu se sílícími bolestmi, kdy jsem myš byl schopný držet jen pár minut, jsem se nakonec rozhodl testovat dál. Než ale přejdu k další myši, ještě pár slov o této čínské. Ta nakonec dorazila později, ale nyní ji využívá I. a chválí si jí. Pro mou ruku by byla malá, ale jinak má super provedení, pěkné pogumování i dobré ovládání. Za $8 super nákup, pokud si chcete vertikální myš za pár korun vyzkoušet.

A tím se dostáváme k vítězi mého testu. Když jsem prošel všechny další ergo myši, chtě nechtě jsem vždy skončil u Logitechu MX Vertical. Nemá sice tolik tlačítek, ale dle recenzí vypadala super. Rozhodl jsem se ji tedy zkusit. Co bylo super, CZC v tu dobu mělo zrovna nějakou Logitech akci, takže místo 2999Kč doporučené ceny jsem ji sehnal za 1999Kč. To už bylo o něco lepší.

Na myš si člověk musí zvyknout, není to ze začátku vůbec jednoduché, ale stojí to za to. Nepočítejte sice s tím, že Vám to ruku zázračně vyléčí, ale rozhodně to problém dále nezhoršuje. Stále většinu dne při práci nosím ortézy, ale společně s touto myší a ještě jedním trikem (ten zas v dalším článku) se mi to postupně lepší a hlavně už zase dokážu pracovat celý den, aniž bych namísto práce myslel na bolest ruky/rukou.

Co je super, tak krom kvalitního HW má myš i kvalitní SW, kde si lze namapovat ke každému tlačítku jakoukoli akci, navíc v závislosti na aktuálně puštěnou aplikaci. Nově jde v jejich ovládacím centru namapovat také gesta, což umožnuje na jedno tlačítko přidat až 4 akce. V praxi to funguje tak, že zmáčknete například horní tlačítko a pohnete myší do jedné ze čtyř stran, čímž aktivujete nastavenou akci/makro/…  Tím vcelku úspěšně suplují chybějící tlačítka, na které jsem byl zvyklý z G602.

Abych ale jen nechválil, pozoruji na myši momentálně dva “problémy”. Tím prvním je, že když člověk neustále přendává ruku z myši na klávesnici, tak si občas myš převrhne. Myš je o dost vyšší než klasická myš, takže o ni občas zavadíte. Na to jsem si zatím ani po měsíci zatím nezvykl. Druhý nešvar je pak umístění “forward” tlačítka na boku, tyto tlačítka mohly být trošku jinak, aby se na obě dalo lépe dosáhnout. A k tomu pak třetí spíše povzdechnutí, že mohlo být alespoň ještě jedno tlačítko na boku, což by umožnilo ještě větší uzpůsobení myši. Negativa jsou ale opravdu jen prkotiny a je víc než pravděpodobné, že někomu jinému budou pozice tlačítek sedět víc a tlačítko navíc by ani neocenil.

Pokud Vás trápí bolest v zápěstí, nebo máte jiné průvodní jevy karpálního tunelu, určitě mohu vertikální myš doporučit. K tomu to chce určitě i ergonomickou klávesnici, abyste neměli zápěstí zalomená. Krom těchto dvou věcí mám pak v rukávu ještě jedno eso, které si ale nechám do příštího článku. Jedná se o vylepšení, jak si usnadnit krkolomné klávesové zkratky. V mém případě jde primárně o Visual Studio (programovaní), kdy téměř na vše využívám zkratky namísto myši kvůli vyšší efektivitě.  Jenže, když člověk celé den láme ruku do všech CTRL+SHIFT+F8 pozic, tak to levá ruka rovněž neocení. A i to jsem vyřešil. O tom příště :).