Awesome

The awesome window manager lives up to its name. It is an awesome window manager, and I really enjoyed using it for like 2 to 3 years!

The Glorious Dotfiles

My awesome config is basically the floppy theme from the glorious dotfiles. Quite an elaborate setup, closer to an actual desktop environment than a window manager. They are unfortunately deprecated since 2020 (so already have been when I started using it - I guess I was hoping ^^).

I’m not gonna do a complete documentation on them here, that’d be a lot of work. Instead, check out the original wiki.

My Changes

Among others, my changes include:

  • fixed an issue resulting from a newer Lua version, see here
  • made left sidebar hideable (and hidden by default), moving the tag-list to the top bar
  • using Charitable to imitate the way multiple monitors are handled in xmonad
  • changing a couple icons to the Flat-Remix icon theme
  • changing the rofi appmenu to the one from https://github.com/elenapan/dotfiles
  • using pywal for wallpapers and colorscheme
  • added variable to config.lua to make different settings for my two machines possible
  • just general customization of tags and stuff

Two different Setups

In order to have different configs on my desktop (“One”) and laptop (“IdeaPad”) like showing/hiding the battery status etc., there is a variable in the file awesome/configuration/config.lua that needs to be set. To have this variable change (and other private options) not synced to my Github, this file is put in .gitignore, and a template file awesome/configuration/config.lua.template is provided instead. So what you gotta do is:

mv awesome/configuration/config.lua.template awesome/configuration/config.lua

Then configure the variable system in awesome/configuration/config.lua to the one you want:

  • If you want the desktop config: set system = One (default)
  • If you want the laptop config: set system = Ideapad

Also configure the other variables in that file, like username, email, OpenWeather API key, etc.

Planned Changes

I also had a bunch of other changes planned that I never had the time to implement:

  • more configuration of the side bar menu, to do things like moving windows between tags etc. from a touchscreen
  • make window titlebars toggleable - I kinda started doing it, but right now if you disable them and open a new window, it’s gonna have them enabled again and it’s a whole mess
  • configure Desktop right-click menu, possibly as an app launcher for touchscreen
  • add list of running programs to statusbar (e.g. for unminimizing windows through the GUI)

Dependencies

Also mostly taken from here, but some things were added/removed for this config.

Required dependencies:

NameDescriptionWhy/Where is it needed?
awesomeHighly configurable framework window managerMain component
rofiWindow switcher, application launcher and dmenu replacementapplication launcher
picomA compositor for X11transparency and blur (specifically kawase-blur)
inter-fontA typeface specially designed for user interfacesSetup font
charitableShared tags library for multiple monitors using AwesomeWMmakes multimonitor work like in xmonad

Optional dependencies:

NameDescriptionWill be used by
light-gitRandR-based backlight control applicationBrightness widget and OSD
alsa-utils, pulseaudio, pulseaudio-alsaAn alternative implementation of Linux sound supportVolume widget and OSD
acpi, acpid, acpi_callShow battery status and other ACPI infoPower/Battery Widgets. No need for this if you’re not using a laptop
mpdServer-side application for playing musicMusic widget
mpcMinimalist command line interface to MPDMusic widget
maimMake imageScreenshot tool
fehImage viewer and wallpaper setterScreenshot previews, wallpapers
xclipCommand line interface to the X11 clipboardWill be used in saving the screenshots to clipboard
xpropProperty displayer for XCustom titlebars for each client
imagemagickAn image viewing/manipulation programMusic widget/Extracts hardcoded album cover from songs
bluemanManages bluetoothdefault launch application for bluetooth widget
redshiftSets color temperature of display according to time of dayBlue light widget
xfce4-power-managerManages powerdefault launch application for battery widget
upowerupower - UPower command line toolBattery widget
noto-fonts-emojiGoogle Noto emoji fontsEmoji support for notification center
FantasqueSansMono Nerd FontPatched font FantasqueSansMono from the nerd-fonts libraryRofi unicode font
xdg-user-dirsManage user directories like ~/Desktop and ~/Musicxdg-folders widget
iproute2, iwManage network connectionNetwork widget
ffmpegComplete solution to record, convert and stream audio and videoScreen Recorder Widget
pywalgenerates a color palette from the dominant colors in an imagetheme terminals, emacs, etc. with colors of wallpaper
Flat-Remixicon theme inspired by material designicons in multiple places

Reasons why I switched

Even though I really liked awesome, I switched to qtile in 2024. Here’s a short summary why:

  • I wanted to change a bunch of things, and doing so in this big elaborate config that I didn’t properly document and didn’t really fully remember the structure of seemed daunting. So I wanted to start over with a config of my own.
  • I know a little bit of Python, but the tiny bit of Lua I know I learned from configuring this in 2021 or something. So switching to a window manager where I can use python seemed simpler.
  • Qtile also just seemed simpler in general, making a more clear and minimal config possible (though maybe I am biased by using a big awesome config I didn’t fully understand).
  • I discovered the widget system eww, which I wanted to switch to, especially for touch screen stuff (still a big work in progress ^^). So I didn’t need the broad widgeting capabilities of awesome anymore.
  • Awesome has no plans to be ported to Wayland, whereas qtile already has a Wayland version. (This is a very minor reason for me though. At the time of writing this, I’m using qtile on X11.)