Go to file
Uli Schlachter 9b78733922 Fix possible deadlock during startup
For setting up the wallpaper, awesome needs a second connection to the X11
server (isn't SetCloseDownMode just great?).

However, it was possible to have a dead-lock with our main connection due to
this. Awesome does a GrabServer during startup so that nothing else can use the
X11 server while we set ourselves up. The server is ungrabbed right before the
lua config is read. However, nothing makes sure that this ungrab request really
is sent to the server instead of just waiting in xcb's output buffer.

The dead-lock would now happen if we try to establish a second connection to the
X11 server before the ungrab request was flushed on the main connection. The
server will wait for the ungrab on the first connection, awesome is waiting for
the second connection to be successfully established.

Fix this by making sure the UngrabServer request is flushed before parsing the
config file.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-10-04 10:01:03 +02:00
build-tests use CMake check_function_exists() for execinfo 2010-10-11 22:52:20 +02:00
build-utils CMake: Check for the needed lgi dependency 2012-11-25 19:43:09 +01:00
common ewmh: remove _NET_DESKTOP_GEOMETRY support 2013-09-27 23:01:49 +02:00
icons icons: remove invaders 2009-09-08 13:29:25 +02:00
lib wibox.layout.fixed: Fix fill space 2013-10-03 15:44:45 +02:00
luadoc luadoc: Clients have a leader_window, not leader_id 2013-06-19 19:15:02 +02:00
manpages Remove F1-9 bindings from the manpages. 2013-03-10 11:22:35 +01:00
objects Switch from libXcursor to libxcb-cursor 2013-09-19 16:48:10 +02:00
themes Re-add wallpapers to the themes 2012-07-29 16:47:04 +02:00
utils Remove all traces of awsetbg and wallpaper setters 2012-07-29 15:38:31 +02:00
.gitignore gitignore: remove awesome-client 2009-04-11 16:10:42 +02:00
AUTHORS update Arnaud commit years 2009-08-24 11:13:59 +02:00
BUGS BUG's page 2008-04-18 19:33:58 +02:00
CMakeLists.txt CMake: Check for the needed lgi dependency 2012-11-25 19:43:09 +01:00
LICENSE chance license to GPLv2 2007-09-12 14:29:51 +02:00
Makefile build: allow to specify cmake args 2009-05-08 19:54:38 +02:00
PATCHES PATCHES: add more rules 2009-09-02 10:36:13 +02:00
README Grammar/spelling corrections in comments and docs. 2009-08-31 10:39:36 +02:00
STYLE STYLE: add prefix rule 2009-08-21 15:30:48 +02:00
awesome-version-internal.h.in cmake: consolidate version strings 2008-06-22 22:13:06 +02:00
awesome.c Fix possible deadlock during startup 2013-10-04 10:01:03 +02:00
awesome.desktop Remove NoDisplay from desktop file 2013-02-25 11:50:00 +01:00
awesome.doxygen.in awesome.doxygen: doxygen configuration fixes. 2009-09-04 18:18:03 +02:00
awesome.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
awesomeConfig.cmake CMake: Look for both "ldoc" and "ldoc.lua" 2013-09-19 17:05:20 +02:00
awesomerc.lua.in fixed #1184. Calling movetotag method throw an error on a blank screen 2013-09-30 12:58:50 +02:00
banning.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
banning.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
color.c C color code: Ignore alpha component (FS#966) 2012-04-07 22:03:38 +02:00
color.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
config.h.in test for __builtin_clz() and fallback to an inline implementation. 2010-10-11 20:42:03 +02:00
config.ld.in Use LDoc instead of Luadoc (FS#1006) 2012-11-19 14:57:47 +01:00
dbus.c Remove compiler warnings 2012-11-24 18:15:34 +01:00
dbus.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
draw.c draw: Add function for finding a visual by id 2013-09-16 11:59:00 +02:00
draw.h draw: Add function for finding a visual by id 2013-09-16 11:59:00 +02:00
event.c Implement window gravity in ConfigureRequests (FS#1137) 2013-04-07 11:57:40 +02:00
event.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
ewmh.c ewmh: remove _NET_DESKTOP_GEOMETRY support 2013-09-27 23:01:49 +02:00
ewmh.h Don't pass cairo surfaces around on the lua stack 2012-05-28 09:29:47 +02:00
globalconf.h Switch from libXcursor to libxcb-cursor 2013-09-19 16:48:10 +02:00
keygrabber.c Renamed luaL_reg to luaL_Reg 2012-06-12 10:52:10 +02:00
keygrabber.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
keyresolv.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
keyresolv.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
luaa.c lua: Print traceback on startup errors 2013-06-08 13:21:14 +02:00
luaa.h Use glib instead of libev 2012-11-21 21:01:12 +01:00
mouse.c Fix minor memory leak in mouse_query_pointer() 2013-03-31 18:15:25 +02:00
mouse.h Revert "Support more than 5 mouse buttons" (FS#1082) 2013-03-29 16:07:13 +01:00
mousegrabber.c Switch from libXcursor to libxcb-cursor 2013-09-19 16:48:10 +02:00
mousegrabber.h Revert "Support more than 5 mouse buttons" (FS#1082) 2013-03-29 16:07:13 +01:00
property.c Fix WM_CLIENT_LEADER handling 2013-06-19 19:23:19 +02:00
property.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
root.c Switch from libXcursor to libxcb-cursor 2013-09-19 16:48:10 +02:00
screen.c screen: Make sure we always have a screen 2013-09-27 23:07:33 +02:00
screen.h Tags: Remove screen property 2012-10-23 10:05:34 +02:00
selection.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
selection.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
spawn.c awesome.spawn: Accept tables as arguments 2013-03-10 14:54:58 +01:00
spawn.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
stack.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
stack.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
strut.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
strut.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
systray.c remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
systray.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
xwindow.c Implement window gravity in ConfigureRequests (FS#1137) 2013-04-07 11:57:40 +02:00
xwindow.h Implement window gravity in ConfigureRequests (FS#1137) 2013-04-07 11:57:40 +02:00

README

awesome
=======
awesome is a highly configurable, next generation framework window manager for X.

Building and installation
-------------------------
After extracting the dist tarball, run:

  make

This will create a build directory, run cmake in it and build awesome.

After building is finished, you can install:

  make install # you might need root permissions

Running awesome
---------------
You can directly select awesome from your display manager. If not, you can
add the following line to your .xinitrc to start awesome using startx
or to .xsession to start awesome using your display manager:

    exec awesome

In order to connect awesome to a specific display, make sure that
the DISPLAY environment variable is set correctly, e.g.:

    DISPLAY=foo.bar:1 exec awesome

(This will start awesome on display :1 of the host foo.bar.)

Configuration
-------------
The configuration of awesome is done by creating a $XDG_CONFIG_HOME/awesome/rc.lua file.
An example configuration named "awesomerc.lua.in" is provided in the source.

Troubleshooting
---------------
In most systems any message printed by awesome (including warnings and errors)
are written to $HOME/.xsession-errors.

If awesome does not start or the configuration file is not producing the desired
results the user should examine this file to gain insight into the problem.