Использование Wayland и KDE для переключения между двумя мониторами с настраиваемыми сочетаниями клавиш

Вопрос или проблема

Немного предыстории: у меня есть клавиатура 8bitdo, которая оснащена двумя дополнительными клавишами. У меня также есть два монитора, и я хочу использовать их для переключения между “левым”, “правым” и “об обоих”. Я использую KDE.

Одна из клавиш имитирует Ctrl+Meta+Alt+Z, что связано с переключением на левый экран в KDE, другая — Ctrl+Meta+Shift+Z, связанная с правым. Теперь переключение на “оба” — это сложная часть. В X я написал себе быстрое консольное приложение на Qt, которое запрашивало модификаторы клавиатуры, оно искало Ctrl+Meta, затем либо Alt (переключение на левый), либо Shift (переключение на правый), или если оба модификатора присутствовали в течение 0,3 секунды, оно переключалось на оба экрана.

К сожалению, это, похоже, не работает под Wayland, где QGuiApplication::queryKeyboardModifiers() всегда возвращает отсутствие модификаторов. Я думаю, это связано с тем, как работает Wayland.

Знаете ли вы, есть ли какая-либо функциональность в KDE или что-то, что я мог бы сделать в Wayland, чтобы получить желаемую функциональность? Думаю, libinput тоже сработает, у меня в настройках запущен https://github.com/oblitum/Interception.

Ответ или решение

Использование Wayland и KDE для переключения между двумя мониторами с пользовательскими сочетаниями клавиш

Современные операционные системы и графические среды, такие как KDE, обеспечивают множество возможностей для работы с несколькими мониторами. Однако, при переходе на Wayland, вам может понадобиться адаптировать свои настройки под новый протокол. В данном материале мы рассмотрим способы решения вашей задачи по переключению между "левым", "правым" и "оба" мониторами, используя вашу клавиатуру 8bitdo с дополнительными клавишами.

Фоновая информация

У вас есть клавиатура 8bitdo с двумя дополнительными кнопками, которые эмулируют сочетания клавиш. Вы уже привязали одно сочетание (Ctrl+Meta+Alt+Z) к переключению на левый монитор и другое (Ctrl+Meta+Shift+Z) для правого. Переключение на два экрана требует более сложного подхода.

Производя диагностику, вы заметили, что функция QGuiApplication::queryKeyboardModifiers() в Qt не работает как ожидалось на Wayland, возвращая несуществующие модификаторы. Это связано с особенностями реализации Wayland в сравнении с X, и поэтому потребуется иной подход.

Решение проблемы

Вот несколько подходов, которые вы можете использовать для настройки вашей системы:

1. Использование встроенных настроек KDE

KDE Plasma предоставляет возможность настройки горячих клавиш для различных задач, включая переключение между мониторами. Для доступа к настройкам горячих клавиш выполните следующие действия:

  1. Откройте «Системные настройки».
  2. Перейдите в раздел «Сочетания клавиш».
  3. Выберите «Глобальные сочетания» и добавьте новые сочетания для управления дисплеями.

Однако для задачи переключения между экранами с использованием комбинаций клавиш может потребоваться более детальная настройка с использованием скриптов.

2. Скрипт на базе xrandr

Хотя xrandr не используется в Wayland, вы можете добиться аналогичного результата с помощью команды wlr-randr в Wayland. Создайте скрипт на shell, который будет переключать дисплеи:

#!/bin/bash

if [ "$1" = "left" ]; then
    wlr-randr --output <левый_монитор> --auto --primary
    wlr-randr --output <правый_монитор> --off
elif [ "$1" = "right" ]; then
    wlr-randr --output <правый_монитор> --auto
    wlr-randr --output <левый_монитор> --off
elif [ "$1" = "both" ]; then
    wlr-randr --output <левый_монитор> --auto --left-of <правый_монитор>
    wlr-randr --output <правый_монитор> --auto
fi

Замените <левый_монитор> и <правый_монитор> на соответствующие идентификаторы ваших мониторов. Этот скрипт можно вызывать системой по заданным сочетаниям клавиш для управления выставленными конфигурациями.

3. Адаптация с использованием libinput

Если вы хотите интегрировать вашу клавиатуру 8bitdo на более глубоком уровне, рассмотрите возможность использования libinput. Хотя это требует углубленных знаний о работе системы ввода и настройки устройств, ваша база Interception может помочь.

Создайте конфиг, который будет отслеживать нажатия клавиш и полученные модификаторы. Далее, строя логику на основе времени нажатия, вы сможете четко разделить поведение на «левый», «правый» и «оба» экрана.

Заключение

Кратко подытоживая, необходимость адаптировать ваше решение на Wayland обусловлена его внутренней архитектурой, отличающейся от X-систем. Используя настройку горячих клавиш в KDE, написание простых скриптов и, при необходимости, глубокую интеграцию с libinput, вы сможете легко добиться необходимой функциональности для переключения между мониторами. Творческий подход и использование скриптов помогут вам автоматизировать многие задачи, создавая более удобную рабочую среду.

Если у вас возникнут вопросы или понадобится помощь в настройке, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...