Shu*_*man 10 shell kde konsole qdbus
如何更改konsole选项卡标题?默认情况下,它设置为%u : %n,因此它始终自动更改.
我可以设置它:
qdbus org.kde.konsole $KONSOLE_DBUS_SESSION setTitle 1 "My Title"
Run Code Online (Sandbox Code Playgroud)
但是只要你在控制台中运行一些东西,它就会变回%u : %n.当然.我可以将它设置%w为告诉它将标题设置为"由shell设置的窗口标题",但稍后(如果我没有明确设置它),它将为空.(除非我设置它,否则每个新选项卡都将为空.)
问题是如何使其持久化(或如何通过命令行切换配置文件)?我可以创建另一个标题格式设置的配置文件%w,在设置自定义标题之前,切换到该配置文件.
编辑:我想我找到了答案
qdbus org.kde.konsole $ KONSOLE_DBUS_SESSION setTabTitleFormat 0""qdbus org.kde.konsole $ KONSOLE_DBUS_SESSION setTitle 0"My Title"
Tim*_*Tim 18
您可能需要使用此变体:
echo -ne "\033]30;test change title\007"
$ konsole -v
Qt: 4.8.6
KDE Development Platform: 4.13.3
Konsole: 2.13.2
Run Code Online (Sandbox Code Playgroud)
fal*_*lko 10
Konsole - >设置 - >配置Konsole ...
启用选项"在标题栏上显示窗口标题"然后在控制台中运行:
echo -ne "\033]2;test change title\007"
Run Code Online (Sandbox Code Playgroud)
发布我自己对这个老问题的解决方案,因为
org.kde.konsoleecho需要永久更改 konsole 设置在阅读了konsole 文档中的Scripting Konsole章节后,我编写了这些 bash 函数,这些函数可以添加到$HOME/.bashrc:
set-konsole-tab-title-type ()
{
local _title="$1"
local _type=${2:-0}
[[ -z "${_title}" ]] && return 1
[[ -z "${KONSOLE_DBUS_SERVICE}" ]] && return 1
[[ -z "${KONSOLE_DBUS_SESSION}" ]] && return 1
qdbus-qt5 >/dev/null "${KONSOLE_DBUS_SERVICE}" "${KONSOLE_DBUS_SESSION}" setTabTitleFormat "${_type}" "${_title}"
}
set-konsole-tab-title ()
{
set-konsole-tab-title-type "$1" && set-konsole-tab-title-type "$1" 1
}
Run Code Online (Sandbox Code Playgroud)
示例 1:设置本地和远程选项卡格式
$ set-konsole-tab-title test
Run Code Online (Sandbox Code Playgroud)
示例 2:保持远程选项卡格式不变
$ set-konsole-tab-title-type test
Run Code Online (Sandbox Code Playgroud)
示例 3:保持本地选项卡格式不变
$ set-konsole-tab-title-type test 1
Run Code Online (Sandbox Code Playgroud)
您还可以使用此功能%w为echo解决方案动态设置选项卡标题。
笔记
上面的代码假设 KDE Plasma/Qt5。对于 KDE4/Qt4,您需要替换qdbus-qt5为qdbus
konsole -p tabtitle='some title: %w'
有关更多选项,请尝试konsole --list-profile-properties。
Stefan Becker对此答案进行了改进。该脚本接受多个单词作为标题。您可以使用它来更改远程和本地标题。如果没有参数,它将设置为默认标题。我叫它setTitle
#!/bin/bash
titleLocal=${1:-%d : %n}
titleRemote=${2:-(%u) %H}
set-konsole-tab-title-type()
{
local _title="$1"
local _type=${2:-0}
[[ -z "${_title}" ]] && return 1
[[ -z "${KONSOLE_DBUS_SERVICE}" ]] && return 1
[[ -z "${KONSOLE_DBUS_SESSION}" ]] && return 1
qdbus >/dev/null "${KONSOLE_DBUS_SERVICE}" "${KONSOLE_DBUS_SESSION}" setTabTitleFormat "${_type}" "${_title}"
}
set-konsole-tab-title-type "$titleLocal" && set-konsole-tab-title-type "$titleRemote" 1
Run Code Online (Sandbox Code Playgroud)
更改两个标题:
setTitle "My Local Title" "My Remote Title"
Run Code Online (Sandbox Code Playgroud)
仅更改本地标题:
setTitle "My Local Title"
Run Code Online (Sandbox Code Playgroud)
仅更改远程标题:
setTitle "" "My Remote Title"
Run Code Online (Sandbox Code Playgroud)
更改为默认值:
setTitle
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16237 次 |
| 最近记录: |