Как заменить рабочий стол приложением?

Иногда может потребоваться, чтобы пользователь имел доступ только к определенному приложению. В этом случае запуск среды рабочего стола может быть нежелательным, будь то по соображениям безопасности или для обеспечения лучшего доступа к данному приложению.

В этих случаях может потребоваться заменить рабочий стол приложением, которое запускается сразу после входа в систему.

Другие пользователи должны иметь нормальный доступ к своим рабочим столам.

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 (соответственно параметры) из скрипта, но это то, что мы уже делаем по умолчанию.

Другие вопросы по тегам