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:

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.

  2. 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.

  3. 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
  2. Lisää tiedostoon jokaista haluamaasi hiiren nappia kohden seuraavat rivit:
    "xvkbd -text "<näppäinyhdistelmä>""
      b:<napin numero>

    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:

(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
  2. 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
  2. Lisää luotuun tiedostoon seuraavat rivit:
    [Desktop Entry]
    Encoding=UTF-8
    Name=Xbindkeys
    Exec=xbindkeys
    Terminal=false
  3. Tallenna ja poistu.

Vain omalle käyttäjätunnukselle

  1. Valitse Järjestelmä → Asetukset → Istunnot.

  2. Välilehdellä Käynnistyvät ohjelmat lisää uusi käynnistyvä ohjelma napista Uusi.

  3. Aseta komennoksi xbindkeys sekä nimeksi (esimerkiksi) Xbindkeys ja paina OK.

  4. Sulje Istunnot-asetusdialogi.

Kysymyksiä ja keskustelua ohjeesta

Tästä ohjeesta voi keskustella ja tehdä kysymyksiä Ubuntu Suomen keskustelualueella tähän tarkoitetussa viestiketjussa.