2015-02-20 15:24:26 +01:00
|
|
|
# Readme
|
|
|
|
|
|
|
|
## About awesome
|
2014-05-24 22:14:06 +02:00
|
|
|
|
2008-10-02 17:20:08 +02:00
|
|
|
awesome is a highly configurable, next generation framework window manager for X.
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## Building and installation
|
2014-05-24 22:14:06 +02:00
|
|
|
|
2008-06-23 18:57:49 +02:00
|
|
|
After extracting the dist tarball, run:
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2014-04-07 23:21:25 +02:00
|
|
|
make
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2008-07-01 08:25:40 +02:00
|
|
|
This will create a build directory, run cmake in it and build awesome.
|
|
|
|
|
2015-01-19 01:20:33 +01:00
|
|
|
After building is finished, you can either install via `make install`:
|
2008-07-01 08:25:40 +02:00
|
|
|
|
2014-04-07 23:21:25 +02:00
|
|
|
make install # you might need root permissions
|
2008-01-09 14:26:27 +01:00
|
|
|
|
2015-01-19 01:20:33 +01:00
|
|
|
or by auto-generating a .deb or .rpm package, for easy removal later on:
|
|
|
|
|
|
|
|
make package
|
2016-12-28 12:39:03 +01:00
|
|
|
|
2015-01-19 01:20:33 +01:00
|
|
|
sudo dpkg -i awesome-x.y.z.deb
|
|
|
|
# or
|
|
|
|
sudo rpm -Uvh awesome-x.y.z.rpm
|
|
|
|
|
2016-12-28 12:39:03 +01:00
|
|
|
NOTE: awesome uses [`cmake`](https://cmake.org) to build. In case you want to
|
|
|
|
pass arguments to cmake, please use the `CMAKE_ARGS` environment variable. For
|
|
|
|
instance:
|
|
|
|
|
|
|
|
CMAKE_ARGS="-DCMAKE_INSTALL_PREFIX=/opt/awesome" make
|
|
|
|
|
2016-09-12 23:46:47 +02:00
|
|
|
### Build dependencies
|
|
|
|
|
|
|
|
Awesome has the following dependencies (besides a more-or-less standard POSIX
|
|
|
|
environment):
|
|
|
|
|
|
|
|
- [CMake >= 3.0.0](https://cmake.org)
|
|
|
|
- [Lua >= 5.1.0](https://www.lua.org) or [LuaJIT](http://luajit.org)
|
2017-01-02 19:53:02 +01:00
|
|
|
- [LGI >= 0.8.0](https://github.com/pavouk/lgi)
|
2016-09-12 23:46:47 +02:00
|
|
|
- [xproto >= 7.0.15](https://www.x.org/archive//individual/proto/)
|
|
|
|
- [libxcb >= 1.6](https://xcb.freedesktop.org/) with support for the RandR, XTest, Xinerama, SHAPE and
|
|
|
|
XKB extensions
|
|
|
|
- [libxcb-cursor](https://xcb.freedesktop.org/)
|
|
|
|
- [libxcb-util >= 0.3.8](https://xcb.freedesktop.org/)
|
|
|
|
- [libxcb-keysyms >= 0.3.4](https://xcb.freedesktop.org/)
|
|
|
|
- [libxcb-icccm >= 0.3.8](https://xcb.freedesktop.org/)
|
2016-11-14 13:31:59 +01:00
|
|
|
- [xcb-util-xrm >= 1.0](https://github.com/Airblader/xcb-util-xrm)
|
2016-09-12 23:46:47 +02:00
|
|
|
- [libxkbcommon](http://xkbcommon.org/) with X11 support enabled
|
|
|
|
- [libstartup-notification >=
|
|
|
|
0.10](https://www.freedesktop.org/wiki/Software/startup-notification/)
|
|
|
|
- [cairo](https://www.cairographics.org/) with support for XCB and GObject
|
|
|
|
introspection
|
|
|
|
- [Pango](http://www.pango.org/) with support for Cairo and GObject
|
|
|
|
introspection
|
|
|
|
- [GLib](https://wiki.gnome.org/Projects/GLib) with support for GObject
|
|
|
|
introspection
|
|
|
|
- [GIO](https://developer.gnome.org/gio/stable/) with support for GObject
|
|
|
|
introspection
|
|
|
|
- [GdkPixbuf](https://wiki.gnome.org/Projects/GdkPixbuf)
|
|
|
|
- libX11 with xcb support
|
|
|
|
- [Imagemagick's convert utility](http://www.imagemagick.org/script/index.php)
|
|
|
|
- [libxdg-basedir >= 1.0.0](https://github.com/devnev/libxdg-basedir)
|
|
|
|
|
|
|
|
Additionally, the following optional dependencies exist:
|
|
|
|
|
|
|
|
- [DBus](https://www.freedesktop.org/wiki/Software/dbus/) for DBus integration
|
|
|
|
and the `awesome-client` utility
|
|
|
|
- [asciidoc](http://www.methods.co.nz/asciidoc/) and
|
|
|
|
[xmlto](https://fedorahosted.org/xmlto/) for generating man pages
|
|
|
|
- [gzip](http://www.gzip.org/) for compressing man pages
|
|
|
|
- [ldoc](https://stevedonovan.github.io/ldoc/) for generating the documentation
|
|
|
|
- [busted](https://olivinelabs.com/busted/) for running unit tests
|
|
|
|
- [luacheck](https://github.com/mpeterv/luacheck) for static code analysis
|
|
|
|
- [LuaCov](https://keplerproject.github.io/luacov/) for collecting code coverage
|
|
|
|
information
|
|
|
|
- libexecinfo on systems where libc does not provide `backtrace_symbols()` to
|
|
|
|
generate slightly better backtraces on crashes
|
|
|
|
- `Xephyr` or `Xvfb` for running integration tests
|
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## Running awesome
|
2014-05-24 22:14:06 +02:00
|
|
|
|
2008-08-18 14:58:28 +02:00
|
|
|
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
|
2014-05-24 22:14:06 +02:00
|
|
|
or to `.xsession` to start awesome using your display manager:
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2007-09-10 12:06:54 +02:00
|
|
|
exec awesome
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2007-09-10 12:06:54 +02:00
|
|
|
In order to connect awesome to a specific display, make sure that
|
2014-05-24 22:14:06 +02:00
|
|
|
the `DISPLAY` environment variable is set correctly, e.g.:
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2007-09-10 12:06:54 +02:00
|
|
|
DISPLAY=foo.bar:1 exec awesome
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2014-05-24 22:14:06 +02:00
|
|
|
(This will start awesome on display `:1` of the host foo.bar.)
|
2007-09-05 20:15:00 +02:00
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## Configuration
|
2014-05-24 22:14:06 +02:00
|
|
|
|
2014-04-07 23:21:25 +02:00
|
|
|
The configuration of awesome is done by creating a
|
2015-07-24 02:25:39 +02:00
|
|
|
`$XDG_CONFIG_HOME/awesome/rc.lua` file, typically `~/.config/awesome/rc.lua`.
|
2014-04-07 23:21:25 +02:00
|
|
|
|
2017-02-05 18:16:27 +01:00
|
|
|
An example configuration named `awesomerc.lua` is provided in the source.
|
2008-08-29 02:21:58 +02:00
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## Troubleshooting
|
2014-05-24 22:14:06 +02:00
|
|
|
|
2015-07-24 02:25:39 +02:00
|
|
|
On most systems any message printed by awesome (including warnings and errors)
|
|
|
|
is written to `~/.xsession-errors`.
|
2014-04-07 23:21:25 +02:00
|
|
|
|
|
|
|
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.
|
2008-08-29 02:21:58 +02:00
|
|
|
|
2016-04-04 22:44:49 +02:00
|
|
|
### Debugging tips
|
|
|
|
|
|
|
|
You can call `awesome` with `gdb` like this:
|
|
|
|
|
|
|
|
DISPLAY=:2 gdb awesome
|
|
|
|
|
|
|
|
Then in gdb set any args and run it:
|
|
|
|
|
|
|
|
(gdb) set arg --replace
|
|
|
|
(gdb) run
|
|
|
|
|
|
|
|
Inside gdb you can use the following to print the current Lua stack traceback:
|
|
|
|
|
|
|
|
(gdb) print luaL_dostring(globalconf.L.real_L_dont_use_directly, "print(debug.traceback())")
|
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## Reporting issues
|
|
|
|
|
2014-05-24 22:14:06 +02:00
|
|
|
Please report any issues you may find on [our bugtracker](https://github.com/awesomeWM/awesome/issues).
|
|
|
|
You can submit pull requests on the [github repository](https://github.com/awesomeWM/awesome).
|
2016-03-09 00:12:53 +01:00
|
|
|
Please read the [contributing guide](https://github.com/awesomeWM/awesome/blob/master/docs/02-contributing.md)
|
|
|
|
for any coding, documentation or patch guidelines.
|
2014-05-26 21:26:52 +02:00
|
|
|
|
2015-04-26 04:00:50 +02:00
|
|
|
## Status
|
|
|
|
[![Build Status](https://travis-ci.org/awesomeWM/awesome.svg?branch=master)](https://travis-ci.org/awesomeWM/awesome)
|
|
|
|
|
2015-07-24 02:25:39 +02:00
|
|
|
## Documentation
|
|
|
|
|
2016-12-21 02:03:03 +01:00
|
|
|
Online documentation is available at https://awesomewm.org/apidoc/.
|
2015-07-24 02:25:39 +02:00
|
|
|
|
2014-05-26 21:26:52 +02:00
|
|
|
## License
|
|
|
|
|
|
|
|
The project is licensed under GNU General Publice License v2 or later.
|
|
|
|
You can read it online at ([v2](http://www.gnu.org/licenses/gpl-2.0.html)
|
|
|
|
or [v3](http://www.gnu.org/licenses/gpl.html)).
|