LINUX.ORG.RU

В релизном 4.3 нельзя сделать твою хотелку напрямую, тебе придётся "немного" подучить Lua и расковырять awful.widget.layoutbox.

В том что лежит в master давно прикрутили конструктор и твоя хотелка делается штатными средствами без плясок с бубном.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d
В том что лежит в master давно прикрутили конструктор и твоя хотелка делается штатными средствами без плясок с бубном.

Говори как, у меня осом из сорсов собранный. Могу переключить на мастер и собрать из мастера

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

Говори как

Я тебе уже скидывал ссылку на документацию по API.

Но тут я ошибся, темплейта конкретно у awful.widget.layoutbox нет.


А решается это тривиально:

local my_layout_text = wibox.widget.textbox()
local replace = { -- замена оригинального имени layout на желаемые:
	["tile"] = "[]=",
	["monocle"] = "M",
}
tag.connect_signal("property::layout", function(t)
	my_layout_text.text = replace[tostring(t.layout.name)] -- собственно, магия ☺
		and replace[tostring(t.layout.name)]
		or tostring(t.layout.name)
end)
mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от serg002

текст при наведении

Ты всегда всё делаешь наугад? С чего ты взял что в моём коде что-то про наведение?

Просто убери из панели старый виджет и вставь новый (my_layout_text).

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

Извиняюсь. Да, работает так, как надо. И даже не в мастер, а в v4.3. Спасибо!

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

Только немного некорректно работает. При старте показывает всегда [M], но если начать переключать - тогда корректно показывает []= или [M]

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

При старте показывает всегда [M], но если начать переключать - тогда корректно показывает

local my_layout_text = wibox.widget.textbox()
local replace = {
	["tile"] = "[]=",
	["monocle"] = "M",
}
tag.connect_signal("property::layout", function(t)
	my_layout_text.text = replace[tostring(t.layout.name)]
		and replace[tostring(t.layout.name)]
		or tostring(t.layout.name)
end)
tag.connect_signal("property::selected", function(t)
	if t.selected then
		my_layout_text.text = replace[tostring(t.layout.name)]
			and replace[tostring(t.layout.name)]
			or tostring(t.layout.name)
	end
end)
mord0d ★★★★★
()
Ответ на: комментарий от serg002

что почитать

Главное — для чего читать.

Без применения это чтиво быстро забудется.

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

Вообще лучше бы вместо [M] отображать [num_clients], но как это корректно сделать, хз. Вот так реагирует только при смене layout’a, но если стоишь в max, и создаешь окно - [x+1] должно быть и при килл client [x-1]

my_layout_text.text = "["..#awful.screen.focused().selected_tag:clients().."]"

как всё это корректно оформить?

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

Тебе надо делать пересчёт в manage/unmanage, смотри сигналы для client.

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