LINUX.ORG.RU

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

 


19

3
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)

★★★

Проверено: JB ()

Красиво, стильно, минималистично.

bulatus ★★ ()

Ня! Только шрифт на панели замылен (я про вывод mpd).

densss ★★★ ()

Как-то пустовато, не цельно, композиция элементов тоже хромает.

mephistopheles ()

Скриншотов с окнами нету, у меня и окон особо то не бывает.

Тебе компьютер нужен чтобы смотреть на обоину или я чего не так понял?

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

Ну не показывать же файловый менеджер и смотрелку картинок.

olibjerd ★★★★★ ()

Два чана с чаем этому господину
*ушёл разбираться с конфигами*

najlus ★★★★★ ()

Номера тегов без «ублюдочных квадратиков» (cast neocrust). Если на теге нету приложений, шрифт номера меняется на темный.

Да, зачет =]

В целом, пойдет, но я бы все же избавился от градиентов, Awoken и шрифт тегов заменил бы.

neocrust ★★★★★ ()

а расскажите, пожалуйста, как у Вас с кучей вариантов тайлинга авесома? все используете?

bvn13 ★★★★★ ()

Зато есть элемент неожиданности когда открываешь пустой тег.

прикольно.

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

Модуль dict позволяет выделить мышью любое английское слово, нажать Modkey

вообще кайф, спасибо, пошел пилить себе такое :)

unlog1c, как ты считаешь, возможно ли для осомской панели запилить такой интерактив: http://i.imgur.com/DawqAKp.gif ?
т.е. цвет виджета (фон+текст, хотя устроил бы и просто фон) изменятся в зависимости от показаний какого-нибудь греппа откуда-то. ?

science ★★☆ ()

кстати, а не знаешь, можно ли как-то в авесомской панели сделать возле каждого тега значки открытых там приложений? наподобии мультидесктоп режима в тинте

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

можно )

 function activeram()
 	local active, total
 	for line in io.lines('/proc/meminfo') do
 		for key, value in string.gmatch(line, "(%w+):\ +(%d+).+") do
 			if key == "Active" then active = tonumber(value)
 			elseif key == "MemTotal" then total = tonumber(value) end
 		end
 	end
 	
	act = (active/total)*100
	
	if act < 50 then
 	
	return string.format("<span bgcolor='#111111'> ram: " .. "%.0f%% %f </span>",act)
		
	elseif act > 50 and act < 70 then
	return string.format(" ram: " .. "%.0f%% %f",act, act)
		
	elseif act > 70 then
	return string.format(" ram: " .. "%.0f%% %f",act, act)
	end
	
 end

при помощи <span bgcolor=> и <span color=> самое то будет, думаю.

tanner ()
Ответ на: комментарий от densss

Там моноширинный шрифт, чтобы при скроллинге текста не менялся размер, но даже не знаю какой. Попробую подобрать пристойнее.

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

Я не так выразился. В 95% случаев у меня однл окно во весь экран, а GTK-тему я с прошлого раза не менял, поэтому показывать особо нечего.

unlog1c ★★★ ()

Классная DE. Всего-то 2 месяца настройки, и мы получаем «кое-что напоминающее дефолтную панель Юнити».

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

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

unlog1c ★★★ ()

братиш, скрин и все ня, но

В итоге получилось кое-что напоминающее дефолтную панель Юнити

ты по ходу юнити не видел)

sudoer ()
Ответ на: комментарий от olibjerd

А расскажи про эмакс.

Интересует конкретно modeline? Можешь покопаться здесь: https://github.com/alexander-yakushev/.emacs.d, там в init.el есть его определение. Код жутко выглядит потому что я подгоняю полосу под разную ширину буфера (дропаю некоторые части если не хватает места и т.д.).

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

Позволю себе не согласиться: для обычного пользователя всё так же прибито гвоздями, потому что он не пойдёт править конфиги. Для программиста же, то же самое можно получить и в Юнити.

Psychiatry ()
Ответ на: комментарий от bvn13

Преимущественно флоат + окна на весь экран. Держу еще два тайлинга на всякий случай, когда нужно несколько клиентов эмакса на одном теге.

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

Можно, но я с GTK никогда не работал, а с Lua и конкретно Awesome'ом уже есть некоторый опыт. Просто выбрал то, что мне было проще и быстрее.

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

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

Дефолтные иконки из awoken-а идут 24х24, панелька тут 22. Я пробовал ставить больше - как то неуютно, привык к тонкой панели (и так 2 пикселя прибавил).

А также смущает шрифт номеров тегов - с засечками.

Ха-ха, это юникодовские цифры:) 𝟏 𝟐 𝟑 𝟒 𝟓 𝟔 . Меня пока устраивает, что они отличаются от остального текста на панели, но посмотрю альтернативу.

возможно ли

