]> git.rmz.io Git - dotfiles.git/blobdiff - awesome/rc.lua
awesome: update error handling
[dotfiles.git] / awesome / rc.lua
index b91d41cd33e3a1bf444595c2a48d7ca30faa804b..b7def3e1a9557060f88bb48673f5d6206bfa4f49 100644 (file)
@@ -1,4 +1,4 @@
--- Standard awesome library {{{1
+-- Awesome libraries {{{1
 gears = require("gears")
 awful = require("awful")
 awful.rules = require("awful.rules")
@@ -7,6 +7,7 @@ beautiful = require("beautiful")
 naughty = require("naughty")
 menubar = require("menubar")
 lain = require("lain")
+require("awful.remote")
 
 -- Error handling {{{1
 -- Check if awesome encountered an error during startup and fell back to
@@ -27,13 +28,13 @@ 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 {{{1
--- Themes define colours, icons, and wallpapers
+-- Themes define colours, icons, font and wallpapers.
 beautiful.init(awful.util.getdir("config").."/themes/mlp/theme.lua")
 
 -- This is used later as the default terminal and editor to run.
@@ -42,20 +43,28 @@ editor = os.getenv("EDITOR") or "vim"
 editor_cmd = terminal .. " -e " .. editor
 
 -- Wallpaper {{{1
-if beautiful.wallpaper then
-    for s = 1, screen.count() do
-        gears.wallpaper.maximized(beautiful.wallpaper, s, true)
+local function set_wallpaper(s)
+    -- Wallpaper
+    if beautiful.wallpaper then
+        local wallpaper = beautiful.wallpaper
+        -- If wallpaper is a function, call it with the screen
+        if type(wallpaper) == "function" then
+            wallpaper = wallpaper(s)
+        end
+        gears.wallpaper.maximized(wallpaper, s, true)
     end
 end
 
+-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
+screen.connect_signal("property::geometry", set_wallpaper)
+
 -- Require files {{{1
+require("bindings")
 require("tags")
 require("menu")
 require("topbar")
-require("bindings")
 require("rules")
-require("conky")
-require("autostart")
+-- require("conky")
 require("signals")
 
 -- Set keys