Я пытался выяснить, как установить короткий путь для запуска новой вкладки с определенным профилем, но я, может казаться, не нахожу опцию. Эффективно я хочу эмулировать выделенный Пункт меню ниже:
Я могу установить ярлыки на Профили в Управлять Области Профилей, однако, который изменяет профиль активной вкладки; не, что я хочу (и в этом случае не изменяет среду на Powershell). Я могу запустить новую вкладку с ярлыком, но это использует профиль По умолчанию.
Ничто на экране Configure Shortcuts не выкрикивает это, он сделает это, и поиск "Konsole открывается, новая вкладка с ярлыком профиля" привлекла меня к вопросам как Нажатие, открывает новую вкладку в Konsole, Есть ли сочетание клавиш для открытия новой вкладки Konsole? и Переключатель представляет в Konsole из командной строки?; ни один из которых не обращается к тому, чего я пытаюсь достигнуть.
Можно ли на самом деле установить ярлык для запуска новой вкладки для определенного профиля в Konsole?
TLDR
"Run all Konsole windows in a single process"
в консольных настройкахxdotool
[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)