Go to file
Uli Schlachter 8abce1ff68 Add a benchmark to the test suite
This (ab)uses the integration tests to run a benchmark. This currently only
measures wibox drawing performance. To avoid wasting CPU-cycles, this does only
a quick run under travis while on "normal" runs the function under test is
executed in a loop to improve the precision of the measurement.

This benchmarks hopefully allow to optimize things in a clear fashion instead of
things like "it feels faster to me".

Results when run against the previous commit:

== Running test-benchmark.lua ==
        create wibox: 0.0788958  sec/iter ( 13 iters, 1.103 sec for benchmark)
    update textclock: 0.019493   sec/iter ( 56 iters, 2.507 sec for benchmark)
  relayout textclock: 0.0160725  sec/iter ( 63 iters, 1.029 sec for benchmark)
    redraw textclock: 0.0015601  sec/iter (647 iters, 1.875 sec for benchmark)
W: awesome: a_glib_poll:291: Last main loop iteration took 6.593912 seconds! Increasing limit for this warning to that value.

Results right before the new widget layouts were merged (commit 52154d0f15):

== Running test-benchmark.lua ==
        create wibox: 0.0782874  sec/iter ( 13 iters, 1.095 sec for benchmark)
    update textclock: 0.00736755 sec/iter (136 iters, 1.346 sec for benchmark)
W: awesome: luaA_dofunction:77: error while running function
[...]
error: /home/psychon/projects/awesome/build/lib/gears/object.lua:30: Trying to emit non-existent signal 'widget::layout_changed'

