Вопрос или проблема
Я привык использовать Ctrl+`
, чтобы открывать Cmder в Windows. Эта комбинация клавиш не запускает новый процесс Cmder, а просто разворачивает или выводит уже запущенный процесс на передний план и фокусируется на нем.
В KDE Plasma я могу нажать Ctrl+Alt+T
, чтобы открыть новое окно Konsole, но у меня нет сочетания клавиш, которое просто открывает уже запущенное окно Konsole.
Есть ли способ это сделать? Я смотрел сочетания клавиш в Konsole, в глобальных сочетаниях и даже в панели.
Есть ли способ добиться этой функциональности?
Я использую KDE Plasma 5.14.5.
Я тоже использую wmctrl, но предпочитаю использовать что-то вроде:
wmctrl -xa Konsole || konsole
Идея заключается в том, что если существует окно с именем Konsole в WM_CLASS (благодаря -x
), вывести его на передний план. В противном случае, выполнить команду konsole
. -x
может быть не всегда нужен, но я оставляю его, чтобы избежать проблем с окнами, не относящимися к konsole, но имеющими “konsole” в названии файла.
Я назначил сочетание клавиш Super+T для этой команды, оставив Ctrl+Alt+T как есть.
Если мне все еще нужно открыть дополнительное окно konsole, я могу сделать это с помощью Ctrl+Alt+T или через GUI интерфейс konsole.
Мне порекомендовали программу, которая решает эту проблему: wmctrl.
wmctrl -a konsole
Это выполняет именно ту функцию, которую я искал.
Я отказался от KDE 5 лет назад, поэтому не знаю нынешнюю ситуацию, и никогда не слышал про wmctrl
. Но у меня была такая же проблема, и я исследовал ее несколько лет до того, как вы задали вопрос. Не было подходящего решения для этого, поэтому я в итоге переключился на Yakuake. Я использовал Konsole в течение 15 лет, и сочетание клавиш было единственной причиной, по которой я попробовал Yakuake, но даже если я помню, что мне нравились некоторые вещи из Konsole, я в итоге остался с Yakuake, хотя я заменил сочетание клавиш с F12 (которое конфликтует с сочетаниями клавиш для разработки в веб-браузере) на F10.
Yakuake до сих пор не так каноничен, как Konsole, но, по крайней мере, он включен в KDE Gear.
Ответ или решение
Для пользователей, привыкших к работе в Windows, переход на Linux и, в частности, на среду рабочего стола KDE Plasma может вызвать проблемы с изменением привычек. Одной из таких привычек может быть использование определенных клавишных комбинаций для выполнения часто повторяющихся действий. Например, в Windows многие пользователи привыкли использовать сочетание клавиш Ctrl+`` для вызова уже запущенной программы терминала, например, Cmder, или для открытия новой сессии. В среде KDE Plasma, стандартное сочетание клавиш для открытия нового окна терминала Konsole —
Ctrl+Alt+T`, однако это сочетание открывает новый экземпляр программы, в то время как некоторым может быть необходимо просто акцентировать, или же «поднять», уже запущенное окно Konsole.
Теория
Сопутствующее неудобство заключается в том, что множественные экземпляры терминала могут быть сложны в управлении и отвлекают пользователя, а также загромождают рабочее пространство. Учитывая, что KDE Plasma — это модульная система, существует множество способов настройки клавиатурных команд для того, чтобы, например, можно было эффективно «поднимать» уже открытое окно Konsole. Это достигается благодаря использованию определенных скриптов и инструментов, включая wmctrl
.
wmctrl
— это утилита, которая позволяет взаимодействовать с окнами из командной строки, предоставляя возможность изменять состояние окон, обращать на них фокус и многое другое.
Пример
Рассмотрим конкретное решение с использованием wmctrl
. Чтобы настроить вызов уже открытого окна Konsole с помощью клавиатурного сокращения, можно использовать команду:
wmctrl -a konsole
Эта команда проверяет, существует ли уже запущенный экземпляр Konsole, и поднимает его наверх всех окон, фокусируя на нём внимание. Если Konsole не запущен, можно использовать следующий скрипт:
wmctrl -xa Konsole || konsole
Здесь используется параметр -x
для дополнительной проверки наличия окна. Если окно не найдено, будет запущен новый экземпляр Konsole.
Применение
Чтобы настроить это на вашем компьютере, выполните следующие действия:
-
Установка wmctrl: Установите wmctrl, если он ещё не установлен, с помощью пакетного менеджера вашей системы, например
sudo apt install wmctrl
в Ubuntu. -
Настройка горячих клавиш: Перейдите в настройки системы KDE Plasma. Откройте раздел "Global Shortcuts" (Глобальные сочетания клавиш).
-
Добавление нового сочетания:
- Нажмите "Add Command" (Добавить команду).
- Введите команду, описанную выше, например
wmctrl -xa Konsole || konsole
. - Задайте предпочтительное сочетание клавиш, например
Super+T
.
-
Использование альтернативных программ: Как некоторые пользователи отметили, хорошей альтернативой может стать Yakuake — это выдвижной эмулятор терминала для KDE, который интегрируется в систему и по умолчанию вызывается клавишей
F12
. При желании вы можете изменить его наF10
или другую удобную для вас комбинацию. -
Проверка работоспособности: После выполнения этой настройки, проверьте корректность работы созданного сочетания клавиш, убедитесь, что окно Konsole корректно поднимается при его вызове указанной комбинацией.
Это решение позволит вам не прерывать ваши рабочие процессы из-за необходимости искать уже открытое окно терминала или открывать новый экземпляр, что особенно важно в высоко динамичных или многозадачных средах.
В завершение, такое решение может значительно повысить эффективность работы в среде KDE Plasma для пользователей, привыкших к определённым поведенческим шаблонам в других операционных системах, что еще раз подтверждает гибкость и настраиваемость KDE Plasma.