aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/fresnel
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/fresnel')
-rw-r--r--.config/awesome/ui/fresnel/init.lua181
1 files changed, 99 insertions, 82 deletions
diff --git a/.config/awesome/ui/fresnel/init.lua b/.config/awesome/ui/fresnel/init.lua
index f31da12..9905741 100644
--- a/.config/awesome/ui/fresnel/init.lua
+++ b/.config/awesome/ui/fresnel/init.lua
@@ -49,10 +49,10 @@ function fresnel:_update(query, scrolled)
self._entries_exec = {}
layout:reset()
-
+
for _, provider in qtable.opairs(qnative.lenses) do
local entries = provider(query)
-
+
table.sort(entries, function(a, b)
return a.message < b.message
end)
@@ -63,72 +63,76 @@ function fresnel:_update(query, scrolled)
self._entries_count = #all_providers
for i, entry in ipairs(all_providers) do
- if i <= self._entries_offset then
- goto continue
- end
- if entries_count == max_entries then break end
- table.insert(self._entries_exec, entry.exec)
+ if i > self._entries_offset then
+ if entries_count == max_entries then
+ break
+ end
+ table.insert(self._entries_exec, entry.exec)
- local entry_widget = wibox.widget {
- widget = wibox.container.background,
- shape = qvars.shape,
- {
- widget = wibox.container.margin,
- margins = qvars.padding,
+ local entry_widget = wibox.widget {
+ widget = wibox.container.background,
+ shape = qvars.shape,
{
- widget = wibox.container.constraint,
- strategy = "max",
- height = qvars.char_height,
+ widget = wibox.container.margin,
+ margins = qvars.padding,
{
+ widget = wibox.container.constraint,
+ strategy = "max",
+ height = qvars.char_height,
{
- widget = wibox.container.background,
- fg = qvars.colors.dim.fg,
+ {
+ widget = wibox.container.background,
+ fg = qvars.colors.dim.fg,
+ {
+ widget = wibox.widget.textbox,
+ text = entry.provider .. " | ",
+ },
+ },
{
widget = wibox.widget.textbox,
- text = entry.provider .. " | "
- }
+ text = entry.message,
+ },
+ spacing = qvars.padding,
+ layout = wibox.layout.fixed.horizontal,
},
- {
- widget = wibox.widget.textbox,
- text = entry.message
- },
- spacing = qvars.padding,
- layout = wibox.layout.fixed.horizontal
- }
- }
- },
- buttons = {
- awful.button {
- modifiers = {},
- button = btn.LEFT,
- on_press = function()
- self:_exec_entry(i)
- end
- }
- },
- _selected = false
- }
+ },
+ },
+ buttons = {
+ awful.button {
+ modifiers = {},
+ button = btn.LEFT,
+ on_press = function()
+ self:_exec_entry(i)
+ end,
+ },
+ },
+ _selected = false,
+ }
- if self._selected_index + self._entries_offset == i then
- entry_widget._selected = true
- entry_widget.bg = qvars.colors.black
- end
+ if self._selected_index + self._entries_offset == i then
+ entry_widget._selected = true
+ entry_widget.bg = qvars.colors.black
+ end
- entry_widget:connect_signal("mouse::enter", function()
- if entry_widget._selected == true then return end
- entry_widget.bg = qvars.colors.black
- end)
+ entry_widget:connect_signal("mouse::enter", function()
+ if entry_widget._selected == true then
+ return
+ end
+ entry_widget.bg = qvars.colors.black
+ end)
- entry_widget:connect_signal("mouse::leave", function()
- if entry_widget._selected == true then return end
- entry_widget.bg = qvars.colors.bg
- end)
+ entry_widget:connect_signal("mouse::leave", function()
+ if entry_widget._selected == true then
+ return
+ end
+ entry_widget.bg = qvars.colors.bg
+ end)
- layout:add(entry_widget)
+ layout:add(entry_widget)
- entries_count = entries_count + 1
- self._visible_entries = entries_count
- ::continue::
+ entries_count = entries_count + 1
+ self._visible_entries = entries_count
+ end
end
status.text = self._entries_offset + self._selected_index .. "/" .. self._entries_count
@@ -141,8 +145,12 @@ fresnel._prompt = al_prompt {
ul_cursor = "low",
bg_cursor = qvars.colors.black,
changed_callback = function(text)
- if fresnel._text == text then return end
- if fresnel._toggled == false then return end
+ if fresnel._text == text then
+ return
+ end
+ if fresnel._toggled == false then
+ return
+ end
fresnel:_update(text)
fresnel._text = text
end,
@@ -154,7 +162,7 @@ fresnel._prompt = al_prompt {
fresnel:hide()
elseif key == "Up" then
local next_index = fresnel._selected_index - 1
- if next_index < 1 and fresnel._entries_offset == 0 then
+ if next_index < 1 and fresnel._entries_offset == 0 then
return
elseif next_index < 1 and fresnel._entries_offset > 0 then
fresnel._entries_offset = fresnel._entries_offset - 1
@@ -165,9 +173,15 @@ fresnel._prompt = al_prompt {
fresnel:_update(fresnel._text, true)
elseif key == "Down" then
local next_index = fresnel._selected_index + 1
- if next_index > fresnel._visible_entries and fresnel._entries_offset + fresnel._visible_entries == fresnel._entries_count then
+ if
+ next_index > fresnel._visible_entries
+ and fresnel._entries_offset + fresnel._visible_entries == fresnel._entries_count
+ then
return
- elseif next_index > fresnel._visible_entries and fresnel._entries_offset + fresnel._visible_entries < fresnel._entries_count then
+ elseif
+ next_index > fresnel._visible_entries
+ and fresnel._entries_offset + fresnel._visible_entries < fresnel._entries_count
+ then
fresnel._entries_offset = fresnel._entries_offset + 1
else
fresnel._selected_index = next_index
@@ -175,7 +189,7 @@ fresnel._prompt = al_prompt {
fresnel:_update(fresnel._text, true)
end
- end
+ end,
}
fresnel._widget = qui.popup {
@@ -184,12 +198,12 @@ fresnel._widget = qui.popup {
placement = function(d)
awful.placement.top(d, {
margins = {
- top = beautiful.useless_gap * 2
- }
+ top = beautiful.useless_gap * 2,
+ },
})
end,
- minimum_width = screen[1].geometry.width / 2,
- maximum_width = screen[1].geometry.width / 2,
+ minimum_width = awful.screen.focused().geometry.width / 2,
+ maximum_width = awful.screen.focused().geometry.width / 2,
widget = {
{
widget = wibox.container.background,
@@ -202,13 +216,13 @@ fresnel._widget = qui.popup {
{
{
widget = wibox.widget.textbox,
- text = ">"
+ text = ">",
},
{
widget = wibox.container.margin,
margins = {
left = qvars.padding,
- right = qvars.padding
+ right = qvars.padding,
},
{
widget = wibox.container.constraint,
@@ -217,34 +231,37 @@ fresnel._widget = qui.popup {
{
widget = wibox.container.background,
fg = qvars.colors.fg,
- fresnel._prompt.textbox
- }
- }
+ fresnel._prompt.textbox,
+ },
+ },
},
{
widget = wibox.widget.textbox,
text = "0/0",
- id = "status"
+ id = "status",
},
- layout = wibox.layout.align.horizontal
- }
- }
+ layout = wibox.layout.align.horizontal,
+ },
+ },
},
{
widget = wibox.container.margin,
margins = {
- top = qvars.padding
+ top = qvars.padding,
},
{
spacing = qvars.padding,
layout = wibox.layout.fixed.vertical,
- id = "entry_layout"
- }
+ id = "entry_layout",
+ },
},
- layout = wibox.layout.align.vertical
- }
+ layout = wibox.layout.align.vertical,
+ },
}
-fresnel._widget.maximum_height = qvars.big_padding * 2 + (qvars.padding * 2 + qvars.char_height) * (1 + 10) + qvars.padding + qvars.padding * 9
+fresnel._widget.maximum_height = qvars.big_padding * 2
+ + (qvars.padding * 2 + qvars.char_height) * (1 + 10)
+ + qvars.padding
+ + qvars.padding * 9
function fresnel:show()
self._toggled = true
@@ -271,7 +288,7 @@ fresnel._timed = rubato.timed {
else
fresnel._widget.visible = true
end
- end
+ end,
}
return fresnel