Go to file
Ari Entlich 68b46c5bd2 Fix possible memory corruption (FS#734)
The memory referred to by the reply argument of
property_update_wm_protocols is automatically free'd
by xcb later on, so it is not safe to simply use the
value of reply in our own data structures. If we did
this, future calls to xcb_get_wm_protocols_reply_wipe
free the data which has already been free'd by xcb,
causing a double-free and corrupting the heap. In
addition, it isn't safe to use free'd memory as if
it is still allocated. Instead, duplicate the data
referred to by reply and use the duplicate instead.

It seems to me as if the duplication should actually
be done in xcb_get_wm_protocols_from_reply, but I'm
not really sure. If that is the case, this is simply
a work-around until xcb can be fixed.

Signed-off-by: Ari Entlich <atrigent@ccs.neu.edu>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-03-22 14:19:08 +01:00
build-tests awesomeConfig: test for execinfo.h/backtrace() 2009-10-27 09:33:08 +01:00
build-utils Fix gperf usage (FS#740) 2010-03-15 09:59:02 +01:00
common ewmh: remove _NET_WORKAREA support (FS#732) 2010-02-18 10:04:01 +01:00
icons icons: remove invaders 2009-09-08 13:29:25 +02:00
lib Avoid wibox borders to be recovered by clients 2010-03-19 10:02:32 +01:00
luadoc dbus: fix D-Bus documentation typo 2009-12-01 10:05:54 +01:00
manpages awesomerc: add Mod4+t to set client on-Top 2010-03-04 09:33:07 +01:00
objects client: _really_ honor size hints 2010-03-03 09:18:13 +01:00
themes New images for maximized layout. 2010-01-24 11:24:18 +01:00
utils awsetbg: add fvwm-root support 2010-03-01 16:00:58 +01: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 build: make manpage compression optional 2009-12-28 10:43:52 +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 spawn: disable signalfd in libev 2009-11-14 09:55:29 +01:00
awesome.desktop desktop: change description 2008-10-02 17:19:28 +02:00
awesome.doxygen.in awesome.doxygen: doxygen configuration fixes. 2009-09-04 18:18:03 +02:00
awesome.h factorize quit/exec elements, and reparent systray 2008-09-02 17:12:10 +02:00
awesomeConfig.cmake build: fix typo 2009-12-29 09:52:34 +01:00
awesomerc.lua.in awesomerc: add Mod4+t to set client on-Top 2010-03-04 09:33:07 +01:00
banning.c window: rename to xwindow 2009-10-20 20:42:05 +02:00
banning.h Re-add lazy banning 2009-09-28 14:04:59 +02:00
color.c structs: rename to globalconf 2009-09-07 17:23:01 +02:00
color.h color: do not take pointer to push 2009-08-17 17:46:35 +02:00
config.h.in build: detect endianness at compile time 2009-04-27 12:06:24 +02:00
dbus.c dbus: add support for array as returned type 2009-12-28 10:40:07 +01:00
dbus.h dbus: allow usage of the system bus 2009-04-18 16:07:31 +02:00
draw.c graph, progressbar: remove 2009-10-20 20:42:04 +02:00
draw.h image: move into objects 2009-10-27 12:16:36 +01:00
event.c Handle synthetic UnmapNotify events *correctly* 2010-01-06 09:40:55 +01:00
event.h wibox: move into objects 2009-10-20 20:42:05 +02:00
ewmh.c ewmh: remove _NET_WORKAREA support (FS#732) 2010-02-18 10:04:01 +01:00
ewmh.h ewmh: remove _NET_WORKAREA support (FS#732) 2010-02-18 10:04:01 +01:00
font.c font: remove draw_ prefix in names 2009-10-27 12:16:22 +01:00
font.h font: remove draw_ prefix in names 2009-10-27 12:16:22 +01:00
globalconf.h globalconf: move conffile out 2009-11-10 10:48:58 +01:00
keygrabber.c key: move into objects 2009-10-20 20:42:05 +02:00
keygrabber.h keygrabber: add stop() method 2008-11-10 17:31:18 +01:00
luaa.c luaa: dump backtrace on panic 2009-11-16 11:26:32 +01:00
luaa.h luaa: luaA_next is static 2009-11-09 21:28:37 +01:00
mouse.c mouse: coords() get silent parameter 2009-11-06 11:05:07 +01:00
mouse.h mouse: split button out 2009-04-26 10:46:09 +02:00
mousegrabber.c structs: rename to globalconf 2009-09-07 17:23:01 +02:00
mousegrabber.h mousegrabber: import 2008-12-12 16:51:41 +01:00
property.c Fix possible memory corruption (FS#734) 2010-03-22 14:19:08 +01:00
property.h structs: rename to globalconf 2009-09-07 17:23:01 +02:00
root.c window: rename to xwindow 2009-10-20 20:42:05 +02:00
screen.c titlebar: remove 2009-10-20 20:42:05 +02:00
screen.h Re-add lazy banning 2009-09-28 14:04:59 +02:00
selection.c Grammar/spelling corrections in comments and docs. 2009-08-31 10:39:36 +02:00
selection.h selection: do not use a useless module 2009-01-06 17:02:08 +01:00
spawn.c spawn: disable signalfd in libev 2009-11-14 09:55:29 +01:00
spawn.h spawn: remove useless proto 2009-11-16 11:26:00 +01:00
stack.c client: move into objects 2009-10-20 20:42:05 +02:00
stack.h structs: rename to globalconf 2009-09-07 17:23:01 +02:00
strut.c Fix doxygen generation warnings 2009-08-26 09:15:57 +02:00
strut.h strut: import strut_has_value() 2009-08-28 17:45:18 +02:00
systray.c window: rename to xwindow 2009-10-20 20:42:05 +02:00
systray.h systray: add some cleanup code 2008-09-03 18:03:50 +02:00
xwindow.c xwindow: check that window exists before setting opacity 2009-10-27 12:16:53 +01:00
xwindow.h xwindow: remove useless proto 2009-11-10 12:00:08 +01: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.