Wayland. Аналоги приложений

Аналоги приложений для Wayland.

Содержание

1 Аналоги приложений

1.1 Просмотр изображений

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

  1. Общая информация

    • Официальное приложение для блокировки экрана для Swayswaylock.
    • Репозиторий: https://github.com/swaywm/swaylock
    • Установка:
      • Gentoo:
        emerge gui-apps/swaylock
        
    • В информационной панеле waybar есть опция для отключения блокировки при простое (например, для демонстрации слайдов).
  1. Блокировка при простое

    • Заблокировать экран после 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'
      
  1. Ручная блокировка

    • 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

  1. Установка

  1. Особенности

    • Нужно включить переключатель в панели настроек, чтобы запустить отображение нажатия клавиш.
    • Нужно разрешение суперпользователя для чтения событий клавиатуры.
      • Пользователи в группе wheel могут пропустить аутентификацию по паролю.
    • Wayland не позволяет клиенту устанавливать своё положение, поэтому область отображения нажатия клавиш следует перетащить в нужное место.

2 Ресурсы по миграции с X Window


Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие