Feature #599
Шаблон для app-misc/screen
| Status: | New | Start: | 08/20/2013 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | Desktop | Spent time: | - | |
| Target version: | - | |||
| Votes: | 3 |
Description
Привет
Нашел пару минут свободных, и как и обещал - выкладываю свои шаблоны с описанием что к чему.
Надеюсь, вы примите их в апстрим
app-misc/scren¶
Приложил только сами .screenrc файлы, все директории и .calculate_directory-файлы созданы в соответствии с деревом шаблонов в оверлее.
Краткое описание файла:
backtick 1 1 1 awk '/^MemTotal:/{mt=$2}/^MemFree:/{mf+=$2}/^Buffers:/{mf+=$2}/^Cached:/{mf+=$2}/SwapTotal:/{st=$2}/^SwapFree:/{sf=$2}END{printf("Mem:%i/%i", (mt-mf)/1024, mt/1024);su=st-sf;if(su)printf("|Swp:%i/%i", su/1024, st/1024)}' /proc/meminfo
backtick 2 1 1 sh -c 'for f in /sys/class/power_supply/BAT*/{energy_{full{,_design},now},status}; do echo -e "$(basename $f): $(cat $f)"; done | awk "BEGIN{max=0;now=0;status=\"+\"}/^energy_full:/{max+=\$2}/^energy_now:/{now+=\$2}/^status: Discharging\$/{status=\"-\"}END{result=100.*now/max;if(result>10)printf(\"%s%2.1f%\n\",status,result);else printf(\"%s%i/%i\n\",status,now/1000,max/1000)}"'
shelltitle '$|sh'
shell -$SHELL
vbell off
startup_message off
defscrollback 10000
caption always "%{Gk}%w%=%{Rk}[%{W}%h%{R}]"
hardstatus alwayslastline "%{+b rW}$USER@%H%{dd} %= %{kr}%2`%{g}|%{dd}%l|%1`%{g}|%Y-%m-%d%{c}|%c:%s"
term xterm-256color
Тут параметр hardstatus alwayslastline определяет самую нижнюю строку.
Параметр caption always определяет "заголовок окна".
На заголовок я поместил список окон и непосредственно текст заголовка.
В hardstatus alwayslastline находится:<username>@<hostname><уровень заряда батареи (если есть)><load average>|<used mem>/<total mem>|<used swp>/<total swp>|<date>|<time>
Значение показателей памяти и заряда обновляются раз в секунду.
Используемая память считается как (MemTotal - (MemFree + Buffers + Cached))
Батарея считается так мудрёно, т.к. на одном буке может быть несколько батарей. Данный несложный скрипт, чтоб было понятней, можно разложить вот-так
1 for f in /sys/class/power_supply/BAT*/{energy_{full{,_design},now},status}; do
2 echo -e "$(basename $f): $(cat $f)";
3 done | \
4 awk "
5 BEGIN{
6 max=0;
7 now=0;
8 status=\"+\"
9 }
10 /^energy_full:/{
11 max+=\$2
12 }
13 /^energy_now:/{
14 now+=\$2
15 }
16 /^status: Discharging\$/{
17 status=\"\"
18 }
19 END{
20 result=100.*now/max;
21 if(result>10)
22 printf(\"%s%2.1f%\n\",status,result);
23 else
24 printf(\"%s%i/%i\n\",status,now/1000,max/1000)
25 }"т.е. при заряде
<10% Отображаются реальные цифры, а не проценты.
Счетчик памяти, думаю, настолько прост, что его даже расписывать нет смысла.
Список окон вынес в заголовок окна чтоб при одновременном показе нескольких окон было видно заголовок и номер каждого (как на скриншоте).
<offtop>
Экран разделяется на несколько окон комбинацией клавиш <Ctrl>+<A>,<Shifs>+<S>
Переключение между ними осуществляется по <Ctrl>+<A>,<Tab>
Выход из этого режима - по <Ctrl>+<A>,<Shifs>+<Q>
</offtop>
Конфигурация root-а отличается от конфиги непривилегированного пользователя лишь цветом фона для <username>@<hostname> и цветом скобок вокруг заголовка
1 --- /var/calculate/templates/3.1/6_ac_desktop_profile/2-root/app-misc/screen-4.0/.screenrc 2013-08-20 14:49:36.000000000 +0300
2 +++ /var/calculate/templates/3.1/6_ac_desktop_profile/2-user/app-misc/screen-4.0/.screenrc 2013-08-20 14:53:53.096337526 +0300
3 @@ -8,6 +8,6 @@
4 vbell off
5 startup_message off
6 defscrollback 10000
7 -caption always "%{Gk}%w%=%{Rk}[%{W}%h%{R}]"
8 -hardstatus alwayslastline "%{+b rW}$USER@%H%{dd} %= %{kr}%2`%{g}|%{dd}%l|%1`%{g}|%Y-%m-%d%{c}|%c:%s"
9 +caption always "%{Gk}%w%=%{Gk}[%{W}%h%{G}]"
10 +hardstatus alwayslastline "%{+b gW}$USER@%H%{dd} %= %{kr}%2`%{g}|%{dd}%l|%1`%{g}|%Y-%m-%d%{c}|%c:%s"
11 term xterm-256color
History
Updated by Андрей Сеник about 12 years ago
Поддерживаю :)
Давно пора "облагородить" такую штуку как screen
Сам подобным, да и именно этим пользуюсь!
Updated by Андрей Сеник almost 12 years ago
Михаил, если заменить
term xterm-256color
на
term screen-256color
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-based
Updated by Михаил Гагауз almost 12 years ago
...
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-based
Да, действительно
Для mc это уже давно не актуально (использую кальковскую прозрачную тему), но для menuconfig - весьма полезная опция.
Спасибо, уже исправил в своих шаблонах.
Updated by Alexander Tratsevskiy almost 12 years ago
Михаил, а дублирования 'root@localhost' можно избежать? Может в одну строку сделать? Я просто не знаю насколько важно отображать все эти данные.
Долгое время меняю только одну строчку в настройках:
hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "
P.S. Конечно, с отображением терминалов намного удобней чем без них, сразу понятно что ты в скрине.
Updated by Михаил Гагауз almost 12 years ago
Михаил, а дублирования 'root@localhost' можно избежать?
а они и не дублируются.
Из конфига скрина они отображаются только в самой нижней строке.
Там же где и батарея(если есть), la, память и часы (имхо - эти параметры на сервере важно всегда иметь перед глазами).
А то что в [квадратных скобках] - это "заголовок окна"
От указания user@hostname в alwayslastline отказываться нельзя, поскольку далеко не всегда в шапку окна попадает эта информация, а когда у тебя открыта пачка ssh-соединений на разные хосты - важно не перепутать где что выполняешь.
Шапка же сама по себе бывает полезна, думаю это не вызывает возражений.
С другой стороны - если приложение, исполняемое в этом терминале, подглючит, и в шапку попадет мусор - она просто съедет в право за край экрана, не закрывая важных элементов.
Перед заголовком окна, в caption always я поместил список "окон", для того чтоб номер окна был виден в каждой области, при разделении области отображения на два окна (не часто, но такое бывает нужно).
Может в одну строку сделать?
Каждый делает так как ему удобно.
Когда я начинал знакомство со screen, и работал с чужими конфигами, я также работал в режиме "все в одну строку".
Как можно понять - для меня самым удобным оказался приведенный выше вариант.
По моим ощущениям, на мониторах разрешением от 1024х768 и выше, не критично пожертвовать одной дополнительной строкой ради наглядности и удобства пользования.
PS
Что бы я хотел действительно добавить:
я так и не разобрался как цвет шрифта изменять в backtick, Esc-коды также не работают.
А я бы очень хотел, чтоб батарея, la и swap "краснели" при определенных значениях.
Конечно есть мониторинг, но обновлять его раз в секунду - плохая практика.
Updated by Михаил Гагауз almost 12 years ago
Андрей Сеник wrote:
Михаил, если заменить
term xterm-256color
на
term screen-256color
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-based
Поработал какое-то время с такой заменой.
Артефакты в menuconfig пропали (в mc у меня кальковская прозрачная тема, так что таких проблем нет), но появилась другая проблема - mc некорректно реагирует на хоткеи.
Думаю артефакты в ncurses-based софте меньшее из зол и лучше оставить term xterm-256color
Updated by Alexander Tratsevskiy almost 12 years ago
Ещё один интересный глюк. Если term по умолчанию = 'screen', либо 'screen-256color', при запуске vim, в заголовке не отображается изменение. Если же 'xterm' или 'xterm-256color' - заголовок обновляется, пишет [.screenrc (~) - VIM].
Можно ли этот заголовок вынести в заголовок окна, где он и должен быть при запуске в GUI, и где он и есть, если не править настройки?
Updated by Alexander Tratsevskiy almost 12 years ago
А какой смысл в screen выводить заряд батареи? Сложно себе представить сервер, работающий автономно. Если же брать работу в ноутбуке, то в дизайне рабочего стола кальки есть верхняя строка, отображающая различного рода информацию, например время (по желанию дату), туда же можно вывести и загруженность процессора, своп и заряд батареи.
Updated by Михаил Гагауз almost 12 years ago
Alexander Tratsevskiy wrote:
А какой смысл в screen выводить заряд батареи? ...
Заряд батареи выводится только если батарея присутствует.
Заряд батареи занимает МАКСИМУМ 7 символов (+100.0%)
Да, на верхней панели есть заряд батареи, но он обычно находится вне поля зрения.
Работая-же в консоли - взгляд обычно устремлен на вывод последней команды и набираемую новую команду.
Таким образом - основные показатели всегда находятся в поле зрения и видны периферийным зрением.
Я даже думал перенести часы и основные показатели влево, непосредственно под приглашение терминала, чтоб показатели были все время в поле зрения.
Но для большинства пользователей это будет выглядеть неудобно.
Еще со времен 9х винды пользователь привык видеть "часики и батарейку" в правом углу (не важно - нижнем, или у некоторых в верхнем). Это также сказалось в дизайне и *NIX-овых DE.
Updated by Alexander Tratsevskiy almost 12 years ago
В чём проблема собственно, не проворонить заряд аккумулятора? Для этого можно сделать звуковое уведомление при разном заряде, что угодно в общем-то средствами любого скрипта. Какой смысл для этого подключать видимую область экрана терминала?
Пользователь кальки за 7 лет привык, что вся информация выводится в верхней части экрана, панелька нескрываемая, каким образом информация может выйти из поля зрения представить сложно. Кстати, размер шрифта в часах такой, чтобы он оставался видимым с расстояния не менее 2 метров. Это также учитывается.
Updated by Victor Siman'kin almost 12 years ago
Михаил Гагауз wrote:
Андрей Сеник wrote:
Михаил, если заменить
[...]
на
[...]
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-basedПоработал какое-то время с такой заменой.
Артефакты вmenuconfigпропали (вmcу меня кальковская прозрачная тема, так что таких проблем нет), но появилась другая проблема -mcнекорректно реагирует на хоткеи.
Думаю артефакты в ncurses-based софте меньшее из зол и лучше оставитьterm xterm-256color
Точно, проблема с хоткеями в mc есть.
Но, народ, не поверите, term vt100 решает обе проблемы!
Updated by Михаил Гагауз almost 12 years ago
Victor Siman'kin wrote:
...
Точно, проблема с хоткеями вmcесть.
Но, народ, не поверите,term vt100решает обе проблемы!
Пробовал варианты сterm vt100-256color
иterm vt100
в mc<Shift>+<F6> предлагает удалить вместо переименования<Shift>+<F5> никак не реагирует, хотя должен предложить перемещение с переименованием
Updated by Victor Siman'kin over 11 years ago
Михаил Гагауз wrote:
в
mc
<Shift>+<F6>предлагает удалить вместо переименования
<Shift>+<F5>никак не реагирует, хотя должен предложить перемещение с переименованием
Ну знаете, это придирки уже какие-то, т.к. <Shift>+<F6> идентичен <F6>, а <Shift>+<F5> — <F5>
А вообще нашёл другой, устраивающий меня (и вас) вариант — вместо xterm-256color использовать xterm-color (без 256).
Работает и указанное вами, и НЕ указанное <Shift>+<F4> — редактирование нового файла.
xterm-color устроил по всем параметрам.
Рекомендую устанавливать по-умолчанию.