przystajnik

Zarządzanie kolorami w Xfce

O tym jak istotne jest identyczne odwzorowanie barw na przeróżnych urządzeniach nie trzeba chyba przekonywać nikogo, kto zajmuje się np. fotografią cyfrową. Profile barwne ICC są odpowiedzią na odwieczne dylematy – czy kolory z mojego monitora w labie zostaną odwzorowane tak jak przypuszczam, że powinny zostać odwzorowane. Każdy współczesny systemem uwzględnia ich istnienie i nie inaczej jest z Linuksem. Niemniej, o ile środowiska GNOME, KDE, Unity, Cinnamon umożliwiają wygodną obsługę rzeczonych profili, o tyle mamy też środowiska minimalistyczne, w których musimy sobie radzić sami. Nie inaczej jest w przypadku Xfce, które pomimo rozbudowanych ustawień sesji i nie tylko, zapomniało o istnieniu profili ICC. To spore niedopatrzenie, gdyż środowisko to jest chętnie i masowo stosowane w przeróżnych dystrybucjach.

Na szczęście można temu problemowi zaradzić w dwojaki sposób. Posiadając profil ICC dla naszego monitora musimy go po prostu aktywować podczas startu naszej sesji. Jak łatwo się domyślić, osiągniemy to uruchamiając odpowiednie polecenie, podając mu jako parametr odpowiedni plik. Tym tajemniczym poleceniem jest np. xcalib – znajdujący się w repozytoriach każdej dystrybucji. Aby przetestować jego działanie, po jego zainstalowaniu wystarczy nakarmić go posiadanym przez nas profilem.

Sposób nr. 1

xcalib nazwa_profilu.icc

Aby wyczyścić te ustawienia, wywołujemy:

xcalib -c

Jak sprawić, aby wgranie pliku ICC następowało wraz z naszym zalogowaniem się do systemu? Po prostu polecenie „xcalib nazwa_profilu.icc” dodajemy do poleceń startowych poprzez Ustawienia -> Sesja i Uruchamianie.

Sposób nr. 2

Innym rozwiązaniem jest użycie daemona colord oraz xiccd. Ma to tę przewagę, że colord samodzielnie rozpozna urządzenia dla których można zastosować profile kolorów i przypisze im dostępne w systemie pliki icc (lub pozwoli na ich ustawienie). Xiccd natomiast to namiastka gnome-color-manager i automatycznego aktywowania profili przypisanych do danego urządzenia. W ten sposób za pomocą colord ustalimy, które icc powinno obsługiwać które urządzenie, a resztą zajmie się automatycznie xiccd, który załaduje profil po starcie systemu. Różnica między xcalib a xiccd jest też taka, że xcalib ustala parametry gamma dla całego serwera X, natomiast xiccd podsuwa pożądany profil programom, które takie regulacje respektują (GIMP, Darktable, itp.). Brzmi to dość skomplikowanie, ale działa – jeżeli się przebrnie przez tekstowe ustawienia. Inaczej też traktuje posiadany przez nas plik icc. Kopiujemy go bowiem do katalogu:

cp nazwa_profilu.icc ~/.local/share/icc

To, czego potrzebujemy to usługa colord oraz xiccd – czyli dodajemy PPA i instalujemy (niestety, xiccd jest w PPA tylko w wersji dla 14.04 – ew. źródła najdziemy tutaj). Podobne machinacje możemy przeprowadzić również dla Manjaro i Arch Linuksa, wykorzystując repozytorium AUR (i menadżer pakietów, tudzież polecenia pacman oraz yaourt):

sudo add-apt-repository ppa:pmjdebruijn/xiccd-testing

sudo apt-get install colord xiccd

Odpalamy teraz xiccd:

nohup xiccd &

Teraz czas na nieco magii w terminalu:

colormgr get-devices
colormgr get-profile-by-filename nazwa_profilu.icc

Otrzymaliśmy ścieżkę do urządzenia/urządzeń oraz do profili, tak jak widzi je colord. Należy teraz skojarzyć odpowiednie urządzenie z odpowiednim profilem:

