LINUX.ORG.RU

screen, захват скроллбака

 


0

2

В дебиане если запущен screen то он включает «полноэкранный» режим в терминале, тот же самый в котором работает mc, без терминального скроллбака, а если сделать detach то содержимое исчезает и возвращаемся в тот вид консоли который был до запуска screen. В фрибсд же поведение другое: скроллбак остаётся как был, и при выходе в консоли остаётся содержимое screen перед выходом. Я почти уверен что это просто разные дефолты и где-то настраивается (без перекомпиляции), где?

★★★★★

где?

Против системд все орать горазды, а ман по скрину открыть почитать - херушки 🤡

(у меня просто давно записано :-р)

firkax ★★★★★  ретроград. антиsystemdшник, докерофоб 18.08.26 21:48:59 MSK

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 2)
Ответ на: комментарий от firkax

не осилил.

По классике )

Секция с конфигами в самом конце обычно

aol ★★★★★
()
Ответ на: комментарий от aol

Мне тоже интересно. емнип, у less то же самое. Они открывают отдельный что-то там, а при выходе закрывают

Когда ломают дефолтное поведение последних дцати лет, это раздражает

router ★★★★★
()
Ответ на: комментарий от router

отдельный что-то там

Alternate screen buffer? Так это фича терминала, а не less, емнип

Smcup/rmcup, пишут,в terminfo это видно, но мне с дивана не видно )

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

если б я знал

для less шаманские пляски заключаются в «-X»

       -X or --no-init
              Disables sending the termcap initialization and deinitialization  strings  to
              the  terminal.   This  is  sometimes desirable if the deinitialization string
              does something unnecessary, like clearing the screen.

для screen пока не нашел

router ★★★★★
()
Ответ на: комментарий от router

no-init

Пишут, как раз отключает посылку указанных выше управляющих последовательностей.

aol ★★★★★
()
Ответ на: комментарий от aol

Само по себе нет

У меня сработало такое шаманство:

убрать из .screenrc все terminfo

у меня было

# The vt100 description does not mention "dl". *sigh*
termcapinfo vt100 dl=5\E[M

добавить вместо них

termcapinfo * ti=:te=
altscreen off

отдельно altscreen не сработал

@firkax

router ★★★★★
()
Ответ на: комментарий от router

Наверное альтернативный буфер? \e[?1049h, \e[?1049l

echo -e "\e[?1049h"; clear     # вход в алт буфер
clear; echo -en "\?1049l"      # возврат в основной буфер
dmitry237 ★★★★★
()

В дебиане

В фрибсд

У screen широкая возможность конфигурации. Посмотрите файлы /etc/screenrc и ~/.screenrc. У FreeBSD, как я помню, он там очень жирный.

и при выходе в консоли остаётся содержимое screen перед выходом

Тут могу ошибаться, но это поведение также может зависеть от значения переменной окружения TERM.

Jullyfish
()
Ответ на: комментарий от aol

Разумеется это (alternate screen buffer, он же full-screen) фича терминала, но суть в том что в одной системе прога его включает, в другой - нет. Не хочешь же ты сказать, что в самом screen-е это не настраивается, и единственный способ - костыль затереть эти последовательности из terminfo?

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Не хочешь же ты сказать,

Я хочу сказать, никто не читает маны.

Вот ты даже делаешь вид, что знаешь, как оно работает, а по ключевым словам не нашел…

aol ★★★★★
()
Ответ на: комментарий от aol

См. выше. Надо еще менять termcapinfo, если есть

router ★★★★★
()

Из быстрого, можете скопипастить /etc/screenrc из FreeBSD и использовать его на Debian (сделав бэкап). Если результат не совсем совпадёт с желаемым, во FreeBSD сделайте echo $TERM, а в Debian сделайте export TERM=<значение из FreeBSD>. Если и так не совпадёт, тогда не знаю.

Если проделаете всё это, отпишитесь, пожалуйста.

Jullyfish
()
Ответ на: комментарий от aol

Все их читают. Многие даже неоднократно. Но по некоторому софту они настолько блольшие, что фиг найдешь. Если не знаешь, что искать

router ★★★★★
()
Ответ на: комментарий от router

Так тут, вроде, все оказались в курсе, что искать )) парадокс 😆

aol ★★★★★
()
Ответ на: комментарий от Jullyfish

а в Debian сделайте export TERM=<значение из FreeBSD>

Это тоже отдельно проделайте без переноса screenrc файла, тоже интересно. :^)

