LINUX.ORG.RU

Сообщения unlog1c

 

Awesome с двумя мониторами

Из коробки Awesome неплохо поддерживает многодисплейную конфигурацию. Чего мне не хватало, так это удобства работы в случае когда мониторы часто отключаешь, подключаешь новые и т.д. За последних два дня я основательно перелопатил свой конфиг и реализовал поддержку таких действий с помощью нескольких модулей.

  • модуль rulez является динамической оберткой вокруг awful.rules. Позволяет не редактируя конфиг «прибивать» приложения к определенным тегам путем нажатия Mod+Q. Меня всегда напрягало вручную вписывать правила чтобы клиенты автоматически перемещались на свои теги, теперь делать это стало значительно удобнее.
  • модуль vista позволяет задавать правила для дисплеев, наподобие тех же awful.rules. Например, я иногда подключаю к ноуту вертикальный или неширокоформатный мониторы, поэтому создал правило: если ratio дисплея (width ÷ height) меньше 1.25, то рисовать панель сверху а не справа. Vista также имеет концепцию «первичного» и «вторичного» монитора, которые тоже можно определить правилами. В дальнейшем роль монитора можно использовать в rulez, например назначить Transmission на шестой тег вторичного дисплея. Если в текущий момент дисплей только один, то primary = secondary = 1, и все продолжает нормально работать.
  • Переписанные topjets теперь используют разделение view и model. Таким образом, можно создать сколько угодно виджетов для множества дисплеев, но логика и получение данных будут выполняться единожды.
  • Модуль layout является тонкой оберткой вокруг wibox.layout.*, позволяющий задавать конфигурацию виджетов в более декларативном стиле, а-ля DOM или Android XML.

Как обычно, все конфиги находятся в https://github.com/alexander-yakushev/awesomerc. Теоретически можно использовать as-is, должно заработать сразу. Нужны установленные иконки awoken.

>>> Просмотр (1366x1792, 1925 Kb)

 ,

unlog1c
()

Индикатор батареи устройств

В общем, у меня уже пару лет как созревала идея — отображать состояние батареи телефона на десктопе. Обычно приходишь домой, бросишь телефон как попало, а она разряжается. Планшетку так тем более могу пару дней в руки не брать.

Так бы оно и оставалось, если бы Аппле недавно сами не сделали такую фичу. Подумав «чем же я хуже?» я сел пилить. Хорошо, что девайсы все рутованые, поэтому поддерживают ADB по Wi-Fi (а сеть на них постоянно включена всё равно). Достаточно дергать нужные файлы в /sys/class.. через adb shell.

Результат на скриншоте. Когда заряд любого из устройств ниже 10%, появляется сообщение справа вверху. Окно справа внизу вылазит когда навести на иконку батареи.

Остальное с прошлого раза особо не менялось.

>>> Просмотр (1366x768, 1435 Kb)

 

unlog1c
()

Допилил unitybar

Именно так в итоге я назвал свой гибрид тасклиста с тэглистом. Интересующимся копаться до просветления, конкретно в файлах topjets/unitybar.lua и statusbar.lua. Эксперимент лично для меня оказался удачным, привык очень быстро; теперь экономится чуть места по вертикали, и еще удобно сразу видеть что на каком теге запущено.

Также благодарность TODD за предоставленный им настольный виджет для плеера. Я пока прилепил его к своему локальному awesompd, но когда дотестирую - отправлю в апстрим.

Скриншот с окнами (постановочный, окна обычно во весь экран).

>>> Просмотр (1366x768, 1283 Kb)

 , vertical

unlog1c
()

Awesome с вертикальной панелью

Еще с оффтопиковых времен предпочитаю вертикальный таскбар. С awesome я надолго вернулся обратно к горизонтальной панели, но сейчас решил попробовать так. Чтобы сэкономить место по вертикали (которого немного), появилась идея перенести процессор в память тасклист в теглист. Результат на скриншоте (отскейленый т.к. превышал 1.4 мб).

Поначалу было непривычно, но спустя неделю освоился.

Все остальное не изменилось с прошлого раза, только поубирал барахло с рабочего стола.

Скрин с активным окном: http://i.imgur.com/b5Y9JEz.png

>>> Просмотр (1100x619, 1225 Kb)

 

unlog1c
()

Awesome Serenity с пояснениями

