Скрипт запуска разных графических сессий.
Подготавливает окружение и запускает графические сессии. Примерно, аналог startx.
Расположение скрипта:
$ ls -l /usr/local/bin/avnses*
-rwxr-xr-x 1 root root 25472 Sep 19 08:59 /usr/local/bin/avnsession
Создать десктоп-файл, для запуска сессии:
$ cat /usr/share/wayland-sessions/admi.desktop
[Desktop Entry]
Type=Application
Name=admiGnom on Wayland
Exec=avnsession --version=23gn3 --log --
Это расположение для "wayland". Для "X", положить десктоп-файл в /usr/share/xsessions.
Примеры запуска.
На экране логина, после выбора пользователя, в правом нижнем углу нажать "шестеренку".
Выбрать "admiGnom on Wayland".
Запускается сессия, которая задана в этом десктоп-файле.
Если в десктоп-файле изменить строку "Exec=..." на:
Exec=avnsession --util=nautilus --
.., то эта программа будет запущена в качестве сессии.
В конфиг груба добавлен параметр ядра "--version=02gn3":
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz --version=02gn3 root=LABEL=so1202 quiet --
Строка "Exec=..." в десктоп-файле:
Exec=avnsession --cmdline --log --
--cmdline - брать параметры из /proc/cmdline.
Запускается сессия в соответствии с параметром "--version=02gn3".
Возможные значения параметра "--version":
02gn1 - запуск "gnome-session" в Ubuntu 10.04.
02gn2 - монтирование оверлеев и запуск "gnome-session" в Ubuntu 10.04.
02gn3 - запуск "gnome-session --session=ubuntu" в Ubuntu 22.04.
02gn4 - монтирование оверлеев и запуск "gnome-session --session=ubuntu" в Ubuntu 22.04.
02kd1 - запуск "startkde".
02kd2 - монтирование оверлеев и запуск "startkde".
02lx1 - запуск "lxsession --session=LXDE --de=LXDE".
02lx2 - монтирование оверлеев и запуск "lxsession --session=LXDE --de=LXDE".
02ma1 - запуск "mate-session".
02ma2 - монтирование оверлеев и запуск "mate-session".
02op1 - запуск "openbox-session".
02op2 - монтирование оверлеев и запуск "openbox-session".
02xf1 - запуск "startxfce4".
02xf2 - монтирование оверлеев и запуск "startxfce4".
--src - каталоги, находящиеся в этом каталоге, монтирует как upperdir, в соответствующие каталоги корня системы.
--dest - каталоги, находящиеся в этом каталоге, монтирует как lowerdir, в соответствующие каталоги корня системы.
На данный момент, параметр "--dest" не используется. В качестве lowerdir используются каталоги в корне системы, жестко заданные в скрипте.
Каталог, указанный в параметре "--src" должен существовать, в нем каталоги, которые нужно монтировать:
$ ls -l /cdrom/opt/avnup
total 16
drwxr-xr-x 2 root root 4096 Sep 17 10:25 etc
drwxr-xr-x 2 root root 4096 Sep 19 08:49 opt
drwxr-xr-x 2 root root 4096 Sep 19 08:49 usr
drwxr-xr-x 2 root root 4096 Sep 19 08:49 var
Результат запуска, содержимое /proc/mounts (только существенные строки):
$ cat /proc/mounts
...
/dev/mmcblk0p2 / ext4 rw,relatime,nobarrier,errors=remount-ro,commit=100 0 0
/dev/mmcblk0p3 /cdrom ext4 rw,relatime,nobarrier,errors=remount-ro,commit=100 0 0
...
none /etc overlay rw,relatime,lowerdir=/etc,upperdir=/cdrom/opt/avnup/etc,workdir=/cdrom/opt/avnup/etcwork 0 0
none /usr overlay rw,relatime,lowerdir=/usr,upperdir=/cdrom/opt/avnup/usr,workdir=/cdrom/opt/avnup/usrwork 0 0
none /var overlay rw,relatime,lowerdir=/var,upperdir=/cdrom/opt/avnup/var,workdir=/cdrom/opt/avnup/varwork 0 0
none /opt overlay rw,relatime,lowerdir=/opt,upperdir=/cdrom/opt/avnup/opt,workdir=/cdrom/opt/avnup/optwork 0 0
...