aboutsummaryrefslogtreecommitdiff
path: root/sway/criteria.c
AgeCommit message (Collapse)Author
2017-04-07Added designated initaliser, to prevent any possible problem withScott Anderson
ordering
2017-04-07Changed regular expressions to use PCRE for i3 compatibilityScott Anderson
2017-04-05Improve criteria handlingCalvin Lee
This commit changes how commands decide what container to act on. Commands get the current container though `current_container`, a global defined in sway/commands.c. If a criteria is given before a command, then the following command will be run once for every container the criteria matches with a reference to the matching container in 'current_container'. Commands should use this instead of `get_focused_container()` from now on. This commit also fixes a few (minor) mistakes made in implementing marks such as non-escaped arrows in sway(5) and calling the "mark" command "floating" by accident. It also cleans up `criteria.c` in a few places.
2017-04-03Impliment i3-style marksCalvin Lee
This commit adds three commands to sway: `show_marks`, `mark` and `unmark`. Marks are displayed right-aligned in the window border as i3 does. Marks may be found using criteria. Fixes #1007
2017-03-10UnGNUify the codebaseDrew DeVault
2017-01-18Merge pull request #1053 from Hummer12007/__focused__Drew DeVault
Support __focused__ as a valid criterion
2017-01-19Support __focused__ as a valid criterionMykyta Holubakha
This reflects i3 behavior (see i3/i3#1770) Scrapping focused support will probably break some existing configs
2017-01-19Add window instance supportMykyta Holubakha
2016-09-01Reorganize includesDrew DeVault
2015-11-25criteria: Code formatting.S. Christoffer Eliesen
2015-11-25criteria: Add. Learn for_window command.S. Christoffer Eliesen
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.)