-- Awesome libraries {{{1 gears = require("gears") awful = require("awful") awful.rules = require("awful.rules") require("awful.autofocus") beautiful = require("beautiful") naughty = require("naughty") menubar = require("menubar") require("awful.remote") -- Error handling {{{1 -- 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 -- Variable definitions {{{1 -- Themes define colours, icons, font and wallpapers. local gfs = require("gears.filesystem") local theme = os.getenv("THEME") local theme_path = gfs.get_dir("config").."/themes/"..theme.."/theme.lua" if not beautiful.init(theme_path) then -- we failed to load the theme, load default instead naughty.notify({ preset = naughty.config.presets.warning, title = "Could not load theme, fallback to default", text = "theme_path = '"..theme_path.."'" }) beautiful.init(gfs.get_themes_dir() .. "default/theme.lua") end -- This is used later as the default terminal to run. terminal = os.getenv("TERMINAL") or "xterm" terminal_class = (function() local map = { urxvt = "URxvt" , urxvtc = "URxvt" , xterm = "XTerm" } return map[terminal] or terminal end)() -- Require files {{{1 require("bindings") require("tags") require("menu") require("topbar") require("rules") -- require("conky") require("signals") -- Set keys {{{1 root.keys(globalkeys) -- Autostart {{{1 local utils = require("utils") awful.spawn.once("kdeconnect-indicator") -- This seems to not keep awesome as parent of these processes utils.spawn_terminal_once("ncmpcpp", { instance = "ncmpcpp" , tag = mediatag }) utils.spawn_terminal_once("neomutt", { instance = "mutt" , tag = wwwtag }) utils.spawn_terminal_once("weechat", { instance = "weechat" , tag = imtag , function (c) awful.client.setmaster(c) end }) -- can't get this to work propery, restarting awesowe will respawn a new qutebrowser awful.spawn.single_instance("qutebrowser", { instance = "qutebrowser", tag = wwwtag })