colormgr device-add-profile \
/org/freedesktop/ColorManager/devices/xrandr_AU_Optronics_zdhor_1000 \
/org/freedesktop/ColorManager/profiles/icc_0c0c0a849671af10f75fff468b421a07_zdhor_1000

Oczywiście linijki /org/freedesktop(…) wstawiamy takie, jakie uzyskaliśmy za pomocą wcześniejszych komend. Teraz musimy zadbać o to, aby xiccd uruchamiało się automatycznie. Najprościej dorzucić go do autostartu i to globalnego. Tworzymy zatem odpowiedni plik .desktop w /etc/xdg/autostart:

sudo gedit /etc/xdg/autostart/xiccd.desktop

I wklejamy:

[Desktop Entry]
Encoding=UTF-8
Name=xiccd
GenericName=X11 ICC Daemon
Comment=Dodaje zarządzanie kolorami w danej sesji
Exec=xiccd
Terminal=false
Type=Application
Categories=
OnlyShowIn=XFCE;

Xiccd nie potrzebuje żadnych parametrów, gdyż wykorzystuje bazę danych colord.

Takim oto sposobem można podrasować nieco Xfce i dopasować je do min. standardów jakościowych wymaganych przez użytkowników zajmujących się na Linuksie poważniejszymi pracami graficznymi.  

Post navigation

