aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/insightful/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/insightful/init.lua')
-rw-r--r--.config/awesome/ui/insightful/init.lua169
1 files changed, 63 insertions, 106 deletions
diff --git a/.config/awesome/ui/insightful/init.lua b/.config/awesome/ui/insightful/init.lua
index 4ed6099..1e61046 100644
--- a/.config/awesome/ui/insightful/init.lua
+++ b/.config/awesome/ui/insightful/init.lua
@@ -1,9 +1,11 @@
local awful = require "awful"
local gtable = require "gears.table"
-local h = require "misc.helpers"
-local vars = require "misc.vars"
+local qui = require "quarrel.ui"
+local qtable = require "quarrel.table"
+local qvars = require "quarrel.vars"
local wibox = require "wibox"
local rubato = require "lib.rubato"
+local beautiful = require "beautiful"
local btn = awful.button.names
local first_time = true
@@ -14,44 +16,45 @@ local insightful = {}
insightful._toggled = false
insightful._bindings = {}
insightful._selected_group = ""
+insightful._selected_group_index = 1
insightful._keymap = {
- Control = "Control",
- Mod1 = "Alt",
+ Control = "Control",
+ Mod1 = "Alt",
ISO_Level3_Shift = "Alt Gr",
- Mod4 = "Super",
- Insert = "Insert",
- Delete = "Delete",
- Next = "Page Up",
- Prior = "Page Down",
- Left = "",
- Up = "",
- Right = "",
- Down = "",
- KP_End = "1",
- KP_Down = "#2",
- KP_Next = "#3",
- KP_Left = "#4",
- KP_Begin = "#5",
- KP_Right = "#6",
- KP_Home = "#7",
- KP_Up = "#8",
- KP_Prior = "#9",
- KP_Insert = "#0",
- KP_Delete = "#.",
- KP_Divide = "#/",
- KP_Multiply = "#*",
- KP_Subtract = "#-",
- KP_Add = "#+",
- KP_Enter = "#Enter",
- Escape = "Esc",
- Tab = "Tab",
- space = "Space",
- Return = "Enter",
- dead_acute = "´",
- dead_circumflex = "^",
- dead_grave = "`",
- XF86MonBrightnessUp = "🔆+",
+ Mod4 = "Super",
+ Insert = "Insert",
+ Delete = "Delete",
+ Next = "Page Up",
+ Prior = "Page Down",
+ Left = "",
+ Up = "",
+ Right = "",
+ Down = "",
+ KP_End = "1",
+ KP_Down = "#2",
+ KP_Next = "#3",
+ KP_Left = "#4",
+ KP_Begin = "#5",
+ KP_Right = "#6",
+ KP_Home = "#7",
+ KP_Up = "#8",
+ KP_Prior = "#9",
+ KP_Insert = "#0",
+ KP_Delete = "#.",
+ KP_Divide = "#/",
+ KP_Multiply = "#*",
+ KP_Subtract = "#-",
+ KP_Add = "#+",
+ KP_Enter = "#Enter",
+ Escape = "Esc",
+ Tab = "Tab",
+ space = "Space",
+ Return = "Enter",
+ dead_acute = "´",
+ dead_circumflex = "^",
+ dead_grave = "`",
+ XF86MonBrightnessUp = "🔆+",
XF86MonBrightnessDown = "🔅-",
XF86AudioRaiseVolume = "ﱛ",
XF86AudioLowerVolume = "ﱜ",
@@ -65,15 +68,21 @@ insightful._keymap = {
[tostring(btn.RIGHT)] = mouse .. "Right"
}
-insightful._widget = h.popup {
+insightful._widget = qui.popup {
visible = false,
ontop = true,
- placement = awful.placement.centered,
+ placement = function(d)
+ awful.placement.top(d, {
+ margins = {
+ top = beautiful.useless_gap * 2
+ }
+ })
+ end,
minimum_height = screen[1].geometry.height / 2,
minimum_width = screen[1].geometry.width / 2,
widget = {
layout = wibox.layout.fixed.vertical,
- spacing = vars.big_padding,
+ spacing = qvars.big_padding,
id = "layout_container"
}
}
@@ -97,9 +106,9 @@ function insightful:_generate()
})
end
- for group, keybinds in h.opairs(grouped_binds) do
+ for group, keybinds in qtable.opairs(grouped_binds) do
local group_layout = {
- spacing = vars.padding,
+ spacing = qvars.padding,
layout = wibox.layout.fixed.vertical
}
@@ -116,13 +125,13 @@ function insightful:_generate()
}
for _, mod in ipairs(keybind.mods) do
- table.insert(key_layout, 1, h.styled {
+ table.insert(key_layout, 1, qui.styled {
widget = wibox.container.background,
- bg = vars.colors.bright.black,
+ bg = qvars.colors.bright.black,
border_width = 0,
{
widget = wibox.container.margin,
- margins = vars.padding,
+ margins = qvars.padding,
{
widget = wibox.widget.textbox,
text = insightful._keymap[mod] or mod
@@ -154,7 +163,7 @@ function insightful:_generate()
if keybind.desc then
key_and_desc_layout[3] = {
widget = wibox.container.background,
- fg = vars.colors.dim.fg,
+ fg = qvars.colors.dim.fg,
{
widget = wibox.widget.textbox,
text = keybind.desc
@@ -171,12 +180,12 @@ function insightful:_generate()
{
{
widget = wibox.container.background,
- bg = vars.colors.yellow,
- fg = vars.colors.bg,
- shape = vars.shape,
+ bg = qvars.colors.yellow,
+ fg = qvars.colors.bg,
+ shape = qvars.shape,
{
widget = wibox.container.margin,
- margins = vars.padding,
+ margins = qvars.padding,
{
widget = wibox.widget.textbox,
text = group
@@ -187,15 +196,15 @@ function insightful:_generate()
layout = wibox.layout.align.horizontal
},
group_layout,
- spacing = vars.padding,
+ spacing = qvars.padding,
layout = wibox.layout.fixed.vertical
}
end
end
local timed = rubato.timed {
- duration = vars.anim_duration,
- intro = vars.anim_intro,
+ duration = qvars.anim_duration,
+ intro = qvars.anim_intro,
pos = 0,
subscribed = function(pos)
insightful._widget.opacity = pos
@@ -210,7 +219,7 @@ local timed = rubato.timed {
function insightful:toggle()
if first_time then
- insightful:_generate_widget()
+ insightful:_generate()
first_time = false
end
@@ -218,56 +227,4 @@ function insightful:toggle()
insightful._toggled = not insightful._toggled
end
-local function get_binding_function(trigger)
- if type(trigger) == "number" and trigger <= 5 and trigger > 0 then
- return "button"
- elseif type(trigger) == "string" then
- return "key"
- end
- error("trigger can only be a mouse button or a key", 2)
-end
-
-local function translate_binding(binding, trigger, multiple)
- local value = nil
- if multiple then
- value = trigger[2]
- trigger = trigger[1]
- end
-
- local awful_binding = {
- modifiers = binding.mods,
- [get_binding_function(trigger)] = trigger,
- on_press = multiple and function(...) binding.press(value, ...) end or binding.press
- }
-
- if binding.desc then
- awful_binding.description = binding.desc
- end
- if binding.group then
- awful_binding.group = binding.group
- end
-
- return awful[get_binding_function(trigger)](awful_binding)
-end
-
-function insightful:bind(binding)
- local awful_bindings = {}
- table.insert(self._bindings, binding)
-
- if type(binding.triggers) == "table" then
- for _, trigger in ipairs(binding.triggers) do
- table.insert(awful_bindings, translate_binding(binding, trigger, true))
- end
- elseif type(binding.triggers) == "string" or type(binding.triggers) == "number" then
- return translate_binding(binding, binding.triggers, false)
- else
- error("binding.triggers can only be a string or a table")
- end
-
- -- for some reason multi-trigger bindings only work if i do this
- -- i spent a day debugging this
- -- thanks awesome
- return gtable.join(table.unpack(awful_bindings))
-end
-
return insightful