Awesome window manager
| Home |
Table of Contents
1 Reference
man awesome
2 configuration
/etc/xdg/awesome/rc.lua
~/.config/awesome/rc.lua
2.1 Automatically autostart programs when awesome start
For example, to start kupfer and synergy, add the following lines at the end of ~/.config/awesome/rc.lua
awful.util.spawn_with_shell("pgrep --exact kupfer > /dev/null || kupfer ");
awful.util.spawn_with_shell("pgrep --exact synergy > /dev/null || synergy ");
2.2 Setting keyboard language and options
Swap caps lock and left Ctrl http://www.emacswiki.org/emacs/MovingTheCtrlKey
You can run the following lines in a bash shell, or write a script:
#!/bin/bash setxkbmap -option ctrl:swapcaps ##set keyboard to us english: setxkbmap us ## us (international Altgr keys, verbose output) setxkbmap -v 10 us altgr-intl
2.3 Install awesome in Debian 8 running with lightdm session manager
create the following new file:
/usr/share/xsessions/awesome.desktop
[Desktop Entry] Encoding=UTF-8 Name=awesome Comment=Highly configurable framework window manager TryExec=awesome Exec=awesome Type=Application
then you should be able to see a new entry for awesome in the session manager.
If you want lightdm to read a ~/.xinitrc file:
Create a new file /usr/share/xsessions/custom.desktop with:
[Desktop Entry] Name=Xsession Exec=/etc/X11/Xsession
You should now have a new session option during login, Xsession will load the user's ~/.xinitrc.
2.4 Dual monitor
After loading awesome for the first time, I needed to use the video driver configuration tool to configure dual monitor support:
AMD RADEON Catalyst center:
$ amdcccle
2.5 other stuff (draft, need re-arrange)
--------------------------------------------------
$ locate rc.lua
file:/etc/xdg/awesome/rc.lua
file:/usr/share/awesome/lib/flaw/tests/rc.lua
file:/usr/share/awesome/lib/shifty/example.rc.lua
file:/usr/share/doc/awesome-extra/examples/example.rc.lua.gz
http://vincent.bernat.im/en/blog/2012-awesome-wm.html
https://github.com/vincentbernat/awesome-configuration
Files
file:~/.config/awesome/rc.lua
file:/etc/xdg/awesome/rc.lua
file:~/.config/awesome/rc.lua
Programming in Lua
http://www.lua.org/pil/
Lua API documentation
http://awesome.naquadah.org/doc/api/
awesomerc(5) manpage.
file:/usr/share/doc/awesome/luadoc/
file:/usr/share/awesome/lib/awful/
autofocus.lua dbus.lua layout prompt.lua startup_notification.lua util.lua
button.lua hooks.lua menu.lua remote.lua tag.lua wibox.lua
client.lua init.lua mouse rules.lua titlebar.lua widget
completion.lua key.lua placement.lua screen.lua tooltip.lua
Window Properties
----------------
http://awesome.naquadah.org/wiki/Understanding_Rules
http://awesome.naquadah.org/wiki/Example_of_applications_rules
xprop
get details about class, name, instance of windows.
In the xprop output, the class is the second value of the WM_CLASS property.
To change the instance value of a particular emacs frame,
create it with the -name parameter from command line:
emacs -name testinstancename
In the xprop output, the instance is the first value of the WM_CLASS property.
Some instance, class properties of common applications:
WM_CLASS(STRING) = INSTANCE, CLASS
WM_CLASS(STRING) = "vdpau", "mplayer2"
Ejemplos
{ rule = { class = "VirtualBox" },
except = { name = "Oracle VM VirtualBox Manager" },
properties = { floating = true } },
Other common application you probably want to have in floating mode:
{ rule_any = { class = { "MPlayer", "pinentry", "Gimp", "Guake", "feh" } },
properties = { floating = true } },
==================================================
How to lock the screen when I am away?
--------------------------------------
You can use any screen locking utility; xlock, xscreensaver, slock, kscreenlocker...
Example key binding for your globalkeys:
awful.key({ modkey }, "F12", function () awful.util.spawn("xlock") end)
How to execute a shell command?
-------------------------------
If you want to execute a shell command or need to execute a command that uses redirection, pipes and so on, do not use the awful.util.spawn function but awful.util.spawn_with_shell. Here is an example:
awful.key({ modkey }, "F10", function () awful.util.spawn_with_shell("cal -m | xmessage -timeout 10 -file -") end)
On zsh, any changes to $PATH you do in ~/.zshrc will not be picked up (because this is only run for interactive shells). Use ~/.zshenv instead to make additions to the path you want to use in awesome.
Where are logs, error messages or something?
--------------------------------------------
When hacking your own configuration, something inevitably would go wrong. awesome prints error messages to its stderr stream. When run with usual $ startx, it'd be printed right in tty. If you use something more complicated (some kind of DM, like kdm or gdm), stderr is usually redirected somewhere else. To see where, run the following command:
$ ls -l /proc/$(pidof awesome)/fd/2
3 default key bindings (that I want to remember)
Mod4 = windows key (in my keyboard is between left Ctrl and Alt )
- Mod4 + Control + space
- Toggle client floating status.