Xscreensaver jak malowany
W wielu dystrybucjach zaszczytną funkcję wygaszacza ekranu pełni całkiem funkcjonalny Xscreensaver. Na jego barkach spoczywa też blokada ekranu po dłuższym czasie nieaktywności użytkownika. Jednak ze względów koncepcyjnych i bezpieczeństwa, blokada ekranu i późniejszy interfejs służący autoryzacji użytkownika, korzysta z systemowych, surowych bibliotek Xlib. Jak to wygląda – większość zapewne wie. Ale skoro mamy XXI wiek, to dlaczego by nie spróbować tchnąć w ten element nieco estetyki?
Wiele osób może się obruszyć, że skoro autoryzacja ponownego dostępu do zablokowanego pulpitu ma stać na straży bezpieczeństwa, to ma być skuteczna a nie ładnie wyglądać. Jest w tym sporo racji, jednak zmiana wyglądu nie spowoduje, że Xscreensaver straci coś ze swoich mechanizmów zabezpieczających. Mowa jest o zwykłej kosmetyce, która uczyni okno logowania nieco bardziej współczesnym i nie będzie wywoływała u użytkowników konsternacji ‘Hmm, mam ładnego Linuksa, a tu coś się zepsuło?’. A mowa jest o takiej zmianie:
Niby nic, a wizualnie jest nieco bardziej przyswajalne. Oczywiście to tylko sugestia wyglądu, bo jak się za chwilę okaże, dostaniemy możliwość niemal dowolnego upiększenia tego okienka. A wszystko odbywa się za sprawą pliku ~/.Xresources, który musimy utworzyć lub edytować w swoim katalogu domowym:
gedit ~/.Xresources
I w tym pliku umieszczamy opis stylu i wyglądu okna, którym raczy nas Xscreensaver. Dokonujemy tego wg. poniższej receptury:
xscreensaver.splash: false !font settings xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* !general dialog box (affects main hostname, username, password text) xscreensaver.Dialog.foreground: #111111 xscreensaver.Dialog.background: #ffffff xscreensaver.Dialog.topShadowColor: #111111 xscreensaver.Dialog.bottomShadowColor: #111111 xscreensaver.Dialog.Button.foreground: #ffffff xscreensaver.Dialog.Button.background: #666666 !username/password input box and date text colour xscreensaver.Dialog.text.foreground: #ffffff xscreensaver.Dialog.text.background: #666666 xscreensaver.Dialog.internalBorderWidth:24 xscreensaver.Dialog.borderWidth: 20 xscreensaver.Dialog.shadowThickness: 2 !timeout bar (background is actually determined by Dialog.text.background) xscreensaver.passwd.thermometer.foreground: #ff0000 xscreensaver.passwd.thermometer.background: #000000 xscreensaver.passwd.thermometer.width: 8 !datestamp format--see the strftime(3) manual page for details xscreensaver.dateFormat: %I:%M%P %b %d
Nazwy elementów są na tyle wymowne, że chyba nie wymaga to większego komentarza, a każdy użytkownik posiadający odpowiednią motywację będzie w stanie samodzielnie dokonać poprawek wg. własnego gustu.
Na tym jednak nie koniec, musimy bowiem poinformować system i Xscreensavera o zmianach. Ponieważ będziemy musieli to robić po każdej poprawce w powyższym pliku, jednolinijkowy gotowiec:
xrdb -merge ~/.Xresources; pkill xscreensaver; xscreensaver -no-splash&
A przetestujemy to wszystko poleceniem:
xscreensaver-command -lock
I takim to sposobem możemy uwspółcześnić element, który w wielu dystrybucjach uwiera w oczy niejednego użytkownika-estetę.