Как заменить рабочий стол приложением?
Иногда может потребоваться, чтобы пользователь имел доступ только к определенному приложению. В этом случае запуск среды рабочего стола может быть нежелательным, будь то по соображениям безопасности или для обеспечения лучшего доступа к данному приложению.
В этих случаях может потребоваться заменить рабочий стол приложением, которое запускается сразу после входа в систему.
Другие пользователи должны иметь нормальный доступ к своим рабочим столам.
1 ответ
Замена рабочего стола приложением
Определить пользовательский сеанс
Сначала нам нужно определить пользовательский сеанс, который обрабатывает особый случай, когда не нужно загружать рабочий стол. Мы определим этот сеанс, создав файл custom.desktop в /usr/share/xsessions/ с содержимым, похожим на это:
[Desktop Entry]
Name=Custom
Comment=Custom Session to run ~./.xsession
Exec=/home/<username>/.xsession
X-Ubuntu-Gettext-Domain=<gnome-session-3.0>
Это скажет GDM запустить скрипт .xsession
находится в ДОМЕ пользователя <username>
,
Необязательный X-Ubuntu-Gettext-Domain
необходим для правильного языкового перевода на случай, если позже мы загрузим рабочий стол Unity/GNOME (замените на gdm
в 10.04).
Сделать сценарий для запуска
Этот скрипт ~/.xsession может выглядеть так просто:
#! /bin/bash
xterm
logout
Загрузить пользовательский сеанс при входе в систему
Если мы теперь определим, чтобы загрузить наш сеанс "Custom" во время входа данного пользователя на экране gdm, то будет запущен только X-терминал, и мы вернемся к gdm при выходе. При следующем входе в систему в качестве пользователя этот параметр будет запомнен по умолчанию.
Запустить приложение, которое нуждается в управлении Windows
Конечно, мы пока не можем запустить приложение, которому нужен менеджер окон, такой как GNOME. Для этого замените скрипт.xsession на что-то вроде:
#! /bin/bash
gnome-wm &
firefox
logout
Мы видим, что менеджер окон GNOME загружен, но элементы рабочего стола отсутствуют. Это позволяет запускать приложение (например, Firefox здесь).
Но позаботьтесь о том, что вы делаете: если мы сворачиваем приложение на несуществующий лоток, мы получим красивые обои для просмотра. Из-за этого очень важно включить logout
в конце сценария, чтобы выйти из сеанса после завершения приложения. На самом деле не существует никакой другой программы, выполняющей это за вас, пока вы не добавите ее в свой скрипт. Вы намеренно заменили свой рабочий стол только Firefox (плохая идея).
Конечно, мы также сможем начать gnome-desktop
или же gnome-session
(соответственно параметры) из скрипта, но это то, что мы уже делаем по умолчанию.