Aja komentoja X:n käynnistyessä

Usein X-ikkunoinnin käynnistyessä on tarvetta ajaa erilaisia komentoja kuten esimerkiksi xmodmap. Tämä onnistuu muutamalla eri tavalla, kuten liittämällä komentojen ajaminen ikkunointimanagerin käynnistymiseen tai kirjautumisen yhteyteen. Gentoo Wikin mukaan useimmissa tapauksissa on kuitenkin yksinkertaisinta lisätä komennot .xprofile -tiedostoon.

Käyttäjän kotihakemistossa sijaitseva .xprofile ajetaan X:n käynnistymisen jälkeen ja on riippumaton X:n käynnistymistavasta (esim. KDM, GDM, xstart, xinit).

~/.xprofile voi näyttää vaikka tältä:

xbindkeys
xmodmap .Xmodmap

Aivan kaikkiin tapauksiin ~/.xprofile ei sovellu, sillä esimerkiksi conky jää piiloon KDE:n käynnistyessä. Conky ja muut KDE:n käynnistyessä ajettavat komennot voidaan ajaa tekemällä esimerkiksi ~/.kde/Autostart/basic -tiedosto:

#!/bin/bash
conky

Lisäksi kyseiselle tiedostolle kannattaa komentaa chmod u+x.

Nyt halutut komennot ajetaan aina X:n käynnistyessä käytettävästä ikkunointimanagerista huolimatta.

Mac OS X ja ruudunkaappausten ottaminen

Mac OS X:ssä erilaisten ruudunkaappausten (eng. screenshots) ottaminen on erittäin yksinkertaista vain muutamalla napin painalluksella. Ei Windowsin monimutkaista tapaa ensin painaa ”Print Scrn”, jonka jälkeen pitää vielä liittää kuva leikepöydältä kuvankäsittelyohjelmaan ja tallentaa kuva haluttuun muotoon. OS X:ssä koko operaatio hoituu painamalla ”cmd + 4” ja ruudunkaappaus tallentuu PNG-muotoon työpöydälle.

Ruudunkaappausten ottamiseen on myös erilaisia vaihtoehtoja (cmd-nappi eli ns. Omena-nappi):

cmd + Shift + 3 Kaappaa koko ruutu ja tallenna tiedostoon
cmd + Control + Shift + 3 Kaappaa koko ruutu ja kopioi leikepöydälle
cmd + Shift + 4 Kaappaa valittu alue ja tallenna tiedostoon
cmd + Control + Shift + 4 Kaappaa valittu alue ja kopioi leikepöydälle
cmd + Shift + 4 ja välilyönti Kaappaa ikkuna, valikko, ikoni yms ja tallenna tiedostoon
cmd + Control + Shift + 4 ja välilyönti Kaappaa ikkuna, valikko, ikoni yms ja kopioi leikepöydälle

Ruudunkaappausten ottaminen on siis yksinkertaista. En tosin itsekään tiennyt, että painamalla vielä välilyöntiä, kursori muuttuu kameraksi, jonka jälkeen on helppoa kaapata yksittäinen ikkuna. Itse kursoria ei ruudunkaappaus tallenna, vaan sitä varten voi käynnistää Applen Grab -työkalun, jolla voi ottaa myös ajastettuja ruudunkaappauksia.

Ruudunkaappauksia voi ottaa myös komentorivin ”screencapture” -komennolla, jonka voi yhdistää esimerkiksi AppleScript-kikkareeseen tyyliin do shell script "screencapture ~/Desktop/screenshot.png".

MacRumors:Guides ”Taking Screenshots in Mac OS X” neuvoo lisäksi miten vaihdetaan ruudunkaappauksen tallennusformaatti ja mainitsee muutaman suositun ruudunkaappaus-ohjelman.

Pikanäppäin ikkunan pienentämiseen Windowsissa

Tietotekniikassa aina oppii jotain uutta. Tänään opin, että Windowsissa pikanäppäin ikkunan pienentämiseen on Alt + Spacebar + N. Vastaavasti ikkunan maksimoimiseen + X ja palauttamiseen + R. Lähtökohtaisesti looginen pikanäppäin, kunhan tietää että Alt + Spacebar avaa ikkunavalikon.

Ilmeisesti ikkunan pienentäminen ei toimi kaikkien ohjelmien kohdalla, sillä ainakaan nuTTY ja RealVNC Viewer eivät totelleet pikanäppäintä, vaikka klikkaamalla ikkunan yläkulmaa ikkunavalikko aukenikin.

