This is my awesome configuration. It does not exactly feature the same keybindings as the default configuration. I don't recommend using it by you can pick anything you need in it.
This configuration is a beta for awesome 3.5, please report any bug. Have a look at @P-EB pull request. This configuration may not be backward compatible for awesome 3.4.
I rely on machine hostname for some configuration parts (see
rc/start.lua
) for the most important part.
Here some of the things you may be interested in:
-
It is modular. I am using
config
as a table to pass different things between "modules". -
In
rc/xrun.lua
, there is axrun
function which runs a program only if it is not already running. Instead of relying on tools likeps
, it looks at the list of awesome clients and at the list of connected clients withxwininfo
. Seems reliable. -
I use a light transparency effect to tell if a window has the focus or not. It needs a composite manager.
-
I use a Python script
bin/build-wallpaper
to build the wallpaper to be displayed. There is a random selection and it works with multihead setup. It seems that classic tools are now able to change the wallpaper per screen and therefore, the script may seem a bit useless but I keep it. -
I am using
xss-lock
withi3lock
as a screensaver. It relies on standard X screensaver handling (and therefore is easy for application to disable) and also supports systemd inhibitors. Nothing fancy but I reuse the wallpaper built above. A notification is sent 10 seconds before starting. -
In
rc/apparance.lua
, you may be interested by the way I configure GTK2 and GTK3 to have an unified look. It works and it does not needgnome-control-center
. -
I have rebuilt my own implementation of the Quake console in
lib/quake.lua
. The common ones didn't like when awesome was restarted. -
I am using notifications when changing volume or brightness. I am also using notifications to change xrandr setup. This is pretty cool.
-
Keybindings are "autodocumented". See
lib/keydoc.lua
to see how this works. The list of key bindings can be accessed with Mod4 + F1. -
On the debug front, I am quite happy with
dbg()
inrc/debug.lua
.
Also, I am using my custom terminal (vbeterm
). You need to change
that in rc.lua
. You can also find the sources on
GitHub.
Things in lib/
are meant to be reused. I am using my own loadrc()
function to load modules and therefore, I prefix my modules with
vbe/
. Before reusing a module, you may want to change this. Another
way to load them is to use:
require("lib/quake")
local quake = package.loaded["vbe/quake"]