local awful = require "awful" local btns = awful.button.names local gears = require "gears" local xresources = require "beautiful.xresources" local x_col = xresources.get_current_theme() local dpi = xresources.apply_dpi local wibox = require "wibox" ---@class QuarrelVars local qvars = {} qvars.anim_duration = 0.20 qvars.anim_intro = qvars.anim_duration / 4 qvars.notif_timeout = 3 --- Clip Cairo context ---@param cr cairo_surface Cairo surface ---@param w integer Widget width ---@param h integer Widget height ---@return nil function qvars.shape(cr, w, h) gears.shape.rounded_rect(cr, w, h, dpi(4)) end qvars.border_width = dpi(1.5) qvars.padding = dpi(4) qvars.big_padding = dpi(8) -- qvars.text_font = "Fira Code Nerd Font Mono Medium" -- qvars.text_font = "Iosevka Comfy SemiBold" qvars.text_font = "Iosevka Comfy Regular" -- qvars.font_size = 8 qvars.font_size = 9 qvars.font = qvars.text_font .. " " .. qvars.font_size local char_width, char_height = wibox .widget({ widget = wibox.widget.textbox, text = "a", }) :get_preferred_size_at_dpi(awful.screen.focused().dpi) qvars.char_height = char_height qvars.char_width = char_width qvars.bar_size = dpi(24) + qvars.big_padding * 2 qvars.element_size = dpi(12) qvars.expanded_bar_size = qvars.big_padding + (qvars.big_padding * 2 + qvars.element_size * 4) * 3 + qvars.padding * 2 qvars.colors = { fg = x_col.foreground, bg = x_col.background, black = x_col.color0, red = x_col.color1, green = x_col.color2, yellow = x_col.color3, blue = x_col.color4, pink = x_col.color5, cyan = x_col.color6, white = x_col.color7, bright = { black = x_col.color8, red = x_col.color9, green = x_col.color10, yellow = x_col.color11, blue = x_col.color12, pink = x_col.color13, cyan = x_col.color14, white = x_col.color15, }, dim = { fg = "#77828c", bg = "#161b22", }, transparent = "#00000000", } -- taken from https://github.com/bew/dotfiles/blob/ab9bb1935783f7a31ef777b1d7e26d53f35df864/gui/wezterm/cfg_utils.lua qvars.mods = setmetatable({ _SHORT_MAP = { C = "Control", S = "Shift", A = "Mod1", M = "Mod4" } }, { __index = function(self, key) local resolved_mods = {} for i = 1, #key do resolved_mods[i] = self._SHORT_MAP[key:sub(i, i)] end return resolved_mods end, }) ---@enum buttons qvars.btns = { left = btns.LEFT, right = btns.RIGHT, middle = btns.MIDDLE, up = btns.SCROLL_UP, down = btns.SCROLL_DOWN, } return qvars