This commit adds a "removed" signal to screens. Together with the "added" signal
that we have since a while, this allows the C code to update the list of
available screens dynamically without needing to restart.
So far, this code received only minimal testing. So far, I don't have a nice
idea on how to easily test this...
Closes: https://github.com/awesomeWM/awesome/issues/672
Signed-off-by: Uli Schlachter <psychon@znc.in>
We once had the problem that with the nvidia blob, the X11 server told us that
"yes, I do support RandR; there is just a single big screen" even though there
were multiple screens and they could be queried for via Xinerama. To work around
this, we started to ignore RandR if it only provided information about a single
screen.
Our long-term goal is to stop restarting on RandR screen changes. Thus, even if
only a single screen is defined during startup, we should still use RandR later
when another screen is added. This means that we cannot just ignore RandR if it
only mentions a single screen.
This commit copies what GTK+ does: If there is an output named "default", then
some compatibility layer is assumed and we ignore RandR.
I have no way to test if this really does the right thing.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Instead of adding all screens directly to globalconf.screens, the individual
"scanner functions" now get a screen_array_t as their argument and add the
screens there. Also, they no longer emit the "added" signal themselves (through
screen_add()), but the caller does now does this instead once all screens are
found.
This commit drops the "deduplication" of screens. This likely means that clone
mode causes duplicate screens. This will have to be re-added later.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This was only partly converted to markdown. It still refers to wiki pages with
wiki syntax, because we first have to decide on what happens with the wiki
before this can be updated.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This is the current version of the FAQ in the wiki converted to markdown, but
some IMO bogus content was stripped (e.g. references to awesome being a
non-reparenting WM).
Signed-off-by: Uli Schlachter <psychon@znc.in>
When not including standard::type in the query for children of a file then Gio
may not look up this information. This might work on some file systems (e.g.
ext4), but other (apparently XFS) do not provide the needed file type
information (see man readdir on the d_type field). The result was that the
menubar contained no entries because no .desktop files were identified as
regular files and thus read.
Fix this by including standard::type in the queries.
Also, this commit makes the code use some pre-defined string constants from Gio
to make "double sure" that typos are caught.
Thanks to @Jajauma for doing the hard part on debugging this.
Fixes: https://github.com/awesomeWM/awesome/issues/863
Signed-off-by: Uli Schlachter <psychon@znc.in>
It can now keep the different return values and use them in
later chain nodes.
It also add a "virtual" geometry argument so the geometry is applied
only after the last node is executed.
Finally, it fixes using pretend and a composite chain at the same time.
This theme draws a minimal wallpaper directly. This commit replaces the
ImageSurface of the wallpaper with a RecordingSurface. This shouldn't have any
visible effect, except for reducing memory usage, because an ImageSurface needs
a lot of memory and is only eventually released by the garbage collector. A
RecordingSurface instead just records the operations that were done which needs
a lot less memory for the simple operations done here.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This makes the code create a wallpaper of the correct size, instead of cairo
later having to scale the wallpaper up to fill the screen (if it has a different
size than screen 1).
Signed-off-by: Uli Schlachter <psychon@znc.in>