]> git.sur5r.net Git - i3/i3/commit
Introduce a new syntax for the 'assign' command:
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 11 Sep 2011 20:54:13 +0000 (21:54 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 11 Sep 2011 20:54:13 +0000 (21:54 +0100)
commite47e1008193f1f65016a61e3beeb02adc2de0773
treea0e271c5dfc36623e332b84a95ce2fb0b7049be9
parentd03dffe012ca1807b396270a4b145bfb0ae6d63a
Introduce a new syntax for the 'assign' command:

Instead of using a quoted string to specify the class / title, the assign
command now uses criteria, just like the for_window command or the command
scopes.

An example comes here:

    # Assign all Chromium windows (including popups) to workspace 1: www
    assign [class="^Chromium$"] → 1: www

    # Make the main browser window borderless
    for_window [class="^Chromium$" title=" - Chromium$"] border none

This gives you more control over the matching process due to various reasons:

1) Criteria work case-sensitive by default. Use the (?i) option if you want a
   case-insensitive match, like this:
   assign [class="(?i)^ChroMIUM$"] → 1

2) class and instance of WM_CLASS can now be matched separately. For example,
   when starting urxvt -name irssi, xprop will report this:
   WM_CLASS(STRING) = "irssi", "URxvt"
   The first part of this is the instance ("irssi"), the second part is the
   class ("URxvt").
   An appropriate assignment looks like this:
   assign [class="^URxvt$" instance="irssi"] → 2

3) You can now freely use a forward slash (/) in all strings since that is no
   longer used to separate class from title (in-band signaling is bad, mhkay?).
src/cfgparse.l
src/cfgparse.y