Closes https://github.com/awesomeWM/awesome/pull/451.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-09-19 12:02:44 +02:00
build-tests use CMake check_function_exists() for execinfo 2010-10-11 22:52:20 +02:00
build-utils lgi-check.sh: Add dependencies to GLib and Gio 2015-08-13 09:09:14 +02:00
common minor: doc: fix typo in buffer_init 2015-07-28 19:31:51 +02:00
docs doc: distinguish between client.object and client.class 2015-07-26 00:45:38 +02:00
icons icons: remove invaders 2009-09-08 13:29:25 +02:00
lib placement.no_offscreen: add optional screen argument 2015-09-16 10:39:12 +02:00
manpages Remove F1-9 bindings from the manpages. 2013-03-10 11:22:35 +01:00
objects Do not unset max/fullscreen when setting the other 2015-09-02 22:10:56 +02:00
spec Add new file spec/awful/keyboardlayout_spec.lua 2015-09-13 01:19:00 +09:00
tests Add a benchmark to the test suite 2015-09-19 12:02:44 +02:00
themes feat(themes: default): add icons for minimize button 2015-09-13 14:41:07 +02:00
utils awesome-client: do not send empty requests 2015-07-26 00:40:43 +02:00
.gitignore gitignore: remove awesome-client 2009-04-11 16:10:42 +02:00
.travis.yml Bump required lgi version to 0.7.1 2015-08-11 19:08:35 +02:00
CMakeLists.txt Modify CFLAGS handling 2015-09-19 12:02:03 +02:00
LICENSE chance license to GPLv2 2007-09-12 14:29:51 +02:00
Makefile Makefile: add "tags" to .PHONY targets 2015-07-11 22:50:11 +02:00
README.md Add README.md symlink 2015-02-28 23:14:13 +01:00
awesome-version-internal.h Remove the *.in from all files. 2015-06-19 22:33:32 +02:00
awesome.c awesome_atexit: keep client order always 2015-07-30 01:04:05 +02:00
awesome.desktop Remove NoDisplay from desktop file 2013-02-25 11:50:00 +01:00
awesome.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
awesomeConfig.cmake Modify CFLAGS handling 2015-09-19 12:02:03 +02:00
awesomerc.lua Add awful.screen.focused [FS#1029] 2015-07-21 12:51:45 +02:00
banning.c doc: fix warnings from doxygen 2015-02-14 20:17:13 +01:00
banning.h Clean up header includes 2014-03-30 20:07:48 +02:00
color.c Clean up header includes 2014-03-30 20:07:48 +02:00
color.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
config.h Remove the *.in from all files. 2015-06-19 22:33:32 +02:00
dbus.c Document C API directly in the C source code 2015-06-19 23:13:31 +02:00
dbus.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
draw.c Merge pull request #142 from psychon/check-cairo-setup 2015-02-18 21:37:56 +01:00
draw.h Test if cairo-xcb is usable during startup 2015-02-18 21:23:47 +01:00
event.c Handle enter/leave events with detail=Inferior correctly 2015-09-19 12:01:10 +02:00
event.h drawin: lazily configure drawin windows 2015-08-23 15:25:23 +02:00
ewmh.c Add support for _NET_FRAME_EXTENTS 2015-07-05 14:45:51 +02:00
ewmh.h Clean up header includes 2014-03-30 20:07:48 +02:00
globalconf.h Fix enter/leave events on titlebars 2015-09-19 12:00:58 +02:00
keygrabber.c keygrabber: ignore modifiers for name of control keys 2015-08-10 23:05:16 +02:00
keygrabber.h Clean up header includes 2014-03-30 20:07:48 +02:00
luaa.c Add DPI support and 'xresources' theme 2015-06-25 06:40:38 +02:00
luaa.h drawin.c: check for integer for x, y, width, height 2015-08-12 14:07:22 +02:00
mouse.c doc: distinguish between client.object and client.class 2015-07-26 00:45:38 +02:00
mouse.h Revert "Support more than 5 mouse buttons" (FS#1082) 2013-03-29 16:07:13 +01:00
mousegrabber.c Document C API directly in the C source code 2015-06-19 23:13:31 +02:00
mousegrabber.h Revert "Support more than 5 mouse buttons" (FS#1082) 2013-03-29 16:07:13 +01:00
property.c Merge pull request #122 from blueyed/fix-ldoc-doxygen-warnings 2015-02-15 11:49:50 +01:00
property.h Add new request::urgent signal 2015-02-10 19:27:46 +00:00
root.c Do not call `xcb_ungrab_key` twice (before `xwindow_grabkeys`) 2015-08-01 14:16:06 +02:00
selection.c Document C API directly in the C source code 2015-06-19 23:13:31 +02:00
selection.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
spawn.c awesome.spawn(): Add possibility to return pipes 2015-08-13 09:05:52 +02:00
spawn.h Clean up header includes 2014-03-30 20:07:48 +02:00
stack.c doc: fix warnings from doxygen 2015-02-14 20:17:13 +01:00
stack.h Clean up header includes 2014-03-30 20:07:48 +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 Force systray redraw on BG color change 2015-08-12 19:44:54 +02:00
systray.h remove encoding=utf-8 from modelines 2011-09-11 17:34:09 +02:00
xkb.c Document C API directly in the C source code 2015-06-19 23:13:31 +02:00
xkb.h Less reloading of keymap, fixes from psychon comments 2015-05-28 23:20:17 +02:00
xrdb.c minor: fix/improve doc comments 2015-07-12 17:42:53 +02:00
xrdb.h Add DPI support and 'xresources' theme 2015-06-25 06:40:38 +02:00
xwindow.c minor: formatting 2015-03-28 22:17:45 +01:00
xwindow.h Clean up header includes 2014-03-30 20:07:48 +02:00

README.md

Readme

About 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, typically ~/.config/awesome/rc.lua.

An example configuration named awesomerc.lua.in is provided in the source.

Troubleshooting

On most systems any message printed by awesome (including warnings and errors) is written to ~/.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.

Reporting issues

Please report any issues you may find on our bugtracker. You can submit pull requests on the github repository. Please read the @{02-contributing.md} guide for any coding, documentation or patch guidelines.

Status

Build Status

Documentation

Online documentation is available at http://awesome.naquadah.org/doc/, and can be built using make ldoc.

License

The project is licensed under GNU General Publice License v2 or later. You can read it online at (v2 or v3).