Ярлык KDE Konsole для Запуска Новой вкладки с другим профилем

Я пытался выяснить, как установить короткий путь для запуска новой вкладки с определенным профилем, но я, может казаться, не нахожу опцию. Эффективно я хочу эмулировать выделенный Пункт меню ниже: enter image description here

Я могу установить ярлыки на Профили в Управлять Области Профилей, однако, который изменяет профиль активной вкладки; не, что я хочу (и в этом случае не изменяет среду на Powershell). Я могу запустить новую вкладку с ярлыком, но это использует профиль По умолчанию.

Ничто на экране Configure Shortcuts не выкрикивает это, он сделает это, и поиск "Konsole открывается, новая вкладка с ярлыком профиля" привлекла меня к вопросам как Нажатие, открывает новую вкладку в Konsole, Есть ли сочетание клавиш для открытия новой вкладки Konsole? и Переключатель представляет в Konsole из командной строки?; ни один из которых не обращается к тому, чего я пытаюсь достигнуть.

Можно ли на самом деле установить ярлык для запуска новой вкладки для определенного профиля в Konsole?

0
задан 5 March 2020 в 21:46

1 ответ

TLDR

  • Отключить "Run all Konsole windows in a single process" в консольных настройках
  • установка xdotool
  • Создайте глобальный ярлык с командой follwing, заменив [profile_name] с именем Вашего профиля:
qdbus org.kde.konsole-$(xdotool getwindowpid $(xdotool search --class "konsole" | tail -1)) /Windows/1 newSession "[profile_name]"; xdotool windowactivate $(xdotool search --class "konsole" | tail -1)

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

Однако существует обходное решение. Как объяснено здесь, можно открыть новую сессию (=tab) путем отправки a qdbus команда. Проблема с этим состоит в том, что необходимо выполнить ту команду в оболочке в консольном окне, иначе переменные среды не будут установлены. Теперь Вы могли связать следующую команду с сочетанием клавиш в использовании удара bind:

qdbus $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_WINDOW newSession "[profile_name]"

... но использование bind не действительно удобно для пользователя, и особенно не окружают независимый. С другой стороны, можно указать псевдоним, если это приемлемо.

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

Используя глобальное сочетание клавиш

Процесс зависит от "Run all Konsole windows in a single process" начинание "Settings -> Configure Konsole".

Все окна в одном процессе

Если это будет включено, то будет один qdbus названный сервис org.kde.konsole и каждое окно будет объектом Windows/1, Windows/2 и т.д. Таким образом, если бы Вы только используете одно консольное окно, следующая команда была бы достаточна для глобального сочетания клавиш:

qdbus org.kde.konsole Windows/1 newSession "[profile_name]"

Один процесс для каждого окна

Если консоль будет настроена для порождения нового процесса для каждого окна, то у Вас будут некоторые дополнительные опции. В этом случае будет один qdbus сервис для каждого названного окна org.kde.konsole-[process_id], каждый только с одним объектом Windows/1.

Для получения идентификатора процесса, владеющего консольным окном, мы можем использовать xdotool. В каждом из следующих примеров, замены [profile_name] с именем Вашего профиля:

откройте новую вкладку в активном консольном окне

qdbus org.kde.konsole-$(xdotool getactivewindow getwindowpid) /Windows/1 newSession "[profile_name]"

откройте новую вкладку в последний раз используемом (или активный) консольное окно

qdbus org.kde.konsole-$(xdotool getwindowpid $(xdotool search --class "konsole" | tail -1)) /Windows/1 newSession "[profile_name]"

откройте новую вкладку в последний раз используемом (или активный) консольное окно и перенесите его на передний план

qdbus org.kde.konsole-$(xdotool getwindowpid $(xdotool search --class "konsole" | tail -1)) /Windows/1 newSession "[profile_name]"; xdotool windowactivate $(xdotool search --class "konsole" | tail -1)
0
ответ дан 17 March 2020 в 00:07

Другие вопросы по тегам:

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