Возможно конечно, другой вопрос будет ли удобно. Меня лично такое мельтешение отвлекало бы, но на вкус и цвет. По сути делов то - создаешь wibox.widget.background(), делаешь ему set_bg, добавляешь на лейаут. Посмотри как сделано в common.list_update

Ну или как tanner написал, даже проще.

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

кстати, а не знаешь, можно ли как-то в авесомской панели сделать возле каждого тега значки открытых там приложений? наподобии мультидесктоп режима в тинте

Можно. Мне самому пришлось расковырять функцию, которая генерит виджеты тегов (смотри custom_update внизу statusbar.lua). Туда можно вписать что-угодно. Код получения значков приложений можно выдереть из awful/widget/tasklist.lua.

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

о, большое спасибо, буду пробовать. а то нагуглить как-то не вышло. дай, думаю, у знающего человека спрошу :)

actionless ★★★★ ()

Интересно, спасибо. Добавлю в закладки, чтобы если решусь на авесом вспомнить как это можно сделать.

another ★★★★ ()

Приятность то какая, блин, а я и не знал что там панель можно такую делать, ХОТЕТЬ! ТАК ЖЕ.

blogdron ()

Вот оно!

Этот скриншот как раз из тех, которые могут простимулировать меня вернуться на генту, ибо на венде ШГ лютое, и кастомности ноль; настроение ниже фарватера, а линуксы ставить лень.

Если я осилю awesome, я согласен проставиться всем участникам этого треда!

funeralismatic ★★★ ()
Ответ на: Вот оно! от funeralismatic

Если я осилю awesome, я согласен проставиться всем участникам этого треда!

Ну, я отпишусь тогда. Так, на всякий пожарный.

ТС - мегазачот. Я даже захотел попробовать авесом еще раз.

alex_the_v ★★ ()

Попытался сделать оформление панели как у вас - пропали трей и всплывающие элементы (навроде командной строки, при вызове Mod4+r). Вот перенесённый код:

theme.bg_normal       = { type = "linear",
                          from = {0,0}, to = {0,21},
                          stops = { { 0, "#444444" }, { 1, "#121312" } } }
theme.bg_focus        = { type = "linear",
                          from = {0,0}, to = {0,21},
                          stops = { { 0, "#222222" }, { 1, "#646363" } } }
Если просто прописать значения - всё работает. Не могу понять в чём причина.

И сразу вдогонку (как знающему человеку). Как конкретно можно поменять схему расположения окон (layouts) в зависимости от кол-ва окон на текущем теге?

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

Awesome использует иксовый трей, а он не поддерживает градиенты в цветах. Пропиши в теме:

theme.bg_systray = "#222222"

В случае Mod-R, тот виджет использует theme.bg_focus как цвет для своего курсора, ну и цвет курсора тоже не может быть градиентным. Чтобы вылечить, посмотри в x220.lua как у меня прописаны Win-R/X. Там нужно вручную выставить bg_cursor при запуске.

И сразу вдогонку (как знающему человеку). Как конкретно можно поменять схему расположения окон (layouts) в зависимости от кол-ва окон на текущем теге?

Тут надо покрыть два юзкейса - новое окно открылось на теге, и окно было перенесено з с другого тега. Нужно прицепиться к одному из сигналов, для первого случая это «manage» у клиента; а для второго случая можно вызывать пересчет лейаута при совершении действия (когда пользователь перенес окно на тег, это поведение прописано у тебя в rc.lua). Или можно попробовать убить обоих зайцев сразу через сигнал «arrange» у screen. Короче, надо экспериментировать какой сигнал за что отвечает.

Как использовать сигналы, можешь глянуть например в quake.lua.

unlog1c ★★★ ()
Ответ на: Вот оно! от funeralismatic

Вы, простите, используете ось для просмотра шрифтов? Ну просто странный какой-то резон для установки Linux, честное слово, мне даже «отсутствие вирусов» более понятен чем вот такие рассуждения...

t500s ★★ ()

А можно инструкцию для прапорщика, как привинтить minitray к стандартному конфигу?:-)

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

Копируешь minitray.lua себе в .config/awesome/. Делаешь в конфиге

local minitray = require("minitray")
И вешаешь на хоткей комманду minitray.toggle (смотри в x220.lua как сделано). Еще нужно будет убрать стандартный трей (иксы не позволяют иметь два трея), то есть удалить такую строку:
    if s == 1 then right_layout:add(wibox.widget.systray()) end

Учти, что все это справедливо для только awesome 3.5 и выше.

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

Ага, вот в чем дело-у меня 3.4. На нем не взлетит?

psh ★★ ()

Emacs красивый, конфиг можно?

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

Надо переписать функцию init() в minitray.lua, там по другому создается виджет и вибокс, чем в 3.4.

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

Уважаемый, Вы поймёте меня лет, эдак, через пять-семь, когда зрение от мыла в браузере и радуги в файловом менеджере падать начнёт.

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