awesomewm
skip commit historyREADME.md
whims
window manager configuration(s) visually based on bitmaps and the dynamic island.
awesomewm
| dependencies | ||
|---|---|---|
| awesomewm-git | required | |
| xinhaoyuan/layout-machi | submodule | a manual layout with a rapid interactive editor |
| wezterm | recommended | preferred terminal; displays bitmap fonts well |
| picom | recommended | x11 compositor required for animation and transparency |
| xsettingsd | optional | xsettings daemon used to swap gtk themes |
| playerctl | optional | library used to control media players |
installation
install dependencies with preferred package manager.
yay -S awesome-git
clone repository and submodules.
mv $HOME/.config/awesome $HOME/.config/awesome-$(date +%Y%m%d%H%M)
git clone https://git.sr.ht/~mmmeon/whims --branch awesomewm --single-branch ~/.config/awesome
cd ~/.config/awesome
git submodule init && git submodule update
duplicate environment examples.
cd ~/.config/awesome/config/env
cp env.sh.example env.sh && chmod +x env.sh
cp init.lua.example init.lua
configure environment.
env table in env/init.lua
| variable | description |
|---|---|
| terminal | command to launch primary terminal emulator |
| theme | theme from themes directory |
| filesystem.wallpaper | path to default wallpaper |
| filesystem.wallpapers | path to wallpaper directory for random wallpaper selection |
| filesystem.screenshots | path to directory containing screenshots |
| filesystem.redisplay | nvidia only: replacement for the bundled signals/redisplay.sh |
| filesystem.screen_snapshots | path for removed-screen snapshots (default /tmp/awesome-$USER/screens), false to keep them for restarts only |
env.sh
autostart program via run "PROGRAM"
documentation
- displays, restarts and state: restart tidy-up, monitor hotplug, what survives a restart
- theme hot reload: live colorscheme switching
tests
stubbed tests for the parts that can run outside awesome (tag state, signal scripts, log, display tidy-up). needs lua 5.4.
tests/run.sh # everything
tests/run.sh tags_state # one test by name











awesomewm is a window manager framework with a widget system. using lua, i have configured awesomewm to a enjoyable and minimally viable desktop environment. my configuration currently supports multiple monitors, spaces, tiling & floating window management, media control, notifications, system tray and some small utilities.
the original plan was to have most elements attached to the menubar at the bottom of the screen, like notifications and control panel.
i've since been inspired by the dynamic island on ios. currently changing the menubar to become similarly small, expandable and contextual.
i run this window manager on multiple devices. a desktop, which is often connected to a 27" (2560x1440) display, and a laptop with a 13" (2256x1504) display. i don't have a steam deck, but that has a 7.4" (1280x800) screen.
are.na ✶ ✶ private

