Часики для консоли
Всем хороша консоль, кроме одной мелочи - часиков, которые всегда перед глазами. Средствами zsh можно кое-что придумать - время будет отображаться в командной строке в правой части экрана. И обновляться не в realtime, а лишь после ввода очередной команды. Причем старые показания не стираются - уже прошедшие времена медленно "возносятся" вверх по скроллингу... Это категорически неуклюже и к тому же некрасиво.
Когда-то давно нарыл такую простенькую утилитку - smartclock. Удобные часики в правом верхнем углу, кушать не просят, запускать можно через init-скрипты. Одно время ею пользовался. Сейчас посмотрел по Сети и вижу, что память об этой утилитке почти стерлась. Но, как говорится, "рукописи не горят" ;-)) Посему, пусть лежит тут.
Пару ньюансов.
Во-первых, скачав, переименовать в smartclock-0.1.0.tgz. Затем скомпилить командой make, кинуть куда-нибудь в пути (в /usr/bin к примеру), опционально - прописать в /etc/rc.d/rc.local для запуска при загрузке системы.
Во-вторых, работает утилитка только в нативной консоли (и текстовой, и в framebuffer) - в иксовых (xterm, konsole итп) часики отображаться не будут.
В-третьих, может "съезжать" прокрутка (которая по PageUp/PageDown) - лечится это, увы, только по killall -9 smartclock с последущим, при дальнейшей надобности, запуском.
В-четвертых, утиль использует устройства памяти виртуальной консоли vcs и vcsa, которые у вас могут быть реализованы иначе, чем предполагает утилитка. Поэтому, если при запуске выдаст нечто типа /dev/vcsa0: No such file or directory, то тогда немного подрихтуем исходнички. Сначала смотрим в /dev/, как они реализованы в вашей системе: либо они в отдельном подкаталоге, либо в виде /dev/vcsa и /dev/vcsa, либо присутствует только одна из. Далее, лезем в smartclock.c[/b] в район 99-й строки и находим там строки:
static const char VCS_NAME[] = "/dev/vcs0"; static const char VCSA_NAME[] = "/dev/vcsa0";
и в зависимости от ситуации - соответственно, либо меняем пути на правильные, либо исправляем имена, либо вместо разных /dev/vcsa и /dev/vcsa и там и там ставим то что есть.
Компилим, проверяем, радуемся ;-))
| Вложение | Размер |
|---|---|
| smartclock-0.1.0.tgz_.pdf | 9.09 кб |
- 1947 просмотров
Страница для печати

а может все-таки юзать screen?
??
Причем тут screen??
в caption screen можно вставить часики
вот тут например самая нижняя строчка это screen. слева строки часы и дата
http://linsovet.com/vim-external-clipboard-paste
вот тут пример есть
http://linsovet.com/screen-status-line
caption always "%?%F%{-b}%:%{-b}%?%C|%D|%M %d|%H%?%F%{+u}%? %L=%-Lw%45>%{+b}%n%f* %t%{-}%+Lw%-0<"Да, неплохой вариант со скрином - согласен. В свое время именно в скрине не доискал, видимо %-))
часики в zsh можно и попросить обновлятся:
schedprompt() { emulate -L zsh zmodload -i zsh/sched # Remove existing event, so that multiple calls to # "schedprompt" work OK. (You could put one in precmd to push # the timer 30 seconds into the future, for example.) integer i=${"${(@)zsh_scheduled_events#*:*:}"[(I)schedprompt]} (( i )) && sched -$i # Test that zle is running before calling the widget (recommended # to avoid error messages). # Otherwise it updates on entry to zle, so there's no loss. zle && zle reset-prompt # This ensures we're not too far off the start of the minute sched +30 schedprompt } # и где нибуть вызвать schedpromptи стиратся при вводе команды.
правда мне оказалось не удобным:
1. если смотришь историю терминала по shift-pgup то обновление часов сбивает обратно на последнюю строку
2. иногда удобно знать в котором часу я последний раз в этой консоли был, и тогда лучше что бы часы не обновлялись самостоятельно.
хотя с другой стороны не затирающиеся часы мешают если копировать мышкой с консоли
PS
таки програмки лучше бросать в свой ~/bin и прописать его в PATH
пробуюююю
А мне удобнее такие часики иметь в zsh
export RPS1="$(print '[ %D{%A %d/%m %T }]')"
В правой стороне строки печатается текущее время (на момент появления данной строки)ю Поэтому для того чтобы узнать текущее время достаточно нажать enter. Кроме того можно таким образом засекать время когда запущенны комманды.
А т.к. эти часики выводятся за раз, то они не кушают процессорное время и не ломают прокрутку и пр.
Отправить комментарий