Dwa uzupełnienia do artykułu o trwałej sesji VNC na serwerze:
-
proponuję kolejny lekki desktop, fajnie sprawdzający się w roli menedżera sesji działającej wewnątrz VNC,
-
opisuję, jak uniknąć startowania w ramach takiej sesji programów uruchamianych przez Gnome/KDE, a także zapewnić osobne miejsce zapisywania się konfiguracji desktopu.
Miły i mały menedżer sesji
Programem, którym warto się zainteresować, jest LXDE. Opisywać go szczegółowo nie będę, bo zrobił to jakilinux.org. W skrócie: wyglądem nie ustępuje zbytnio XFCE (w każdym razie, jest przyzwoity menedżer plików, pasek i ikonki na desktopie), a waży malutko.
Instalacja pod Ubuntu:
$ sudo apt-get install lxde
Konfiguracja dla VNC (o ile stosujemy konwencję opisaną przeze mnie
w poprzednim artykule): w pliku ~/.vnc/xstartup
wpisujemy
zamiast polecenia startującego fluxboksa, XFCE (czy co tam startowaliśmy):
exec /usr/bin/startlxde
I tyle. Po zakończeniu/zabiciu bieżącej sesji, następną uruchomioną w naszym VNC będzie LXDE.
Osobny katalog konfiguracyjny
Taka zapakowana w VNC sesja może czasem działać obok prawdziwej, tj. możemy chcieć mieć uruchomione normalne GNOME używane bezpośrednio ale odpalić też zapudełkowaną dodatkową sesję - czy to dla dostępu z laptopa, czy to dla utrzymania w działaniu jakichś programów mimo wylogowania z głównej sesji.
W takiej sytuacji dobrze jest mieć osobną konfigurację menu, zachowań desktopu itp.
Wszystko co tu opisuję ma znaczenie dla LXDE, XFCE i innych menedżerów sesji zgodnych z specyfikacją freedesktop. Prościutkie window-managery typu fluxbox oczywiście niczego same nie uruchomią.
Tworzymy osobny katalog konfiguracyjny dla sesji działającej w ramach VNC:
$ mkdir ~/.vnc/config
a w pliku ~/.vnc/xstartup
dopisujemy (koniecznie przed poleceniem
uruchamiającym XFCE czy LXDE):
XDG_CONFIG_HOME=~/.vnc/config
export XDG_CONFIG_HOME
Cały mój aktualny
~/.vnc/xstartup
wygląda obecnie tak:#!/bin/sh HOME=/home/marcin XDG_CONFIG_HOME=~/.vnc/config export HOME XDG_CONFIG_HOME xsetroot -solid black xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & exec /usr/bin/startlxde
HOME
ustawiam, bo któryś z testowanych przeze mnie desktopów go nie widział (chyba efekty używania dash-a).xsetroot
maluje tło, axterm
odpala terminal - jedno i drugie nie jest tu niezbędne, przydaje się, jeśli startowana sesja ma jakieś problemy.
Tak działająca sesja będzie używać ~/.vnc/config
zamiast ~/.config
.
To niestety nie obejmuje wszelkiej konfiguracji, część programów zapisuje swoje dane w
~/.gnome2
czy~/.kde
. Niemniej jednak w~/.config
mamy wiele ustawień okołodesktopowych, o które najbardziej tu chodzi.
Uniknięcie uruchamiania niepotrzebnych programów
Nie jest też pożądane, by w ramach zanurzonej w VNC sesji startowały wszystkie programy uruchamiane przez normalne GNOME czy KDE. Może to być strata zasobów, może nawet jakiś konflikt gdy prawdziwa i zanurzona sesja będą działać równocześnie.
Patrz też skąd się biorą startujące programy.
Połowę (programy ręcznie dodane do własnej sesji) już załatwiliśmy w
poprzednim kroku, dzięki powyższej zmianie w xstartup
odpalana sesja
odwołuje się do ~/.vnc/config/autostart
, a nie do
~/.config/autostart
.
Pozostają programy systemowe, czyli /etc/xdg/autostart
. Wiele z nich
ma ustawione reguły ograniczające ich działanie do GNOME, KDE i/lub
XFCE - ale nie wszystkie. Problematyczne znajduje polecenie:
$ grep --files-without-match OnlyShow /etc/xdg/autostart/*.desktop
(u mnie trafiły się min. bzr-notify
, gnome-do
, mail-notification
czy pulseaudio-module-xsmp
). Otwieramy je w edytorze - leniwa metoda to:
$ grep -L OnlyShow /etc/xdg/autostart/*.desktop | xargs scite
i dopisujemy w każdym:
OnlyShow GNOME;KDE;
Jeśli chcemy używać XFCE, warto też zrobić:
$ grep 'OnlyShow.*XFCE' /etc/xdg/autostart/*
co znajdzie kilka programów startujących pod GNOME i XFCE (np.
update-notifier
czytrackerd
) i usunąćXFCE
z wierszyOnlyShow
.