wtorek, 1 marca 2016

Poprawiamy wygląd LibreOffice

Wygląd LibreOffice jest - jaki jest. Jednym się podoba, innym nie. Nie chodzi mi w tym momencie o ogólnie przyjęty interfejs tego pakietu, a wyłącznie o dostosowanie go do środowiska, w którym jest uruchamiany.
Prawdopodobnie mało kto pamięta, że LibreOffice daje cztery możliwości ustawień, które powodować mają upodobnienie się wyglądu do środowiska, w którym przyszło mu pracować. Odpowiada za to parametr SAL_USE_VCLPLUGIN. Obecnie dostępne są następujące ustawienia:

  • gen - można powiedzieć "wygląd źródłowy", bez upodabniania się do czegokolwiek - jest on nieco podobny do aplikacji pisanych w java,
  • gtk - to wygląd, który ma upodabniać interfejs do środowisk opartych na Gtk+ 2.x,
  • gtk3 - wygląd upodobniający interfejs do środowisk opartych o Gtk+ 3.x,
  • kde4 - wygląd upodobniający interfejs do środowiska KDE4, a szerzej - opartych o Qt4 i prawdopodobnie Qt5.
Niektóre dystrybucje próbują ów wygląd predefiniować. Tak jest również, gdy pobierzemy paczki deb, czy rpm bezpośrednio ze strony projektu, w których parametr powyższy ustawiony jest na gtk. W innych dystrybucjach, takich jak choćby Arch Linux pozostawiono to użytkownikowi i poniekąd samemu programowi. Jeśli bowiem nie zostanie ustawiony żaden parametr, to program sam próbuje zidentyfikować środowisko i przybrać najbardziej odpowiedni dla niego wygląd. 
Niestety ustawienia - szczególnie w przypadku używania Plasma 5 (i prawdopodobnie również LXQT) - są dość dalekie od, przynajmniej mojego, poczucia estetyki. Możemy zatem spróbować coś zmienić.
Proponuję najpierw uruchomienie testowo jakiejś aplikacji, która wchodzi w skład pakietu. W poniższych przykładach będzie to Writer (lowriter). Mechanizm jest prosty, wydajemy w konsoli polecenie:
SAL_USE_VCLPLUGIN=<nazwa> lowriter
I sprawdzamy jak nam się teraz podoba wystrój programu. W miejscu <nazwa> wpisujemy jedną z przytoczonych wyżej możliwości: gen, gtk, gtk3, kde4.
Jeśli któryś z wystrojów podoba nam się bardziej, możemy dokonać na stałe wprowadzenia go jako parametru uruchamiania LibreOffice. Możliwości jest kilka.

W przypadku, gdy w systemie mamy jedno środowisko, wówczas warto jest zmienić wpis w /etc/profile.d/libreoffice-<wersja>.sh/csh. Owe <wersja> to albo fresh, gdy używamy najnowszych wydań LibreOffice, bądź still, gdy używamy bardziej stabilnych wersji. Obecnie fresh to seria 5.x, a still 4.x. Plik ten składa się z czterech ustawień, zwykle poprzedzonych znakiem #, które mają postać:
# to force a certain look'n feel
#export SAL_USE_VCLPLUGIN=gen 
#export SAL_USE_VCLPLUGIN=kde4 
#export SAL_USE_VCLPLUGIN=gtk 
#export SAL_USE_VCLPLUGIN=gtk3
 W celu ustawienia tego, który nas interesuje usuwamy znak # sprzed odpowiedniej linii. Ustawienie w tym miejscu wyglądu LibreOffice funkcjonuje w całym systemie, dla wszystkich środowisk i wszystkich użytkowników.

Jeśli w systemie mamy więcej środowisk lub też pracuje na nim kilka osób o odmiennych upodobaniach, możemy dokonać podobnego ustawienia w pliku konfigurującym powłokę dla danego użytkownika. W moim przypadku jest to bash, zatem plik konfiguracyjny to ~/.bashrc. W pliku tym dodajemy linijkę:
export SAL_USE_VCLPLUGIN=<nazwa>
gdzie <nazwa> to oczywiście wybrane przez nas ustawienie. Nowy wygląd będzie dostępny już po wydaniu polecenia:
source ~/.bashrc
i będzie on dostępny wyłącznie dla użytkownika, który dokonał zmian, ale dla wszystkich środowisk, jakich używa.

Jeśli używamy kilku środowisk, to najrozsądniejsze wydaje się napisanie skryptów, które będą uruchamiane wraz ze startem systemu. Dla basha przyjmie on postać:
#!/bin/bash
export SAL_USE_VCLPLUGIN=<nazwa>
gdzie znów nazwa, to wybrany przez nas parametr zmiennej środowiskowej. Taki plik zapisujemy pod dowolną nazwą i nadajemy mu uprawnienia wykonywalne, choćby za pomocą chmod i umieszczamy taki plik w katalogu, który odpowiada za autostart wraz z danym środowiskiem. W przypadku Plasma 5 oraz nazwy nadanej plikowi jako lo-plasma.sh będzie to:
chmod +x ~/.config/plasma-workspace/env/lo-plasma.sh
Plik bowiem musimy umieścić w ~/.config/plasma-workspace/env.