]> git.sur5r.net Git - i3/i3/commit
introduced i3 command for changing the hidden state and the mode of i3bar
authorhaptix@web.de <haptix@web.de>
Sat, 25 May 2013 12:30:00 +0000 (14:30 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 25 May 2013 21:00:36 +0000 (23:00 +0200)
commite3913093b6b233ec30ce7fc8504d095f55c5e1db
treeca27e080bc654a3ced2d243f7ed8de88046a88b2
parentf0eba6d15c5063ec3f4788cea328c60728e93979
introduced i3 command for changing the hidden state and the mode of i3bar

The hidden_state and mode of each i3bar instance can now be controlled from within i3.
Therefore, two new i3 command were introduced:
    _
    bar hidden_state show|hide|toggle [<bar_id>]

    show: always show the bar
    hide: normal hide mode
    toggle: toggle between show and hide (individually for each bar)
    _
    bar mode dock|hide|invisible|toggle [<bar_id>]

    hide,dock: like before
    invisible: always keep the bar hidden
    toggle: toggle between dock and hide (individually for each bar)

This patch introduces a hidden_state ("hidden_state hide|show") in the
barconfig, which indicates the current hidden_state of each i3bar
instance. It only affects the bar when in hide mode. Additionally, a new
invisible mode was introduced. In order to change the hidden_state or
mode of the bar from i3, a barconfig-update event was introduced, for
which a bar can subscribe and the bar then gets notified about the
currently set hidden_state and mode in its barconfig.

For convenience, an id field ("id <bar_id>") was added to the barconfig, where one can
set the desired id for the corresponding bar. If the id is not specified, i3 will
deterministically choose an id; otherwise, with the previous random approach for finding
a new id, which is actually not shared with i3bar, as it would determine its id on
startup, the event-subscription would be destroyed on reload. Still, this issue remains
when manually changing the bar_id in the config and then reloading.

fixes #833, #651
18 files changed:
docs/ipc
docs/userguide
i3bar/include/config.h
i3bar/src/config.c
i3bar/src/ipc.c
i3bar/src/xcb.c
include/commands.h
include/config.h
include/config_directives.h
include/i3/ipc.h
parser-specs/commands.spec
parser-specs/config.spec
src/commands.c
src/config.c
src/config_directives.c
src/ipc.c
testcases/t/187-commands-parser.t
testcases/t/201-config-parser.t