logo

muhas.ru — это просто блог…

О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»

Время в консоли

Навеено постом о времени в строке приглашения bash от diesel

Честно говоря когда-то сам был склонен к использованию сего странного явления, помню свою радость (не долгую) от того что вижу время в консоли. Честно говоря при использовании zsh я не лишен прелестей смотреть время в строке приветсвия, тем более что в zsh его можно смотреть и в правой части приглашения, но не использую его по похожим причинам:

1. Что бы увидеть точное время надо сделать какое-либо действие что бы отобразилось новое приглашение

2. Оно отвлекает от задачи, как верно подметил diesel в своей заметки «Я не буду делать вещи быстрее, если буду видеть что время неумолимо подходит к концу, более того я буду больше нервничать, а стало быть - мысли будут отвлекаться от собственно задачи.»

3. Лишние символы занимают и так столь ограниченное пространство.

4. Ну и самое для меня главное, время и дату на своих компьютерах я вижу только в сессии screen (оно у мну в правом нижнем углу) и в jabber и почтовом клиентах показывающим когда пришло-ушло сообщение, а так же на многих сайтах.

PS. если кто хочет видеть у себя время в приглашении zsh то добавьте %T в переменную PROMPT или RPROMPT, может вам в отличии от меня будет приятно видеть время в консоли.

Легкая льтернатива Yakuake и Tilda: yeahconsole

Наверное многие пользуются выпадающими консолями аля консоль из игры quake выезжающая с верху.
Самые популярные из них это Yakuake и Tilda, но у всех у них есть небольшие недостатки (хотя кто-то, возможно, онесёт их к достоинствам). Первая тянет за собой в зависимостях KDE (и если память не изменяет, в гноме или xfce вы её не запустите, по меньшей мере так было раньше), вторая же не очень быстро работает, особенно при "анимации" выпадения, а если ещё включить какой-нибудь компиз, то вываливаться эта консоль будет ужасно некрасиво.

Но всему есть достойная замена - yeahconsole. Эта маленькая и быстрая консоль конечно не так функциональна как её большие братья, но свои зачачи выполняет на отлично.
После запуска программы мы ничего не видим, зато по ControlAlt+y можно её вызвать. Конечно дефолтные чёрные пол экрана косоли не слишком красиво выгледят, да и клавиши вызова многим не привычны, к счастью всё это можно настроить. Чем собственно мы и займемся
Читать продолжение

Русская Планета Jabber

arch linux logoрусской планеты jabber перевалило на сотню. На сегодня чуть больше 130 человек читают планету по rss. Причем около половины подписчиков читают её через гуглоридер и всего 2 человека читают с помощью сервиса rss2email.

В общем медленно но верно число подписчиков увеличивается. А вот количесво жителей планеты не очень, поиск jabber-блогеров продолжается, хотя уже не так активно как при запуске планеты.

PS. Сегодня добвил на планету MYTLT.RU - Сайт публичных серверов Jabber в Тольятти

Запоздалое введение в GNU Screen

О GNU Screen я уже немного писал и даже выкладывал свой screenrc, но как оказалось этого мало - огромный (а он действительно не маленький) man читать лень, а возможности screen уже манят. Но вот как воспользоваться хотя бы основными возможностями не прибегая к этому огромному ману?

Ответ прост: начать работать в screen!

А для этого хватит и минимума, который я и хочу описать.

Запускаем screen в консоли (или любом иксовом терминале). Мы видим всю ту же консоль, но мы можем создавать в ней "табы" с помощью повторного ввода screen и запускать любое приложение в новом "табе" screen имя команд. Только вот переключение между такими "табами" будет несколько отличаться от привычных табов.

Всё управление screen сводиться к нажатию ^+a (Ctrl+a) и последующему нажатию требуемой комбинацией. К примеру, переключение между "табами" осуществляеться несколькуми способами.

^+a " двойные ковычки - попадаем в меню выбора "табов", и уже там с помощью клавиш , и enter можно выбрать необходимый "таб". Обратите внимание что нумерация "табов" начинается с нуля, к тому же нумерация позволяет переключаться между "табами" с помощью сочетания ^+a номер, к примеру, ^+a 3 переключит нас на третий "таб"(если он существует). Такой способ даёт нам быстрое переключение между первыми десятью "табами", а если их у вас больше то потребуються лишние телодвижения ^+a '(одинарная ковычка) а уж потом набираем номер "таба".

