Arkisto: 11. Helmikuuta 2008

[Ratkaisu] Cronin suorittama rhythmbox-client –print-playing-format ei toimi

Lähtökohta
Olen asentanut notification-daemon-paketin. Minulla on komentojonotiedosto, joka ajaa rhythmbox-client-ohjelman --print-playing-format -parametrilla, joka tulostaa muuttujaan tallennettavaksi Rytmilaatikko-musiikkisoittimen suoritushetkellä soittaman kappaleen nimen. Komentoriviltä suoritettuna komentojonotiedosto tulostaa kappaleen nimen muuttujaan tarkoittamallani tavalla. Olen asettanut komentojonotiedoston crontab-tiedostossani suoritettavaksi kerran minuutissa.
Ongelma
Cronin suorittaessa komentojonotiedostoni kappaleen nimi ei tulostu muuttujaan. Haluan sen tulostuvan muuttujaan samalla tavalla kuin komentoriviltä suoritettaessa.
Ongelman syy
Rytmilaatikko vaatii toimiakseen, että DBUS_SESSION_BUS_ADDRESS -niminen muuttuja on asetettu. Cronin suorittaessa komentojonotiedostoani muuttujaa ei kuitenkaan ole asetettu.
Ratkaisu

Teen komentojonotiedoston, joka lukee käynnissä olevan rhythmbox-client -prosessin näkemän DBUS_SESSION_BUS_ADDRESS -muuttujan arvon ja ajaa uuden rhythmbox-clientin halutuilla parametreilla.

#!/bin/sh

user=`whoami`
pid=`pgrep -u $user notification-da | cut -d' ' -f 1`

# find DBUS session bus for this session
DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \
	/proc/$pid/environ |sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'`

# if it was successfull, then we either print it,
# or export it or whatever, if we want
if [ "x$DBUS_SESSION_BUS_ADDRESS" != "x" ]; then
    export DBUS_SESSION_BUS_ADDRESS
    # and we start using rhythmbox-client
    rhythmbox-client --no-start --print-playing-format "%aa: %tt"
fi

Lataa rhythmbox-print-playing (530 tavun komentojonotiedosto)

Tallennan komentojonotiedoston tiedostonimellä rhythmbox-print-playing kotihakemistossani olevaan bin-alihakemistoon, minkä jälkeen muutan sen oikeuksia chmod +x ~/bin/rhythmbox-print-playing -komennolla niin, että voin suorittaa sen. Sitten muutan Lähtökohta-otsikon alla mainitsemaani, alun perin rhythmbox-clientia suoraan kutsunutta komentojonotiedostoa niin, että rhythmbox-clientin sijaan se suorittaa nyt rhythmbox-print-playing -tiedostoni. Sen jälkeen parhaillaan soiva kappale tulostuu komentojonossa muuttujaan myös silloin, kun komentojonon suoritus tapahtuu cronin tekemänä.

Huomautus
Mikään löytämistäni valmiista komentojonotiedostoista (esimerkki 1, 2) ei toiminut sellaisenaan. Yllä oleva komentojonotiedosto on niiden perusteella tekemäni oma sovellus.

[Ratkaisu] Crontabin muokkaaminen vimillä

Lähtökohta
Haluan muokata crontab-tiedostoani. Olen asentanut vim-tekstieditorin.
Ongelma
Haluan käyttää crontabin muokkaamiseen vim-editoria. Komento crontab -e avaa kuitenkin nano-tekstieditorin.
Ongelman syy
Oletustekstieditoriksi on määritelty nano.
Ratkaisu
Määrittelen vimin oletustekstieditoriksi komentamalla ensin sudo update-alternatives --config editor avaamastani Päätteestä. Komento antaa listan tarjolla olevista vaihtoehdoista. Vaihtoehtojen joukossa on /usr/bin/vim.basic. Valitsen sen oletuseditoriksi kirjoittamalla kehotteeseen sitä vastaavan numeron ja painamalla rivinvaihtonäppäintä. Tämän jälkeen komento crontab -e avaa crontab-tiedostoni vimissä.
Huomautus
The How-To Geek -blogin artikkelissa update-alternatives -komennolle on annettu config-parametri virheellisesti, sillä sen edessä on yksi ajatusviiva (–). Oikea tapa on käyttää parametrin edessä kahta, näppäimistön useimmiten käytettyä viivanäppäintä painamalla saatavaa yhdysviivaa peräkkäin (–).

[Ratkaisu] Windows Live Messenger -tili ei toimi FireHOLin asennuksen jälkeen

Lähtökohta

Olen määritellyt Pidgin-pikaviestimessä Windows Live Messenger -tilin. Pystyn kirjautumaan tilille, jos en asenna palomuuria.

