Отобразить графический интерфейс на малине Pi без startx

В настоящее время я играю с моей совершенно новой малиной с adafruit touch-tft и малиной Cam.

Я заметил, что если я запустил raspivid -p, он отобразит предварительный просмотр в кадре поверх bash.

Как создать приложение (java, python, С++ (предпочтительно)) для отображения графического интерфейса без startx?

Я хотел бы использовать adafruit touch-tft для проекта, но startx нуждается в большом количестве ресурсов. Конечно, было бы здорово иметь сенсорную функциональность тоже.

Edit:

Возможно, я немного смутил: мне хотелось бы создать приложение, которое не нуждается в startx, но имеет какой-то графический интерфейс.

Ответы ниже не готовы на 100%, но они указали мне в правильном направлении. Поскольку я видел много подобных вопросов, я постараюсь дать пошаговое решение:

  • Настройте свою малину с помощью adafruit TFT: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (вам не нужно заменять TFT на HDMI в качестве стандартного дисплея)

  • убедитесь, что FRAMEBUFFER=/dev/fb1 startx работает правильно на экране TFT, у меня есть телевизор, подключенный к порту HDMI, таким образом я могу использовать bash на экране телевизора и запустить x на TFT

  • Следуйте этому руководству, чтобы создать свой первый pygame: http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (вы можете просто скопировать и вставить, wget ball.gif)

  • Вставьте две строки в начале: (github.com/notro/fbtft/wiki/Pygame)

    import os
    os.environ["SDL_FBDEV"] = "/dev/fb1"
    
  • Если вы хотите протестировать сенсорный экран, вы можете изменить строку 15: From:

    if event.type == pygame.QUIT: sys.exit()
    

    To:

    if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
    

    Это приведет к выходу из приложения, если вы коснетесь экрана

  • Сохранить файл, например. pygame1.py и выполнить с помощью $python pygame1.py

Теперь вы должны увидеть прыгающий шар на вашем TFT, в то время как выход HDMI по-прежнему отображает bash на вашем телевизоре (но он неактивен, конечно), касаясь экрана, выйдет из игры, если вы выполнили шаг 6

Почему я это делаю? Таким образом, вы можете отображать простой графический интерфейс, например. чтобы сделать какое-то действие, например включить или выключить свет, если вы используете свой RPI для домашнего контроля.

Ответы

Ответ 2

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

-Установить необходимые пакеты:

apt-get update
apt-get install xorg - no-install-recommends gdm3 matchbox-window-manager Iceweasel rsync-y

- В рассматриваемой системе выберите Добавить новый пользовательский интерфейс gdm3. Терминал будет использоваться по умолчанию.

adduser kiosk

-Создание-Xsession. Этот script будет выполнен, когда пользователь войдет в систему.

xset s off
xset -dpms
matchbox-window-manager &
while true; do
rsync -qr --delete --exclude='.Xauthority’ /opt/kiosk/ $HOME/
firefox http://www.google.com (Replace your application!!!)
done

Сохранить Ctrl + O; Выход: Ctrl + X

chmod a + x. xsession
cp / opt / kiosk / .xsession / home / kiosk

Установите Авто-Вход. Пользователь киоска автоматически войдет после загрузки.

nano / etc/gdm3/daemon.conf
[Daemon]
AutomaticLoginEnable = true
AutomaticLogin = kiosk

Мы решили настроить, при необходимости, программа

- Калибровка экрана, когда не загружена весь экран:

/ Boot / config.txt file, clear the comment:
disable_overscan = 1

Надеюсь, я помог

Ответ 3

Отметьте Urwid, текстовый ui, который может работать в терминале, или, я полагаю, на малине Pi запущен без startx.

Ответ 4

Короче говоря, вы не можете использовать такие приложения, как gedit, поверх настольной среды (например, Gnome, Kde).