通过DBUS控制Konsole的更新

作者:Mitch Frazier

最近我写了关于使用dbus控制konsole的文章。 正当我开始使用该脚本来设置我的konsoles时,我和其他人一样,发现通过dbus设置的标签页标题不会固定。 这篇简短的文章向您展示了一种解决方法,使您的选项卡标题保持不变。

即使我在几周前写了原始文章,直到现在我才意识到我遇到了问题,因为我只是这个周末升级了我最常用的系统。 此外,显然,我已经在我其他的系统上发现了解决方法,并立即忘记了它,因为我花了很多时间才弄清楚它(再次)。

在我真正(重新)发现解决方法之前,我浏览了一些konsole代码,注意到konsole有两种类型的标签页标题:一种是用函数设置的setTitle()另一种是用函数设置的setUserTitle()。 如果您不设置用setUserTitle()设置的那个,那么当您使用会话时,选项卡标题会更改回默认值。 问题是dbus接口允许您调用setTitle()但它不允许你调用setUserTitle().

您可以通过以下方式使用konsole的菜单来调用setUserTitle()编辑->重命名标签或者从键盘使用Ctrl-Alt-S。 如果您以这种方式设置(用户)标题,您会看到它现在会固定。 但这不是解决方法,因为我们试图通过dbus控制konsole,通过键盘或鼠标手动设置所有选项卡标题并不构成解决方法。

另一方面,实际的解决方法并非没有缺陷:它需要您更改shell配置文件,这意味着由于尚无法通过dbus使用指定的配置文件启动会话,因此您无法同时拥有两种行为。

经过这么长的序言,解决方法非常简单:使用konsole的菜单,执行:设置->编辑当前配置文件...,转到标签选项卡并清除标签标题格式远程标签标题格式字段。

editprofile2.jpg

这样做有效,因为如果没有要设置的默认值,konsole不会重置标签标题。

Mitch Frazier是艾默生电气公司的嵌入式系统程序员。 自2000年代初以来,Mitch一直是Linux Journal的贡献者和朋友。

加载Disqus评论