Month: April 2008

  • [Ratkaisu] PAM USB pois päältä XScreenSaverin näytön lukituksen avauksessa

    Lähtökohta
    Pakettienhallinnassa xscreensaver, pamusb-tools ja libpam-usb ovat asennettuna.
    Olen ottanut käyttöön XScreenSaverin näytön lukitsemisen virransäästön yhteydessä sekä pikanäppäintä painettaessa.
    Olen määritellyt PAM USB:n avulla tunnistautumismenetelmäkseni USB-porttiin kytketyn muistitikun. Turvallisuuden vuoksi olen sulkenut tämän tunnistautumismenetelmän pois käytöstä työpöydän sisäänkirjautumisruudun yhteydessä (gdm-palvelu) ja konsolikirjautumisen yhteydessä (login-palvelu).
    Ongelma
    Haluan sulkea USB-porttiin kytketyllä muistitikulla tunnistautumisen pois käytöstä myös silloin, kun näyttö on lukittu.
    Ratkaisu
    Lisään /etc/pamusb.conf -tiedoston <services>...</services> -osion sisään seuraavat rivit:

    <service id="xscreensaver">
      <option name="enable">false</option>
    </service>

    Tämän jälkeen palvelut määrittelevä asetustiedoston osa näyttää kokonaisuudessaan seuraavalta:

    <!-- Services settings (e.g. gdm, su, sudo...) -->
    <services>
      <!-- Disable pamusb for gdm, login and xscreensaver -->
      <!-- (display locking), a password will be asked instead. -->
      <service id="gdm">
        <option name="enable">false</option>
      </service>
      <service id="login">
        <option name="enable">false</option>
      </service>
      <service id="xscreensaver">
        <option name="enable">false</option>
      </service>
    </services>

    Kun olen tallentanut tiedostoon tekemäni muutokset, USB-portissa oleva muistitikku ei enää kelpaa tunnistautumismenetelmänä lukitun näytön avaamiseksi.

    Huomautuksia
    • Tämä ratkaisu on sinänsä varsin triviaali sovellus PAM USB:n asetusten tekemisen ohjeissa annetusta GDM:n poissulkemisesta, mutta XScreenSaveriin liittyvää palvelun nimeä ei löytynyt suoraan annettuna mistään, joten päätin kirjata sen ylös tähän, vaikka sekin on sinänsä varsin helppo päätellä (niin kuin itse sen löysin).
    • Koska varsinaisesti haluan käyttää muistitikkutunnistautumista ainoastaan käyttöoikeustason kohottamisen (ainakin sudo ja gksudo) yhteydessä, voisi pitemmän päälle turvallisempi ratkaisu olla sellainen, jossa oletuksena (<defaults>...</defaults> -osiossa) PAM USB on pois päältä, ja määritellään käyttöön vain tietyille palveluille <services>…</services> -osiossa.
  • [Ratkaisu] XScreenSaver ja näytön lukitseminen pikanäppäimellä

    Lähtökohta
    Olen korvannut GNOME-työpöytäympäristön näytönsäästäjän XScreenSaverilla.
    Ongelma
    Haluan, että kun painan näppäinyhdistelmää Control + Break, näyttö lukittuu.
    Ratkaisu
    Liitän näppäinyhdistelmän vapaavalintaiseen komentoon, ja asetan sen jälkeen komennoksi näytön lukitsevan komennon.

    1. Otan esiin Asetusten muokkauksen Sovellukset → Järjestelmätyökalut -valikosta.
    2. Asetusten muokkaus -ikkunassa etsin /apps/metacity/global_keybindings/run_command_1 -avaimen, ja asetan sen arvoksi <Control>Break -merkkijonon.
    3. Etsin /apps/metacity/keybinding_commands/command_1 -avaimen, ja asetan sen arvoksi xscreensaver-command -lock -merkkijonon.

    Kun tämän jälkeen painan näppäinyhdistelmää Control + Break, näyttö lukittuu.

  • [Ratkaisu] Web-sivulla oleva Flash-elementti tekee vierityksestä hidasta

    Lähtökohta
    Pakettienhallinnassa flashplugin-nonfree ja libflashsupport ovat asennettuna. Lataan Firefox-selaimeen YouTube-sivustolta videon. Kaikki sivulla olevat kommentit eivät mahdu kerralla näyttöön, joten alan vierittää sivua pystysuunnassa tarttumalla selainikkunan oikeassa laidassa olevaan vierityspalkkiin hiiren osoittimella, ja liikuttamalla sitä pystysuunnassa.
    Ongelma
    Firefox nielee kaiken suoritintehon, ja sivun vieritys on sen takia hyppelehtivää.
    Ongelman syy
    Adoben flash-liitännäiseen liittyy ohjelmavirhe, jonka takia Firefox nielee liikaa suoritintehoa silloin, kun siihen on ladattu sivu, jolla on flash-sisältöä.
    Ratkaisu
    Suljen Firefoxin. Poistan Synaptic-pakettienhallinnassa flashplugin-nonfree- ja libflashsupport-paketin, ja asennan tilalle mozilla-plugin-gnash -paketin. Tämän jälkeen YouTube-sivustolla olevaa sivua pystyy vierittämään ilman, että Firefox nielisi kaiken suoritintehon, vaikka sivulla olisi flash-sisältöä.
    Mikäli ei-vapaata flash-liitännäistä on pakko käyttää esimerkiksi siinä tapauksessa, että haluan katsella Adobe Flashin versio 9:llä katseltavaksi luotua sisältöä, libflashsupport-paketin poistaminen kannattaa silti, sillä sen jälkeen suoritintehojen hävikkiä ilmenee vain flash-sisällön ollessa näkyvillä selainikkunassa. Kun flash-sisältö vieritetään näkymättömiin, tai jos flashia sisältävän sivun näyttävä välilehti suljetaan, suoritintehon käyttö palautuu normaalitasolle.
  • Firefox 3 wrongly associates logins with password-containing forms without login fields

    They’ve rehauled the Password Manager in Firefox 3, and as a result the pre-filling of forms no longer acts smart when it comes to forms without a login associated with the password field. I’m getting my previous logins to other sites under my domain, as suggestions to fill the input field immediately preceding the password field, on my Wikieditish-powered Blosxom blogs. I was forced to resort to inserting a pseudo-login field into the forms to make Firefox remember which data is associated with the other fields. Now I just have to learn to skip it on my way to the password field, when posting links.

  • [Ratkaisu] Greasemonkeyn skriptien muokkaus ei toimi

    Lähtökohta
    Olen asentanut Firefox-selaimeen Greasemonkey-laajennuksen. Olen asentanut sillä GMailSecure-skriptin. Haluan muokata skriptin lähdekoodia, joten valitsen Firefoxin Työkalut → Greasemonkey -valikosta kohdan Hallinnoi skriptejä.... Valitsen avautuvan ikkunan listasta kohdan GMailSecure, ja painan Muokkaa-nappia.
    Ongelma
    Muokkaa-napin painamisen jälkeen mitään ei tapahdu. Skriptin lähdekoodi ei avaudu muokattavaksi. Haluan, että lähdekoodi avataan Tekstieditorissa muokattavaksi.
    Ongelman syy
    Greasemonkey-laajennuksessa on ohjelmavirhe, jonka takia Tekstieditori ei käynnisty.
    Ratkaisu
    Ohjelmavirhe on korjattu käytössäni olevaa versiota uudemmissa Greasemonkeyn versioissa. Mozillan sivuilla on kuitenkin tarjolla vain vanha versio, joten lataan uusimman version Greasemonkey-kehittäjien versionhallintajärjestelmästä, käännän ja asennan sen.

    1. Lataan Greasemonkeyn uusimman version lähdekoodin seuraavilla komennoilla:
      mkdir ~/greasemonkey
      cd ~/greasemonkey
      svn co http://svn.devjavu.com/greasemonkey/trunk/src/ .
    2. Käännän lähdekoodista asennettavan laajennustiedoston seuraavalla komennolla:
      bash -v build.sh
    3. Asennan itse kääntämäni laajennustiedoston valitsemalla Firefoxin Tiedosto-valikosta kohdan Avaa tiedosto..., ja valitsemalla avautuvassa tiedostonvalitsimessa kotihakemistossani olevasta greasemonkey-alihakemistosta siellä olevan .xpi -päätteisen tiedoston, tässä tapauksessa greasemonkey-0.8.20080429.0.xpi. Sen jälkeen käynnistän Firefoxin uudestaan, jotta laajennuksen päivitys tulisi voimaan.

    Kun tämän jälkeen valitsen asennetun skriptin muokattavaksi, se avautuu Tekstieditorissa haluamallani tavalla.

  • [Ratkaisu] Firefox-ikkunan sisällön vieritys saa musiikin pätkimään

    Lähtökohta
    Näytönohjaimeni on Connect 3D:n valmistama, AGP-väylässä kiinni oleva Radeon 9600 -piirisarjalla varustettu All In Wonder. Olen valinnut näytönohjaimelle avoimen lähdekoodin ajurit käyttöön. En ole määritellyt ikkunointiympäristön asetuksissa kiihdytysmenetelmää (AccelMethod), joten käytössä on oletuskiihdytysmenetelmä, XAA.
    Työpöytätehosteet (Compiz) ovat käytössä oletusasetuksin.
    Käynnistän Rytmilaatikko-musiikkisoittimen, ja panen sen soittamaan musiikkia.
    Käynnistän Firefox-selaimen, ja avaan Launchpadista bugiraportin 177492, joka on pystysuunnassa varsin pitkä sivu. Tartun hiiren osoittimella selainikkunan pystyvierityspalkkiin, ja alan vierittää sivua pystysuunnassa.
    Ongelma
    Vierittäessäni sivun sisältöä selainikkunassa Rytmilaatikon soittama musiikki alkaa pätkiä, eli pysähdellä. Työpöydän alapaneeliin lisäämäni Järjestelmän tila -sovelma, joka näyttää suoritinkäyttöä, paljastaa, että suoritinkäyttö on koko vierityksen ajan täysillä tai lähes täysillä.
    Ongelman syy
    Näytönohjaimen avoimen lähdekoodin ajurissa on ohjelmavirhe, joka ilmenee suorituskyvyn heikkoutena työpöytätehosteiden ollessa käytössä silloin, kun käytetään XAA-kiihdytysmenetelmää.
    Ratkaisu
    Vaihdan oletuksena olevan XAA-kiihdytysmenetelmän EXA-kiihdytysmenetelmään lisäämällä /etc/X11/xorg.conf -tiedoston sisältämään Device-osioon, jossa näytönohjaimen ajuri on määritelty, seuraavat rivit:

    	Option	"AccelMethod"		"exa"
    	Option	"MigrationHeuristic"	"greedy"

    Kun tämän jälkeen kirjaudun työpöydältä ulos ja ikkunointiympäristö käynnistyy uudestaan, kiihdytysmenetelmänä on EXA. Tällöin selainikkunan vieritys ei enää saa taustalla soivaa musiikkia pätkimään.

    Huomautus
    Katso myös merkintä Web-sivulla oleva Flash-elementti tekee vierityksestä hidasta.
  • [Ratkaisu] Speaker-test ilmoittaa äänentoiston avausvirheestä PulseAudion kanssa

    Lähtökohta
    Pakettienhallinnassa pulseaudio ja siihen liittyvät paketit ovat asennettuna. PulseAudio on otettu käyttöön ja se toimii.
    Haluan testata, onko 5.1-äänentoistolaitteistoni kytketty tietokoneen ääniulostuloportteihin oikein, joten komennan avaamastani Päätteestä speaker-test -Dplug:surround51 -c6 -l1 -twav.
    Ongelma
    Kaiutintestisovellus speaker-test ilmoittaa seuraavaa:

    Toistolaite on plug:surround51
    Virran parametrit ovat 48000Hz, S16_LE, 6 kanavat
    WAV tiedosto(t)
    Äänentoiston avausvirhe: -16, Device or resource busy
    Äänentoiston avausvirhe: -16, Device or resource busy

    Äänentoiston avausvirheestä ilmoittava rivi tulostuu yhä uudelleen kunnes keskeytän speaker-testin ajon näppäinyhdistelmällä Control + C. Haluan, että virheilmoituksen sijasta speaker-test toistaa kaiuttimien testaamiseksi ääninäytteitä eri kanavilta.

    Ongelman syy
    Äänentoistosta järjestelmässä vastaava PulseAudio on varannut äänentoistolaitteiston käyttöönsä. Speaker-test ei toimi PulseAudion vaan ALSAn varassa, joten PulseAudio ei voi jakaa sille äänentoistoresursseja.
    Ratkaisu
    Vapautan äänentoiston tilapäisesti speaker-testin käyttöön suorittamalla komennon seuraavasti:

    pasuspender -- speaker-test -Dplug:surround51 -c6 -l1 -twav

    Tällöin kaiutintesti toistaa ääninäytteet kytkentöjen testaukseen soveltuvalla tavalla.

    Huomautus
    Elegantimpi ratkaisu olisi käyttää PulseAudiota tukevaa kaiutintestisovellusta, mutta en toistaiseksi tiedä onko sellaista.
  • Nautilus avaa kansionäkymäikkunan väärällä työpöydällä

    Lähtökohta
    Työpöytäni on jaettu neljään työtilaan.
    Valitsen työpöydän ylälaidan paneelissa olevasta Sijainnit -valikosta kohteen Kotikansio.
    Ongelma
    Kotikansioni sisällön näyttävä ikkuna avataan esillä olevan työtilan sijasta sen viereisessä työtilassa. Jos siis näytössäni on kansion avaamishetkellä työtila 1, kansio avataan työtilassa 2. Ongelma koskee kaikkia tiedostoselaimen avaamia ikkunoita.
    Muut ikkunat, kuten sovellukset, avautuvat toivotulla tavalla, eli kulloinkin esillä olevassa työtilassa.
    Ongelman syy
    Ei vielä tiedossa.
    Ratkaisu
    Ratkaisua ei vielä ole. Ongelman voi kiertää käynnistämällä Nautiluksen uudestaan. Nautiluksen voi sammuttaa painamalla näppäinyhdistelmää Alt + F2 ja suorittamalla avautuvasta Suorita sovellus -ikkunasta komennon nautilus -q. Sen jälkeen Nautilus käynnistetään uudelleen painamalla samaa näppäinyhdistelmää uudestaan, ja suorittamalla komento nautilus.
    Huomautus
    Nopeampi tapa uudelleenkäynnistää Nautilus on käyttää killall nautilus -komentoa, jolloin se sulkeuduttuaan käynnistyy uudestaan itsekseen. Tällöin yllä kuvattu ongelma ei kuitenkaan häviä.
  • [Ratkaisu] Näytön lukitseminen näytön virransäästön käynnistymisen yhteydessä

    Lähtökohta
    Olen avannut Näytönsäästäjän asetukset -ikkunan valitsemalla Järjestelmä → Asetukset -valikossa olevan Näytönsäästäjä-kohdan. Näytönsäästäjä on asetettu käynnistymään oletusviiveellään (10 minuuttia). Virransäästö-napista avautuvassa Virranhallinnan asetukset -ikkunassa näytön virransäästön käynnistyminen on sekin oletusasetuksessaan, 40 minuuttia toimettomuutta. Haluan, että näytön lukitseminen tapahtuu yhtä aikaa virransäästön käynnistymisen kanssa, 40 minuuttin toimettomuuden jälkeen.
    Ongelma
    Näytönsäästäjän asetukset ja virranhallinnan asetukset -ikkuna eivät anna minun valita näytön lukitsemisen viivettä, vaan valittuna se käynnistyy aina yhtä aikaa näytönsäästäjän kanssa.
    Ongelman syy
    GNOME-työpöytäympäristön ruudunsäästäjässä ei ole tarvitsemaani ominaisuutta.
    Ratkaisu
    Korvaan GNOME-työpöytäympäristön ruudunsäästäjän XScreenSaver-sovelluksella, joka tarjoaa haluamani ominaisuudet.

    1. Asennan Synaptic-pakettienhallinnassa xscreensaver-paketin.
    2. Asetan XScreenSaverin käynnistymään kirjautumisen yhteydessä.
      1. Valitsen Järjestelmä → Asetukset -valikosta Istunnot.
      2. Istunnot-ikkunan avauduttua valitsen siitä +Lisää-napin.
      3. Uusi kirjautumisohjelma -ikkunan avauduttua täytän sen sisältämät kentät seuraavilla tiedoilla:
        Nimi XScreenSaver
        Komento xscreensaver -no-splash
    3. Suljen GNOME-työpöytäympäristön ruudunsäästäjän asetusikkunan.
    4. Lopetan GNOMEn ruudunsäästäjäsovelluksen sudo killall gnome-screensaver -komennolla.
    5. Estän GNOME-työpöytäympäristön ruudunsäästäjän käynnistymisen sisäänkirjutumisen yhteydessä seuraavalla komennolla:
      gconftool-2 --type boolean -s \
      /apps/gnome_settings_daemon/screensaver/start_screensaver false
    6. Asetan XScreenSaverin jäljittelemään GNOMEn ruudunsäästäjää muilta kuin näytön lukitsemisen osalta.
      1. Otan XScreenSaverin asetukset esiin valitsemalla nyt Järjestelmä → Asetukset -valikosta kohdan Näytönsäästäjä.
      2. Käynnistän näytönsäästäjän vastaamalla myöntävästi asetusikkunan avautuessa esitettävään kyselyyn XScreenSaver-palvelimen käynnistämisestä.
      3. Valitsen Tila-kohtaan liittyvästä alasvetovalikosta kohdan Blank Screen Only. Varmistan, että Käynnistä-kohtaan liittyvä aika-asetus on 10 minuuttia.
      4. Varmistan, että Lock Screen After -kohta on käyttöön valittuna. Asetan siihen liittyvän aika-asetuksen arvoksi 30 minuuttia, sillä tämä aika mitataan näytönsäästäjän käynnistymisen alkamisesta, ja haluan näytön lukkiutuvan yhteensä 40 minuutin toimettomuuden jälkeen.
      5. Avaan Lisäasetukset-välilehden, ja varmistan, että Näytön virransäästö -osiossa Virransäästö käytössä -kohta on käytössä. Valmiustilan aikaviiveeksi asetan 40, Virransäästön 50 ja Virrankatkaisun 60 minuuttia.
      6. Fading and colormaps -osiossa varmistan, että Himmennä mustaan säästäjän käynnistyessä on käyttöön valittuna.
      7. Suljen XScreenSaverin asetusikkunan.

    Tämän jälkeen näytönsäästäjä toimii haluamallani tavalla.

  • Kolumni: Digitaalinen arkistorotta esittelee ylpeydenaiheensa

    Omien tiedostojen järjestely kiintolevylle on useimmille tuttu logistinen ongelma, jonka ratkaisutapa lienee kullekin hyvin ominainen. Minä tallennan nykyisin lähes kaiken työpöydälläni oleviin kansioihin. Työpöydällä vallitseva kansiojako näyttää tältä:

    • Yksityiset
    • Ei-vapaat
    • Vapaat
    • Työn alla
    • Arkisto

    Arkistoa lukuunottamatta nämä kaikki ovat aitoja hakemistoja, eli tiedostoja kotihakemistoni juuressa olevan Työpöytä-hakemiston alla.

    Varsinainen pyhä kolmijako tässä päätasolla on jako Yksityisiin, Vapaisiin ja Ei-vapaisiin. Nimensä mukaisesti Yksityiset pitää sisällään kaikki visusti yksityisinä pidettävät tiedostot. Ei-vapaat/Vapaat -jako puolestaan perustuu siihen onko tiedosto vapaasti käytettävissä ja edelleen jaettavissa. Vapaat sisältää siis julkisomaisuutta ja copyleft-kamaa, jota voi käyttää ja jaella esimerkiksi netissä huoletta.

    Näiden kolmen sisällön olen edelleen jakanut mediatyypin mukaan seuraaviin alihakemistoihin:

    • Asiakirjat
    • Kuvat
    • Musiikki
    • Video
    • Muut

    Kuten näkyy, nimen monikkoudessa häilyn kahden välillä. Sen suhteen minulla on täysin subjektiivisena periaatteenani se, miltä kukin sana yksikössä ja monikossa maistuu. Esimerkiksi Musiikki kuulostaa paremmalta kuin Musiikit, Video paremmalta kuin Videot (joka assosioituu mielessäni vahvasti VHS-nauhuriin), mutta Kuvat taas paremmalta kuin Kuva.

    Musiikin ja Videon keskinäinen suhde on pikemminkin käytännön sanelema kuin ontologisesti perusteltu. Korvaisin Musiikin kovin mielelläni Äänellä, mutta kokemuksesta tiedän, että näin nimetty kansio sisältäisi kuitenkin loppujen lopuksi vain sen Musiikki-alikansion. Äänitiedostot, jotka eivät sisällä musiikkia, ovat työpöydälläni niin harvinaisia, että olen nostanut Musiikin suoraan Videon rinnalle, ja aion sysätä mahdolliset ei-musiikilliset äänitiedostot Muut-luokan alle yhdessä muiden sekalaisten mediatyyppien sekä kokoelmien kanssa.

    Mikäli Video sisältäisi satunnaisten videoleikkeiden lisäksi vain yhtä tiettyä formaattia, kuten vaikkapa Elokuvia, voisi sen nostaa Videon tilalle Musiikin rinnalle, ja sysätä Videoleikkeet ei-musiikillisten äänitiedostojen tavoin Muut-luokkaan. Elokuvien lisäksi Video sisältää kuitenkin myös Televisio-ohjelmia, joten yhdessä Videoleikkeiden kanssa niitä on jo kolme, mikä tekee Videon itsenäisyydestä mielestäni pragmaattisesti perustellun ratkaisun.

    Mediatyyppijaottelu ei ole sikäli täysin ehdotonta, että esimerkiksi pakatut asiakirjat, joiden avaamiseen siis tarvitaan ensisijaisesti pakkauksen purkava ohjelma eikä asiakirjojenlukuohjelma, luokittelen Asiakirjoiksi. Sen sijaan esimerkiksi kuvatiedostoksi skannattuja asiakirjoja en kykene luokittelemaan samoin, vaan hyytävästä epävarmuudentunteesta huolimatta olen ainakin vielä tähän saakka luokitellut ne Kuviksi.

    Mikäli tiedostoja ei ole yhteensä kovin monta, sijoitan ne suoraan mediatyyppikansion juureen. Tarvittaessa jaottelen sisältöä kuitenkin edelleen uusiin, ad-hoc -alikansioihin. Ainoa vakio tällä tasolla on Muut-kansio muihin luokkiin sopimattomia tiedostoja varten.

    Palataanpa takaisin työpöydälleni. Siellä sijaitseva Arkisto on pikakuvake, joka viittaa /mnt/Arkisto -hakemistoon, jonne olen liittännyt kakkoskiintolevyni. Arkistoon menee kaikki sellainen kama, minkä olen jo kertaalleen polttanut optiselle levylle. Esimerkiksi musiikkihan on sellaista, että siitä on käytännöllistä pitää kopioita kiintolevyllä vielä irtolevyille polttamisen jälkeenkin. Hätätapauksessa (tyypillisesti tilanpuutteen iskiessä) Arkiston voi kuitenkin pyyhkäistä vaikka kokonaan tyhjäksi.

    Arkiston sisäinen jaottelu noudattaa työpöydän päätason keskeisintä kolmijakoa (Yksityiset, Vapaat ja Ei-vapaat), sekä näiden sisäistä jakoa mediatyypin mukaan, sillä sen sisältö on työpöydältä sellaisenaan Arkistoon siirrettyä. Arkisto on siis nimensä mukaisesti arkistoitua työpöydän sisältöä.

    Työn alla on nimenä kankea, mutta kuvaavampaakaan en toistaiseksi ole keksinyt (esimerkiksi Työt olisi harhaanjohtava). Tähän hakemistoon tuuppaan tavaran, jota en vielä ole ehtinyt tai viitsinyt jaotella Yksityisiin, Vapaisiin ja Ei-vapaisiin, sekä lisäksi työpöytäympäristössä väliaikaisesti pyörittelemäni tiedostot. Työn alla -kansion sisältä löytyy yllä listatun kaltainen mediatyyppijako, sillä mediatyyppiä ei yleensä uutta tiedostoa tallennettaessa tarvitse miettiä.

    Olen luonut lisäksi työpöydälleni mediatyyppien mukaan nimetyt linkit, jotka vievät Työn alla -kansion alla oleviin, vastaavannimisiin kansioihin. Sisääntulevat tiedostot on helppo paiskoa niihin odottelemaan myöhemmin tapahtuvaa, tarkempaa lajittelua.