Получение безрамных окон, открывающихся только в текущей деятельности

666
Hashbrown

Некоторые приложения, такие как Chrome и Firefox, имеют свои собственные перетаскиваемые заголовки и выглядят намного лучше без системных границ.

FF&Chrome with plasma borders FF&Chrome naked

Однако, похоже, это дорого. Независимо от того, активируете ли вы эту функцию через приложение или используете собственные настройки (KWin) плазмы, следующее открываемое окно будет присутствовать во всех действиях.

Chrome's native title bar remover KWin must be used for firefox

Отключение этого и возврат к использованию системных границ приводит к тому, что новые экземпляры программы снова выполняют действия.

Я заметил, что есть настройка, позволяющая выбрать, какой вид деятельности открывает программа, но единственными опциями являются «Все действия» и список действий [всегда открывать для них] (без опции «Текущая активность», которая должна быть по умолчанию, не проверено, настройка .. которая не работает).

enter image description here

Есть ли способ заставить его вести себя?
Может быть, комбинация клавиш, которая привязывает текущее окно к текущей активности (так же, как есть комбинации клавиш для перемещения окна на другой рабочий стол)?
Или, возможно, наложение псевдонимов на исполняемые файлы небольшим скриптом, который вызывает программу, но вводит ее в действие вручную, используя dbus или что-то еще?

1
Это может быть связано с тем, что [окна без рамки (оформление) отображаются во всех действиях] (https://bugs.kde.org/show_bug.cgi?id=274931). EECOLOR 5 лет назад 0
«X11 больше не увидит функций», «Wayland вообще не хватает поддержки Activity», что ж, это весело. Я все еще думаю, что должна быть `комбинация клавиш, которая переводит текущее окно в текущую активность` или что-то еще, учитывая, что вы можете изменить активность через меню Alt + F3. Даже если это ярлык скрипта, который получает текущий идентификатор окна и использует `dbus` для принудительного выполнения действия (хотя я недостаточно знаю о` dbus`, чтобы написать это сам) Hashbrown 5 лет назад 0
Дайте мне знать, если вы найдете способ сделать это :-) EECOLOR 5 лет назад 0
@EECOLOR это было довольно просто, просто нужно было думать нестандартно, пытаясь решить проблему с границей, а не с деятельностью Hashbrown 5 лет назад 1

1 ответ на вопрос

1
Hashbrown

Итак, у меня есть действительная работа вокруг. Вместо ярлыка для установки текущего действия (которое кажется невозможным без сценариев), почему бы не позволить плазме обрабатывать это так же, как при добавлении границы, и иметь ярлык для удаления границы?

  1. В приложении (в данном случае Chrome) подготовьте его для показа без границ, как обычно;
    right click area next to tabs→ снимите флажокUse system title bar and borders

    Это дает Chrome, чтобы сделать его собственные кнопки закрытия, сворачивания, максимизации.

  2. Скажите плазме, чтобы игнорировать эту настройку;
    Alt-F3в приложении (или щелкните его значок в верхнем левом углу перед выполнением шага 1)More ActionsSpecial Window SettingsAppearance & FixesNo titlebar and frameApply InitiallyNoOkay

    Это позволяет плазменной блокировке новых окон текущей активности.

  3. Добавьте ярлык для удаления границы вручную;
    System SettingsShortcutsGlobal ShortcutsKWinHide Window BorderCustom (я использовал -)

Теперь, когда я открываю хромовое окно, я просто должен ударить, -и границы исчезают, и это остается в действии, в котором я его открыл.

Похожие вопросы