GNU Screen layout: восстановление регионов после детатчаscreen, screenrc, shell, tips, linux

В комментариях к этому посту напомнили о «слоях» (layout), о которых почему-то многие забывают. Слои позволяют иметь сразу несколько видов размещения регионов и переключаться между ними. Создаються из текущего расположения командой screen'а layout new имя слоя (layout name имя слоя создаст новый пустой слой) и эти слои можно запоминать...

Не буду вдаваться в подробности о применении слоев, ибо интересует нас всего лишь восстановление регионов после детатча — а сделать восстановление достаточно просто, достаточно лишь создать новый слой и сохранить его перед детатчем layout save имя слоя. Сохранять конечно не всегда вариант, можно банально забыть или не успеть это сделать (к примеру, если ssh соединение разорвалось, а вы на удаленной машине работали в GNU Screen), но мудрые разработчики предусмотрели это добавив возможность автоматического сохранения слоев, которое по умолчанию выключено. Для включения либо ввести команду в скрин, либо добавить опцию
layout autosave on
в screenrc. В конфиге так же можно и создавать слой при старте. К примеру строки
layout new desktop
layout autosave on
в screenrc создадут слой и включат авто сохранение, после чего можно будет с чистой совестью и не боясь за потерю регионов делать detach.

С учетом того что в будущих версиях нас ждут вертикальные регионы (пользователи git могут ими пользоваться уже сейчас), сие делает из скрина неплохой тайловый wm для консоли — ещё бы поддержку цветов более чем 256, а то кино во фреймбуфере смотреть невозможно =)

Спонсор говорит:
Эффективный бизнес в интернете, реально ли? Качественная поисковая оптимизация и раскрутка сайта стоит совсем недорого, но приносит вполне ощутимые результаты. Получить заинтересованных посетителей можно на порядок дешевле чем с помощью контекстной рекламы.
11-05-2010, 18:10    Комментарии: 2

Эхо из прошлого: grunka и wormulongrunka, wormulon, screen, hardstatus, linux

grunka и wormulon В далеком 2003 году добрый человек написал пару мелких приблуд — одну мониторинга качества wifi соединения, другую для мониторринга скорости какого-либо сетевого интерфейса.
Написаны эти две приблуды были для того что бы выводить эту информацию в хардстатусе GNU Screen, но как мы понимаем и в dzen2...

Обе утилиты работают так же как skb, т.е. просто выдают на stdout некоторую информацию. К сожалению, в отличии от skb в них нельзя сделать одинарную выдачу, а только постоянный вывод (период можно изменять) на stdout.

Применяются просто, к примеру для вывода в хардстатус GNU Screen достаточно записать в .screenrc что-то вроде
hardstatus alwayslastline "%1` %2`"
backtick 1 0 0 /usr/bin/wormulon -i wlan0
backtick 2 0 0 /usr/bin/grunka -i wlan0
и мы получим в статусе строку вида
in 39 K/s out 1 K/s quality: 92 (-30/-116)
sed'ом или awk'ом пройтись по выводу никто не запрещает.

Как вы уже заметели имя сим чудным программам grunka и wormulon, обявлено о их выходе было в списке рассылки gnu.screen. Но сайт разработчика приказал долго жить и исходники найти достаточно трудно, но к счастию оказалось возможно.

wormulon-0.1.3.tar.gz (PKGBUILD)
grunka-0.0.2.tar.gz (PKGBUILD)
В AUR пкгбилды не выкладываю, ибо поддерживать не собираюсь по той причине что как оказалось мои скромные запросы вполне удовлетворяет что либо наподобие
iwconfig wlan0 |grep "Quality"|awk -F/ '{print $1}'

Но, возможно, кому-то эти полезняшки будут весьма полезны, к тому же работают они не только в Linux (grunka только в linux и freebsd) но и во freebsd, hpux, netbsd, openbsd, solaris и возможно других unix подобных операционных системах.

Охранные автомобильные комплексы и уникальная установка автосигнализаций помогающая предотвратить угон лучше чем обычно благодаря творческому и неординарному подходу в защите.
12-04-2010, 12:11    Комментарии: 5

^s (Control s) в терминале и в GNU Screenzhs, bash, screen, shell, linux, xon, xoff

