1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/// `%begin`
#[cfg(feature = "tmux_1_8")]
pub const OUTPUT_BLOCK_BEGIN: &str = "%begin";
/// `%end`
#[cfg(feature = "tmux_1_8")]
pub const OUTPUT_BLOCK_END: &str = "%end";
/// `%error`
#[cfg(feature = "tmux_1_8")]
pub const OUTPUT_BLOCK_ERROR: &str = "%error";

/// In control mode, tmux outputs notifications.  A notification will
/// never occur inside an output block. (tmux man)
///
/// `%client-detached client`
#[cfg(feature = "tmux_3_2")]
pub const NOTIFICATION_CLIENT_DETACHED: &str = "%client-detached";
/// `%client-session-changed client session-id name`
#[cfg(feature = "tmux_2_4")]
pub const NOTIFICATION_CLIENT_SESSION_CHANGED: &str = "%client-session-changed";
/// `%config-error error`
#[cfg(feature = "tmux_3_4")]
pub const NOTIFICATION_CONFIG_ERROR: &str = "%config-error";
/// `%continue pane-id`
#[cfg(feature = "tmux_3_2")]
pub const NOTIFICATION_CONTINUE: &str = "%continue";
/// `%exit [reason]`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_EXIT: &str = "%exit";
/// `%extended-output pane-id age ... : value`
#[cfg(feature = "tmux_3_2")]
pub const NOTIFICATION_EXTENDED_OUTPUT: &str = "%extended-output";
/// tmux ^2.2 `%layout-change window-id window-layout window-visible-layout`
/// tmux ^1.8 `%layout-change window-id window-layout`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_LAYOUT_CHANGE: &str = "%layout-change";
/// `%output pane-id value`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_OUTPUT: &str = "%output";
/// `%pane-mode-changed pane-id`
#[cfg(feature = "tmux_2_5")]
pub const NOTIFICATION_PANE_MODE_CHANGED: &str = "%pane-mode-changed";
/// `%paste-buffer-changed name`
#[cfg(feature = "tmux_3_4")]
pub const NOTIFICATION_PASTE_BUFFER_CHANGED: &str = "%paste-buffer-changed";
/// `%paste-buffer-deleted name`
#[cfg(feature = "tmux_3_4")]
pub const NOTIFICATION_PASTE_BUFFER_DELETED: &str = "%paste-buffer-deleted";
/// `%pause pane-id`
#[cfg(feature = "tmux_3_2")]
pub const NOTIFICATION_PAUSE: &str = "%pause";
/// `%session-changed session-id name`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_SESSION_CHANGED: &str = "%session-changed";
/// `%session-renamed name`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_SESSION_RENAMED: &str = "%session-renamed";
/// `%session-window-changed session-id window-id`
#[cfg(feature = "tmux_2_5")]
pub const NOTIFICATION_SESSION_WINDOW_CHANGED: &str = "%session-window-changed";
/// `%sessions-changed`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_SESSIONS_CHANGED: &str = "%sessions-changed";
/// `%subscription-changed name session-id window-id window-index`
#[cfg(feature = "tmux_3_2")]
pub const NOTIFICATION_SUBSCRIPTION_CHANGED: &str = "%subscription-changed";
/// `%unlinked-window-add window-id`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_UNLINKED_WINDOW_ADD: &str = "%unlinked-window-add";
/// `%unlinked-window-close window-id`
#[cfg(feature = "tmux_3_3")]
pub const NOTIFICATION_UNLINKED_WINDOW_CLOSE: &str = "%unlinked-window-close";
/// `%unlinked-window-renamed window-id`
#[cfg(feature = "tmux_3_3")]
pub const NOTIFICATION_UNLINKED_WINDOW_RENAMED: &str = "%unlinked-window-renamed";
/// `%window-add window-id`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_WINDOW_ADD: &str = "%window-add";
/// `%window-close window-id`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_WINDOW_CLOSE: &str = "%window-close";
/// `%window-pane-changed window-id pane-id`
#[cfg(feature = "tmux_2_5")]
pub const NOTIFICATION_WINDOW_PANE_CHANGED: &str = "%window-pane-changed";
/// `%window-renamed window-id name`
#[cfg(feature = "tmux_1_8")]
pub const NOTIFICATION_WINDOW_RENAMED: &str = "%window-renamed";

/// separator in notifications, and output block (`%begin<' '>1234<' '>0`)
pub const CONTROL_MODE_SEPARATOR: char = ' ';
/// additional separator used in extended-output notification
pub const CONTROL_MODE_EXTENDED_OUTPUT_SEPARATOR: &str = " : ";