conf2/awesome/.config/awesome/env-config.lua
2019-10-20 17:51:59 +02:00

101 lines
3.8 KiB
Lua

-----------------------------------------------------------------------------------------------------------------------
-- Environment config --
-----------------------------------------------------------------------------------------------------------------------
local awful = require("awful")
local gears = require("gears")
local beautiful = require("beautiful")
local wibox = require("wibox")
local naughty = require("naughty")
local redflat = require("redflat")
local unpack = unpack or table.unpack
-- Initialize tables and vars for module
-----------------------------------------------------------------------------------------------------------------------
local env = {}
-- Build hotkeys depended on config parameters
-----------------------------------------------------------------------------------------------------------------------
function env:init(args)
-- init vars
args = args or {}
-- environment vars
self.terminal = args.terminal or "termite"
self.editor = os.getenv("EDITOR") or "vim"
self.editor_cmd = self.terminal .. " -e " .. self.editor
self.mod = args.mod or "Mod4"
self.fm = args.fm or "nemo"
self.mail = args.mail or "thunderbird"
self.player = args.player or "mpd"
self.updates = args.updates or "bash -c 'pacman -Qu | grep -v ignored | wc -l'"
self.home = os.getenv("HOME")
self.themedir = awful.util.get_configuration_dir() .. "themes/default"
-- boolean defaults is pain
self.sloppy_focus = args.sloppy_focus or false
self.color_border_focus = args.color_border_focus or false
self.set_slave = args.set_slave == nil and true or false
self.set_center = args.set_center or false
self.desktop_autohide = args.desktop_autohide or false
-- theme setup
beautiful.init(env.themedir .. "/theme.lua")
beautiful.useless_gap = 5
-- naughty config
naughty.config.padding = beautiful.useless_gap and 2 * beautiful.useless_gap or 0
if beautiful.naughty then
naughty.config.presets.normal = redflat.util.table.merge(beautiful.naughty.base, beautiful.naughty.normal)
naughty.config.presets.critical = redflat.util.table.merge(beautiful.naughty.base, beautiful.naughty.critical)
naughty.config.presets.low = redflat.util.table.merge(beautiful.naughty.base, beautiful.naughty.low)
end
end
-- Common functions
-----------------------------------------------------------------------------------------------------------------------
-- Wallpaper setup
--------------------------------------------------------------------------------
env.wallpaper = function(s)
if beautiful.wallpaper then
if not env.desktop_autohide and awful.util.file_readable(beautiful.wallpaper) then
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
else
gears.wallpaper.set(beautiful.color and beautiful.color.bg)
end
end
end
-- Tag tooltip text generation
--------------------------------------------------------------------------------
env.tagtip = function(t)
local layname = awful.layout.getname(awful.tag.getproperty(t, "layout"))
if redflat.util.table.check(beautiful, "widget.layoutbox.name_alias") then
layname = beautiful.widget.layoutbox.name_alias[layname] or layname
end
return string.format("%s (%d apps) [%s]", t.name, #(t:clients()), layname)
end
-- Panel widgets wrapper
--------------------------------------------------------------------------------
env.wrapper = function(widget, name, buttons)
local margin = redflat.util.table.check(beautiful, "widget.wrapper")
and beautiful.widget.wrapper[name] or { 0, 0, 0, 0 }
if buttons then
widget:buttons(buttons)
end
return wibox.container.margin(widget, unpack(margin))
end
-- End
-----------------------------------------------------------------------------------------------------------------------
return env