Так же между табами можно перемещаться с помощью ^+a n и ^+a p, следующий и предыдущий соответственно, хотя можно заменить "n" на пробел а "p" на backspace - но это кому как удобнее.

Новый "таб" можно создать не только с помощью команды screen, но и с помощью сочетания клавиш ^+a ^+c.

Комбинацией ^+a S[Ахтунг, т.е. внимание: сочетание клавиш в screen регистро-зависимы. т.е. S не есть к s. Но это я так, на всякий случай...] можно разбить экран на две части и переключаться между ними с помощью ^+a Tab, на самом деле можно разбить экран и на три и на четыре части(окна, региона)... но не об этом.

Если вы разобьете экран на несколько частей, то удивитесь что имя есть только у одного региона. Несомненно вы можете перейти в созданные с помощью ^+a Tab, но толку с этого будет мало, ибо вы не сможете в этих окнах что-либо делать. Помните комбинацию <^+a ^+c, которая создает новый "таб"? Именно она нам и пригодиться при попадание в пустое регион(пустую часть). Можно и не создавая попасть в уже имеющийся, с помощью всё тех же сочетаний клавиш для перехода по "табам".

Что бы закрыть всё это чудо надо либо закрывать каждый "таб" комбинацией ^+a k либо писать в каждом "табе" exit, но думаю будет лень закрывать так если окон открыто очень много, поэтому закрыть всё и выйти можно всего одной командой ^+a \.

Но самое вкусное это возможность "детатчиться", т.е. выходить из screen не останавливая проистекающие в нем действия (или, если хотите, спрятать текущую сессию от глаз пользователя), естественно, с возможностью последующего подключения к к ней. И действие сие производится сочетанием ^+a ^+d, ну подключение с помощью запуска screen с параметрами, тут уже лучше обратиться к ману (читать про параметры -d -r). Хотя лично мой любимый ключь это -DR что говорит программе screen что если сессия работает, переподключиться, и если надо, то сначала отключиться удаленно, а если сессии не было то создать новую и сообщить об этом пользователю. Про автоматическое отсоединение сессий написано в комментариях к моему screenrc

Собственно для большинства нужд этого достаточно, а для прочих можно и в man заглянуть

PS. Кстати, заголовки текущего окна можно формировать из zsh, добавив или видоизменив функцию precmd() в .zshrc добавить
print -Pn "\ek<$1> [%~]\e\\" && print -Pn "\e]0;<$1> [%~] %m (screen)\a"

Мой .screenrc с комментариями

# включаем utf8, ага
defutf8 on 
# настройка режим управления потоком окна.
defflow on  
# включает login-режим (для обновления /var/run/utmp)
deflogin on 

# выключает использование или эмуляцию hardstatus-строки терминала
# хотя можно использовать вместо caption
hardstatus off
# заголовок, о форматировании заголовка смотреть в мане
caption always ' %{-b dd}%-w%{cd}%n* %t%{-}%+w %{cd}%-=(%l) %d/%m %c%{-} '

# включаем визуальный звонок
vbell on
# сообщение для (visual bell)
vbell_msg "vbell %n" 
# сообщение если в фоновом окне bell character, ^G
bell_msg "Bell %n"
# сообщение если есть активность в наблюдаемом окне
activity "Activity on %n" 
# собственно включаем монитор активности, если off то включается командой ^a M
defmonitor on
# количество сохраненных строк
defscrollback 10000
# при копировании строки будут разделяться символами CR — LF	
crlf off 
# нахрен нам страница приветсвия
startup_message off 
# цвет фона при очистке, кстати имя терминала тоже меняется
# поэтому настройку клавиатуры zsh надо проводить отдельно
defbce on
# по умолчанию детатчится при разрыве связи с терминалом
# для работы по ssh самое оно
autodetach on
# поддержка alternate screen, типо отчистка экрана при выходе из манов и пр.
altscreen on
# как же мы без скринсейвера
idle 30 eval "screen cmatrix -f -o -u 10" "idle 0"
# вешаем ^a + на увеличение окон на 3 и ^a - на уменьшение на 1
bind + resize +3
bind - resize -1
# имя файла для чтения и записи буфера обмена, по дефолту пишет
# в /tmp/screen-exchange
bufferfile ~/.bak/screen-exchange

# дальше настройка терминала, лучше взять из своего дистрибутивного
# дефолтного screenrc, обычно они там есть.