Jullyfish
()
Ответ на: комментарий от Jullyfish

О, в /usr/local/etc/screenrc нашлось

# Do not use xterms alternate window buffer. 
# This one would not add lines to the scrollback buffer.
termcap xterm|xterms|xs ti=\E7\E[?47l
terminfo xterm|xterms|xs ti=\E7\E[?47l

в дебиановском /etc/screenrc такое

# To get screen to add lines to xterm's scrollback buffer, uncomment the
# following termcapinfo line which tells xterm to use the normal screen buffer
# (which has scrollback), not the alternate screen buffer.
#
#termcapinfo xterm|xterms|xs|rxvt ti@:te@
я его раскомментировал - не помогло. Добавил строки из фрибсдшного - тоже не помогло.

~/.screenrc нету нигде.

firkax ★★★★★
() автор топика

З.Ы. к пропаже вывода при выходе из screen я уже привык некоторое время назад

У него своя история

  • прокрутка истории
C-A, Esc
# потом стерлками или PgUp/PgDown
  • сохранение в лог
# до начала интересного
: logfile filename
: logfile flush secs # не обязательно
# затем включаем логирование
# Ctrl-a, H



# Логирование включить забыли, но историю сохранить всё же нужно / дамп буфера в файл
# Ctrl-A, [, g, SPACE, G, $, >
# В результате содержимое буфера screen для текущего терминала будет записано в /tmp/screen-exchange 
router ★★★★★
()
Ответ на: комментарий от aol

altscreen on это включение поддержки altscreen внутри screen-овских терминалов, а мне надо выключить использование alternate screen самим screen-ом.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

У меня он тоже оказался нужен. Но дополнительно пришлось менять termcapinfo

зато вместе работает

outer@calypso:~$ echo test from inside scren
test from inside scren
router@calypso:~$ 
exit

0 bash                                                           @calypso - 2026.08.18 - 22:31
[screen is terminating]
router@calypso:~$ 
router ★★★★★
()

Дикий оффтоп: никто не знает, как в bash вернуть классическое поведение reversive search? Когда оно полностью отанавливается после отсутствия совпадений?

router ★★★★★
()
Ответ на: комментарий от Jullyfish

TERM там одинаковый xterm-256color, он же пробрасывается через ssh из одного и того же клиента.

Фрибсдшные опции отключения этой штуки в дебиане не помогают, помогла другая похожая (то ли там синтаксис отличается, то ли ещё что-то, но суть одинаковая, затереть «переменные» ti и te в настройках работы с tty).

firkax ★★★★★
() автор топика
Ответ на: комментарий от aol

Это каким ещё ключевым словам? Я вот сейчас, уже зная что надо было, посмотрел в мане описание termcapinfo - там есть несколько примеров её использования, но конкретно про ti/te там как раз ничего не написано. Вероятно, и в других местах мана про это тоже нет.

firkax ★★★★★
() автор топика
Ответ на: комментарий от router

Так ты попробуй termcapinfo без altscreen, всё тоже будет работать.

firkax ★★★★★
() автор топика
Ответ на: комментарий от router

Там про ядерную часть терминалов, всмысле не ту которая по ctrl-alt-f2 тексты рисует, а ту которая общая и у этой и у xterm-а. А про esc-последовательности (так сказать, прикладная часть терминалов) там как раз ничего нет.

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Решил себе тоже в ~/.screenrc утащить, пусть будет. А у меня там уже есть строчка:

termcapinfo xterm* ti@:te

И вроде работает как надо:

скроллбак остаётся как был, и при выходе в консоли остаётся содержимое screen перед выходом

Jullyfish
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.