如何在状态栏中显示屏幕会话的当前“会话”名称或“sockname”?

如何在状态栏中显示屏幕会话的当前“会话”名称或“sockname”?

我运行多个屏幕会话,每个会话都使用“screen -S”创建姓名' 我希望能够在状态栏中显示姓名我曾经创建过当前屏幕会话。

但是,我似乎无法做到这一点。有什么想法吗?

答案1

下一版本将推出以下功能:http://savannah.gnu.org/bugs/index.php?23738

另外,您可以使用终端变量$STY,尽管人们似乎得到不一致的结果。

答案2

Max Cantor 提到了下一个版本他的回答%S。现在它可以轻松地在硬状态行中工作。

MWE(.screenrc):

hardstatus on
hardstatus alwayslastline
hardstatus string "%S"

这将显示会话名称没有ID(如${STY#*.})。

(其他问题的答案相同这里这里为了完整性)。

答案3

这被成功模仿如何在 hardstatus 中包含屏幕的会话名称?

我进一步增强了它,如下所示:

# generates equivalent of $STY followed by "on $HOST" if $STY is non-standard
backtick 10 60 60 sh -c 'sty=$(screen -ls | grep --color=no -o "$PPID[^[:space:]]*") ; if [ ${sty##*.} = $HOST ] ; then echo $sty ; else echo "$sty on $HOST" ; fi'
# includes session name thanks to backtick 10
hardstatus string "[screen %n%?: %t%? (%10`)] %h"

相关内容