X:n leikepöydät

Linux.fista
Versio hetkellä 9. joulukuuta 2008 kello 16.59 – tehnyt LP (keskustelu | muokkaukset) (primary selection ja clipboard; sälytyksestä huolehtii sovellus eikä palvelin)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

X:n leikepöydät eroavat esimerkiksi Windowsin vastaavista. Leikepöytiä on useampia ja niiden sisältöä ei säilötä palvelimella vaan alkuperäisessä sovelluksessa.

Kun hiirellä maalaa tekstiä, sovellus yleensä ilmoittaa X-palvelimelle, että se ottaa haltuunsa olion ("selection") nimeltä "Primary selection". Kun toisessa sovelluksessa painetaan hiiren keskinappia, tämä saa X-palvelimen kautta olion haltijalta maalatun tekstin. Tämä on perinteisesti eniten käytetty tapa siirtää tekstiä sovelluksesta toiselle.

Kun käyttää toimintoa "leikkaa" tai "kopioi" jossakin sovelluksessa, sovellus ottaa hallintaansa "Clipboard"-nimisen olion. Kun toisessa sovelluksessa käyttää "liimaa"-toimintoa, olion haltija vastaavasti välittää leikatun kappaleen tälle toiselle sovellukselle. Tämä tapa toimii Windows- ja MAC- käyttäjille tuttuun tapaan, tietyin poikkeuksin.

Koska leikepöydästä huolehtii aina jokin sovellus, ei itse X-palvelin, sovelluksen sulkeminen hävittää leikepöydän sisällön. On olemassa ohjelmia (esim. xclipboard, xselection, glipper ja klipper), jotka kopioivat leikepöydän sisällöt ja ottavat leikepöydät haltuunsa. Tämä lisää verkkoliikennettä (jos X:ää käyttää verkon välityksellä), mutta mahdollistaa leikepöydän historiatoiminnot.

Koska leikepöydän sisältö kopioidaan vasta eri pyynnöstä, sovellukset voivat neuvotella sopivasta muodosta: sisällön voi siirtää eri merkistöissä, eri rivinvaihtokäytännöillä, png-kuvana, postskriptinä, alkuperäisessä muodossaan, pikselöitynä, URL-osoitteena jne. Ominaisuutta ei ole vielä täysin standardoitu ja hyödynnetty, mutta varsinkin sovelluskehittäjien kannattaa huomioida nämä mahdollisuudet.

Leikepöytiä voi olla useita. Kahden mainitun lisäksi on "Secondary selection", jota harvoin käytetään, ja mahdollisesti muitakin.

"Drag'n Drop" käyttää myös leikepöytiä, mutta osoittimen muodon muuttamiseksi siirron aikana tarvitaan lisäviestintää.

X:ssä on lisäksi "cut buffer" -toiminto, mutta tämä pidetään vanhentuneena, eikä sitä suositella käytettäväksi. Ikivanhojen sovellusten kanssa voi käyttää ohjelmaa xcutsel, joka osaa kopioida tekstiä näiden järjestelmien välillä.