Kuvittelin, että kyseinen toiminto toimisi kaikissa ohjelmissa ja olisi liitetty Win-näppäimeen (esim. Win-H), mutta olihan se taas liikaa toivottua. Macissa tämäkin on toteutettu paremmin.

Asiasta toiseen. Tänään totesin, että kokeneellekin tietotekniikan ammattilaiselle kopioi/liitä/leikkaa -toiminto käyttämällä CTRL+C/V/X -yhdistelmää, voi olla uusi tuttavuus. Käyttöjärjestelmien kehittyessä varmaan moni muukin usein käytetty toiminto on löytänyt tiensä pikanäppäimiin, mutta vanhat toimintatavat muuttuvat hitaasti.

Tekstin liittäminen Wordiin ilman muotoiluja

Microsoft Word haluaa tekstiä, esimerkiksi PDF:stä, liitettäessä ottaa mukaan tekstissä olevat muotoilut, mutta en muista, että olisin montaakaan kertaa tai kertaakaan muotoiluja halunnut. En ainakaan Microsoft Word 2002:sta löytänyt asetusta, jolla liitä -komennon toimintaa olisi voinut muokata haluamakseen, eli että teksti liitettäisiin aina ilman muotoiluja. Valikoista kyllä löytyy ”Paste Special” -komento (suom. Liitä määräten), mutta toistuva käyttö on hieman hankalaa.

Tähänkin pieneen ongelmaan löytyi apu googlettamalla, joka tarjosi ratkaisuksi makron tekemistä ja sen liittämistä esimerkiksi CTRL-V -pikanäppäimeen. Aihetta käsittelevä kysymys ja ratkaisu löytyi Tech Support Guy! -foorumilta ja pikanäppäinvinkki usealtakin sivustolta.

Ohje menee hieman mukaillen seuraavasti:

Klikkaile valikosta ”Tools – Macros – Record Macro” ja anna makrolle nimeksi ”PasteUnformatted”. Valitse makro osoittamaan kaikkia dokumentteja ja klikkaa ”Keyboard” -kuvaketta, josta voit liittää makron esimerkiksi CTRL-V -pikanäppäimeen. Sulje ikkuna ja aloita makron nauhoittaminen.

Nauhoita makro klikkailemalla ”Edit – Paste Special”, ”Unformatted Text” ja ”OK”, jolloin teksti liittyy dokumenttiin ilman muotoiluja. Nyt makro on valmis ja voit lopettaa makron nauhoittamisen.

Avaa Alt-F11 -näppäinyhdistelmällä Visual Basic -editori ja näet juuri nauhoittamasi makron. Periaatteessa nauhoittamasi makron pitäisi toimia, mutta en itse ekalla yrittämällä sitä saanut toimimaan. Onneksi foorumilla oli annettu valmis makrokoodi, jonka voit kopioida nauhoittamasi päälle.

PasteUnformatted -makro:

Sub PasteUnformatted()
'
' Paste Unformatted Text Macro
'
Selection.PasteSpecial Link:=False, _ 
DataType:=wdPasteText, Placement:= _
wdInLine, DisplayAsIcon:=False
End Sub

Nyt aina CTRL-V -pikanäppäimellä teksti liittyy dokumenttiin ilman turhia muotoiluja ja tarvittaessa voi aina valita liitä -komennon valikoista klikkaamalla, jos haluaa säilyttää liitettävän tekstin muotoilut.

WebKit-selaimen asentaminen ja käyttö Windows- ja Linux-ympäristöissä: melkein kuin OS X:n Safari

Monday By Noon -blogi kirjoittaa WebKit -selaimen kääntämisestä Linuxille Qt-kirjaston kanssa. Koska tällä hetkellä pääkäyttöjärjestelmäni on vaihteeksi Windows XP, tuli mieleen kokeilla WebKit -selaimen kääntämistä Windowsin puolella. Linuxissahan se näytti onnistuvan helposti.

WebKit on avoimen lähdekoodin web-selainmoottori. WebKit nimellä tunnetaan myös Mac OS X:n järjestelmäympäristön versio kyseisestä moottorista, jota käytetään muun muassa Mac OS X:n Safari, Dashboard ja Mail -sovelluksissa. On kuitenkin huomattava, että Safari ja WebKit ovat kaksi täysin eri asiaa; Safari on selain, joka käyttää WebKitiä sivujen renderöimiseen. WebKitin HTML ja JavaScript koodit ovat saaneet alkunsa KDE -projektin KHTML ja KJS kirjastoista ja joitain WebKitiin tehtyjä muutoksia ja korjauksia nähdään myös KHTML:n koodissa.

