This is the awesome WM config I have
fined-tuned for my daily use. I am currently running it on awesome
v4.2 on Debian tesing (buster), using work
and work_thinkpad
profile.
Use tiling for long-lived windows (for writing, programing or reading etc), while floating for temporary windows (dialogs, file manager, IM, settings etc). Based on that idea:
- All windows are initially floating, and
- Floating windows are always "on top", thus in front of tiling windows
Use tags (a.k.a., workspaces, virtual desktops) to group windows related to the same task. A tag's name should reflect the task, thus should be able to easily changed.
- Make a key binding for changing the tag name in-place.
The interface should be clean while informative and functional.
- Only show the traditional top titlebar with window title text on floating windows.
- The color scheme is designed to best highlight the focus window, and build a strong visual connection between it and its task bar entry.
- Use a bottom bar at an extension to the border, which enhances the highlighting for the focus, and also serves as a more natural resizing handle than the top title bar.
Most essential functionality should be easily accessible from both keyboard and mouse.
- Provide both menu entries and shortcuts for most actions, e.g., launching the terminal and browser, changing the layout etc.
- Allow moving and resizing windows with keyboard only.
- Re-assign window-switching bindings from
Mod-J/K
toMod-A/S
to allow single-handed operation.
Responses to user inputs should be deterministic.
- Avoid toggle-style key-bindings. For example, assign separate bindings for floating and or tiling a window, instead of assign one key to toggle floating state.
- Self-contained: doesn't use any third-party awesome extensions.
- Support multiple profiles that let me have small tweaks (theming,
autostarts etc) on my differnt machines. Use
switch_profile.sh {work|work_thinkpad}
to swich between profiles. - Randomized wallpaper (link
~/.config/awesome/runtime/wallpapers
to where the wallpapers are).
It uses the following applications / packages:
- compton as the compositer
- urxvt as the terminal emulator (
Mod+Enter
) - xfce4-panel to display the notification icons, because GTK+2 applications may crash with awesome's systray. I also have a window list on it that only shows minimized windows, because I made the wibar (on the top) skip them.
- xfce4-power-manager for the battery icon on laptops. Also provides backlight adjustment.
- slock for screen lock (
Mod+F12
) - xss-lock for locking screen at idleness and when lid closes
- python-gtk2 for the quick search dialog (
Mod+F10
) - ibus for Chinese input (
Mod+Space
) - thunar as the file manager (
Mod+]
) - Google Chrome as the web browser (
Mod+\
) - redshift for adjusting color temperature
- feh for setting the wallpaper
Clone the repository to ~/.config/awesome
:
$ cd ~/.config
$ git clone https://github.com/zhangkun83/awesome-config.git awesome
Choose between the work
and the home
profile:
$ cd ~/.config/awesome
$ ./switch_profile.sh home
Set up awesome.sh
as the awesome startup script:
$ sudo cp ~/.config/awesome/awesome.sh /usr/local/bin
$ sudo chmod a+rx /usr/local/bin/awesome.sh
To add desktop menu entry in display manager, create
/usr/share/xsessions/awesome-local.desktop
:
[Desktop Entry]
Encoding=UTF-8
Name=awesome-local
Comment=Highly configurable framework window manager
TryExec=/usr/local/bin/awesome.sh
Exec=/usr/local/bin/awesome.sh
Type=Application
To set up environment variables, put it in ~/.xsessionrc
, e.g.:
export PATH=$HOME/bin:$HOME/.emacs.d/bin:$PATH
CLUTTER_IM_MODULE=ibus
QT4_IM_MODULE=ibus
GTK_IM_MODULE=ibus
Current color scheme works best with HighContrast GTK theme. Use it
for the key gtk-theme-name
in both ~/.gtkrc-2.0
and
~/.config/gtk-3.0/settings.ini
.
(Optional) link the wallpaper directory as the source of randomized wallpapers. If you skip this step,
the default wallpaper will be used. A wallpaper can be either a tile image or full-screen image. If
the file name ends with -tile
, like cats-tile.png
, it will be used as a tile image.
$ ln -s ~/Pictures/wallpapers ~/.config/awesome/runtime/wallpapers
lightdm starts its own nm-applet instance and leave it running
even after login. That nm-applet is usually inoperable due to
permission issues. To get rid of it, put an executable file under
/etc/lightdm/post-login.d
with the following content:
#!/bin/bash
killall -u lightdm nm-applet
The "max" layout. One window at a time. Stay focused.
The "vertical split" layout. Useful when looking at two or more windows at the same time. One floating window is shown here, usually for transient tasks.
The "floating" layout. Best for applications that have many windows.
Windows have "ontop" (Mod-F
) set have visible side borders, while normal
windows do not.