Olen asentanut firehol-paketin, asettanut /etc/default/firehol -tiedostossa olevan START_FIREHOL -parametrin arvoksi YES, asentanut moblock-nfq -paketin ja muokannut /etc/firehol/firehol.conf -tiedostoa niin, että sen sisältö on Ubuntu Forumilla annetun esimerkin mukainen:

version 5

# Moblock chain
iptables --new MOBLOCK
iptables -A MOBLOCK -j NFQUEUE

# Example udp ports
server_exampleport_ports="udp/15001:15011"
client_exampleport_ports="any"

# "any" means any interface, you can substitute it
# for eth0 or whatever.

interface any world

        # Let torrent and exampleport through, and
        # filter them in moblock.
        server "exampleport" MOBLOCK

        # This will send http traffic directly
        # to accept instead of moblock
        # thus whitelisting it...
        client http accept

        # Filter all outgoing connections, and their replies.
        client all MOBLOCK

Olen käynnistänyt järjestelmän uudelleen ja kirjautunut sisään. Sisäänkirjautumisen yhteydessä käynnistyväksi ja pikaviestitileilleni sisäänkirjautuvaksi asetettu Pidgin käynnistyy, ja siihen asettelemieni IRC- ja Gtalk-tilien sisäänkirjautuminen onnistuu.

Ongelma
Windows Live Messenger -tilin sisäänkirjautuminen ei onnistu. Pidgin ilmoittaa pitkän yhteydenottoyrityksen lopuksi Yhteys katkennut ja Yhteysvirhe palvelimelta Notification: Yhteyden muodostaminen epäonnistui.
Ongelman syy
Firehol-palomuuri on sulkenut Windows Live Messenger -tilille kirjautumisessa käytettävät portit 443 ja 1863.
Ongelman ratkaisu

Avaan tarvittavat portit, jonka jälkeen käynnistän palomuurin uudelleen ja käsken Pidginin kirjautumaan Windows Live Messenger -tililleni uudestaan.

  1. Avaan tarvittavat portit muokkaamalla /etc/firehol/firehol.conf -tiedostoa komentamalla sudo gedit /etc/firehol/firehol.conf avaamastani Päätteestä. Asetustiedoston avauduttua tekstieditorissa lisään siihen määrittelyn palvelulle, jonka nimeän wlm:ksi:

    # Windows Live Messenger
    server_wlm_ports="tcp/1863 tcp/443"
    client_wlm_ports="any"

    Sen jälkeen määrittelen nämä portit interface any world -osion alla avattaviksi:

            # Let Windows Live Messenger through
    	server "wlm" accept
    	client "wlm" accept

    Muutosten jälkeen tiedoston keskiosan tulisi näyttää seuraavalta, kun Lähtökohta-osiossa annettuun listaukseen lisäämäni rivit on korostettu lihavoinnilla:

    # Example udp ports
    server_exampleport_ports="udp/15001:15011"
    client_exampleport_ports="any"
    
    # Windows Live Messenger
    server_wlm_ports="tcp/1863 tcp/443"
    client_wlm_ports="any"
    
    interface any world
    
            # Let Windows Live Messenger through
    	server "wlm" accept
    	client "wlm" accept
    
            # Let torrent and exampleport through, and
  2. Muutokset tehtyäni ja tallennettuani käynnistän FireHOL-palomuurin uudestaan komentamalla Päätteestä sudo /etc/init.d/firehol restart
  3. Palomuurin käynnistyttyä uudestaan otan Windows Live Messenger -tilini pois käytöstä Pidginissä valitsemalla Tuttavalista-näkymän Käyttäjätilit-valikosta Windows Live Messenger -tilini alta kohdan Poista käytöstä. Sen jälkeen otan tilin uudestaan käyttöön valitsemalla Windows Live Messenger -tilini Käyttäjätilit-valikon Ota tili käyttöön -alivalikosta.

Tämän jälkeen sisäänkirjautuminen Windows Live Messenger -tililleni onnistuu.

Huomautus
Fireholissa on varattu MSN:ää varten oma nimetty porttinsa, msn, mutta Windows Live Messenger käyttää eri portteja.

Kuinka saan hiiren osoittimen mukaan ruutukaappaukseen

