Awesome и floating window

Иногда плавающие окна появляются за пределами видимой части экрана. Отучить их от такой пакости можно следующим образом:

Надо в

awful.hooks.arrange.register

добавить

awful.placement.no_offscreen(c)

Решение нашел на LOR.

Awesome-3.2.1

К сожалению регрессия awesome продолжается. В awesome-3.2.1 поломали еще больше полезных вещей. Вроде все это мелочи, но проблемы доставляют. Надоело прыгать между версиями 3.1.x и 3.2.x, обновил конфиг awesome. В архиве присутствует и конфиг для awesome-3.1.x.

Настройка Awesome 3.1.1

Мой новый awesome-конфиг вместе с темой и иконками.

Особенности:
– в комплекте иконки для статус-бара и тема;
– sound: текущая громкость, вкл/выкл, обновление только по событию;
– wifi: essid, уровень сигнала;
– питание: сеть или аккумулятор, оставшаяся ёмкость, обновление по событию и по таймеру;
– текущая температура ядер;
– почистил скрипт от лишнего мусора.

Awesome 3.x и выполнение lua функции из внешнего приложения

Для отображения громкости в строке статуса я регистрировал функцию в таймере, которая читает текущее значение каждую секунду: wicked.register(volumewidget, my_volume, “$1”, 1)

Это накладно. Кто то на LOR обратил мое внимание на данную проблему и я решил исправить сей недостаток.
В комплекте с awesome идет утилита awesome-client, вот ее я и решил использовать.

Итак алгоритм:

  • В ~/.config/awesome/rc.lua пишем функцию, которая читает состояние громкости и обновляет информацию в статусе.
  • При изменении громкости по хоткею (я использую x11-misc/xhkeys) вызываем нашу функцию: echo “my_volume()” | awesome-client

Естественно, что данный метод можно использовать для любых случаев, когда опрос состояния по таймеру не рационален.

Выгода от данного способа:

  1. Информация в статусе обновляется сразу, как только произошло событие.
  2. Считывание информации о громкости происходит только после прихода события, а не каждые n секунд.

Настройка Awesome 3

Для начала приведу мой конфигурационный файл для Awesome 3.

Теперь немного о настройке высоты Title-бара и Status-бара.

Titlebar

Нам нужна патченая версия библиотеки awful. У меня она расположена тут /usr/share/awesome/lib/awful.lua.

Необходимо отредактировать функцию titlebar.add(c, args) и добавить строчку “if args.height then targs.height = args.height end” как показано ниже:

    -- Built args
    local targs = {}
    -- height attribute support
    if args.height then targs.height = args.height end
    if args.fg then targs.fg = args.fg end
    if args.bg then targs.bg = args.bg end
    local tb = capi.titlebar(targs)

Теперь отредактируем функцию hook_manage(c) в конфигурационном файле (rc.lua):

    if use_titlebar then
        -- Add a titlebar
        awful.titlebar.add(c, { modkey = modkey, height = "14" })
    end

Statusbar

Тут проще, просто добавляем параметр height в строке

mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s,

должно получиться что то похожее на

mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s, height = "16",

p.s. Данный How-To я разместил и на официальной Awesome Wiki.