X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/f6fe946bbfc8262fa2f1103cc5e5ff68cd61d89b..HEAD:/awesome/rc.lua diff --git a/awesome/rc.lua b/awesome/rc.lua index 9cd4481..9381277 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -1,15 +1,14 @@ --- Standard awesome library +-- Awesome libraries {{{1 gears = require("gears") awful = require("awful") awful.rules = require("awful.rules") require("awful.autofocus") --- Theme handling library beautiful = require("beautiful") --- Notification library naughty = require("naughty") menubar = require("menubar") +require("awful.remote") --- {{{ Error handling +-- 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 @@ -28,78 +27,59 @@ do naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, an error happened!", - text = err }) + text = tostring(err) }) in_error = false end) end --- }}} --- {{{ Variable definitions --- Themes define colours, icons, and wallpapers -beautiful.init(awful.util.getdir("config").."/themes/mlp/theme.lua") - --- This is used later as the default terminal and editor to run. -terminal = "urxvtc" -editor = os.getenv("EDITOR") or "vim" -editor_cmd = terminal .. " -e " .. editor - --- Tags -require("tags") --- }}} - --- {{{ Wallpaper -if beautiful.wallpaper then - for s = 1, screen.count() do - gears.wallpaper.maximized(beautiful.wallpaper, s, true) - 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 --- }}} ---Menu +-- 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") - --- Topbar require("topbar") - --- Mouse/Key Bindings -require("bindings") - --- Rules require("rules") +-- require("conky") +require("signals") --- conky -require("conky") - --- {{{ Signals --- Signal function to execute when a new client appears. -client.connect_signal("manage", function (c, startup) - -- Enable sloppy focus - c:connect_signal("mouse::enter", function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier - and awful.client.focus.filter(c) then - client.focus = c - end - end) - - if not startup then - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - awful.client.setslave(c) - - -- Put windows in a smart way, only if they does not set an initial position. - if not c.size_hints.user_position and not c.size_hints.program_position then - awful.placement.no_overlap(c) - awful.placement.no_offscreen(c) - end - end -end) - -client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) -client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) --- }}} - --- Set keys +-- Set keys {{{1 root.keys(globalkeys) --- Autostart applications -require("autostart") +-- 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 })