Ennen WebKit-selaimen kääntämistä testasin Monday by Noon -blogikirjoituksen kommenteissa viitattua Swift -selainta Windowsille, joka käyttää moottorinaan WebKitiä. Swift on kehitysasteeltaan vasta 0.2 alpha ja osoittautuikin epävakaaksi. Myös selaimen perusominaisuuksissa oli suuria puutteita, eikä kestänyt kauaa, kun jo sain Swiftin kaatumaan. Jutun kommenteissa hieman viitattiin, että Swift näyttäisi CSS-renderöintivirheet samalla tavalla kuin Safari, mutta en tätä itse testannut. Jos kommentti pitää paikkansa, on Swift helppo, joskin tässä vaiheessa vielä epävakaa testiselain www-sivujen ulkonäön tarkasteluun.

Seuraavaksi testivuoroon WebKitin kääntäminen Windowsissa ja nopea katsaus Googlen löytämiin tuloksiin tarjosikin WebKitin Wikistä löytyvät ohjeet WebKitin kääntämiseksi Windowsissa, käyttäen cygwiniä ja muutamia tarvittavia lisäkirjastoja.

Windowsissa WebKitin kääntäminen vaati hieman pohjustusta muun muassa cygwin -ympäristön asentamisessa, mutta ohjeet olivat selkeät. Lisäksi tarvittiin WebKit -projektin checkout, eli lähdekoodien hakeminen, versionhallinnasta, muutamia lisäkirjastoja asennusskriptillä, muutaman paketin lataaminen ja lopulta kaikki tarvittavat materiaalit olivat valmiina. Kun vielä kääntämiseen oli tarjolla valmis skripti cygwiniä tai Visual Studio -projektia käytettäessä, tarvitsi vain aloittaa kääntäminen haluamallaan tavalla.

Rivit vilisivät ruudulla, kun kääntöprosessi sulatteli lähdekoodeja, mutta koska mikään ei ole koskaan liian helppoa, antoivat sekä cygwinissä että Visual Studiossa ajettu kääntö saman vastauksen: ”Build failed”. Ei onnistu. Liian helpoltahan tämä jo vaikuttikin.

Windows-arpa oli tällä erää kokeiltu ja tyhjähän sieltä paljastui. Kääntö aiheutti vielä sen verran runsaasti virheitä ja varoituksia, ettei mielenkiinto eikä aika riittänyt niiden tutkimiseen. Vaihtoehtona oli vielä WebKitin kääntäminen Linuxille Qt-kirjaston kanssa ja Linux-arvan katsomisen vuoro. Samalla tämän kirjoituksen otsikkokin muuttui aiheen lipsuessa Windowsista Linuxiin.

Linuxiin löytyikin jo valmiit ohjeet, joten terminaali auki, tarvittavien lisäkirjastojen asennus ja kääntö käyntiin annettujen ohjeiden avulla. Rivit vilisivät ruudulla, kunnes kääntö pysähtyi virheeseen. Ongelmaan auttoi WebKitin Wikistä lötyvän ”Building the Qt port on Linux” -kirjoituksen ohjeet muutamiin yleisiin käännösongelmiin. Tämän jälkeen WebKit kääntyikin ongelmitta. Vielä LD_LIBRARY_PATHin asettaminen osoittamaan ”WebKit/WebKitBuild/Releases/lib/”-hakemistoon, jotta QtLauncher löysi libWebKitQt:n ja selain oli käynnissä. Vaikka ohjeet olivat tehty käyttäen Ubuntua, onnistui kääntäminen samoilla ohjeilla myös 64-bittisessä Gentoossa.

Ei siis WebKit-selainta Windowsille, ohjeista huolimatta, vaan WebKit Linuxille. Voi hyvinkin olla, että tekiessäni checkoutin, oli kyseinen versio jostain hajalla ja ei siksi kääntynyt Windowsissa. Toisaalta veikkaan, että käyttäjässä oli vikaa. Onneksi kääntöprosessi on tehty kohtalaisen helpoksi, joten kääntämistä voi yrittää myöhemminkin vain parilla klikkauksella.

