f8f5e2c69b
This is long overdue. A bit of historical context. The grid API is losely somewhat based on the old `radical` module, but was heavily improved by @getzze. That version had row_span and col_span. This made the way the previous implementation coded the border incompatible. I spent some time back then trying to bolt it back on, but the complexity is quite high and never made it work right. This commit goes in another direction. Rather than draw the border, it creates a mask where the border should *not* be, then bucket fill the widget. This is the equivalent of CSS `border-collapse`. It also support custom borders. This allows dashed lines and partial borders. The main use case will be to add border support to the calendar. It was previously possible to partially do it using custom cell painters, but was pretty hacky. Now that the calendar will deprecate the custom painters in favor of `widget_template`s, a more robust alternative was required. The drawback of this commit is obviously the added complexity to the most complex layout. This is why it adds many tests to cover the various corner cases. |
||
---|---|---|
.github | ||
build-utils | ||
common | ||
docs | ||
icons | ||
lib | ||
manpages | ||
objects | ||
spec | ||
tests | ||
themes | ||
utils | ||
.busted | ||
.editorconfig | ||
.gitignore | ||
.luacheckrc | ||
.luacov | ||
.mergify.yml | ||
AutoOption.cmake | ||
CMakeLists.txt | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
Makefile | ||
Packaging.cmake | ||
README.md | ||
awesome-version-internal.h | ||
awesome.c | ||
awesome.desktop | ||
awesome.h | ||
awesomeConfig.cmake | ||
awesomerc.lua | ||
banning.c | ||
banning.h | ||
codecov.yml | ||
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 | ||
options.c | ||
options.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 | ||
xkb_utf32_to_keysym_compat.c | ||
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 or cloning the repository, run:
make
sudo make install
This will
- create a build directory at
./build
, - run
cmake
, - build Awesome and
- install it to the default prefix path
/usr/local
.
Alternatively to the above, you can generate a .deb
or .rpm
package, for easy installation management:
make package
sudo dpkg -i awesome-x.y.z.deb
# or
sudo rpm -Uvh awesome-x.y.z.rpm
Advanced options and testing
A full list of dependencies, more advanced build options, as well as instructions on how to use the test suite can be found here.
Installing current git master as a package receipts
Arch Linux AUR
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/awesome-git.git
cd awesome-git
makepkg -fsri
Debian-based
sudo apt build-dep awesome
git clone https://github.com/awesomewm/awesome
cd awesome
make package
cd build
sudo apt install ./*.deb
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
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 arguments and run it:
(gdb) set args --replace
(gdb) run
Asking questions
IRC
You can join us in the #awesome
channel on the OFTC IRC network.
Stack Overflow
You can ask questions on Stack Overflow.
We also have an awesome subreddit where you can share your work and ask questions.
Reporting issues
Please report any issues you may find on our bugtracker.
Contributing code
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 here.
License
The project is licensed under GNU General Public License v2 or later. You can read it online at (v2 or v3).