Wayland. Аналоги приложений
Аналоги приложений для Wayland.
Содержание
1 Аналоги приложений
1.1 Просмотр изображений
- Wayland. Просмотрщик изображений Swayimg
- Легковесный просмотрщик изображений.
- Управляется с клавиатуры.
- По умолчанию раскладка клавиатуры vi-подобная.
1.2 Снимки экрана
1.3 Видеозапись экрана (скринкаст)
Ранее использовался SimpleScreenRecorder.
1.3.1 Видеозапись экрана – командная строка
Для записи из командной строки используем wf-recorder:
emerge -v gui-apps/wf-recorder
Варианты использования:
- Запись всего экрана в файл
recording.mkv
(только видео):
wf-recorder -f recording$(date +%Y-%m-%d_%H-%M-%S).mkv
Если файл не указывать, запись будет в текущий каталог.
- Запись фрагмента экрана (тут имя файла задаётся по времени начала записи):
wf-recorder -g "$(slurp)" -f $(date +%Y-%m-%d_%H-%M-%S).mkv
- Запись со звуком:
wf-recorder --audio -f $(date +%Y-%m-%d_%H-%M-%S).mkv
- Запись с использование GPU (VAAPI интерфейс):
wf-recorder --audio -f $(date +%Y-%m-%d_%H-%M-%S).mkv -c h264_vaapi -d /dev/dri/renderD128
1.3.2 Видеозапись экрана – графическое приложение
Для захвата десктопа в Wayland используется плагин wlrobs.
1.4 Строка состояний
Sway поддерживает свою строку состояний sway-bar
. Удобное и минималистическое приложение. Однако, удручает, что иконки в трее не активны.
Попробуем использовать более продвинутый вариант – waybar
emerge -v gui-apps/waybar
Конфигурация:
## sway-bar
# Read `man 5 sway-bar` for more information about this section.
# bar {
# position top
# # When the status_command prints a new line to stdout, swaybar updates.
# # The default just shows the current date and time.
# status_command while date +'%Y-%m-%d %H:%M:%S'; do sleep 1; done
# colors {
# statusline #ffffff
# background #323232
# inactive_workspace #32323200 #32323200 #5c5c5c
# }
# }
## Waybar
# <https://github.com/Alexays/Waybar>
exec_always ~/.config/sway/scripts/waybar.sh
# Waybar Tooltips don't steel focus
no_focus [app_id="waybar"]
for_window [app_id="waybar" floating] {
move position cursor
move down 60px # adjust if some menus still don't fit
}
Конфигурацию waybar
поместил в ~/.config/sway/other/waybar
.
1.5 Уведомления
Используется mako.
emerge -v gui-apps/mako
Сконфигурировал следующим образом:
# ~/.config/sway/config.d/80-mako.conf
# Light
exec_always mako --font 'Source Code Pro 10' --background-color '#fdf6e3' --text-color '#657b83' --default-timeout 5000 --width 400 --markup 1 --border-radius 5
# Dark
# exec_always mako --font 'Source Code Pro 10' --background-color '#002b36' --text-color '#839496' --default-timeout 5000 --width 400 --markup 1 --border-radius 5
1.6 Настройка вывода
В XWindow используется программа xrandr
(с её помощью можно изменять параметры вывода изображения RandR). В sway
можно управлять с помощью swaymsg output
или с помощью утилиты wlr-randr.
emerge -v gui-apps/wlr-randr
1.7 Меню программ (launcher)
Для запуска программы используется dmenu
. Если не нравится, можно заменить.
- wofi — аналог
rofi
для Wayland. Попроще, конечно.
emerge -v gui-apps/wofi
В отличии от dmenu
запоминает последние выбранные команды.
Общая конфигурация:
# ~/.config/sway/config.d/80-launcher.conf
# dmenu
set $menu dmenu_path | dmenu | xargs swaymsg exec --
# wofi
# --show <mode>
# <mode>:
# - `run` - searches $PATH for executables and allows them to be run by selecting them.
# - `drun` - searches $XDG_DATA_HOME/applications and $XDG_DATA_DIRS/applications for desktop files and allows them to be run by selecting them.
# - `dmenu` - reads from stdin and displays options which when selected will be output to stdout.
# set $menu dmenu_path | wofi -c ~/.config/sway/other/wofi/config -s ~/.config/sway/other/wofi/style.css --show dmenu | xargs swaymsg exec --
# rofi
# set $menu rofi -combi-modi window#drun -show combi -modi combi -show-icons
# set $menu rofi -m $(swaymsg -t get_outputs | jq 'map(select(.active) | .focused) | index(true)') -show combi -modi combi -combi-modi window#drun -show-icons -run-command 'swaymsg exec -- {cmd}'
# gmenu
# set $menu gtkmenu --width 500 --height 260 -no-generic
# set $menu nwggrid
# bemenu
# set $menu j4-dmenu-desktop --dmenu="bemenu-run.sh -l 30" --term="alacritty" --no-generic
# Start your launcher
bindsym $mod+d exec $menu
1.8 Буфер обмена
Предлагается использовать wl-clipboard.
emerge -v gui-apps/wl-clipboard
Пакет содержит две утилиты: wl-copy
и wl-paste
.
Пример использования:
# copy a simple text message
$ wl-copy Hello world!
# copy the list of files in Downloads
$ ls ~/Downloads | wl-copy
# copy an image file
$ wl-copy < ~/Pictures/photo.png
# paste to a file
$ wl-paste > clipboard.txt
# grep each pasted word in file source.c
$ for word in $(wl-paste); do grep $word source.c; done
# copy the previous command
$ wl-copy "!!"
# replace the current selection with the list of types it's offered in
$ wl-paste --list-types | wl-copy
1.9 Блокировка экрана
1.9.1 swaylock
Общая информация
- Официальное приложение для блокировки экрана для Sway — swaylock.
- Репозиторий: https://github.com/swaywm/swaylock
- Установка:
- Gentoo:
emerge gui-apps/swaylock
- Gentoo:
- В информационной панеле waybar есть опция для отключения блокировки при простое (например, для демонстрации слайдов).
Блокировка при простое
- Заблокировать экран после 300 секунд бездействия.
- Затем выключить дисплей ещё через 300 секунд.
- Включить экран при возобновлении работы.
- Также заблокировать экран перед тем, как компьютер перейдет в спящий режим.
- Конфигурационный файл:
### ~/.config/sway/config.d/80-lock.conf ### Idle lock ## - Lock your screen after 300 seconds of inactivity ## - Then turn off your displays after another 300 seconds ## - Turn your screens back on when resumed ## - Also lock your screen before your computer goes to sleep exec swayidle -w \ timeout 300 'swaylock -f -c 000000 -k' \ timeout 600 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' \ before-sleep 'swaylock -f -c 000000 -k'
Ручная блокировка
Mod
+Ctrl
+l
для немедленной блокировки экрана.- Через 10 секунд выключить экран.
- Конфигурационный файл:
### ~/.config/sway/config.d/80-lock.conf ### Manual lock ## - Mod + Ctrl + l to lock the screen immediately ## - In 10 sec also switch the screen off set $lockman exec bash ~/.config/sway/scripts/lockman.sh bindsym $mod+Ctrl+l exec $lockman
- Скрипт блокировки:
#!/bin/bash # ~/.config/sway/scripts/lockman.sh # Times the screen off and puts it to background swayidle \ timeout 10 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' & # Locks the screen immediately swaylock -c 550000 -k # Kills last background task so idle timer doesn't keep running kill %%
1.9.2 swaylock-effects
- swaylock-effects является форком swaylock:
- Репозиторий: https://github.com/mortie/swaylock-effects
- Добавляет встроенные скриншоты и эффекты манипулирования изображениями, такие как размытие.
1.10 Демонстрация нажатия клавиш
1.10.1 Show Me The Key
- Страница: https://showmethekey.alynx.one/
- Репозиторий: https://github.com/AlynxZhou/showmethekey
Установка
- Gentoo, оверлей
guru
(см. Gentoo. Дополнительные репозитории):emerge gui-apps/showmethekey
- Gentoo, оверлей
Особенности
- Нужно включить переключатель в панели настроек, чтобы запустить отображение нажатия клавиш.
- Нужно разрешение суперпользователя для чтения событий клавиатуры.
- Пользователи в группе
wheel
могут пропустить аутентификацию по паролю.
- Пользователи в группе
- Wayland не позволяет клиенту устанавливать своё положение, поэтому область отображения нажатия клавиш следует перетащить в нужное место.
2 Ресурсы по миграции с X Window
- https://github.com/swaywm/sway/wiki/i3-Migration-Guide
- https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway
- https://wiki.gentoo.org/wiki/List_of_software_for_Wayland
- https://github.com/natpen/awesome-wayland
- https://arewewaylandyet.com/