Go to file
Uli Schlachter 2729357ad2 Fix possible crash on shutdown (FS#904)
Open some windows, select a layout which does something (=not floating) and
restart awesome. It's likely that it will crash during the shutdown.

The reason is that awesome cleans up various state before going down. This is
mostly all the lua state. However, drawin_wipe, which is called for cleaning up
after a drawin, dared to emit a sigal which then let various lua code run which
had access to objects which were already destroyed.

Various bad things can happen this way, in this situation it was a crash when an
already-destroyed client was resized.

The fix is to move the signal out of drawin_wipe. It doesn't belong there
anyway. Instead, property::workarea should be emitted when the drawin's visible
property changes as this is when the workarea changes, too (screen_area_get()
only looks at visible drawins).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-14 16:54:33 +02:00
build-tests use CMake check_function_exists() for execinfo 2010-10-11 22:52:20 +02:00
build-utils Stop using gperf 2010-09-02 19:24:39 +02:00
common Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
icons icons: remove invaders 2009-09-08 13:29:25 +02:00
lib awful.client.jumpto: View urgent clients smarter 2011-05-13 15:14:38 +02:00
luadoc add usage example for keygrabber API 2011-01-16 20:20:44 +01:00
manpages russian man pages 2011-04-13 19:27:57 +02:00
objects Fix possible crash on shutdown (FS#904) 2011-05-14 16:54:33 +02:00
themes convert menu width and height from string to number 2011-03-31 12:28:49 +02:00
utils Add imlibsetroot setter to awsetbg script. 2011-05-02 21:47:56 +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 Normalize icon path names (fixes #869). 2011-02-21 18:07:59 +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 Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02: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 Added a flag to the exit signal 2011-03-21 07:41:41 +01:00
awesomeConfig.cmake Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
awesomerc.lua.in Clarify the mod+n keybinding 2011-04-28 20:14:11 +02:00
banning.c Remove a useless function argument 2011-03-27 20:07:14 +02:00
banning.h Stop doing per-screen banning 2011-03-27 20:01:05 +02:00
color.c Color: Remove alpha, it is unused 2010-10-06 20:18:24 +02:00
color.h Color: Remove alpha, it is unused 2010-10-06 20:18:24 +02:00
config.h.in test for __builtin_clz() and fallback to an inline implementation. 2010-10-11 20:42:03 +02:00
dbus.c dbus: Make sure the lua stack is balanced 2010-10-31 14:59:59 +01:00
dbus.h dbus: allow usage of the system bus 2009-04-18 16:07:31 +02:00
draw.c draw: Fix transparent image handling 2010-10-15 21:34:37 +02:00
draw.h draw: Remove some now-unused stuff 2010-10-06 20:06:49 +02:00
event.c Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
event.h luaa: Add "refresh" signal 2010-10-15 18:48:07 +02:00
ewmh.c Rename globalconf.client_focus to focus.client 2010-10-10 14:46:56 +02:00
ewmh.h Wibox type: Make this work correctly 2010-09-28 13:07:31 +02:00
globalconf.h Stop doing per-screen banning 2011-03-27 20:01:05 +02:00
keygrabber.c Save the screen in globalconf. 2010-08-16 14:10:58 +02:00
keygrabber.h keygrabber: add stop() method 2008-11-10 17:31:18 +01:00
keyresolv.c test for __builtin_clz() and fallback to an inline implementation. 2010-10-11 20:42:03 +02:00
keyresolv.h key: split resolving in keyresolv 2010-05-28 13:28:20 +02:00
luaa.c Added a flag to the exit signal 2011-03-21 07:41:41 +01:00
luaa.h Systray: Fix 2010-10-06 15:38:44 +02:00
mouse.c Wibox: Rename to drawin 2010-10-06 13:36:02 +02:00
mouse.h mouse: split button out 2009-04-26 10:46:09 +02:00
mousegrabber.c Save the screen in globalconf. 2010-08-16 14:10:58 +02:00
mousegrabber.h mousegrabber: import 2008-12-12 16:51:41 +01:00
property.c Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
property.h Overhaul property handling 2010-08-09 13:03:16 +02:00
root.c Wibox: Rename to drawin 2010-10-06 13:36:02 +02:00
screen.c Remove a useless function argument 2011-03-27 20:07:14 +02:00
screen.h Stop doing per-screen banning 2011-03-27 20:01:05 +02:00
selection.c Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
selection.h selection: do not use a useless module 2009-01-06 17:02:08 +01:00
spawn.c spawn: Create sessions for processes (FS#851) 2010-12-04 13:22:47 +01:00
spawn.h spawn: remove useless proto 2009-11-16 11:26:00 +01:00
stack.c Rename globalconf.client_focus to focus.client 2010-10-10 14:46:56 +02:00
stack.h client: move stack code into stack 2010-05-28 13:28:49 +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 Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
systray.h Systray: Fix 2010-10-06 15:38:44 +02:00
xwindow.c Update the code following release of xcb-util 0.3.8. 2011-05-10 18:27:39 +02:00
xwindow.h xcolor: Rename to color 2010-10-06 20:14:19 +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.