После достаточно функциональных тем я решил немного дауншифтнутся и привести свой Awesome к стабильному минимально-отваливающемуся состоянию. То, что получилось, вы видите на скриншоте. Скриншотов с окнами нету, у меня и окон особо то не бывает. Вот вам скрин с эмаксом.

  • Почистил десктоп, на нем остались только календарь и процессы. Календарь тоже планирую перенести на naughty, а процессы пусть будут, удобно их оттуда убивать.
  • Разнообразия ради, обоина каждые 30 минут загружается рандомная с 4walled.cc (модуль picturesque) . Включен SFW режим. Не все гладко, попадается откровенное барахло; также на светлых обоях не видно десктопных виджетов, но мне лень это чинить. Зато есть элемент неожиданности когда открываешь пустой тег.
  • Все длительные запросы идут через asyncshell, благодаря этому нету никаких подвисаний при запросе Awesome чего-угодно с интернета.
  • Модуль dict позволяет выделить мышью любое английское слово, нажать Modkey-= и получить пояснение. Скриншот. Я использую dict.org в качестве источника, но он плоховат; если можете посоветовать онлайн-словарь с простой апишкой (и чтобы возвращался прямо текст, а не жисон какой-то) - буду благодарен.
  • Модуль iconic позволяет искать иконки для текущей icon_theme в /usr/share/icons. Этим пользуется большинство виджетов моего текущего конфига.
  • Для трея у меня есть minitray, который вызывается комбинацией клавиш и прячется ей же. Освобождает место на таскбаре (трей нужен редко).
  • Модуль quake есть аналогом guake, но средствами awesome. В качестве терминала использую табулированный urxvt.
  • Модуль scheduler объединяет повторяющиеся с определенным интервалом ивенты вместе, что уменьшает количество пробуждений CPU, которые делает awesome. Им пользуются практически все мои виджеты. Так же удобно посмотреть таблицу ивентов, выполнив «log.n(scheduler.dump_events())» в Modkey-X. Скриншот
  • Номера тегов без «ублюдочных квадратиков» (cast neocrust). Если на теге нету приложений, шрифт номера меняется на темный.
  • Интересные виджеты справа сверху:
    • awesompd
    • Погода, иконка отображает погодные условия. При наведении показывает прогноз. Если Clear, то показывает днем солнце и ночью месяц, т.к. шарит время суток через lustrous.
    • Загрузка CPU, четырехпозиционная иконка. Также температура процессора.
    • Занятость оперативки. Использовал иконки записи диска, т.к. ничего лучше не нашел.
    • Громкость, четырехпозиционная, при изменении громкости с клавиатуры/скроллинге по иконке показывает сообщение.
    • Батарея, много состояний, при наведении показывает остаточное время (или время до зарядки). Скриншот.

В итоге получилось кое-что напоминающее дефолтную панель Юнити или Гном3, чего я в принципе и добивался.

Ну и собственно сам конфиг. Я сильно не мудрил и закоммитил все из ~/.config/awesome, поэтому теоретически оно должно завестись без шаманства.

>>> Просмотр (1366x768, 1035 Kb)

 

unlog1c
()

Still pimping awesome

С прошлого раза изменилось немного. Проще по пунктам:

  • дневной/ночной режимы. По известному алгоритму высчитываю для текущего дня и заданых координат время восхода/заката, и в это время тема меняется. Меняются также gtk темы. Единственное, что не осилил - чтобы переключались темы огнелиса, ну тут уже хз что делать. Скрин ночного режима: http://i.imgur.com/za9sR.png
  • календарь (который парсит org-mode файлы) теперь интегрирован с Google Calendar. Пока только в одну сторону - события подкачиваются с гугла и преобразовываются в org.
  • с щелчком по виджету процессов открывается меню, с которого процессы можно убивать. Удобно наказывать зарвавшийся plugin-container.
  • треугольные часы для ночной темы. На**я? Не знаю.

Положения виджетов не особо хорошо подогнаны, все еще экспериментирую с обоями. С шрифтами тоже, надо наверное пересадить логи на моноширинный шрифт (правда тогда мало текста помещается).

ШГ и «двое часов» можно не писать, и так осведомлен.

>>> Просмотр (1280x800, 629 Kb)

 

unlog1c
()

Pimp my awesome

Решил показать то недоразумение, которое выполняет у меня роль рабочего стола. Итак, lo and behold. На скрине Arch Linux, последний собранный из репозитория awesome, cairo-compmgr. Всё на экране сделано через Awesome, никаких коньков.

Еще скрины:
[2] http://i.imgur.com/O9KTh.png
[3] http://i.imgur.com/J2HsF.png
[4] http://i.imgur.com/F1xfm.jpg - на десерт

Ниже будет описание скринов и из чего это всё сделано, можете дальше не читать.

