Как отобразить текущее имя «сеанса» или «sockname» сеанса экрана в строке состояния?

1690
Neg_EV

Я запускаю несколько сеансов экрана, каждый из которых создается с именем «screen -S », и я хотел бы иметь возможность отображать в строке состояния имя, которое я использовал для создания текущего сеанса экрана.

Тем не менее, я не могу этого достичь. Есть идеи?

3

3 ответа на вопрос

1
Max Cantor

Это будет в следующей версии: http://savannah.gnu.org/bugs/index.php?23738

Кроме того, вы можете использовать переменную терминала $STY, хотя люди, кажется, получают противоречивые результаты с ней.

0
Alastair Irvine

This was successfully emulated by how to include screen's session name in hardstatus?

I enhanced it even further, as follows:

# 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 [ $ = $HOST ] ; then echo $sty ; else echo "$sty on $HOST" ; fi' # includes session name thanks to backtick 10 hardstatus string "[screen %n%?: %t%? (%10`)] %h" 
0
Scz

Макс Кантор ссылается на следующую версию в своем ответе . Теперь он легко работает с %Sлинией hardstatus.

MWE (.screenrc):

hardstatus on hardstatus alwayslastline hardstatus string "%S" 

Это отображает имя сеанса без идентификатора (как $).

(Тот же ответ на другие вопросы здесь и здесь для полноты).

Похожие вопросы