Забудьте о навязчивых окнах: KDE Plasma научится "держать оборону" в Wayland

  • Категория: Linux
  • Дата: 4 августа 2025 г. в 14:30
  • Просмотров: 47

Обложка

Одна из интересных особенностей Wayland – это то, как он управляет фокусом окон. В отличие от X11, где окна могли "перехватывать" фокус, что раздражало и даже создавало угрозу безопасности, Wayland использует специальный механизм, чтобы этого не допустить. Этот механизм называется "XDG Activation".

Как это работает? Приложение запрашивает у Wayland уникальный "токен" (своего рода цифровой пропуск). Wayland выдает этот токен только в ответ на действия пользователя. Затем, чтобы получить фокус, приложение предъявляет этот токен. Если токен действителен, и запрос уместен, фокус предоставляется. В противном случае, окно помечается как "требующее внимания", и вы видите мигающий значок на панели задач.

Мигающий значок на панели задач показывает, какое приложение "просится" в фокус. Изображение: Kai-Uwe Broulik

Кай-Уве Броулик, разработчик KDE, сообщил, что планируется "включить перехват фокуса KWin в Wayland на низком уровне". Это значит, что KWin (оконный менеджер для KDE Plasma) будет более эффективно обеспечивать соблюдение правил управления фокусом.

Вспомним прошлое: проблемы X11

В X11 новые окна или диалоговые окна могли захватывать фокус, только если их приложение было последним активным. Проверка основывалась на временной метке _NET_WM_USER_TIME, что было не очень надежно. Например, иногда это мешало полноэкранному Adobe Flash Player отображаться поверх видео на YouTube. Хуже того, приложение могло просто вызвать команду XSetInputFocus в окне другого приложения, и фокус "мерцал", даже если KWin пытался это отменить.

Wayland: работа над ошибками

В Wayland система XDG Activation работает гораздо лучше, но некоторые приложения все равно умудряются нарушать протокол из-за ошибок. В таких случаях KWin, как правило, просто фокусировал любое новое открытое окно. Но теперь все изменится!

"Extreme": новый режим против "угонщиков" фокуса

В настройках управления окнами появится новый параметр "Extreme" в разделе "Предотвращение перехвата фокуса". Если он включен, KWin будет активировать окно, только если оно запросит активацию с действительным токеном.

Изображение: Kai-Uwe Broulik

Что уже исправлено?

Благодаря этому строгому режиму, разработчики Xaver Hugl и Kai-Uwe Broulik уже решили ряд проблем:

  • Dolphin (файловый менеджер KDE) больше не теряет свой токен активации при запуске нового экземпляра.
  • KRunner, Kickoff (инструменты запуска приложений в KDE) и другие всплывающие окна Plasmoid теперь правильно запрашивают активацию.
  • LayerShell-Qt теперь запрашивает активацию при показе и правильно считывает XDG_ACTIVATION_TOKEN из окружения.
  • Привилегированные клиенты (такие как Plasma) теперь могут правильно запрашивать токены.
  • Нажатия клавиш-модификаторов (Ctrl, Shift, Alt) теперь игнорируются, поскольку они часто используются в глобальных сочетаниях клавиш.

Работа ведется и на уровне "движка": спецификация DBusRunner теперь имеет метод SetActivationToken, который вызывается непосредственно перед запуском действия. Baloo (средство поиска на рабочем столе) использует это, чтобы открывать файлы в существующем окне приложения.

Подробнее об этом можно прочитать в блоге Кая.

Мнение редакции: Это важный шаг вперед для KDE Plasma в Wayland. Улучшенное управление фокусом окон сделает работу более удобной и безопасной, предотвращая несанкционированный перехват фокуса приложениями. Пользователи обязательно оценят более плавную и предсказуемую работу.

MSReview Источник:
www.neowin.net
  • 0




  • Комментарии
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.