logo

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

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

Информация о батарее в GNU screen и другие прелести hardstatus

Прочел на хабре заметку про вашего мальчика о zshтынц про размещение заряда батарее в правом приглашении.
Всё бы ничего, но не стоит забывать что для того что бы увидеть заряд батарее надо сделать какое-либо действие что бы отобразилось новое приглашение. Да и с отображением времени в строках приглашения дела обстоят аналогичным образом. Это несколько напрягает когда мы не часто в консоли что-то выполняем...

Но сама идея полезная, и используется мною с тех пор как у меня появился ноутбук. Посему хочу рассказать о своей красноглазой реализации отображения информации об аккумуляторе в консоли. Реализовано всё через GNU Screen и его статусную строку.
Добавляем в конфиг скрина backtick 1 60 60 /путь/к/скрипту (жирным выделен номер команды), а в приглянувшееся место hardstatus или caption добавляем номер команды %1`. Вот, к примеру, мой скрипт писанный судя по дате изменения пару лет назад и до сих пор верно несущий службу
#/bin/sh

#определяем цвета
GREEN="\005{+b d.}"
YELLOW="\005{+b d.}"
RED="\005{+Bb r}"
CLEAN="\005{-Bb d.}"

#определяем номер батарее
BT=1

# ну  и определение и разкраска текущего состояния
REM=`grep 'remaining capacity' /proc/acpi/battery/BAT${BT}/state | awk '{print $3}'`
LAST=`grep 'last full' /proc/acpi/battery/BAT${BT}/info |awk '{print $4}'`

ADAPTERSTATUS=`cat /proc/acpi/ac_adapter/ADP${BT}/state | grep 'state' | awk '{ print $2 }'`
if [ $ADAPTERSTATUS = "on-line" ]
then 
    BATCURRENT=$(echo $REM $LAST | awk '{printf "%d%%", ($1/$2)*100'})
    POWERLINE=$(echo "${GREEN}AC: $BATCURRENT$CLEAN")
else
    PRESENT=`grep 'present rate' /proc/acpi/battery/BAT1/state | awk '{print $3}'`
    BATCURRENT=$(echo $REM $LAST $PRESENT | awk '{printf "%d", ($1/$2)*100}')
    BATLEFT=$(echo $REM $LAST $PRESENT | awk '{printf "%d", ($1/$3)*60}')
    if [ $BATCURRENT -ge 40 ]
    then
        POWERLINE=$(echo "${GREEN}Battery: $BATCURRENT%$CLEAN")
    fi
    if [ $BATCURRENT -le 39 ]
    then
        if [ $BATCURRENT -ge 20 ]
        then
            POWERLINE=$(echo "${YELLOW}Battery: $BATCURRENT%$CLEAN")
        fi    
    fi
    if [ $BATCURRENT -le 19 ]
    then
        POWERLINE=$(echo "${RED}Battery: $BATCURRENT%$CLEAN")
    fi
fi
# собсвтенно сам вывод
echo -e "$POWERLINE "

Если будите использовать тот скрипт что приведен на хабре не забывайте что цвета для screen несколько иначе определяются и используйте echo -e.
Вообще, в hardstatus или caption скрина можно выводить что угодно, о чем я непрестанно всем напоминаю. Даже неоднократно писал в блог об этом, например:Так же можно выводить иксовую раскладку клавиатуры (к примеру через skbbacktick 1 0 0 skb), текущую композицию в mpd (в гит ветке скрина с руским языком при выводе в статус наконец всё в порядке), последние события из /var/log/messages.log, да в общем всё что душе угодно, ибо в этом плане screen очень похож на dzen2.

Интересно, а как в tmux обстоят с этим дела? Что-то я видел там про status-left/-right, но все лениво его опробовать в бою (слишком уж привык к скрину), хотя сегодня увидел на линсовете конфиг тмукса с клавишами скрина — надеюсь это поспособствует мне в его изучении.

tyrs — консольный twitter

tirs —  консольный клиент для twitter/idenci.caДа не просто чернь консольная, а вполне себе tui с управлением хоткеями и полным набором твитераста: tweets, retweets, follow, unfollow, mentions, direct, поиск, ветки сообщений, поддержка сокращения ссылок и прочее.

При первом запуске tyrs нас просят добавлять аккаунт (помимо twitter поддерживается ещё и identi.ca, можно использовать несколько профилей/аккаунтов запуская tyrs как tyrs -a профиль).
После его добавления мы сразу же видим симпатичный home timeline. Сверху справа видны количества непрочитанных, а снизу краткая подсказка по использованию которой более чем достаточно, ибо в хелпе всё описано, но сходу все сочетания запомнить сложновато, да и писано всё там на басурманском наречии.
Краткий список сочетаний (заодно дающий представления о возможностях tyrs):
k (),j () — передвижение вверх и вниз по твитам
— передвижение влево-вправо (по вкладкам home, mentions, direct, search, user...)
t — открывает форму написания твита (esc закрывает форму, enter отправляет)
M — ответить на твит
r— ретвит активного твита (R ретвит с редактированием)
T — просмотр ветки сообщений (если твит является ответом, то он отмечен конвертиком )
s — поиск твитов
U — поиск пользователя
f — подписаться на текущего (follow), F выводит форму ввода логина для подписки, логин можно вводить без @
l — unfollow, L так же выводит форму
с — отчистить timeline, C удаляет текущий твит
u — обновить timeline
o — открыть ссылку из твита
q — выйти
Мне этих сочетаний хватает, хотя я по большей части читатель, но есть и другие — для просмотра аватарки, для управления закладками.

На сайте проекта описаны все параметры конфига ~/.config/tyrs/tyrs.cfg коий довольно прости и позволяет изменить внешний вид (рамки, цвета, шаблон шапки твита, etc), клавиатурные сочетания, фильтрацию твитов, используемый браузер и просмотрщик картинок... Документация по программе на уровне — man'а нет, зато на сайте всё расписано подробно и понятно даже с моим некудышным знанием английского.

Все это дело написано на python.

Хотите скриншотов? их есть у меня!
Ищите в магазинах вашего города репозиториях вашего дистрибутива. У арчеводов сия прелесть есть в AUR'e.

Домашняя страница клиента

ps. не мог не подкинуть ложку дегтя: tyrs периодически падает :(

В agetty появился автологин

Я уже писал об автологине в linux, там была упомянута замена «стандартной» для linux утилиты agetty для доступа виртуальным терминалам (tty).
Замена носила имя mingetty и позволяла не просто выполняет запрос имени пользователя и запуск login для авторизации, но и позволяла сразу указать пользователя для автоматического входа.
Сегодня LOR порадовал новостью о выходи util-linux где возможности mingetty были добавлены в agetty, в частности автологин.

Мелочь, а приятно... остальные, возможно более значительные измениния, прошли мимо меня.
Ну, разве что в fdisk диалоги обновили...

xatk — динамические хоткеи для переключения окон

xatk — динамические хоткеи для переключения оконВ комментариях к записи о переключении окон с помощью dmenu Slava упомянул о своем проекте xatk.
Идея приложения заключается в том что бы задавать сочетание клавиш каждому окну для переключения на него. По умолчанию хоткей пишется в заголовке окна, имеется возможность задавать группы окон, перемещаться на другой рабочий стол к приложению или перемещать приложение на текущий, поддержка клавиатурной раскладки QWERTY и Dvorak для лучшей генерации сочетаний...
Самое главное что сочетания генерирующиеся для переключения на окно вполне понятны — к примеру, у меня сейчас запущено два приложения имеющих окна — firefox и geany, доступ к ним по-умолчанию Mod4-f и Mod4-g соответственно (естественно что модификатор Mod4 можно заменить на что-то другое). Если добавляется ещё одно окно фаерфокса то можно переключаться между ними тем же Mod4-f как будто через Alt-Tab.
И несмотря на кажущуюся сложность возникшую у меня при прочтении документации всё оказалось проще пареной репы, и за несколько часов использования я уже привык переключаться так между окнами и не представляю как я управлялся с окнами без xatk — воистину всё гениальное просто...

В общем не буду расписывать возможности и метод работы, ибо автор уже сам описал всё это в подробностях. А запись сия в блоге только для того что бы разрекламировать приложение, которое у многих не любителей мыши может попасть в разряд must have

Для арчеводов выложил в AUR PKGBUILD

Переключение окон c помощью dmenu

В одной из бесчисленных тем на LOR'е углядел скрипт для переключения окон с помощью wmctrl и dmenu, немного поправил и, повесив вызов на хоткей, стал использовать по прямому назначению как дополнение к Alt-Tab'у

Вот сам скрипт
#!/bin/sh

BG="#737373" 
FG="#e7e3e7" 
FONT='-xos4-terminus-*-*-*-*-12-*-*-*-*-*-*-*'
STR='-l 20' # кол-во строк
DMENU="dmenu -fn $FONT -nb $BG -nf $FG -sb $FG -sf $BG -i $STR"

wnds=`wmctrl -l | awk '{print substr($0, index($0,$4))}'`
wrks=`wmctrl -d | awk '{print substr($0, index($0,$9))}'`

sel=`echo "$wnds
$wrks" | sort -u | $DMENU`
test -z "$sel" && exit 0
wrkid=`wmctrl -d | grep "${sel}" | awk '{print $1}'`
test $wrkid && wmctrl -s $wrkid || wmctrl -a "$sel" || exit 1
exit 0
Теоретически должно работать со всеми EWMH/NetWM совместимыми оконными менеджерами.