Linuxissa Qt-kirjastoa käyttävä WebKit on käytettävyydessä jotakuinkin hieman samaa tasoa, kuin aikaisemmin mainitsemani Swift-selain Windowsissa: näyttää web-sivut safarimaisesti ja sivuhistoriassa voi liikkua eteen- ja taaksepäin. Ja siihen selaimen toiminnallisuus rajoittuukin. Ulkoasukin on karu, sisältäen vain muutamat navigointinapit ja osoitekentän. Kokonaisuutena Swift tarjoaa kuitenkin parempaa selausta välilehtien ja viimeistellymmän ulkoasunsa ansiosta.

Odotin Linuxissa toimivalta WebKitiltä hieman enemmän, mutta kuten aikaisemmin kirjoitin, WebKit ja Safari ovat kaksi eri asiaa. Mielikuvat liikkuivat Safarimaisessa selaimessa, mutta sain pelkän selainmoottorin ja pari hassua nappia. Ohjesivuilla oli kyllä ruudunkaappauksia, mutta jotenkin sivuutin koko asian.

Periaatteessa WebKit-moottorilla Windowsissa tai Linuxissa renderöidyn web-sivun pitäis näyttää samalta kuin OS X:n Safarissa, mutta käytännössä tämä ei välttämättä toteudu. WebKitiä voi kuitenkin soveltaa nopeaan testaukseen, jos Safaria ei ole saatavilla. Linuxissa myös Konqueror, joka käyttää myös WebKitin pohjana olevaa KHTML-moottoria, soveltuu web-sivujen testaamiseen ja lukemani perusteella näyttää sivustot Safarimaisesti lomakkeita lukuunottamatta.

Parhain ja varmin testitulos web-sivujen testauksessa saavutetaan kuitenkin käyttämällä autenttista OS X -ympäristöä, virtualisoiden tai ilman. WebKit on kuitenkin vain osa Safarin tarjoamaa kokonaisuutta.

Lisäys 17.7.2007:
Apple julkaisi kesäkuussa WWDC:n yhteydessä Safari-selaimensa myös Windowsille. Nyt ei ole enää ei ole tarvetta viritellä WebKitiä ihan vain web-sivujen testaamiseksi. Safari 3 Public Beta tosin käynnistyi hieman ontuen, kun Windows-versiossa oli ikäviä toimivuusongelmia. Varsinaista Beta-tasoa.

Windows, Samba-jaot ja kakutettu palvelinteksti

Olisi pitänyt heti arvata, että vika on Windowsissa, kun mietin miksi Windowsissa Linuxin Samba-jaossa näkyy eri palvelinteksti, kuin mitä palvelimen ”Server string” -muuttujassa. Siellähän se teksti oli Windowsin rekisteriin kakutettuna. Tämä tieto ja ratkaisu ongelmaan, eli kyseisen avaimen poistaminen, selvisi googlettamalla Samban postituslistalta keskustelu samasta aiheesta.

On myös kätevää lisätä Samba-palvelimen IP-osoite Windowsin hosts -tiedostoon (C:\WINDOWS\system32\drivers\etc\hosts). Hosts -tiedosto on normaali tekstitiedosto ja toimii kuten vastaava hosts-tiedosto Linuxissakin. Näin verkkolevyt voi yhdistää helposti palvelimen lyhennetyllä nimellä, eikä naputtelemalla numeroita tai pitkää osoitetta. Myös Samba-jaon nimi näyttää kivemmalta.

Käyttömukavuus on joskus pienistä asioista kiinni.

vim: eroon turhista merkeistä tekstitiedostossa

Kaikkien tehokäyttäjien rakastama (tai vihaama) Vim on tehokas komentorivieditori ja sen käyttöön löytyy paljon vinkkejä.

Joskus tekstitiedostoja muokatessa ja niitä siirtäessä Windowsin ja Unixin välillä, tulee tiedostoon rivien loppuun ^M -merkkejä. Nämä on helppo poistaa Vimin vinkillä #26: Eroon ^M -merkeistä.

Ohjeessa käytetään :%s/^M$//g -komentoa, jolla rivin lopussa olevat ^M -merkit korvataan tyhjällä. ^M -merkki saadaan aikaan CTRL-V ja CTRL-M yhdistelmällä.

Vinkin kommenteissa on lisää vinkkejä ^M -merkkien korvaamiseen, komennon lisäämistä pikanäppäimen alle ja useiden tiedostojen käsittelyä kerralla.