wayland
Настройка графического окружения на Ubuntu 24.04 noble
sudo apt install -y sway greetd xwayland vainfo
sudo useradd -m -s /bin/bash --create-home mvs
sudo usermod -aG audio,video,plugdev,input,render mvs
sudo tee /etc/greetd/config.toml <<'EOF'
[terminal]
vt = 7
[default_session]
command = "sway"
user = "mvs"
EOF
sudo systemctl enable --now greetd
Пакет, обеспечивающий даннные настройки - mvs-sway-autologin
wayland
Wayland — это современный протокол сервера отображения (display server protocol), предназначенный для замены устаревшего X11/Xorg. Wayland определяет, как графические приложения отображают окна и взаимодействуют с дисплеем.
Основные особенности Wayland:
- Простота и безопасность — приложения рендерят напрямую в буферы, без промежуточного сервера
- Низкая задержка и лучшая производительность
Sway
Sway реализует протокол Wayland для управления окнами, используя libwayland и libwlroots, предоставляет функциональность тайлинга (узлового расположения окон) и обработки ввода.
greetd
greetd — это менеджер дисплея, управляющий пользовательскими сеансами входа в систему. В настоящей инструкции
- greetd запускается как системный сервис, обеспечивает автологин пользователя.
- greetd запускает команду, указанную в конфигурации (например,
sway) - Sway запускается как Wayland compositor и управляет окнами и приложениями
Операции по запуску Electron-приложений
Автостарт приложения из графической сессии:
systemctl enable --now Lyra3.OR.TerminalApp
Журнал приложения (в графической сессии):
journalctl --user -f -u Lyra3.OR.TerminalApp
Если нужно настроить автозапуск из ssh-сессии, необходимо передать XDG_RUNTIME_DIR пользователя, в графической сессии которого запущен electron:
sudo -u mvs XDG_RUNTIME_DIR=/run/user/$(id -u mvs) systemctl --user enable --now Lyra3.OR.TerminalApp
Аналогично просмотр журнала:
sudo -u mvs XDG_RUNTIME_DIR=/run/user/$(id -u mvs) journalctl --user -f -u Lyra3.OR.TerminalApp
Вызов приложений из scratchpad поверх полноэкранного Electron-приложения в sway
В sway невозможно вызвать окно приложения (например, терминала) поверх полноэкранного приложения. Приложение будет вызвано, но не будет отображаться поверх уже запущенного fullscreen приложения.
Решение: Отправка приложения в scratchpad
- Нажмите
$mod+Shift+minus - Вызовите требуемое приложение (например foot:
$mod+Enter) - Последовательность нестрогая, вызванные экземпляры foot будут вызваны в любом случае, но без перехода в scratchpad не будут видны.
- Возврат к electron-приложению:
$mod+minus - Возврат в полноэкранный режим:
$mod+f