10 comments for “Zarządzanie kolorami w Xfce

  1. Inter
    15 stycznia, 2015 at 0:40

    Świetna porada. Dzięki Tobie mój xfce nauczył się w końcu poprawnie wyświetlać kolory. Ten blog jest w całości znakomity i bardzo fajnie pisany. Aż dziw że dopiero teraz na niego trafiłem. Dodaję do zakładek 🙂

  2. 15 stycznia, 2015 at 10:46

    Dzięki za słowa otuchy i cieszę się, że porada się przydała, pozdrawiam 🙂

  3. Enzoo
    30 stycznia, 2016 at 15:46

    Właśnie kończę przygotowania do przesiadki z wiadomego systemu na Minta i po sprawdzeniu 2 dystrybucji Mate i Xfce wybór padł na tę drugą. A, że zajmuje się amatorsko fotografią i sprawa kolorów wyświetlanych na moim S1921 nie jest dla mnie obojętna trochę się zastanawiam, czy to dobry wybór? Wcześniej korzystałem z kalibracji kolorów dostępnej w Win7, a RGB
    monitora miałem ustawione na „custom” i było to wystarczające dla moich potrzeb. Stąd moje pytanie: jaki z opisanych sposobów zastosować, aby nie spowalniać zbytnio Xfce i kolory nie uciekały przesadnie?
    Funkcjonalność Xfce jest jakby skrojona dla mnie i moich nawyków „bezmyszkowej” obsługi pulpitu (trochę jak Win7) i nie chciałbym z niego rezygnować.

    PS. To mój pierwszy post, a nie przywitałem się. Witam Moda Salvadhora i Gości!

  4. 31 stycznia, 2016 at 7:06

    Witam serdecznie w gronie wolnych ludzi 🙂

    Podstawą będzie zdobycie profilu icc dla tego monitora – można go wyciągnąć z windowsowych sterowników (chyba), albo poszukać na stronie producenta (lub np. spod tego adresu http://mva.pl/viewtopic.php?f=21&t=170). Mylące rozszerzenie icm dla tych plików wynika z tego, że to MS po raz kolejny chciał to zrobić po swojemu. ICC i ICM są plikami tożsamymi, wystarczy zmienić rozszerzenie w przypadku problemów – struktura w środku jest taka sama.

    Co do wyboru metody – żadna z nich nie spowolni systemu. To jest tylko kwestia zacięcia, czy chce się mieć taką zmianę globalnie, w całym systemie (łącznie z oknami) – wtedy stosujemy proste xcalib. Inteligentne xiccd wymaga nieco więcej nakładu sił, ale potem automatyka robi za nas resztę roboty.

  5. Enzoo
    3 lutego, 2016 at 18:35

    To na początek spróbuję prostszego sposobu „xcalib”. Jak się wdrożę to pobawię się z „xiccd”. Dzięki za poradę. Blog zasługuje na wersje angielskojęzyczną; ocena na 6 za całokształt: od pomysłu do wykonania i prowadzenia.

    PS. Systemy komputerowe nie dadzą nikomu wolności. Kibicuje Linuxowi, gdyż na dziś dzień tylko Pingwin stanowi alternatywę dla Okienek, a jako typowy Polak wspieram słabszego. Uważam, że jeden system od drugiego może się wiele nauczyć. Świat tylko z Linuxem też byłby nudny.

  6. Enzoo - zielony jak Mint
    18 lutego, 2017 at 23:05

    A jak mogę sprawdzić, że „xcalib” wgrał profil do systemu. Optycznie nie widzę różnicy po wykonaniu polecenia. Poniżej widok z terminala:

    xcalib 0.8
    Copyright (C) 2004-2007 Stefan Doehla
    THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY!

    usage: xcalib [-options] ICCPROFILE
    or xcalib [-options] -alter

    where the available options are:
    -display or -d
    -screen or -s
    -clear or -c
    -noaction or -n
    -verbose or -v
    -printramps or -p
    -loss or -l
    -invert or -i
    -gammacor or -gc
    -brightness or -b
    -contrast or -co
    -red
    -green
    -blue
    -alter or -a
    -help or -h
    -version

    last parameter must be an ICC profile containing a vcgt-tag

    Example: ./xcalib -d :0 -s 0 -v bluish.icc
    Example: ./xcalib -red 1.1 10.0 100.0

  7. Pseudodrummer
    19 lutego, 2017 at 0:00

    System komputerowy Linux daje mi wolność-od wirusów,windy i słabych programów tworzonych przez niewiadomo kogo w niejasnym celu.Daje mi wybór,możliwość rozwoju wiedzy i wyobraźni,poczucie swobody.
    Słabszego?
    Jakie kryterium przyjmujesz?

    To co powiedziałeś to typowa nowomowa,mająca znamiona pseudointelektualnej wypowiedzi,ba,pokusiłeś się nawet o proroctwo („Systemy komputerowe nie dadzą nikomu wolności”).Jesteś wieszczem czy jak?
    Jako „typowy” (to Twój osąd,czy posiadłeś tą wiedzę z onetu?) Polak „wspierasz słabszego”,ale Twoja wypowiedź nosi cechy kryptoreklamy „silniejszego” (windy).
    Cztery zdania,zero treści.

  8. Enzoo - zielony jak Mint
    19 lutego, 2017 at 0:31

    Windows na desktopie to potęga, nie wierzysz przejdź się po znajomych. Tylko nie pisz, że wszyscy mają Pingwina, bo nie uwierzę. W moim 4-tysięcznym miasteczku Linuksa mam raczej tylko ja. Co tam Linux, chyba jako jednym używam LibreOffice. Wszyscy mają Łordy, większość wiadomego pochodzenia. O czym tu rozmawiać?
    Wspieram to za dużo powiedziane (jeszcze nie dotuje Xfce, ale mam zamiar), powiedzmy, że na razie gorąco kibicuje. No i żona i dzieci mnie w domu… że jak był Win7, to było fajnie 🙂 Reszta rodziny jest zdania, że to kryzys wieku średniego 🙂
    Nie łap mnie pleas za słówka, naprawdę chciałbym, żeby Linux miał na desktopie 6-8 %. Może Corel zmieniłby zdanie i Adobe wydałoby nowszego Readera. Jak widzisz silny Linux jest w moim interesie, ale na dziś dzień jestem sceptyczny… Pani Wiesia musi robić PITy, na płycie w Gazecie Prawnej nie widziałem wsparcia dla Linuxa. I Pani Wiesia nie przeniesie się na Linuxa. Trzeba to w końcu zrozumieć, że na tym boisku MS gra u siebie. Być może jeszcze przez 10 lat Linux będzie miał 2% i trzeba będzie z tym żyć.

    A tak z innej beczki, jak radzisz sobie z kalibracją monitora pod Xfce?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »