LINUX.ORG.RU

многомониторность и window rules

 


0

1

Доброго дня господа.

Awesome, 4ре монитора, набор правил на привязку окошек (по классам) к конкретным мониторам. В стерильной ситуации всё замечательно работает.

Но в нужный мне момент я xrander'ом меняю последовательность этих самых мониторов, получая не 1->2->3->4, а, к примеру, 4->3->2->1.
И после этого вступает странное поведение(?).
Если в первом случае правила (назовём их R) были 1[R1] 2[R2] 3[R3] 4[R4], по после смены последовательности они остаются привязаны к старым «местам». Т.е. в случае с примером будет: 4[R1] 3[R2] 2[R3] 1[R4].

Вопрос: как мне сделать что бы всё было как нужно? (т.е. правила привязаны к конкретным интерфейсам)

PS: правила накидываю такой конструкцией

awful.rules.rules = {
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     focus = true,
                     keys = clientkeys,
                     buttons = clientbuttons } }
}
for s = 1, screen.count() do
    placename = "TEST" .. s
    table.insert(awful.rules.rules, {
        rule = { class = placename }, properties = { tag = tags[s][1] }
    })
end
В остальном дэфолт. Заранее благодарен.


В метаинформации у screen в осоме есть имя интерфейса(hdmi, vga ...) можешь о ним ориентироваться, если тебе так удобней

LiBer ★★★
()
Ответ на: комментарий от LiBer

Очень даже вариант.

Но судя с api, это добавили только с '3.5.x'.

Бэкпортирую/соберу свежий осом и потестирую.

Спасибо за наводку.

iu0v1
() автор топика
Ответ на: комментарий от LiBer

Увы и ах.

cat /etc/debian_version 
8.1

apt-cache show awesome | grep -i version
Version: 3.4.15-1+b1
А есть в 3.5 новые убер-фичи, ради которых стоило бы перейти и раньше? (changelog пока не читал, только спеки по api)

iu0v1
() автор топика
Ответ на: комментарий от iu0v1

Вот не могу сказать, открыл для себя awesome уже после выхода 3.5, но кажется уберфич нет, только вот такие приятные мелочи, ради которых в совокупности можно и перейти, хотя вроде динамические теги shifty интегрировали в 3.5 только и тд, но это не существенно в 3.4 они были доступны отдельно.

LiBer ★★★
()
Ответ на: комментарий от LiBer

А ты с этим самым screen'ом, часом, не сражался?

У меня тут ситуация, от которой я в замешательстве.

-- вытаскиваем имена интерфейсов отдельно, получаем ошибку (для scr):
-- 'bad argument #2 to '?' (number expected, got string)' 
for i in string.gmatch("HDMI-1 HDMI-2 DVI-D-0 DVI-I-1", "[^ ]+") do
    scr = screen[i].index
end

-- объявляем интерфейс врукопашную - никаких проблем
i = "HDMI-1"
scr = screen[i].index

Уже и типы проверял, и всякую ересь лепил. Может в курсе, в чём тут может быть дело?

iu0v1
() автор топика
Ответ на: комментарий от iu0v1

Не могу сказать конкретно по причине единственного монитора, но есть чувство, что ты делаешь что-то не то.

Вот примерно максимум, что можно выжать из осома

local dis = "LVDS1"
for s = 1, screen.count() do
    if screen[s].outputs[dis] then
        naughty.notify({ text =  dis .. " is number " .. s .. " now" })
    end
end

Worron ★★★
()
Ответ на: комментарий от iu0v1
	   for i,k in pairs(screen[mouse.screen].outputs) do
		   if (i == "HDMI1") or (i == "HDMI-0")  then
 


у меня в одном месте есть такой костыль, он работает, а на вики сказано:

Tables
screen Screen is a table where indexes are screen number.


так что наверное это странно, что у тебя из таблицы по имени интерфейса scr достается, хотя может я не увидел где эта фича описана

LiBer ★★★
()
Последнее исправление: LiBer (всего исправлений: 1)
Ответ на: комментарий от LiBer

Тебе и господину Worron спасибо за наводки.

Вопрос решил через динамическое создание тегов к screen'ам, на основе их интерфейсов и внешних правил.

iu0v1
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.