Скрин 1
По центру обычные отрисованные cairo часы, под ними погода. Можно задать одно напоминание, и оно отобразится на часах голубой стрелкой, а так же в тексте под ними (и высветится сообщением, когда придет время).
Справа сверху календарь и agenda, составленная по org-mode файлу. Об этом я уже когда-то писал, но на всякий ссылка: http://awesome.naquadah.org/wiki/Orglendar_widget
Слева внизу виджет для просмотра логов. Между логами можна переключаться, а также скроллить текущий. Сделано через inotify и dbus.
Справа внизу простой виджет для просмотра наиболее ресурсопоглощающих процессов. Переключается между CPU и RAM.

Скрин 2
Строка сверху (под статусной панелью) - аналог dmenu для awesome. Парсит /usr/share/applications/ на предмет *.desktop файлов, раскидывает их по категориям и выводит в виде строки. Естественно, можно перемещаться между пунктами стрелками, заходить внутрь категории и набирать текст для фильтрации видимых приложений.
Линк: http://awesome.naquadah.org/wiki/Menubar

Скрин 3
Поскольку мне не удалось отложить из завтраков денег на SublimeText, пришлось учить Emacs новым трюкам.[/sarcasm] Нет, серьезно, за это кто-то платит деньги?
В правом верхнем углу оповещение от Awesompd, который дорос до версии 1.1. Из новых фич: обложки теперь показываются и для локальных треков (раньше было только для Jamendo-стримов), можно из меню открыть в браузере страницу исполнителя текущей песни на Jamendo, появилась поддержка клавиатурных хоткеев.
Линк: http://awesome.naquadah.org/wiki/Awesompd_widget

Скрин 4
Lightdm и unity-greeter, обернутые в скрипт, который при каждом запуске ставит фоном случайное изображение из папки.

>>> Просмотр (1280x800, 1085 Kb)

 , ,

unlog1c
()

Зарелизил awesompd 1.0

Итак, финальная версия моего mpd-виджета для Awesome. Релиз может порадовать awesome-пользователей «почти-полноценным» Jamendo-клиентом:
- можно искать музыку по исполнителю, альбому или тегу
- можно слушать Jamendo Top 100 по различному рейтингу
- добавляет в MPD как стримы с сайта Jamendo, виджет автоматически преобразовует ссылки на стримы на нормальные названия
- позволяет выбирать между двумя форматами: MP3 и Ogg Vorbis
- отображает обложку альбома для стримов с Jamendo

Работает это всё не в пример шустрее того же Rhythmbox - тут не происходит никакой подгрузки всего списка, всё делается на лету.
Помимо Jamendo-фич, конечно, awesompd является удобным виджетом для mpd - позволяет управлять плейбеком, изменять громкость, загружать плейлисты, переключаться между mpd-серверами.
Всё написано под версию awesome v.3.4.5, но должно работать и на более свежих версиях (подтверждали, что работает).
Если кого интересует, больше информации (а также инструкцию по установке) можно найти здесь: https://awesome.naquadah.org/wiki/Awesompd_widget

На скриншоте виджет вывел notification в правом верхнем углу. В Зефире открыто контекстное меню виджета.

>>> Просмотр (1280x800, 329 Kb)

 ,

unlog1c
()

Красн^WСероглазый awesome

Идея темы взята отсюда - https://awesome.naquadah.org/wiki/Nice_and_Clean_Theme . Правда автор использовал коньки, я в свою очередь переписал всю десктопную инфу на awesome'вские виджеты. Зачем? В первую очередь, для интерактивности. Если торкнуть по виджету CPU - откроется htop. Если нажать по погоде - в браузере откроется гисметео. При скроллинге по календарю меняются месяцы.

Отвечу сразу на обычный вопрос: да, двое часов, и два источника загрузки CPU/памяти. На те, что в статусбаре, смотрю, когда рабочего стола не видно. На другие - когда компьютер простивает.

Из интересных фич:

1) Иконки быстрого запуского в статусбаре - https://awesome.naquadah.org/wiki/Quick_launch_bar_widget . Не особо пользуюсь, но когда-то написал и теперь жалко убирать.

2) Эти иконки, а так же иконки приложений на ходу grayscale'ятся - чтобы поддерживать целостность темы.

3) TODO-лист делается из org-файлов. По им же выделяются дни в календаре. Подробнее тут - https://awesome.naquadah.org/wiki/Orglendar_widget .

>>> Просмотр (1280x1600, 1048 Kb)

 

unlog1c
()

Аскетичный awesome

На первой части десктоп, на втором - собственно, процесс работы. Работаю так уже полгода, пока не испытывал никаких неудобств.

Система Debian + чистый awesome, без никакого DE.

Conky

Обоина динамическая, xplanet со скриптом для декорации xplanetFX.

>>> Просмотр (1280x1600, 882 Kb)

 ,

unlog1c
()

RSS подписка на новые темы