Age | Commit message (Collapse) | Author |
|
A criteria is a string in the form of `[class="regex.*" title="str"]`.
It is stored in a struct with a list of *tokens* which is a
attribute/value pair (stored as a `crit_token` struct). Most tokens will
also have a precompiled regex stored that will be used during criteria
matching.
for_window command: When a new view is created its metadata is tested
against all stored criteria, and if a match is found the associated
command list is executed.
Unfortunately some metadata is not available in sway at the moment
(specifically `instance`, `window_role` and `urgent`). Any criteria
string that tries to match an unsupported attribute will fail.
(Note that while the criteria code can be used to parse any criteria
string it is currently only used by the `for_window` command.)
|
|
cmake: fix ninja build
|
|
extensions: add missing include
|
|
When using the ninja generator:
$ cmake -G Ninja <dir>
$ ninja -C <dir>
This commit fixes the warning:
ninja: warning: multiple rules generate bin/wayland-desktop-shell-protocol.c. builds involving this target will not be correct; continuing anyway [-w dupbuild=warn]
|
|
This fixes a compiler warning:
../sway/extensions.c: In function ‘set_background’:
../sway/extensions.c:16:37: warning: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
struct background_config *config = malloc(sizeof(struct background_config));
^
../sway/extensions.c:16:37: warning: incompatible implicit declaration of built-in function ‘malloc’
../sway/extensions.c:16:37: note: include ‘<stdlib.h>’ or provide a declaration of ‘malloc’
|
|
cmake: Fix typo
|
|
|
|
Handle floating views in layout code
|
|
|
|
|
|
|
|
This should fix #241.
|
|
sway_binding_cmp_keys: Differentiate between modifier keys.
|
|
Compare modifiers as well as keys when number of modifiers+keys are the
same (so that e.g. mod1+x != mod4+x).
|
|
Initial support for criteria strings
|
|
We can't handle them currently (the criteria needs to e.g. be passed to
each command handler which then needs to do the right thing), so it's
better to just do nothing than to create unexpected results (because the
command was executed on the wrong view).
(Before this patch any command list with a criteria string would simply
fail to parse, so this is at least a step in the right direction.)
|
|
A criteria string (e.g. '[class="something" title="something"]') is now
correctly treated as a single argument.
|
|
Extra view metadata
|
|
|
|
|
|
fix list sorting
|
|
|
|
Handle bindsym duplicates
|
|
Also replace `bindsym_sort` with function `sway_binding_cmp` that takes
all data into account when comparing.
|
|
|
|
Fix `workspace_output` duplicates
|
|
This also fixes a bug where issuing a new "workspace a output b" command
for an already assigned workspace would not work (the old config would
be found first and used instead).
|
|
|
|
Sometimes one has to traverse a list to find out if some data already
exists there in order to avoid dupilcates in the list, and this function
facilitates in that without requiring that the data is ordered.
|
|
|
|
|
|
Note that not all scaling modes are actually supported by swaybg yet.
|
|
|
|
|
|
|
|
|
|
And create a background surface on every output when invoking swaybg.
|
|
Thanks @Cloudef, it works great
|
|
This does not work as expected. I think the problem is on the wlc side.
Please review, @Cloudef. To reproduce the issues:
1. Run sway
2. Open terminal in sway
3. Run swaybg
swaybg will create a surface and ask to have it set as the background,
but wlc_handle_from_wl_surface_resource will return 0. If the swaybg
surface is a shell surface, then it works - but wlc complains about the
pointer type and segfaults as soon as the pre-render hook tries to draw
the background.
|
|
|
|
|
|
|
|
Apparently wayland has fucking client-side cursors, too
|
|
|
|
|
|
|
|
|
|
|
|
Now it receives frame callbacks and renders properly, and is double
buffered and such.
|
|
This will allow us to eventually open that process on the current view.
Requires support from @Cloudef.
|