Lähtökohta
Edessäni on työpöytänäkymä, johon olen avannut sovelluksen. Haluan ottaa sovelluksesta kuvaruutukaappauksen siten, että sovelluksen ikkunan osion koon muuttamisen mahdollisuutta kuvastava hiiren osoitin (kaksisuuntainen nuoli) tulee mukaan kuvaan.
Ongelma
Sovellukset → Apuohjelmat -valikon Ota kuvakaappaus -sovellus ei ota kuvakaappaukseen hiiren osoitinta. Myöskään PrtSc-näppäimellä avautuva kuvakaappauksen tallennus ei ota hiiren osoitinta mukaan kuvakaappaukseen.
Ongelman syy
Kuvakaappauksien ottamiseen tarkoitetut oletussovellukset eivät tue hiiren osoittimen ottamista mukaan kuvakaappaukseen.
Ratkaisu
Ei vielä tiedossa.
Huomautuksia
  • Webmaster Tips -blogissa olevan kommentin mukaan Wink-nimisellä sovelluksella voi ottaa kuvakaappauksia jotka sisältävät hiiren osoittimen. Wink löytyy pakettivarastoista, mutta valitettavasti lupaus osoittimen sisältävien kuvakaappauksien ottamismahdollisuudesta pitää paikkansa vain osittain. Jos hiiren osoitin on sovellusikkunan osion kokoa muuttavan alueen päällä kuvakaappauksen ottamisen aikana, tuloksena olevassa kuvassa ei osoittimen kohdalla näy sama kaksisuuntainen nuoli kuin näytölläni todellisuudessa kuvan ottamishetkellä näkyy.
  • Creating Screencasts -artikkelin mukaan Xvidcap-nimisen sovelluksen asetuksissa on Capture Mouse Pointer -valitsin. En ole kokeillut kuvakaappauksien ottamista Xvidcapilla, sillä sovellus täytyisi asentaa Ubuntuun varsinaisten pakettivarastojen ulkopuolelta.
  • Osoittimellisen kuvakaappauksen voi mahdollisesti väärentää ottamalla kuvakaappauksen normaalisti ilman hiiren osoitinta, ja lisäämällä osoittimen kuvaan jälkikäteen esimerkiksi GIMP-kuvienkäsittelyohjelmalla. Tätä varten täytyy avata osoittimen ulkoasun sisältävä grafiikkatiedosto ja käyttää sen jälkeen kopiointia ja liimausta. Oletuskursorin grafiikkatiedostot ovat ilmeisesti /usr/share/icons/DMZ-White/cursors/ -hakemistossa, mutta ne ovat xcursor-tiedostomuodossa, enkä ole löytänyt pakettivarastoista ohjelmaa, jonka avulla ne pystyisi avaamaan GIMPissä. Pakettivarastojen ulkopuolella suoraviivaisin ratkaisu on ilmeisesti Gursor Maker -sovellus.

[Ratkaisu] Gcursor ei toimi

Lähtökohta
Olen asentanut gcursor-paketin. Olen käynnistänyt gcursorin valitsemalla Järjestelmä → Asetukset -valikosta kohdan Cursor Selection. Haluan vaihtaa ikkunointijärjestelmän kursoria.
Ongelma
Sulje-nappia lukuunottamatta mikään gcursorin ikkunan sisällä olevista toiminnoista ei reagoi hiirennapin painalluksiin. Hiiren kursoria ei voi vaihtaa.
Ongelman syy
Gcursorissa on ohjelmavirhe, jonka takia se ei toimi tarkoitetulla tavalla.
Ratkaisu

Käytän toista asetussovellusta kursorin vaihtamiseen.

Valitsen Järjestelmä → Asetukset -valikosta kohdan Ulkoasu. Avautuvan Ulkoasun asetukset -sovelluksen Teema-välilehdellä painan Oma...-nappia joka on kuvallisen ulkoasulistan alapuolella, Tallenna nimellä...- ja Asenna-napin välissä. Voin vaihtaa hiiren osoittimen ulkoasua valitsemalla jonkin kohdan nyt avautuvan Muokkaa teemaa -ikkunan Osoitin-välilehdellä olevasta kuvallisesta osoittimien luettelosta.

Huomautuksia
  • Ratkaisu toimii, vaikka gcursor-paketin asennuksen olisikin poistanut. Gcursorin asennuksen voikin siis poistaa, sillä sovellukselle ei ole mitään käyttöä niin kauan kuin se ei toimi tarkoitetulla tavalla.
  • Päätteestä käynnistettäessä gcursor tulostaa komentorivi-ikkunaan virheilmoituksia:

    (gcursor:7058): libglade-WARNING **: could not find signal handler 'extract_theme'.
    
    (gcursor:7058): libglade-WARNING **: could not find signal handler 'open_theme_dir'.
    
    (gcursor:7058): libglade-WARNING **: could not find signal handler 'entry_selected'.
    
    (gcursor:7058): libglade-WARNING **: could not find signal handler 'size_changed