Задать вопрос
Morpheus_God
@Morpheus_God

Запуск своей программы вместо графической оболочки в Linux?

День добрый.
Интересует следующее.
В Windows можно через реестр заменить стандартный проводник - рабочий стол, запуском своей программы.
Есть ли такие же механизмы в Linux? К примеру я на C# напишу некое ПО, которое будет выводить нужную мне информацию, иметь пару кнопок и все. Слышал про Авалноию которая позволяет писать графические приложения на C# даже под Linux.
Что бы при старте пк с установленным Linux пусть будет это ubuntu server или debian server.
Автоматическая авторизация и запуск моей программы вместо рабочего стола.
Возможно ли это, если да, то куда копать.
  • Вопрос задан
  • 5178 просмотров
Подписаться 4 Простой 6 комментариев
Решения вопроса 5
@rPman
Например
1. отключаешь display manager - lightdm (или что у тебя там для меню авторизации и выбора DE)
2. минимум что необходимо для работы графического режима - это xserver, для его запуска достаточно запустить утилиту X (кстати кажется до сих пор требует root), будет запущен графический сервер без Desktop Environment, но нужно понимать что DE отвечает за управление окнами, а точнее управление их размерами, положением на экране и вообще сокрытие/минимизация. Т.е. без этого, если твое приложение ожидает что пользователь будет перемещать его окна (а это к примеру диалоговое окно открытия/сохранения файлов) то он уже это сделать не сможет, все окна будут без заголовков и бордюра для изменения их размеров.
И кстати, чтобы графическое приложение запустилось и отображалось на X нужно устанавливать переменную окружения DISPLAY, значение смотреть либо в конфиге X либо в логах (скорее всего будет что то типа :0, это имя сервера и номер xserver, запущенного на нем, напоминаю, что linux из коробки умеет multiseat)
3. чтобы появился хоть какой то интерфейс взаимодействия, нужно установить DE, из минималистичных, идеальных для kiosk mode - я бы рекомендовал awesome, в нем к примеру можно настроить чтобы все открываемые окна сразу разворачивались на весь экран.

Кстати со всеми xserver обычно идет древний дефолтный twm, настолько примитивный что даже смешно, но если бы при открытии любого окна он не требовал от пользователя указать расположение и размер, им можно было бы пользоваться (не удивлюсь если это настраивается но никогда этим вопросом не задавался).

Из минималистичных и вполне функциональных DE можно предложить еще какой-нибудь openbox, его можно настроить так чтобы вообще никаких 'пуск' и списка задач не было, а только иконки и приложение на весь экран. Но пользователь сможет добраться до редактирования меню и запустить любое приложение, т.е. это не для kiosk mode

Чтобы запустить xserver с DE автоматически можно либо настроить автозагрузку в lightdm (это правильно) либо просто запускать утилиту startx, которая смотрит в пользовательском каталоге .xinitrc и запускает DE от туда.

На самом деле процесс запуска DE стал очень замудреный, его запутали несколько поколений разработчиков и выпутывать не желают, но обычно все это критично для тяжелых DE типа KDE, а что то простое и легкое с приложениями на gtk работает и так

Собственно как запускать приложения автоматически при включении компьютера тоже вопрос очень интересный, способов много, минимум три могу предложить
* правильный - настроить службу и прописать ей зависимости и автозапуск,
* так же до сих пор есть устаревший способ настройки службы без зависимостей sysvinit - /etc/init.d
* ну еще есть /etc/rc.local
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Запросто.

Запуск DE - это просто скрипт, который выполняется при входе через DM. Ну, либо запуск программы через .xinitrc, если это старинный способ запуска через startx.

Меняешь скрипт/прописываешь нужную прогу в .xinitrc - и все
Ответ написан
Комментировать
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
После аутентификации(login: password:) я попадаю в консоль в которой уже могу работать. Далее я выполняю:
$ startx
Эта команда запускает иксы, xserver(графический интерфейс). Эта команда читает конф файл /home/user/username/.xinitrc
Мой выглядит так:
xrdb ~/.Xresources # Читаем конфигурацию для иксов
setxkbmap -option grp:alt_space_toggle -option grp_led:scroll us,ru # Переназначение перекдючения раскладки
xmodmap -e 'clear Lock' -e 'keycode 0x42 = oslash Caps_Lock'  # Переназначение клавиши CapsLock
exec dbus-launch --exit-with-session bspwm  # Собственного запуск оконного менеджера который мне нравится. Можно запустить другой оконный менеджер. Или любимую графическую оболочку. Или вообще любую программу с графическим интерфейсом.
Ответ написан
@PapaNT
Если киоск нужен как защита от дурака, а не нечто серьезное по уровню безопасности, то достаточно простым решением будет:
1. Графическая оболочка LXDE
2. Прописать свою программу в автозапуск
3. Удалить панель с кнопкой "Пуск"
Ответ написан
Комментировать
Ну странно: у меня на старте LightDM или ещё какой дисплейный менеджер позволяет выбрать оконную среду , какую поставишь...
Например, лёгкие: fvwm2, WindowMaker, AfterStep, icewm (похожа на Win95)....
Можно тяжёлые: GNOME/KDE...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы