Запустите Ubuntu без среды рабочего стола, но запустите приложение X

29

Я хочу сделать небольшой компьютер только для просмотра интернета. Я не хочу загружать рабочую среду, чтобы поддерживать использование ОЗУ, ЦП и ГП на минимально возможном уровне. Компьютер будет работать на процессоре ARM. Мне все равно, какой дистрибутив я использую, я думал о старом добром простом Debian.

RaverTiny
источник
Тогда я хотел бы предложить Ubuntu минимальный ISO и установить черный ящик DE
Tachyons
Я на самом деле не эксперт, но я бы посоветовал взглянуть на конфигурацию xsession (здесь есть справочная страница для xsession). Если вы хотите, чтобы такое поведение было только для одного пользователя, создайте файл в домашнем каталоге пользователей с именем .xsession и поместите в него команду, которую вы хотите запустить. Тогда вам, вероятно, придется использовать менеджер входа в систему, который позволяет вам войти в xsession по умолчанию вместо какой-либо другой среды рабочего стола (или отключить менеджер входа в систему и использовать вместо этого startx). Тем не менее, я бы рекомендовал вместо этого использовать оконный менеджер сохранения ресурсов (Tachyons предложил черный ящик, и есть множество других).
soulsource
Если вы не загружаете среду рабочего стола, как вы должны открывать интернет-браузер?
Длин
5
@ Ник Можно. С обычным X-сервером в качестве «сеанса» без оконного менеджера вы можете запускать ровно одно приложение в полноэкранном режиме (без границ или другого оформления). Вот как эти минимальные дистрибутивы XBMC работают, например. Я сделал это с Chromium один раз несколько лет назад в 10.04 - но я не сохранил точную конфигурацию.
gertvdijk
«Я думал о старом добром простом Debian». Если вы рассматриваете другие дистрибутивы, отличные от Ubuntu, то вам следует спросить об этом в Unix & Linux StackExchange . Этот сайт Ask Ubuntu предназначен только для Ubuntu - вопросы, не связанные с Ubuntu, рассматриваются здесь как не по теме.
gertvdijk

Ответы:

26
  1. В /usr/share/xsessions/создании файла в формате «.desktop» , чтобы создать свой собственный, минимальный сеанс. Чтобы запустить Google Chrome как единственное приложение после входа в систему, сделайте следующее:

    [Desktop Entry]
    Type=Application
    Exec=google-chrome
    Name=Google Chrome
    Comment=Testing
    
  2. Перезапустите менеджер дисплеев, например

    sudo restart lightdm  # or kdm, gdm, etc.
    

    Или просто выйдите из системы.

  3. «Google Chrome» должен появиться в списке сеансов для выбора (рядом с обычным Unity или другими установленными вами DE).

    Войдите и наслаждайтесь.

необязательный

  • XDM - очень минимальный менеджер дисплеев - LightDM, GDM и KDM довольно «большие». Установите его с помощью пакета xdmУстановите xdm и измените настройки по умолчанию, когда ваша система загружается с помощью

    sudo dpkg-reconfigure lightdm
    
  • Настройте диспетчер отображения для автоматического входа в систему определенного пользователя. Смотрите документацию для вашего диспетчера отображения.

gertvdijk
источник
1
Если нужно собрать весь рабочий стол, нужно ли просто удалить файл .desktop и перезапустить?
энтузиастик
1
@enthusiasticgeek Нет необходимости. В менеджере входа в систему просто выберите полный рабочий стол, чтобы войти в систему, как описано в шаге 3.
gertvdijk
Кто-нибудь знает, как переключать язык ввода системы в режиме одного приложения?
fnc12
Кто-нибудь сталкивается с проблемой, когда указатель мыши отсутствует в режиме одного приложения?
fnc12
Я запустил google-chrome --kiosk, но он не занимает весь экран .. любой способ сделать его максимально развернутым?
Тумбуду
24

Я знаю, что это устарело, но я не вижу правильного ответа на запрос, насколько я понимаю, так что вот оно:

У меня был проект по созданию встроенной системы, работающей под конкретным графическим Java-приложением на простом компьютере с процессором Atom и сенсорным экраном. Мое решение состояло в том, чтобы избегать использования оконных менеджеров как таковых, чтобы сделать это а) простым, б) легким и в) избегать всевозможных системных сообщений, появляющихся на экране.

Система выглядит так:

  1. Установка базовой системы Ubuntu, самый легкий вариант 12.04 (все еще близко к 1 ГБ, но хорошо для меня даже на флеш-диске 2 ГБ). Вы можете немного замучить, чтобы сделать меньшую установку, конечно, есть несколько способов для этого. Кроме того, вам не нужно использовать Ubuntu, но затем следует пересмотреть мои инструкции ниже - существуют различия между дистрибутивами, особенно в файлах конфигурации и их расположении.

  2. Установка xorg и некоторых других полезных программ, таких как xinput-калибратор для моего резистивного сенсорного экрана, ifplugd для обнаружения соединения с сетью Ethernet, acpid для определения работы кнопки питания и так далее.

  3. Откройте /etc/init/tty1.conf и измените exec /sbin/getty -8 -i 38400 tty1строку на что-то вроде exec /sbin/getty -8 -i 38400 tty1 -a username, где «username» - это имя пользователя, которому вы хотите выполнить автоматический вход.

  4. Чтобы запустить сеанс X автоматически, откройте файл .bashrc вашего пользователя ~/.bashrcи добавьте что-то вроде этого в конец файла:

    if [ $(tty) == "/dev/tty1" ]; then
        while true; do startx -- -nocursor -depth 16; echo "Again [$?]..."; done
    fi

    (Материал -nocursor предназначен для сенсорных экранов, удалите его для обычного экрана, чтобы увидеть указатель мыши). Это приведет к возрождению X-сервера, поэтому, если ваше приложение по какой-либо причине завершит работу, оно автоматически перезапустит X-сервер.

  5. Теперь в файле .xsession вашего пользователя ~/.xsessionнапишите что-то вроде этого (помните, что каждая команда здесь выполняется последовательно, поэтому используйте символ & в конце строки, если вы хотите запустить сервер):

    xrandr --output VGA1 --mode 800x600      #For setting a video mode
    xrandr --fb 800x600                      #Not always required, sets the framebuffer size
    xsetbg -center background.png &          #To set the background, comes from the xloadimage package
    xset -dpms s off                         #To avoid screen going blank after a while
    ~username/start.sh                       #Start your application
    #You can put some other application calls here that will be run when your application exits

Есть много других вещей, которые следует учитывать для такой системы, это только базовая настройка. Надеюсь, это кому-нибудь поможет. Удачи.

отказоустойчивой
источник
1

В старые времена вы могли просто бежать X, и X запускался с пустым экраном. Тогда вы могли бы установить DISPLAY=:0и запустить что-то там. Возможно, это все еще работает? Из оболочки вы захотите создать X&фон.

Посмотрите на -geometryстандартный параметр командной строки X, чтобы настроить расположение окна, так как у вас не будет оконного менеджера, который бы помог вам с этим.

Чтобы запустить что-то без полномочий root, вам нужно разобраться, xauthчтобы настроить X-авторизацию для пользователя без полномочий root.

Роби Басак
источник
-3

Прежде всего, я не понимаю, как вы должны открывать веб-браузер без загрузки рабочего стола. Это все равно что готовить еду без включения духовки. , Хорошо, это возможно с X Server, неправильно понял вопрос.

То, что вы ищете, это выбрать, какие приложения будут запускаться во время процесса загрузки.

  • В Ubuntu / Unity:

    Нажмите на значок шестеренки в правом верхнем углу верхней панели. Выберите Startup Applications .

    После открытия вам будет показан список приложений, которые ваша система запускает при загрузке операционной системы.

    Нажмите Добавить в правом верхнем углу.

    Вам будет показан диалог.

    В появившемся диалоговом окне:

    1) Введите название программы в поле «имя» .

    2) Введите команду для запуска программы в поле «команда» .

    3) Введите любые комментарии, которые вы хотели бы в поле «комментарии» .

    Например:

    Нажмите сохранить и закрыть .

  • В оболочке гнома:

    Нажмите, Alt+F2чтобы открыть диалоговое окно «Выполнить».

    Тип gnome-session-properties.

    Нажмите кнопку «Добавить» .

    В появившемся диалоговом окне:

    1) Введите название программы в поле «имя» .

    2) Введите команду для запуска программы в поле «команда» .

    3) Введите любые комментарии, которые вы хотели бы в поле «комментарии» .

    Нажмите сохранить и закрыть .

  • В KDE:

    Перейдите в K-Menu> Компьютер> Системные настройки.

    Выберите « Запуск и завершение работы» и нажмите кнопку « Добавить программу» .

    Введите команду для запуска программы и нажмите ОК .

  • В LXDE:

    Выполните следующие команды в терминале:

    mkdir -p ~/.config/lxsession/LXDE/
    touch ~/.config/lxsessions/LXDE/autostart
    leafpad ~/.config/lxsessions/LXDE/autostart
    

    Добавьте эту строку в файл автозапуска:

    @program_command
    

    Нажмите сохранить и закрыть .

  • IN LXDE / Lubuntu:

    Файл автозапуска уже существует, в ~./config/lxsession/Lubuntu/autostart.

    Просто используйте этот файл вместо создания нового, как описано выше.

  • В XFCE:

    В меню «Приложения» откройте « Диспетчер настроек» и выберите « Сессия и запуск» .

    На вкладке Автозапуск приложения нажмите кнопку Добавить .

    1) Введите название программы в поле «имя» .

    2) Введите команду для запуска программы в поле «команда» .

    3) Введите любые комментарии, которые вы хотели бы в поле «комментарии» .

    Нажмите сохранить и закрыть .

  • Поскольку вы хотите запускать только веб-браузер (я полагаю, Firefox), вы можете удалить следующий список программ из списка запускаемых приложений:

    -Bluetooth менеджер -Deja Dup -Gnome Do -Gnome Звук входа -Индикатор рабочих областей -Ubuntu One -Визуальная помощь -Удаленный рабочий стол -Pulseaudio

    но это определенно зависит от вас.

    Длин
    источник
    12
    Я думаю, что вопрос о запуске приложений при загрузке без рабочего стола . Ваш ответ о запуске приложений после запуска DE.
    gertvdijk