Feature #599
Шаблон для app-misc/screen
Status: | New | Start: | 08/20/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | Alexander Tratsevskiy | % 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 11 years ago
Поддерживаю :)
Давно пора "облагородить" такую штуку как screen
Сам подобным, да и именно этим пользуюсь!
Updated by Андрей Сеник almost 11 years ago
Михаил, если заменить
term xterm-256color
на
term screen-256color
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-based
Updated by Михаил Гагауз almost 11 years ago
...
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-based
Да, действительно
Для mc
это уже давно не актуально (использую кальковскую прозрачную тему), но для menuconfig
- весьма полезная опция.
Спасибо, уже исправил в своих шаблонах.
Updated by Alexander Tratsevskiy almost 11 years ago
Михаил, а дублирования 'root@localhost' можно избежать? Может в одну строку сделать? Я просто не знаю насколько важно отображать все эти данные.
Долгое время меняю только одну строчку в настройках:
hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "
P.S. Конечно, с отображением терминалов намного удобней чем без них, сразу понятно что ты в скрине.
Updated by Михаил Гагауз almost 11 years ago
Михаил, а дублирования 'root@localhost' можно избежать?
а они и не дублируются.
Из конфига скрина они отображаются только в самой нижней строке.
Там же где и батарея(если есть), la, память и часы (имхо - эти параметры на сервере важно всегда иметь перед глазами).
А то что в [квадратных скобках]
- это "заголовок окна"
От указания user@hostname
в alwayslastline
отказываться нельзя, поскольку далеко не всегда в шапку окна попадает эта информация, а когда у тебя открыта пачка ssh-соединений на разные хосты - важно не перепутать где что выполняешь.
Шапка же сама по себе бывает полезна, думаю это не вызывает возражений.
С другой стороны - если приложение, исполняемое в этом терминале, подглючит, и в шапку попадет мусор - она просто съедет в право за край экрана, не закрывая важных элементов.
Перед заголовком окна, в caption always
я поместил список "окон", для того чтоб номер окна был виден в каждой области, при разделении области отображения на два окна (не часто, но такое бывает нужно).
Может в одну строку сделать?
Каждый делает так как ему удобно.
Когда я начинал знакомство со screen
, и работал с чужими конфигами, я также работал в режиме "все в одну строку".
Как можно понять - для меня самым удобным оказался приведенный выше вариант.
По моим ощущениям, на мониторах разрешением от 1024х768 и выше, не критично пожертвовать одной дополнительной строкой ради наглядности и удобства пользования.
PS
Что бы я хотел действительно добавить:
я так и не разобрался как цвет шрифта изменять в backtick
, Esc-коды также не работают.
А я бы очень хотел, чтоб батарея, la и swap "краснели" при определенных значениях.
Конечно есть мониторинг, но обновлять его раз в секунду - плохая практика.
Updated by Михаил Гагауз almost 11 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 11 years ago
Ещё один интересный глюк. Если term по умолчанию = 'screen', либо 'screen-256color', при запуске vim, в заголовке не отображается изменение. Если же 'xterm' или 'xterm-256color' - заголовок обновляется, пишет [.screenrc (~) - VIM].
Можно ли этот заголовок вынести в заголовок окна, где он и должен быть при запуске в GUI, и где он и есть, если не править настройки?
Updated by Alexander Tratsevskiy almost 11 years ago
А какой смысл в screen выводить заряд батареи? Сложно себе представить сервер, работающий автономно. Если же брать работу в ноутбуке, то в дизайне рабочего стола кальки есть верхняя строка, отображающая различного рода информацию, например время (по желанию дату), туда же можно вывести и загруженность процессора, своп и заряд батареи.
Updated by Михаил Гагауз almost 11 years ago
Alexander Tratsevskiy wrote:
А какой смысл в screen выводить заряд батареи? ...
Заряд батареи выводится только если батарея присутствует.
Заряд батареи занимает МАКСИМУМ 7 символов (+100.0%
)
Да, на верхней панели есть заряд батареи, но он обычно находится вне поля зрения.
Работая-же в консоли - взгляд обычно устремлен на вывод последней команды и набираемую новую команду.
Таким образом - основные показатели всегда находятся в поле зрения и видны периферийным зрением.
Я даже думал перенести часы и основные показатели влево, непосредственно под приглашение терминала, чтоб показатели были все время в поле зрения.
Но для большинства пользователей это будет выглядеть неудобно.
Еще со времен 9х винды пользователь привык видеть "часики и батарейку" в правом углу (не важно - нижнем, или у некоторых в верхнем). Это также сказалось в дизайне и *NIX-овых DE.
Updated by Alexander Tratsevskiy almost 11 years ago
В чём проблема собственно, не проворонить заряд аккумулятора? Для этого можно сделать звуковое уведомление при разном заряде, что угодно в общем-то средствами любого скрипта. Какой смысл для этого подключать видимую область экрана терминала?
Пользователь кальки за 7 лет привык, что вся информация выводится в верхней части экрана, панелька нескрываемая, каким образом информация может выйти из поля зрения представить сложно. Кстати, размер шрифта в часах такой, чтобы он оставался видимым с расстояния не менее 2 метров. Это также учитывается.
Updated by Victor Siman'kin almost 11 years ago
Михаил Гагауз wrote:
Андрей Сеник wrote:
Михаил, если заменить
[...]
на
[...]
Пропадают "черные" артефакты в mc, menuconfig и так далее ncurces-basedПоработал какое-то время с такой заменой.
Артефакты вmenuconfig
пропали (вmc
у меня кальковская прозрачная тема, так что таких проблем нет), но появилась другая проблема -mc
некорректно реагирует на хоткеи.
Думаю артефакты в ncurses-based софте меньшее из зол и лучше оставитьterm xterm-256color
Точно, проблема с хоткеями в mc
есть.
Но, народ, не поверите, term vt100
решает обе проблемы!
Updated by Михаил Гагауз almost 11 years ago
Victor Siman'kin wrote:
...
Точно, проблема с хоткеями вmc
есть.
Но, народ, не поверите,term vt100
решает обе проблемы!
Пробовал варианты сterm vt100-256color
иterm vt100
в mc
<Shift>+<F6>
предлагает удалить вместо переименования<Shift>+<F5>
никак не реагирует, хотя должен предложить перемещение с переименованием
Updated by Victor Siman'kin almost 11 years ago
Михаил Гагауз wrote:
в
mc
<Shift>+<F6>
предлагает удалить вместо переименования
<Shift>+<F5>
никак не реагирует, хотя должен предложить перемещение с переименованием
Ну знаете, это придирки уже какие-то, т.к. <Shift>+<F6>
идентичен <F6>
, а <Shift>+<F5>
— <F5>
А вообще нашёл другой, устраивающий меня (и вас) вариант — вместо xterm-256color использовать xterm-color (без 256).
Работает и указанное вами, и НЕ указанное <Shift>+<F4>
— редактирование нового файла.
xterm-color устроил по всем параметрам.
Рекомендую устанавливать по-умолчанию.