Portál AbcLinuxu, 27. dubna 2024 01:29

add-on tlacitka v mem pojeti

23.5.2008 11:35 | Přečteno: 998× | linux | poslední úprava: 23.5.2008 11:40

Jsem štastným majitelem klávesnice s 10 multimediálními tlačítky, myši s pěti tlačítky (tj dvě navíc) a výkyvným tlačítkem. Podpora v linuxu je více než dobrá (ve smyslu toho, že o nich systém ví, ne že rovnou fungují). Takže jak na to.

Pro úplnost, jedná se o tuto myš a klávesnici

Klávesnice

Klávesnice vrací korektní scankódy (narozdíl od zrůdiček Labtec které vrací sekvence ctrl+alt+...), které zjistíme a budeme ovládat pomocí skvělého programu xbindkeyes.
> xbindkeys -h
xbindkeys 1.7.3 by Philippe Brochard
usage: xbindkeys [options]
where options are:
-V, --version Print version and exit
-d, --defaults Print a default rc file
-f, --file Use an alternative rc file
-h, --help This help!
-X, --display Set X display to use
-v, --verbose More information on xbindkeys when it
run -s, --show Show the actual keybinding
-k, --key Identify one key pressed
-mk, --multikey Identify multi key pressed
-g, --geometry size and position of window open with -k|-mk option
-n, --nodaemon don't start as daemon

Takže například
xbindkeys -mk
zobrazí okno, do kterého najedeme myší a proklikáme všechny multimediální klávesy na klávesnici. Asi je dobře zapamatovat si pořadí, abychom pak z terminálu vyčetly o jaké kláves vlastně šlo.
A výsledek:
--- Press "q" to stop. ---
"NoCommand"
m:0x14 + c:37
Control+Mod2 + Control_L
"NoCommand"
m:0x10 + c:49
Mod2 + grave

Pak už stačí vyeditovat soubor .xbindkeysrc a nastavit si akce pro jednotlivé klávesy. Použijeme scankódy, které jsme získali před chvíli. Soubor by měl existovat, a obsahuje "demo" příklady. Můj vypadá asi takto
# back
"dcop amarok player prev"
c:234 + m:0x10

# forward
"dcop amarok player next"
c:233 + m:0x10

# volume down
"dcop kmix Mixer0 decreaseVolume 0"
c:174 + m:0x10

# volume up
"dcop kmix Mixer0 increaseVolume 0"
c:176 + m:0x10
Syntaxe je tedy jednoduchá: příkaz /n scankód. Já používám téměř ke všemu programy s KDE, které jdou téměř úplně ovládat pomocí dcop.

Myš

xbindkeys umí pracovat také s myší, jen ji neumí identifikovat. "Scankód" pro myš vypadá jako 'b:číslo', tj: b:9 pro první boční tlačítko. Vše je možné kombinovat s modifikátory jako ctr,alt ...
Jako další operační systém používám Mac OS a tam jsem si zvykl na funkci expose. Funguje naprosto perfektně, a po té co jsem si ji namapoval na boční tlačítko myši, jsem zjistil, že je pro mě nepostradatelná. Jak na to v linuxu? Expose efekt umí compiz, compiz-fusion a pak jedna skvělá KDE aplikace kompose. Ta je navíc nezávislá na 3D a compiz-like prostředí. Navíc jako správná KDE aplikace funguje pomocí dcopu. Jedna její nevýhoda je, že neumí "toggle mode". To znamená, že po té co stisknete tlačítko dvakrát, nevrátí se zpět do původního módu. Nic co by nespravil malý skriptík vložený do .xbindkeysrc:
# specify a mouse button
"set=`cat ~/.kompose`; if [ $set -ne 1 ] ;then echo 1 > ~/.kompose; dcop kompose KomposeDcopIface createVirtualDesktopView; sleep 2 ; echo 0 > ~/.kompose; else echo 0 > ~/.kompose ; dcop kompose KomposeDcopIface closeCurrentView ; fi"
b:9

"set=`cat ~/.kompose`; if [ $set -ne 2 ] ;then echo 2 > ~/.kompose; dcop kompose KomposeDcopIface createDefaultView; sleep 2 ; echo 0 > ~/.kompose; else echo 0 > ~/.kompose ; dcop kompose KomposeDcopIface closeCurrentView ; fi"
b:8
No ano, celý skriptík je na jeden řádek. Komu se to nelíbí, může si ho umístit do ~bin/skript.sh a ten spouštět jako příkaz z .xbindkeysr. Výsledek je že po stisknutí tlačítka 8 uvidím všechny aplikace na současné ploše. Stisknutím tlačítka 9 uvidím všechny aplikace na všech oknech, a druhý stik jakéhokoliv tlačítka mě vrátí do původního stavu.

Horizontální skrolování pomocí kolčeka

Pro krátkém zkoumání, jsem zjistil, že toto obstarává jiný ovladač pro myš. Jmenuje se evdev, je běžně dostupný v distribuci. A od openSUSE 11.0 bude pro tento typ myši použit. Pro správné fungování stačí změnit xorg.conf:
Section "InputDevice"
Driver "evdev"
Identifier "Mouse[1]"
Option "Device" "/dev/input/event1"
Option "HWHEELRelativeAxisButtons" "7 6"
EndSection
V KDE funguje ve všech aplikacích. Firefox je potřeba přinutit"
about:config mousewheel.horizscroll.withnokey.action - Set this to '1'
mousewheel.horizscroll.withnokey.numlines - Set this to '1'

Na závěr, pár postřehů.


"dcop kdesktop KScreensaverIface lock" - uzamkne desktop pomocí šetřiče obrazovky (tlačítko kalkulačka na právé straně).
"kmail --composer" - ukáže kmail okno pro nový email.
"dcop kmail KMailIface openReader" - ukáže (nové!) okno celého kmailu (skvělé při integraci s kontaktem).
"dcop `dcop | grep konq | head -n 1` KonquerorIface openBrowserWindow ~" - spustí nové okno konqueroru z již běžící instance. Tj. nespouští se nový konquror.

       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

multi avatar 24.5.2008 20:58 multi | skóre: 38 | blog: JaNejsemOdsut
Rozbalit Rozbalit vše Re: add-on tlacitka v mem pojeti
Odpovědět | Sbalit | Link | Blokovat | Admin
uz si z toho stihl seskrabat logo?

doufam ze si to pridal do sekce HW pokud to tam uz neni
Fitness ajťák: kutilův web; bezdrátová čidla teploty vývoj softwaru linux server
26.5.2008 09:33 pnemec | skóre: 8 | blog: jotter
Rozbalit Rozbalit vše Re: add-on tlacitka v mem pojeti
Logo jsem neskrabal, to bych musel skrabat z kazdeho kusu plastu co mam doma.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.