117 lines
3.0 KiB
Lua
117 lines
3.0 KiB
Lua
-- luacheck: globals awesome screen debug_print
|
|
pcall(require, "luarocks.loader")
|
|
|
|
local awful = require("awful")
|
|
local cyclefocus = require("cyclefocus")
|
|
local lain = require("lain")
|
|
local naughty = require("naughty")
|
|
|
|
require("awful.autofocus")
|
|
require("awful.hotkeys_popup.keys")
|
|
|
|
-- Check if awesome encountered an error during startup and fell back to
|
|
-- another config (This code will only ever execute for the fallback config)
|
|
if awesome.startup_errors then
|
|
naughty.notify({
|
|
preset = naughty.config.presets.critical,
|
|
title = "Oops, there were errors during startup!",
|
|
text = awesome.startup_errors
|
|
})
|
|
end
|
|
|
|
-- Handle runtime errors after startup
|
|
do
|
|
local in_error = false
|
|
awesome.connect_signal("debug::error", function (err)
|
|
-- Make sure we don't go into an endless error loop
|
|
if in_error then return end
|
|
|
|
in_error = true
|
|
naughty.notify({
|
|
preset = naughty.config.presets.critical,
|
|
title = "Oops, an error happened!",
|
|
text = tostring(err)
|
|
})
|
|
in_error = false
|
|
end)
|
|
end
|
|
|
|
function debug_print(...)
|
|
local str = ""
|
|
local args = {...}
|
|
for i, val in ipairs(args) do
|
|
str = str .. tostring(val) .. (i == #args and "" or "\n")
|
|
end
|
|
|
|
naughty.notify({
|
|
title = "debug",
|
|
text = str
|
|
})
|
|
end
|
|
|
|
local vars = require("modules/vars")
|
|
|
|
-- Table of layouts to cover with awful.layout.inc, order matters.
|
|
-- this HAS to be set before everything so it sets default layout properly
|
|
awful.layout.layouts = {}
|
|
for _, layout in ipairs(vars.config.layouts) do
|
|
local layoutRef = awful.layout.suit
|
|
if layout:find("^lain:") then
|
|
layoutRef = lain.layout
|
|
layout = layout:gsub("^lain:","")
|
|
end
|
|
|
|
if layout:find("%.") then
|
|
local perStart, perEnd = layout:find("%.")
|
|
local first = layout:sub(1, perStart - 1)
|
|
local second = layout:sub(perEnd + 1, #layout)
|
|
|
|
table.insert(awful.layout.layouts, layoutRef[first][second])
|
|
else
|
|
table.insert(awful.layout.layouts, layoutRef[layout])
|
|
end
|
|
end
|
|
|
|
local utils = require("modules/utils")
|
|
require("modules/theme")
|
|
require("modules/bar")
|
|
require("modules/binds")
|
|
require("modules/windows")
|
|
require("modules/titlebar")
|
|
|
|
-- cyclefocus settings
|
|
cyclefocus.move_mouse_pointer = false
|
|
cyclefocus.cycle_filters = {
|
|
function() return true end,
|
|
}
|
|
|
|
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
|
screen.connect_signal("property::geometry", utils.set_wallpaper)
|
|
|
|
-- Autostart
|
|
-- taken from: https://gitlab.com/luna/til/-/blob/main/awesome/rc.lua
|
|
awful.spawn.with_line_callback(vars.env.HOME .. "/.local/bin/autostart.sh", {
|
|
stdout = function()
|
|
--[[naughty.notify({
|
|
title = "autostart",
|
|
text = "pid: "..line.." already started",
|
|
timeout = 7,
|
|
position = "top_right"
|
|
})--]]
|
|
end,
|
|
exit = function(reason, code)
|
|
local data = {
|
|
title = "autostart exited",
|
|
text = reason .. ' ' .. code,
|
|
timeout = 4,
|
|
}
|
|
|
|
if reason ~= "exit" and code ~= 0 then
|
|
data.preset = naughty.config.presets.critical
|
|
end
|
|
|
|
naughty.notify(data)
|
|
end
|
|
})
|
|
--}}}
|