Не секрет что zsh, bash и иже с ними останавливают поток вывода на экран при нажатии ^s (визуально терминал блокируется, хотя всё работает как положено), а для отображения потока ^q. Попробуйте в консоли нажмите ^s и попробуйте чего-нить напечатать, вряд ли у вас получится (но ^q нас спасет и мы увидим то что вводили)
Дело в том что терминалы получают команды управления потоком XOFF и XON (выключение и включение соответственно).
Если вам не нравиться такое поведение консоли, то втыкаем маны и узнаем о том что команда stty позволяет изменить сие (и не только) поведение. Дабы не заставлять читать маны привожу команды которые надо добавить в bashrc или zshrc
stty ixany
stty ixoff -ixon

Так же эти команды можно вводить и в интерактивном режиме.

Всё бы ничего, но... В GNU Screen ^s как работал до сих манипуляций так и работает, заглядываем в ман и вспоминаем об управлении потоком в самом скрине — defflow для всех окон и flow для текущей консоли уже при запущенном screen (^a f или ^a C-f для цеклического переключения).
По умолчанию defflow выставлен в auto, но в мой ~/.screenrc каким-то образом затесалась строка defflow on, заменяя на auto (в зависимости от настроек терминала) или off ^s начинает работать передавая ^s в терминал (в zsh к примеру это fwd-i-search, в joe тоже поиск) и его можно назначить как управляющую последовательность вместо дефолтного ^a

Специально для олдфагов Старые компьютерные Игры, но попадаются и относительно новые.
Так же рекомендуют скачать игры на компьютер из Зоны Игр.
22-09-2009, 10:25    Комментарии: 3

Вертикальные регионы GNU Screen в git версииscreen, screenrc, shell, linux

Вертикальное разбиение в GNU Screen Помнится я писал о патче позволяющим разбивать GNU Screen на вертикальные регионы(фреймы). С недавних пор начал пользовать Screen из git и был приятно удивлен тем фактом что там уже есть свое родное разбиение на вертикальные фреймы. Причем по сравнению с добавляемыми патчем между вертикальными фреймами есть рамка позволяющая видеть разделение, так же появились команды focus left и focus right для перехода межды ними. Но есть и неприятный момент — смена дефолтного хоткея на split -v (C-a |). К примеру, у меня | это \ с шифтом, а C-a \ у нас в GNU screen это выход, посему иногда приходится отменять закрытие скрина, но bind v split -v в конфиге спасает ситуацию...

Кстати, screen-git есть в арчевском AUR, и работает замечательно, посему пользователям ArchLinux рекомендую обновить screen до версии из git
02-09-2009, 13:31    Комментарии: 7

MCabber: количество непрочитанных сообщений в GNU Screenmcabber, screen, hardstatus, shell, dotfiles, linux

Вообще не только в screen, а где угодно. Но у меня это именно в screen, поэтому и показываю на его примере.

В настройках mcabber есть опция statefile для которой указывается файл в котором будут построчно сохранятся списки адресов приславших вам сообщение. Как только сообщение будет прочитано адресат из этого списка пропадает, если нет ниодного непрочитанного сообщения то и указанного файла не существует. Для работы опции statefile необходимо включить опцию logging (так же эта опция нужна и для истории сообщений)

Редактируем ~/.mcabber/mcabberrc
set logging = 1
#дальнейшие параметры логированиия  
set statefile = ~/.mcabber/mcabber.state

И пишем небольшой скрипт который будет вызываться из screen. У мну в скрипте (извиняюсь за то что он на zsh) считается количество строк, вообще можно проверять наличие файла — если файл есть значит есть и сообщения.
#!/bin/zsh

MCABBER_NO=`cat ~/.mcabber/mcabber.state &>/dev/null|wc -l`
[[ "$MCABBER_NO" -gt "0" ]] && echo "$MCABBER_NO message"
exit 0

Как вызывать внешние команды hardstatus screen'а я уже писал
В .screenrc дописываем backtick номер 1 1 /путь/до/скрипта ну и в нужное место hardstatus вставляем %номер`. У меня сделано жирным красным мигающим текстом %{+Bb r}%3`%{-Bb d.}
количество непрочитанных из mcabber в screen
15-07-2009, 09:48    Комментарии: 5

Раньше »