Сменить профиль в Konsole из командной строки?

Вопрос или проблема

Я знаю, что можно установить профиль для новой вкладки, но что если мне нужно переключить профиль для текущей вкладки?

Согласно статье Изменение цветов Konsole в KDE с использованием оболочки, решение довольно простое, но цвет обложки

konsoleprofile colors=WhiteOnBlack
# или
konsoleprofile colors=GreenOnBlack

Где значение берется из меню Настройки > Редактировать текущий профиль… > выберите Вкладка Внешний вид.

Tmux

Вам нужно обернуть команду в последовательность экранирования passthrough внутри сессии tmux, иначе она ничего не сделает:

printf '\033Ptmux;\033\033]50;konsoleprofile colors=GreenOnBlack\007\033\\'

Вот маленькие помощники, которые я добавил в свой ~/.zshrc:

# Изменение цвета Konsole
theme-night() {
  switch-term-color "colors=TomorrowNightBlue"
}
theme-light() {
  switch-term-color "colors=Tomorrow"
}
switch-term-color() {
  arg="${1:-colors=Tomorrow}"
  if [[ -z "$TMUX" ]]
  then
    konsoleprofile "$arg"
  else
    printf '\033Ptmux;\033\033]50;%s\007\033\\' "$arg"
  fi
}

Благодарности

Как отметил Луис Боканегра в своем ответе, это можно сделать, вызвав метод setProfile интерфейса dbus org.kde.konsole.Session Konsole.

Пример с использованием qdbus-qt6:

qdbus-qt6 $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION org.kde.konsole.Session.setProfile 'Профиль 1'

Пример с использованием dbus-send:

dbus-send --dest=$KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION --type=method_call org.kde.konsole.Session.setProfile string:'Профиль 1'

Связано: Глава 4. Скриптование Konsole

Ответ или решение

Смена профиля в Konsole из командной строки

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

Смена профиля с помощью konsoleprofile

Наиболее простой способ смены профиля — это использование команды konsoleprofile, которая позволяет задать цветовую схему для новой вкладки. Тем не менее, это не позволяет переключить профиль уже открытой вкладки. Вот как выглядит базовая команда:

konsoleprofile colors=WhiteOnBlack

Данная команда изменяет цвета текста и фона для новой вкладки, но не влияет на активную. Чтобы изменить профиль текущей вкладки, мы можем использовать более сложные подходы.

Использование tmux

Если вы работаете в сессии tmux, существует возможность обернуть команду в специальную последовательность, чтобы последовать за ней стандартные ANSI-команды:

printf '\033Ptmux;\033\033]50;konsoleprofile colors=GreenOnBlack\007\033\\'

Эта команда позволяет оперативно менять цветовую схему, даже если вы находитесь в сессии tmux.

D-Bus API для Konsole

Одним из самых эффективных способов смены профиля для текущей вкладки является использование интерфейса D-Bus. Konsole предоставляет интерфейс org.kde.konsole.Session, который позволяет динамически изменять параметры сеанса. Приведем несколько примеров использования команд для смены профиля.

Пример с использованием qdbus-qt6:

qdbus-qt6 $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION org.kde.konsole.Session.setProfile 'Profile 1'

Пример с использованием dbus-send:

dbus-send --dest=$KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION --type=method_call org.kde.konsole.Session.setProfile string:'Profile 1'

Эти команды непосредственно взаимодействуют с сессией Konsole, изменяя профиль панели, что дает возможность быстро адаптироваться к различным условиям работы.

Создание обертки для легкости использования

Вы можете упростить процесс смены профилей, создав функции в вашем конфигурационном файле, например, ~/.zshrc. Вот пример такой обертки:

# Конфигурация для смены цвета в Konsole
theme-night() {
  switch-term-color "colors=TomorrowNightBlue"
}
theme-light() {
  switch-term-color "colors=Tomorrow"
}
switch-term-color() {
  arg="${1:-colors=Tomorrow}"
  if [[ -z "$TMUX" ]]
  then
    konsoleprofile "$arg"
  else
    printf '\033Ptmux;\033\033]50;%s\007\033\\' "$arg"
  fi
}

Теперь вы можете удобно переключаться между профилями, вызывая функции theme-night или theme-light.

Заключение

Смена профиля в Konsole — это процесс, который может значительно повысить эффективность работы, особенно для более опытных пользователей. Используя вышеописанные методы, вы сможете легко адаптировать свою среду согласно предпочтениям, что сделает ваш рабочий процесс более комфортным. Надеемся, что данная информация окажется вам полезной, и вы сможете максимально эффективно использовать возможности вашего терминала.

Оцените материал
Добавить комментарий

Капча загружается...