= Toimintoja hiiren napeille = ||'''Sisällys'''<
><>|| '''Huom.''' Tämä ohje on tarkoitettu pääasiassa '''Gnome'''-työpöytäympäristölle. Ohje saattaa toki toimia sellaisenaan tai pienin muutoksi muissakin työpöytäympäristöissä (esim. KDE, Xfce) ja ikkunamanagereissa (esim. Openbox, Enlightenment). Gnomen oletusikkunamanageri '''Metacity''' ei tue suoraan toimintojen asettamista hiiren napeille. Kierrämme tämän ongelman käyttämällä ohjelmia '''xbindkeys''' ja '''xvkbd'''. Asetamme nappien painalluksen generoimaan virtuaalisia näppäimistön näppäinyhdistelmiä, joille taas voi määritellä normaalisti toimintoja. == Alkuvalmistelut == Asennetaan tarvittavat ohjelma. Asenna ohjelmat '''xbindkeys''' sekä '''xvkbd''': {{{ sudo apt-get install xbindkeys xvkbd }}} == Esitietojen selvittäminen == 1. Selvitä ja/tai määritä näppäinyhdistelmä, jota painamalla haluamasi toiminto tapahtuu. Gnomen pikanäppäimet saa esimerkiksi määriteltyä (ja selvitettyä) valitsemalla '''Järjestelmä -> Asetukset -> Pikanäppäimet'''. Monissa ohjelmissa pikanäppäimet/-näppäinyhdistelmät lukevat valikoissa toiminnon nimen yhteydessä. Gnomessa esimerkiksi sovellusikkunan voi sulkea näppäinyhdistelmällä '''Alt+F4''' ja työpöytiä voi vaihtaa yhdistelmillä '''Ctrl+Alt+Vasen nuoli''' sekä '''Ctrl+Alt+Oikea nuoli'''. 1. Seuraavaksi täytyy saada selville, mikä on halutun hiiren napin numero. Tämä onnistuu käyttämällä ohjelmaa '''`xev`'''. Komenna: {{{ xev }}} Vie hiiren kursori avautuneen ikkunan päälle, pidä hiiri liikkumattomana ja paina haluamaasi nappia. Sekä napin painamisesta pohjaan, että vapauttamisesta ilmestyy ruudulle oma tapahtumansa, josta kyseisen napin numeron saa selville. Esimerkiksi hiiren keskinapin/rullan (nappi numero 2) vapauttaminen pohjasta saa aikaan seuraavanlaisen tulosteen: {{{ ButtonRelease event, serial 26, synthetic NO, window 0x3400001, root 0x4c, subw 0x0, time 1671331319, (89,107), root:(99,204), state 0x210, button 2, same_screen YES }}} Varmista myös, että nappi ei generoi samaa koodia kuin jokin toinen tärkeä nappi. Jos näin on, näkyvät kyseiset napit järjestelmälle samana ja mahdolliset sidonnat kohdistuvat siis kumpaankin nappiin. Tässä tapauksessa tai jos järjestelmä ei tunnista napin painallusta ollenkaan (mitään koodia / tapahtumaa ei generoidu), varmista että olet seurannut ohjetta [[Moninappiset_hiiret]]. Joissain tapauksissa nämä ongelmat saattavat säilyä asetuksesta huolimatta, jolloin ei liene mitään tehtävissä asian hyväksi. 1. Selvitä näppäinyhdistelmiin viitattaessa tarvittavat näppäinten "koodit" komenentamalla: {{{ xbindkeys -mk }}} Tämän jälkeen painele näppäinyhdistelmässä tarvittavia näppäimiä. Tulosteen tulisi pitäisi näyttää suunnilleen tältä: {{{ "NoCommand" m:0x10 + c:28 Mod2 + t "NoCommand" m:0x10 + c:22 Mod2 + BackSpace "NoCommand" m:0x14 + c:37 Control+Mod2 + Control_L "NoCommand" m:0x10 + c:77 Mod2 + Num_Lock "NoCommand" m:0x0 + c:36 Left "NoCommand" m:0x8 + c:64 Alt + Alt_L "NoCommand" m:0x0 + c:73 F7 }}} Edellisessä esimerkissä on paineltu näppäimiä '''T''', '''Backspace''', '''Vasen Ctrl''', '''Num Lock''', '''Vasen nuoli''', '''Vasen Alt''' sekä '''F7'''. Jokaisella näppäimenpainalluksella tulostuu ruudulle siis kolme riviä. Esim: {{{ "NoCommand" m:0x10 + c:77 Mod2 + Num_Lock }}} Painetun näppäimen koodi näkyy näistä viimeisellä rivillä viimeisimpänä. Esimerkiksi tässä tapauksessa '''Num Lockin''' koodi on '''`Num_Lock`'''. Painamalla '''Q''' voit lopettaa näppäinten testaamisen. == Nappien ja näppäinyhdistelmien sitominen == '''Huom!''' Tämä kohta täytyy tehdä jokaiselle koneen käyttäjälle erikseen. Eri käyttäjät voivat tietysti määritellä juuri itselleen sopivat sidonnat. 1. Avaa tiedosto '''`~/.xbindkeysrc`''': {{{ gedit ~/.xbindkeysrc }}} 1. Lisää tiedostoon jokaista haluamaasi hiiren nappia kohden seuraavat rivit: {{{ "xvkbd -text """ b: }}} Seuraavalla tavalla esimerkiksi saat avoinna olevan sovelluksen sulkeutumaan ('''Alt+F4''') napista numero '''8''': {{{ "xvkbd -text "\A\[F4]"" b:8 }}} Näin taas napit '''9''' ja '''10''' (esim. ''Locitech MX 510'' -hiiressä rullan viereiset napit) selaavat virtuaalityöpöytiä ('''Ctrl+Alt+Vasen nuoli''' ja '''Ctrl+Alt+Oikea nuoli'''): {{{ "xvkbd -text "\A\C\[Left]"" b:9 "xvkbd -text "\A\C\[Right]"" b:10 }}} Näppäinyhdistelmän näppäinten koodit annetaan peräkkäin muodossa '''`\[koodi]`'''. Kuten edellisistä esimerkeistä saattoi huomata, voidaan joitakin näppäimiä myös lyhentää muotoon '''`\kirjain`'''. Ensimmäisen esimerkin '''`"\A\[F4]"`''' voitaisiin siis yhtä hyvin kirjoittaa esimerkiksi muotoon '''`"\[Alt_L]\[F4]"`''' ja vastaavasti toisen esimerkin '''`"\A\C\[Left]"`''' voisi olla muodossa '''`"\[Alt_L]\[Control_L]\[Left]"`'''. Lisätietoja näppäinten koodeista ja lyhenteistä saa '''xvkbd''':n manuaalista ('''`man xvkbd`''') kohdasta '''-text'''. === Erikoistapaus: Edellinen ja Seuraava -napit Nautiluksessa, Epiphanyssa, jne. === Jos hiiressäsi on napit jotka siirtävät Firefoxissa ja Operassa edelliselle ja seuraavalle sivulle, näin saat ne toimimaan myös sellaisissa sovelluksissa, jotka tukevat vastaavassa tilanteessa näppäinyhdistelmiä '''Alt+Vasen_nuoli''' sekä '''Alt+Oikea_nuoli'''. Tällaisia ohjelmia ovat esimerkiksi mainitut GNOME:n tiedostoselain '''Nautilus''' sekä WWW-selain '''Epiphany'''. Jos hiiresi napit ''eivät'' toimi Firefoxissa/Operassa tai haluat määrittää toiminnon ''eri napeille'', tee homma edellisen kohdan edellä mainittujen ohjeiden mukaan. Lisää tiedostoon '''`~/.xbindkeysrc`''' seuraavat rivit: {{{ "xvkbd -xsendevent -text "\A\[Left]"" b:6 "xvkbd -xsendevent -text "\A\[Right]"" b:7 }}} (Miksi parametri -xsendevent? No siitä syystä, että ainakin Firefox-selaimen kanssa saattaa silloin tällöin esiintyä "sivuvaikutuksia" ilman sitä.) == Asetusten testaaminen == 1. Käynnistä '''xbindkeys''' komentamalla (jolloin se käynnistyy taustalle): {{{ xbindkeys }}} 1. Testaa nappien toimintaa. Jos napit eivät toimi halutulla tavalla, tarkista että tiedoston '''`~/.xbindkeysrc`''' konfiguraatio on kunnossa. Jotkin näppäinyhdistelmät eivät välttämättä suostu toimimaan kunnolla, joten kannattaa kokeilla vaihtaa niitä. Muutosten jälkeen lataa aina asetukset käyttöön uudelleen komentamalla: {{{ killall -HUP xbindkeys }}} == Asetukset pysyviksi == '''Huom!''' Jos käytät jotain muuta ikkunamanageria/työpöytäympäristöä kuin Gnomea, joudut asettamaan '''xbindkeysin''' käynnistymään luultavasti jollakin muulla tavoin. Jotta asetukset säilyisivät myös seuraaviin istuntoihin, täytyy '''xbindkeys''' asettaa käynnistymään aina istunnon alussa. Tämä voidaan tehdä joko kaikille koneen käyttäjille kerralla (kaikkien ei silti tarvitse määritellä mitään sidontoja) tai erikseen jokaiselle halukkaalle. Suorita siis jompi kumpi seuraavista. === Kaikille koneen käyttäjille === 1. Jotta '''xbindkeys''' käynnistyisi aina kun käyttäjä kirjautuu sisään, luo tiedosto '''`/etc/xdg/autostart/xbindkeys.desktop`''': {{{ sudo gedit /etc/xdg/autostart/xbindkeys.desktop }}} 1. Lisää luotuun tiedostoon seuraavat rivit: {{{ [Desktop Entry] Encoding=UTF-8 Name=Xbindkeys Exec=xbindkeys Terminal=false }}} 1. Tallenna ja poistu. === Vain omalle käyttäjätunnukselle === 1. Valitse '''Järjestelmä → Asetukset → Istunnot'''. 1. Välilehdellä '''Käynnistyvät ohjelmat''' lisää uusi käynnistyvä ohjelma napista '''Uusi'''. 1. Aseta komennoksi '''`xbindkeys`''' sekä nimeksi (esimerkiksi) '''`Xbindkeys`''' ja paina '''OK'''. 1. Sulje Istunnot-asetusdialogi. == Kysymyksiä ja keskustelua ohjeesta == Tästä ohjeesta voi keskustella ja tehdä kysymyksiä Ubuntu Suomen keskustelualueella [[http://forum.ubuntu-fi.org/index.php?topic=4675.0|tähän tarkoitetussa viestiketjussa]].