sway-patched-tray-menu/sway/commands
Ryan Dwyer 3b0c26d149 Overhaul criteria implementation
The criteria struct now uses properties for each token type rather than
the list_t list of tokens. The reason for this is that different token
types have different data types: pcre, string and number to name a few.
This solution should be more flexible moving forward. A bonus of this is
that criteria is now easier to understand when looking at the struct
definition.

The criteria parser has been rewritten because the previous one didn't
support valueless pairs (eg. [class="foo" floating]).

Criteria now has types. Types at the moment are CT_COMMAND,
CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well.
Previously the assign command was creating a criteria with 'move to
workspace <name>' as its command, but this caused the window to appear
briefly on the focused workspace before being moved to the assigned
workspace. It now creates the view directly in the assigned workspace.

Each view will only execute a given criteria once. This is achieved by
storing a list of executed criteria in the view. This is the same
strategy used by i3.

Escaping now works properly. Previously you could do things like
[class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it
should be (and now is) 'Fire"fox'.

The public functions in criteria.c are now all prefixed with criteria_.

Xwayland views now listen to the set_title, set_class and
set_window_type events and criteria will be run when these happen. XDG
shell has none of these events so it continues to update the title in
handle_commit.

Each view type's get_prop function has been split into get_string_prop
and get_int_prop because some properties like the X11 window ID and
window type are numeric.

The following new criteria tokens are now supported:

* id (X11 window ID)
* instance
* tiling
* workspace
2018-05-11 09:38:53 +10:00
..
bar Clean up imported bar commands 2018-03-29 22:11:08 -04:00
input Add map_from_region command 2018-04-26 10:53:47 +01:00
seat Default to current time when triggering cursor events 2018-04-21 14:07:22 +01:00
assign.c Overhaul criteria implementation 2018-05-11 09:38:53 +10:00
bar.c Use statically allocated text buffer 2018-03-29 22:11:08 -04:00
bind.c sway: change all sway_log to wlr_log 2018-01-05 23:39:46 +01:00
border.c Update cursor when border is changed 2018-05-01 22:42:08 +10:00
client.c Convert border_colors.text to float[4] 2018-05-03 08:14:17 -04:00
default_border.c Implement borders 2018-04-30 21:24:13 +10:00
default_orientation.c Add default_orientation command 2018-03-30 10:43:55 -04:00
exec.c sway: change all sway_log to wlr_log 2018-01-05 23:39:46 +01:00
exec_always.c Revert "exec_always: Search for executables in /usr/lib/sway" 2018-05-06 00:20:49 +01:00
exit.c remove checks for command handlers 2018-02-24 13:22:57 -05:00
focus.c Merge branch 'wlroots' into seat-fixes 2018-04-02 13:23:43 -04:00
focus_follows_mouse.c Implement focus_follows_mouse 2018-03-31 13:05:45 -04:00
font.c Implement pango support 2018-05-06 08:25:22 +10:00
for_window.c Overhaul criteria implementation 2018-05-11 09:38:53 +10:00
fullscreen.c Fullscreen fixes. 2018-04-18 00:10:32 +10:00
include.c Add include command 2017-12-05 18:47:57 +01:00
input.c Make key repeat configurable 2018-04-18 23:19:23 +10:00
kill.c address feedback 2018-04-03 19:23:59 -04:00
layout.c Refactor arrange_windows() 2018-04-28 11:26:14 +10:00
mode.c Implement modes 2018-03-29 22:11:08 -04:00
mouse_warping.c Implement mouse warping 2018-03-31 13:05:45 -04:00
move.c Add workspace_auto_back_and_forth for move cmd 2018-04-09 21:34:56 +02:00
opacity.c Simplify damage tracking functions, use them in layer shell 2018-04-06 11:45:40 -04:00
output.c Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree" 2018-03-29 23:41:33 -04:00
reload.c Refactor arrange_windows() 2018-04-28 11:26:14 +10:00
rename.c Sort workspaces after rename 2018-04-23 18:54:45 +10:00
resize.c Fix segfault when running the resize command without arguments 2018-05-03 14:04:39 +01:00
seat.c Implement cursor event simulation with sway commands. 2018-04-10 12:40:50 -04:00
set.c add config handlers 2018-02-24 13:34:47 -05:00
split.c Refactor arrange_windows() 2018-04-28 11:26:14 +10:00
swaybg_command.c Add swaybg_command 2018-03-29 22:11:08 -04:00
title_format.c Move code for re-arranging after font height change into a common place 2018-05-05 22:29:37 +10:00
workspace.c move workspace create to workspace.c 2018-04-03 19:52:17 -04:00
ws_auto_back_and_forth.c Add workspace_auto_back_and_forth command 2018-04-08 16:44:59 +02:00