b84b03f15d
First some reminder on how client geometries works (in X11, awesome just copied that!): - The position (x,y) defines where the border of the client begins - This means that the content starts at (x+border_width,y+border_width) - However, the size is the size of the client without border - Thus, the client covers the rectangle from (x,y) to (x+2*bw,y+2*bw) The client snapping code got this wrong. It only deals with rectangles and thus for things to work as expected, the width/height have to be increased by two times the border width. When snapping a client against other visible clients, the geometry of the client to snap against wasn't calculated correctly. This was apparently noticed at one point and worked around by decreasing the position by two times the border width. While this is terribly wrong, it actually makes things work correctly when snapping to the right or bottom edge of a client, but breaks for the other edges. Fix this by just calculating things correctly. This is based on a patch from jk411. Fixes: https://github.com/awesomeWM/awesome/issues/928 Signed-off-by: Uli Schlachter <psychon@znc.in> |
||
---|---|---|
build-tests | ||
build-utils | ||
common | ||
docs | ||
icons | ||
lib | ||
manpages | ||
objects | ||
spec | ||
tests | ||
themes | ||
utils | ||
.editorconfig | ||
.gitignore | ||
.luacheckrc | ||
.luacov | ||
.travis.yml | ||
CMakeLists.txt | ||
LICENSE | ||
Makefile | ||
Packaging.cmake | ||
README.md | ||
awesome-version-internal.h | ||
awesome.c | ||
awesome.desktop | ||
awesome.h | ||
awesomeConfig.cmake | ||
awesomerc.lua | ||
banning.c | ||
banning.h | ||
color.c | ||
color.h | ||
config.h | ||
dbus.c | ||
dbus.h | ||
draw.c | ||
draw.h | ||
event.c | ||
event.h | ||
ewmh.c | ||
ewmh.h | ||
globalconf.h | ||
keygrabber.c | ||
keygrabber.h | ||
luaa.c | ||
luaa.h | ||
mouse.c | ||
mouse.h | ||
mousegrabber.c | ||
mousegrabber.h | ||
property.c | ||
property.h | ||
root.c | ||
selection.c | ||
selection.h | ||
spawn.c | ||
spawn.h | ||
stack.c | ||
stack.h | ||
strut.c | ||
strut.h | ||
systray.c | ||
systray.h | ||
xkb.c | ||
xkb.h | ||
xrdb.c | ||
xrdb.h | ||
xwindow.c | ||
xwindow.h |
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 either install via make install
:
make install # you might need root permissions
or by auto-generating a .deb or .rpm package, for easy removal later on:
make package
sudo dpkg -i awesome-x.y.z.deb
# or
sudo rpm -Uvh awesome-x.y.z.rpm
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.
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())")
Reporting issues
Please report any issues you may find on our bugtracker. You can submit pull requests on the github repository. Please read the contributing guide for any coding, documentation or patch guidelines.
Status
Documentation
Online documentation is available at http://awesome.naquadah.org/doc/ for the
stable branch and at http://awesomewm.github.io/apidoc/ for the master branch.
It 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).