1use crate::options::{GetSessionOptionTr, SessionOptions, SetSessionOptionTr, SetSessionOptionsTr};
2#[cfg(feature = "tmux_3_4")]
3use crate::MessageLine;
4use crate::{
5 Action, Activity, DestroyUnattached, DetachOnDestroy, Error, Status, StatusJustify, StatusKeys,
6 StatusPosition, Switch, TmuxCommand, TmuxOutput,
7};
8use std::borrow::Cow;
9use std::str::FromStr;
10
11pub trait SessionOptionsCtl<'a> {
17 type Getter: GetSessionOptionTr;
18 type Setter: SetSessionOptionTr;
19 type GetterAll: GetSessionOptionTr;
20 type SetterMultiple: SetSessionOptionsTr<'a>;
21
22 fn target(&self) -> Option<Cow<'a, str>>;
23
24 fn invoker(&self) -> &'a dyn Fn(TmuxCommand<'a>) -> Result<TmuxOutput, Error>;
25
26 fn get_all(&self) -> Result<SessionOptions<'a>, Error> {
35 Self::get_all_ext(self.target(), self.invoker())
36 }
37
38 fn get_all_ext(
39 target: Option<Cow<'a, str>>,
40 invoker: &'a dyn Fn(TmuxCommand<'a>) -> Result<TmuxOutput, Error>,
41 ) -> Result<SessionOptions<'a>, Error> {
42 let cmd = Self::GetterAll::all(target);
43 let output = (invoker)(cmd)?.to_string();
44 SessionOptions::from_str(&output)
45 }
46
47 fn set_all(&self, session_options: SessionOptions<'a>) -> Result<TmuxOutput, Error> {
48 Self::set_all_ext(self.target(), self.invoker(), session_options)
49 }
50
51 fn set_all_ext(
60 target: Option<Cow<'a, str>>,
61 invoke: &'a dyn Fn(TmuxCommand<'a>) -> Result<TmuxOutput, Error>,
62 session_options: SessionOptions<'a>,
63 ) -> Result<TmuxOutput, Error> {
64 let cmds = Self::SetterMultiple::new();
65
66 #[cfg(feature = "tmux_2_6")]
67 let cmds = cmds.activity_action(target.clone(), session_options.activity_action);
68
69 #[cfg(feature = "tmux_1_8")]
70 let cmds = cmds.assume_paste_time(target.clone(), session_options.assume_paste_time);
71
72 #[cfg(feature = "tmux_1_0")]
73 let cmds = cmds.base_index(target.clone(), session_options.base_index);
74
75 #[cfg(feature = "tmux_1_0")]
76 let cmds = cmds.bell_action(target.clone(), session_options.bell_action);
77
78 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_6")))]
79 let cmds = cmds.bell_on_alert(target.clone(), session_options.bell_on_alert);
80
81 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_4")))]
82 let cmds = cmds.buffer_limit(target.clone(), session_options.buffer_limit);
83
84 #[cfg(feature = "tmux_1_0")]
85 let cmds = cmds.default_command(target.clone(), session_options.default_command);
86
87 #[cfg(feature = "tmux_1_0")]
88 let cmds = cmds.default_shell(target.clone(), session_options.default_shell);
89
90 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
91 let cmds = cmds.default_path(target.clone(), session_options.default_path);
92
93 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_1")))]
94 let cmds = cmds.default_terminal(target.clone(), session_options.default_terminal);
95
96 #[cfg(feature = "tmux_2_9")]
97 let cmds = cmds.default_size(target.clone(), session_options.default_size);
98
99 #[cfg(feature = "tmux_1_5")]
100 let cmds = cmds.destroy_unattached(target.clone(), session_options.destroy_unattached);
101
102 #[cfg(feature = "tmux_1_4")]
103 let cmds = cmds.detach_on_destroy(target.clone(), session_options.detach_on_destroy);
104
105 #[cfg(feature = "tmux_1_2")]
106 let cmds = cmds.display_panes_active_colour(
107 target.clone(),
108 session_options.display_panes_active_colour,
109 );
110
111 #[cfg(feature = "tmux_1_0")]
112 let cmds = cmds.display_panes_colour(target.clone(), session_options.display_panes_colour);
113
114 #[cfg(feature = "tmux_1_0")]
115 let cmds = cmds.display_panes_time(target.clone(), session_options.display_panes_time);
116
117 #[cfg(feature = "tmux_1_0")]
118 let cmds = cmds.display_time(target.clone(), session_options.display_time);
119
120 #[cfg(feature = "tmux_1_0")]
121 let cmds = cmds.history_limit(target.clone(), session_options.history_limit);
122
123 #[cfg(feature = "tmux_2_2")]
124 let cmds = cmds.key_table(target.clone(), session_options.key_table);
125
126 #[cfg(feature = "tmux_1_0")]
127 let cmds = cmds.lock_after_time(target.clone(), session_options.lock_after_time);
128
129 #[cfg(feature = "tmux_1_1")]
130 let cmds = cmds.lock_command(target.clone(), session_options.lock_command);
131
132 #[cfg(all(feature = "tmux_1_1", not(feature = "tmux_2_1")))]
133 let cmds = cmds.lock_server(target.clone(), session_options.lock_server);
134
135 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
136 let cmds = cmds.message_attr(target.clone(), session_options.message_attr);
137
138 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
139 let cmds = cmds.message_bg(target.clone(), session_options.message_bg);
140
141 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
142 let cmds = cmds.message_command_attr(target.clone(), session_options.message_command_attr);
143
144 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
145 let cmds = cmds.message_command_bg(target.clone(), session_options.message_command_bg);
146
147 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
148 let cmds = cmds.message_command_fg(target.clone(), session_options.message_command_fg);
149
150 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
151 let cmds = cmds.message_fg(target.clone(), session_options.message_fg);
152
153 #[cfg(feature = "tmux_1_9")]
154 let cmds =
155 cmds.message_command_style(target.clone(), session_options.message_command_style);
156
157 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_2_0")))]
158 let cmds = cmds.message_limit(target.clone(), session_options.message_limit);
159
160 #[cfg(feature = "tmux_1_9")]
161 let cmds = cmds.message_style(target.clone(), session_options.message_style);
162
163 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
164 let cmds = cmds.mouse_resize_pane(target.clone(), session_options.mouse_resize_pane);
165
166 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
167 let cmds = cmds.mouse_select_pane(target.clone(), session_options.mouse_select_pane);
168
169 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
170 let cmds = cmds.mouse_select_window(target.clone(), session_options.mouse_select_window);
171
172 #[cfg(feature = "tmux_2_1")]
173 let cmds = cmds.mouse(target.clone(), session_options.mouse);
174
175 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_2")))]
176 let cmds = cmds.mouse_utf8(target.clone(), session_options.mouse_utf8);
177
178 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
179 let cmds =
180 cmds.pane_active_border_bg(target.clone(), session_options.pane_active_border_bg);
181
182 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
183 let cmds =
184 cmds.pane_active_border_fg(target.clone(), session_options.pane_active_border_fg);
185
186 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
187 let cmds = cmds.pane_border_bg(target.clone(), session_options.pane_border_bg);
188
189 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
190 let cmds = cmds.pane_border_fg(target.clone(), session_options.pane_border_fg);
191
192 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
193 let cmds =
194 cmds.pane_active_border_style(target.clone(), session_options.pane_active_border_style);
195
196 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
197 let cmds = cmds.pane_border_style(target.clone(), session_options.pane_border_style);
198
199 #[cfg(feature = "tmux_1_0")]
200 let cmds = cmds.prefix(target.clone(), session_options.prefix);
201
202 #[cfg(feature = "tmux_1_6")]
203 let cmds = cmds.prefix2(target.clone(), session_options.prefix2);
204
205 #[cfg(feature = "tmux_1_7")]
206 let cmds = cmds.renumber_windows(target.clone(), session_options.renumber_windows);
207
208 #[cfg(feature = "tmux_1_0")]
209 let cmds = cmds.repeat_time(target.clone(), session_options.repeat_time);
210
211 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_4")))]
212 let cmds = cmds.set_remain_on_exit(target.clone(), session_options.set_remain_on_exit);
213
214 #[cfg(feature = "tmux_1_0")]
215 let cmds = cmds.set_titles(target.clone(), session_options.set_titles);
216
217 #[cfg(feature = "tmux_1_0")]
218 let cmds = cmds.set_titles_string(target.clone(), session_options.set_titles_string);
219
220 #[cfg(feature = "tmux_2_6")]
221 let cmds = cmds.silence_action(target.clone(), session_options.silence_action);
222
223 #[cfg(feature = "tmux_1_0")]
224 let cmds = cmds.status(target.clone(), session_options.status);
225
226 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
227 let cmds = cmds.status_attr(target.clone(), session_options.status_attr);
228
229 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
230 let cmds = cmds.status_bg(target.clone(), session_options.status_bg);
231
232 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
233 let cmds = cmds.status_fg(target.clone(), session_options.status_fg);
234
235 #[cfg(feature = "tmux_1_0")]
239 let cmds = cmds.status_interval(target.clone(), session_options.status_interval);
240
241 #[cfg(feature = "tmux_1_0")]
242 let cmds = cmds.status_justify(target.clone(), session_options.status_justify);
243
244 #[cfg(feature = "tmux_1_0")]
245 let cmds = cmds.status_keys(target.clone(), session_options.status_keys);
246
247 #[cfg(feature = "tmux_1_0")]
248 let cmds = cmds.status_left(target.clone(), session_options.status_left);
249
250 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
251 let cmds = cmds.status_left_attr(target.clone(), session_options.status_left_attr);
252
253 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
254 let cmds = cmds.status_left_bg(target.clone(), session_options.status_left_bg);
255
256 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
257 let cmds = cmds.status_left_fg(target.clone(), session_options.status_left_fg);
258
259 #[cfg(feature = "tmux_1_0")]
260 let cmds = cmds.status_left_length(target.clone(), session_options.status_left_length);
261
262 #[cfg(feature = "tmux_1_9")]
263 let cmds = cmds.status_left_style(target.clone(), session_options.status_left_style);
264
265 #[cfg(feature = "tmux_1_7")]
266 let cmds = cmds.status_position(target.clone(), session_options.status_position);
267
268 #[cfg(feature = "tmux_1_0")]
269 let cmds = cmds.status_right(target.clone(), session_options.status_right);
270
271 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
272 let cmds = cmds.status_right_attr(target.clone(), session_options.status_right_attr);
273
274 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
275 let cmds = cmds.status_right_bg(target.clone(), session_options.status_right_bg);
276
277 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
278 let cmds = cmds.status_right_fg(target.clone(), session_options.status_right_fg);
279
280 #[cfg(feature = "tmux_1_0")]
281 let cmds = cmds.status_right_length(target.clone(), session_options.status_right_length);
282
283 #[cfg(feature = "tmux_1_9")]
284 let cmds = cmds.status_right_style(target.clone(), session_options.status_right_style);
285
286 #[cfg(feature = "tmux_1_9")]
287 let cmds = cmds.status_style(target.clone(), session_options.status_style);
288
289 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_2")))]
290 let cmds = cmds.status_utf8(target.clone(), session_options.status_utf8);
291
292 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
293 let cmds = cmds.terminal_overrides(target.clone(), session_options.terminal_overrides);
294
295 #[cfg(feature = "tmux_1_0")]
296 let cmds = cmds.update_environment(target.clone(), session_options.update_environment);
297
298 #[cfg(all(feature = "tmux_26", not(feature = "tmux_3_0")))]
299 let cmds = cmds.user_keys(target.clone(), session_options.user_keys);
300
301 #[cfg(feature = "tmux_1_0")]
302 let cmds = cmds.visual_activity(target.clone(), session_options.visual_activity);
303
304 #[cfg(feature = "tmux_1_0")]
305 let cmds = cmds.visual_bell(target.clone(), session_options.visual_bell);
306
307 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
308 let cmds = cmds.visual_content(target.clone(), session_options.visual_content);
309
310 #[cfg(feature = "tmux_1_4")]
311 let cmds = cmds.visual_silence(target.clone(), session_options.visual_silence);
312
313 #[cfg(feature = "tmux_1_6")]
314 let cmds = cmds.word_separators(target.clone(), session_options.word_separators);
315
316 let cmd = TmuxCommand::with_cmds(cmds.build());
319
320 invoke(cmd)
321 }
322
323 fn get<T: std::str::FromStr>(&self, cmd: TmuxCommand<'a>) -> Result<Option<T>, Error> {
327 let output = (self.invoker())(cmd)?.to_string();
328 let value = if output.is_empty() {
329 None
330 } else {
331 output.trim().parse::<T>().ok()
332 };
333 Ok(value)
334 }
336
337 fn get_array(&self, get_option_cmd: TmuxCommand<'a>) -> Result<Option<Vec<String>>, Error> {
359 let output = (self.invoker())(get_option_cmd)?;
360 let v: Vec<String> = output
361 .to_string()
362 .lines()
363 .map(|s| s.trim().into())
364 .collect();
365 let result = match v.is_empty() {
366 true => None,
367 false => Some(v),
368 };
369 Ok(result)
370 }
371 fn set(&self, cmd: TmuxCommand<'a>) -> Result<TmuxOutput, Error> {
373 (self.invoker())(cmd)
374 }
375
376 #[cfg(feature = "tmux_2_6")]
383 fn get_activity_action(&self) -> Result<Option<Action>, Error> {
384 self.get(Self::Getter::activity_action(self.target()))
385 }
386
387 #[cfg(feature = "tmux_2_6")]
394 fn set_activity_action(&self, activity_action: Option<Action>) -> Result<TmuxOutput, Error> {
395 self.set(Self::Setter::activity_action(
396 self.target(),
397 activity_action,
398 ))
399 }
400
401 #[cfg(feature = "tmux_1_8")]
408 fn get_assume_paste_time(&self) -> Result<Option<usize>, Error> {
409 self.get(Self::Getter::assume_paste_time(self.target()))
410 }
411
412 #[cfg(feature = "tmux_1_8")]
419 fn set_assume_paste_time(&self, assume_paste_time: Option<usize>) -> Result<TmuxOutput, Error> {
420 self.set(Self::Setter::assume_paste_time(
421 self.target(),
422 assume_paste_time,
423 ))
424 }
425
426 #[cfg(feature = "tmux_1_0")]
433 fn get_base_index(&self) -> Result<Option<usize>, Error> {
434 self.get(Self::Getter::base_index(self.target()))
435 }
436
437 #[cfg(feature = "tmux_1_0")]
444 fn set_base_index(&self, base_index: Option<usize>) -> Result<TmuxOutput, Error> {
445 self.set(Self::Setter::base_index(self.target(), base_index))
446 }
447
448 #[cfg(feature = "tmux_1_0")]
459 fn get_bell_action(&self) -> Result<Option<Action>, Error> {
460 self.get(Self::Getter::bell_action(self.target()))
461 }
462
463 #[cfg(feature = "tmux_1_0")]
474 fn set_bell_action(&self, bell_action: Option<Action>) -> Result<TmuxOutput, Error> {
475 self.set(Self::Setter::bell_action(self.target(), bell_action))
476 }
477
478 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_6")))]
485 fn get_bell_on_alert(&self) -> Result<Option<Switch>, Error> {
486 self.get(Self::Getter::bell_on_alert(self.target()))
487 }
488
489 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_6")))]
496 fn set_bell_on_alert(&self, bell_on_alert: Option<Switch>) -> Result<TmuxOutput, Error> {
497 self.set(Self::Setter::bell_on_alert(self.target(), bell_on_alert))
498 }
499
500 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_4")))]
507 fn get_buffer_limit(&self) -> Result<Option<usize>, Error> {
508 self.get(Self::Getter::buffer_limit(self.target()))
509 }
510
511 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_4")))]
518 fn set_buffer_limit(&self, buffer_limit: Option<usize>) -> Result<TmuxOutput, Error> {
519 self.set(Self::Setter::buffer_limit(self.target(), buffer_limit))
520 }
521
522 #[cfg(feature = "tmux_1_0")]
529 fn get_default_command(&self) -> Result<Option<String>, Error> {
530 self.get(Self::Getter::default_command(self.target()))
531 }
532
533 #[cfg(feature = "tmux_1_0")]
540 fn set_default_command(&self, default_command: Option<String>) -> Result<TmuxOutput, Error> {
541 self.set(Self::Setter::default_command(
542 self.target(),
543 default_command,
544 ))
545 }
546
547 #[cfg(feature = "tmux_1_0")]
554 fn get_default_shell(&self) -> Result<Option<String>, Error> {
555 self.get(Self::Getter::default_shell(self.target()))
556 }
557
558 #[cfg(feature = "tmux_1_0")]
565 fn set_default_shell(&self, default_shell: Option<String>) -> Result<TmuxOutput, Error> {
566 self.set(Self::Setter::default_shell(self.target(), default_shell))
567 }
568
569 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
576 fn get_default_path(&self) -> Result<Option<String>, Error> {
577 self.get(Self::Getter::default_path(self.target()))
578 }
579
580 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
587 fn set_default_path(&self, default_path: Option<String>) -> Result<TmuxOutput, Error> {
588 self.set(Self::Setter::default_path(self.target(), default_path))
589 }
590
591 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_1")))]
598 fn get_default_terminal(&self) -> Result<Option<String>, Error> {
599 self.get(Self::Getter::default_terminal(self.target()))
600 }
601
602 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_1")))]
609 fn set_default_terminal(&self, default_terminal: Option<String>) -> Result<TmuxOutput, Error> {
610 self.set(Self::Setter::default_terminal(
611 self.target(),
612 default_terminal,
613 ))
614 }
615
616 #[cfg(feature = "tmux_2_9")]
623 fn get_default_size(&self) -> Result<Option<(usize, usize)>, Error> {
624 unimplemented!()
625 }
627
628 #[cfg(feature = "tmux_2_9")]
635 fn set_default_size(&self, default_size: Option<(usize, usize)>) -> Result<TmuxOutput, Error> {
636 self.set(Self::Setter::default_size(self.target(), default_size))
637 }
638
639 #[cfg(feature = "tmux_1_5")]
651 fn get_destroy_unattached(&self) -> Result<Option<DestroyUnattached>, Error> {
652 self.get(Self::Getter::destroy_unattached(self.target()))
653 }
654
655 #[cfg(feature = "tmux_1_5")]
667 fn set_destroy_unattached(
668 &self,
669 destroy_unattached: Option<DestroyUnattached>,
670 ) -> Result<TmuxOutput, Error> {
671 self.set(Self::Setter::destroy_unattached(
672 self.target(),
673 destroy_unattached,
674 ))
675 }
676
677 #[cfg(feature = "tmux_1_4")]
689 fn get_detach_on_destroy(&self) -> Result<Option<DetachOnDestroy>, Error> {
690 self.get(Self::Getter::detach_on_destroy(self.target()))
691 }
692
693 #[cfg(feature = "tmux_1_4")]
705 fn set_detach_on_destroy(
706 &self,
707
708 detach_on_destroy: Option<DetachOnDestroy>,
709 ) -> Result<TmuxOutput, Error> {
710 self.set(Self::Setter::detach_on_destroy(
711 self.target(),
712 detach_on_destroy,
713 ))
714 }
715
716 #[cfg(feature = "tmux_1_2")]
723 fn get_display_panes_active_colour(&self) -> Result<Option<String>, Error> {
724 self.get(Self::Getter::display_panes_active_colour(self.target()))
725 }
726
727 #[cfg(feature = "tmux_1_2")]
734 fn set_display_panes_active_colour(
735 &self,
736
737 display_panes_active_colour: Option<String>,
738 ) -> Result<TmuxOutput, Error> {
739 self.set(Self::Setter::display_panes_active_colour(
740 self.target(),
741 display_panes_active_colour,
742 ))
743 }
744
745 #[cfg(feature = "tmux_1_0")]
752 fn get_display_panes_colour(&self) -> Result<Option<String>, Error> {
753 self.get(Self::Getter::display_panes_colour(self.target()))
754 }
755
756 #[cfg(feature = "tmux_1_0")]
763 fn set_display_panes_colour(
764 &self,
765
766 display_panes_colour: Option<String>,
767 ) -> Result<TmuxOutput, Error> {
768 self.set(Self::Setter::display_panes_colour(
769 self.target(),
770 display_panes_colour,
771 ))
772 }
773
774 #[cfg(feature = "tmux_1_0")]
781 fn get_display_panes_time(&self) -> Result<Option<usize>, Error> {
782 self.get(Self::Getter::display_panes_time(self.target()))
783 }
784
785 #[cfg(feature = "tmux_1_0")]
792 fn set_display_panes_time(
793 &self,
794
795 display_panes_time: Option<usize>,
796 ) -> Result<TmuxOutput, Error> {
797 self.set(Self::Setter::display_panes_time(
798 self.target(),
799 display_panes_time,
800 ))
801 }
802
803 #[cfg(feature = "tmux_1_0")]
810 fn get_display_time(&self) -> Result<Option<usize>, Error> {
811 self.get(Self::Getter::display_time(self.target()))
812 }
813
814 #[cfg(feature = "tmux_1_0")]
821 fn set_display_time(&self, display_time: Option<usize>) -> Result<TmuxOutput, Error> {
822 self.set(Self::Setter::display_time(self.target(), display_time))
823 }
824
825 #[cfg(feature = "tmux_1_0")]
832 fn get_history_limit(&self) -> Result<Option<usize>, Error> {
833 self.get(Self::Getter::history_limit(self.target()))
834 }
835
836 #[cfg(feature = "tmux_1_0")]
843 fn set_history_limit(&self, history_limit: Option<usize>) -> Result<TmuxOutput, Error> {
844 self.set(Self::Setter::history_limit(self.target(), history_limit))
845 }
846
847 #[cfg(feature = "tmux_2_2")]
854 fn get_key_table(&self) -> Result<Option<String>, Error> {
855 self.get(Self::Getter::key_table(self.target()))
856 }
857
858 #[cfg(feature = "tmux_2_2")]
865 fn set_key_table(&self, key_table: Option<String>) -> Result<TmuxOutput, Error> {
866 self.set(Self::Setter::key_table(self.target(), key_table))
867 }
868
869 #[cfg(feature = "tmux_1_0")]
876 fn get_lock_after_time(&self) -> Result<Option<usize>, Error> {
877 self.get(Self::Getter::lock_after_time(self.target()))
878 }
879
880 #[cfg(feature = "tmux_1_0")]
887 fn set_lock_after_time(&self, lock_after_time: Option<usize>) -> Result<TmuxOutput, Error> {
888 self.set(Self::Setter::lock_after_time(
889 self.target(),
890 lock_after_time,
891 ))
892 }
893
894 #[cfg(feature = "tmux_1_0")]
901 fn get_lock_command(&self) -> Result<Option<String>, Error> {
902 self.get(Self::Getter::lock_command(self.target()))
903 }
904
905 #[cfg(feature = "tmux_1_0")]
912 fn set_lock_command(&self, lock_command: Option<String>) -> Result<TmuxOutput, Error> {
913 self.set(Self::Setter::lock_command(self.target(), lock_command))
914 }
915
916 #[cfg(all(feature = "tmux_1_1", not(feature = "tmux_2_1")))]
923 fn get_lock_server(&self) -> Result<Option<Switch>, Error> {
924 self.get(Self::Getter::lock_server(self.target()))
925 }
926
927 #[cfg(all(feature = "tmux_1_1", not(feature = "tmux_2_1")))]
934 fn set_lock_server(&self, lock_server: Option<Switch>) -> Result<TmuxOutput, Error> {
935 self.set(Self::Setter::lock_server(self.target(), lock_server))
936 }
937
938 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
945 fn get_message_attr(&self) -> Result<Option<String>, Error> {
946 self.get(Self::Getter::message_attr(self.target()))
947 }
948
949 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
956 fn set_message_attr(&self, message_attr: Option<String>) -> Result<TmuxOutput, Error> {
957 self.set(Self::Setter::message_attr(self.target(), message_attr))
958 }
959
960 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
967 fn get_message_bg(&self) -> Result<Option<String>, Error> {
968 self.get(Self::Getter::message_bg(self.target()))
969 }
970
971 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
978 fn set_message_bg(&self, message_bg: Option<String>) -> Result<TmuxOutput, Error> {
979 self.set(Self::Setter::message_bg(self.target(), message_bg))
980 }
981
982 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
989 fn get_message_command_attr(&self) -> Result<Option<String>, Error> {
990 self.get(Self::Getter::message_command_attr(self.target()))
991 }
992
993 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
1000 fn set_message_command_attr(
1001 &self,
1002 message_command_attr: Option<String>,
1003 ) -> Result<TmuxOutput, Error> {
1004 self.set(Self::Setter::message_command_attr(
1005 self.target(),
1006 message_command_attr,
1007 ))
1008 }
1009
1010 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
1017 fn get_message_command_bg(&self) -> Result<Option<String>, Error> {
1018 self.get(Self::Getter::message_command_bg(self.target()))
1019 }
1020
1021 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
1028 fn set_message_command_bg(
1029 &self,
1030 message_command_bg: Option<String>,
1031 ) -> Result<TmuxOutput, Error> {
1032 self.set(Self::Setter::message_command_bg(
1033 self.target(),
1034 message_command_bg,
1035 ))
1036 }
1037
1038 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
1045 fn get_message_command_fg(mut self) -> Result<Option<String>, Error>
1046 where
1047 Self: Sized,
1048 {
1049 self.get(Self::Getter::message_command_fg(self.target()))
1050 }
1051
1052 #[cfg(all(feature = "tmux_1_6", not(feature = "tmux_1_9")))]
1059 fn set_message_command_fg<S: Into<Cow<'a, str>>>(
1060 &self,
1061 target: Option<S>,
1062 message_command_fg: Option<String>,
1063 ) -> Result<TmuxOutput, Error> {
1064 self.set(Self::Setter::message_command_fg(
1065 self.target(),
1066 message_command_fg,
1067 ))
1068 }
1069
1070 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1077 fn get_message_fg(&self) -> Result<Option<String>, Error> {
1078 self.get(Self::Getter::message_fg(self.target()))
1079 }
1080
1081 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1088 fn set_message_fg(&self, message_fg: Option<String>) -> Result<TmuxOutput, Error> {
1089 self.set(Self::Setter::message_fg(self.target(), message_fg))
1090 }
1091
1092 #[cfg(feature = "tmux_1_9")]
1099 fn get_message_command_style(&self) -> Result<Option<String>, Error> {
1100 self.get(Self::Getter::message_command_style(self.target()))
1101 }
1102
1103 #[cfg(feature = "tmux_1_9")]
1110 fn set_message_command_style(
1111 &self,
1112
1113 message_command_style: Option<String>,
1114 ) -> Result<TmuxOutput, Error> {
1115 self.set(Self::Setter::message_command_style(
1116 self.target(),
1117 message_command_style,
1118 ))
1119 }
1120
1121 #[cfg(feature = "tmux_3_4")]
1128 fn get_message_line(&self) -> Result<Option<MessageLine>, Error> {
1129 self.get(Self::Getter::message_line(self.target()))
1130 }
1131
1132 #[cfg(feature = "tmux_3_4")]
1139 fn set_message_line(&self, message_line: Option<MessageLine>) -> Result<TmuxOutput, Error> {
1140 self.set(Self::Setter::message_line(self.target(), message_line))
1141 }
1142
1143 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_2_0")))]
1150 fn get_message_limit(&self) -> Result<Option<usize>, Error> {
1151 self.get(Self::Getter::message_limit(self.target()))
1152 }
1153
1154 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_2_0")))]
1161 fn set_message_limit(&self, message_limit: Option<usize>) -> Result<TmuxOutput, Error> {
1162 self.set(Self::Setter::message_limit(self.target(), message_limit))
1163 }
1164
1165 #[cfg(feature = "tmux_1_9")]
1172 fn get_message_style(&self) -> Result<Option<String>, Error> {
1173 self.get(Self::Getter::message_style(self.target()))
1174 }
1175
1176 #[cfg(feature = "tmux_1_9")]
1183 fn set_message_style(&self, message_style: Option<String>) -> Result<TmuxOutput, Error> {
1184 self.set(Self::Setter::message_style(self.target(), message_style))
1185 }
1186
1187 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1194 fn get_mouse_resize_pane(&self) -> Result<Option<Switch>, Error> {
1195 self.get(Self::Getter::mouse_resize_pane(self.target()))
1196 }
1197
1198 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1205 fn set_mouse_resize_pane(
1206 &self,
1207
1208 mouse_resize_pane: Option<Switch>,
1209 ) -> Result<TmuxOutput, Error> {
1210 self.set(Self::Setter::mouse_resize_pane(
1211 self.target(),
1212 mouse_resize_pane,
1213 ))
1214 }
1215
1216 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1223 fn get_mouse_select_pane(&self) -> Result<Option<Switch>, Error> {
1224 self.get(Self::Getter::mouse_select_pane(self.target()))
1225 }
1226
1227 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1234 fn set_mouse_select_pane(&self, default_size: Option<Switch>) -> Result<TmuxOutput, Error> {
1235 self.set(Self::Setter::mouse_select_pane(self.target(), default_size))
1236 }
1237
1238 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1245 fn get_select_window(&self) -> Result<Option<Switch>, Error> {
1246 self.get(Self::Getter::mouse_select_window(self.target()))
1247 }
1248
1249 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_1")))]
1256 fn set_select_window(&self, select_window: Option<Switch>) -> Result<TmuxOutput, Error> {
1257 self.set(Self::Setter::mouse_select_window(
1258 self.target(),
1259 select_window,
1260 ))
1261 }
1262
1263 #[cfg(feature = "tmux_2_1")]
1270 fn get_mouse(&self) -> Result<Option<Switch>, Error> {
1271 self.get(Self::Getter::mouse(self.target()))
1272 }
1273
1274 #[cfg(feature = "tmux_2_1")]
1281 fn set_mouse(&self, mouse: Option<Switch>) -> Result<TmuxOutput, Error> {
1282 self.set(Self::Setter::mouse(self.target(), mouse))
1283 }
1284
1285 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_2")))]
1292 fn get_mouse_utf8(&self) -> Result<Option<Switch>, Error> {
1293 self.get(Self::Getter::mouse_utf8(self.target()))
1294 }
1295
1296 #[cfg(all(feature = "tmux_1_5", not(feature = "tmux_2_2")))]
1303 fn set_mouse_utf8(&self, mouse_utf8: Option<Switch>) -> Result<TmuxOutput, Error> {
1304 self.set(Self::Setter::mouse_utf8(self.target(), mouse_utf8))
1305 }
1306
1307 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1314 fn get_pane_active_border_bg(&self) -> Result<Option<String>, Error> {
1315 self.get(Self::Getter::pane_active_border_bg(self.target()))
1316 }
1317
1318 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1325 fn set_pane_active_border_bg(
1326 &self,
1327 pane_active_border_bg: Option<String>,
1328 ) -> Result<TmuxOutput, Error> {
1329 self.set(Self::Setter::pane_active_border_bg(
1330 self.target(),
1331 pane_active_border_bg,
1332 ))
1333 }
1334
1335 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1342 fn get_pane_active_border_fg(&self) -> Result<Option<String>, Error> {
1343 self.get(Self::Getter::pane_active_border_fg(self.target()))
1344 }
1345
1346 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1353 fn set_pane_active_border_fg(
1354 &self,
1355 pane_active_border_fg: Option<String>,
1356 ) -> Result<TmuxOutput, Error> {
1357 self.set(Self::Setter::pane_active_border_fg(
1358 self.target(),
1359 pane_active_border_fg,
1360 ))
1361 }
1362
1363 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1370 fn get_pane_border_bg(&self) -> Result<Option<String>, Error> {
1371 self.get(Self::Getter::pane_border_bg(self.target()))
1372 }
1373
1374 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1381 fn set_pane_border_bg(&self, pane_border_bg: Option<String>) -> Result<TmuxOutput, Error> {
1382 self.set(Self::Setter::pane_border_bg(self.target(), pane_border_bg))
1383 }
1384
1385 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1392 fn get_pane_border_fg(&self) -> Result<Option<String>, Error> {
1393 self.get(Self::Getter::pane_border_fg(self.target()))
1394 }
1395
1396 #[cfg(all(feature = "tmux_1_2", not(feature = "tmux_1_9")))]
1403 fn set_pane_border_fg(&self, pane_border_fg: Option<String>) -> Result<TmuxOutput, Error> {
1404 self.set(Self::Setter::pane_border_fg(self.target(), pane_border_fg))
1405 }
1406
1407 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
1414 fn get_pane_active_border_style(&self) -> Result<Option<String>, Error> {
1415 self.get(Self::Getter::pane_active_border_style(self.target()))
1416 }
1417
1418 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
1425 fn set_pane_active_border_style(
1426 &self,
1427 pane_active_border_style: Option<String>,
1428 ) -> Result<TmuxOutput, Error> {
1429 self.set(Self::Setter::pane_active_border_style(
1430 self.target(),
1431 pane_active_border_style,
1432 ))
1433 }
1434
1435 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
1442 fn get_pane_border_style(&self) -> Result<Option<String>, Error> {
1443 self.get(Self::Getter::pane_border_style(self.target()))
1444 }
1445
1446 #[cfg(all(feature = "tmux_1_9", not(feature = "tmux_2_0")))]
1453 fn set_pane_border_style(
1454 &self,
1455 pane_border_style: Option<String>,
1456 ) -> Result<TmuxOutput, Error> {
1457 self.set(Self::Setter::pane_border_style(
1458 self.target(),
1459 pane_border_style,
1460 ))
1461 }
1462
1463 #[cfg(feature = "tmux_1_0")]
1470 fn get_prefix(&self) -> Result<Option<String>, Error> {
1471 self.get(Self::Getter::prefix(self.target()))
1472 }
1473
1474 #[cfg(feature = "tmux_1_0")]
1481 fn set_prefix(&self, prefix: Option<String>) -> Result<TmuxOutput, Error> {
1482 self.set(Self::Setter::prefix(self.target(), prefix))
1483 }
1484
1485 #[cfg(feature = "tmux_1_6")]
1492 fn get_prefix2(&self) -> Result<Option<String>, Error> {
1493 self.get(Self::Getter::prefix2(self.target()))
1494 }
1495
1496 #[cfg(feature = "tmux_1_6")]
1503 fn set_prefix2(&self, prefix2: Option<String>) -> Result<TmuxOutput, Error> {
1504 self.set(Self::Setter::prefix2(self.target(), prefix2))
1505 }
1506
1507 #[cfg(feature = "tmux_1_7")]
1514 fn get_renumber_windows(&self) -> Result<Option<Switch>, Error> {
1515 self.get(Self::Getter::renumber_windows(self.target()))
1516 }
1517
1518 #[cfg(feature = "tmux_1_7")]
1525 fn set_renumber_windows(&self, renumber_windows: Option<Switch>) -> Result<TmuxOutput, Error> {
1526 self.set(Self::Setter::renumber_windows(
1527 self.target(),
1528 renumber_windows,
1529 ))
1530 }
1531
1532 #[cfg(feature = "tmux_1_0")]
1539 fn get_repeat_time(&self) -> Result<Option<usize>, Error> {
1540 self.get(Self::Getter::repeat_time(self.target()))
1541 }
1542
1543 #[cfg(feature = "tmux_1_0")]
1550 fn set_repeat_time(&self, repeat_time: Option<usize>) -> Result<TmuxOutput, Error> {
1551 self.set(Self::Setter::repeat_time(self.target(), repeat_time))
1552 }
1553
1554 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_4")))]
1561 fn get_set_remain_on_exit(&self) -> Result<Option<Switch>, Error> {
1562 self.get(Self::Getter::set_remain_on_exit(self.target()))
1563 }
1564
1565 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_4")))]
1572 fn set_set_remain_on_exit(
1573 &self,
1574
1575 set_remain_on_exit: Option<Switch>,
1576 ) -> Result<TmuxOutput, Error> {
1577 self.set(Self::Setter::set_remain_on_exit(
1578 self.target(),
1579 set_remain_on_exit,
1580 ))
1581 }
1582
1583 #[cfg(feature = "tmux_1_0")]
1590 fn get_set_titles(&self) -> Result<Option<Switch>, Error> {
1591 self.get(Self::Getter::set_titles(self.target()))
1592 }
1593
1594 #[cfg(feature = "tmux_1_0")]
1601 fn set_set_titles(&self, set_titles: Option<Switch>) -> Result<TmuxOutput, Error> {
1602 self.set(Self::Setter::set_titles(self.target(), set_titles))
1603 }
1604
1605 #[cfg(feature = "tmux_1_0")]
1612 fn get_set_titles_string(&self) -> Result<Option<String>, Error> {
1613 self.get(Self::Getter::set_titles_string(self.target()))
1614 }
1615
1616 #[cfg(feature = "tmux_1_0")]
1623 fn set_set_titles_string(
1624 &self,
1625
1626 set_titles_string: Option<String>,
1627 ) -> Result<TmuxOutput, Error> {
1628 self.set(Self::Setter::set_titles_string(
1629 self.target(),
1630 set_titles_string,
1631 ))
1632 }
1633
1634 #[cfg(feature = "tmux_2_6")]
1641 fn get_silence_action(&self) -> Result<Option<Action>, Error> {
1642 self.get(Self::Getter::silence_action(self.target()))
1643 }
1644
1645 #[cfg(feature = "tmux_2_6")]
1652 fn set_silence_action(&self, silence_action: Option<Action>) -> Result<TmuxOutput, Error> {
1653 self.set(Self::Setter::silence_action(self.target(), silence_action))
1654 }
1655
1656 #[cfg(feature = "tmux_1_0")]
1667 fn get_status(&self) -> Result<Option<Status>, Error> {
1668 self.get(Self::Getter::status(self.target()))
1669 }
1670
1671 #[cfg(feature = "tmux_1_0")]
1682 fn set_status(&self, status: Option<Status>) -> Result<TmuxOutput, Error> {
1683 self.set(Self::Setter::status(self.target(), status))
1684 }
1685
1686 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1693 fn get_status_attr(&self) -> Result<Option<String>, Error> {
1694 self.get(Self::Getter::status_attr(self.target()))
1695 }
1696
1697 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1704 fn set_status_attr(&self, status_attr: Option<String>) -> Result<TmuxOutput, Error> {
1705 self.set(Self::Setter::status_attr(self.target(), status_attr))
1706 }
1707
1708 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1715 fn get_status_bg(&self) -> Result<Option<String>, Error> {
1716 self.get(Self::Getter::status_bg(self.target()))
1717 }
1718
1719 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1726 fn set_status_bg(&self, status_bg: Option<String>) -> Result<TmuxOutput, Error> {
1727 self.set(Self::Setter::status_bg(self.target(), status_bg))
1728 }
1729
1730 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1737 fn get_status_fg(&self) -> Result<Option<String>, Error> {
1738 self.get(Self::Getter::status_fg(self.target()))
1739 }
1740
1741 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1748 fn set_status_fg(&self, status_fg: Option<String>) -> Result<TmuxOutput, Error> {
1749 self.set(Self::Setter::status_fg(self.target(), status_fg))
1750 }
1751
1752 #[cfg(feature = "tmux_2_9")]
1759 fn get_status_format(&self) -> Result<Option<Vec<String>>, Error> {
1760 self.get_array(Self::Getter::status_format(self.target()))
1761 }
1762
1763 #[cfg(feature = "tmux_2_9")]
1770 fn set_status_format<S, I>(&self, status_format: Option<I>) -> Result<TmuxOutput, Error>
1771 where
1772 S: Into<Cow<'a, str>>,
1773 I: IntoIterator<Item = S>,
1774 {
1775 self.set(TmuxCommand::with_cmds(Self::Setter::status_format(
1776 self.target(),
1777 status_format,
1778 )))
1779 }
1780
1781 #[cfg(feature = "tmux_1_0")]
1788 fn get_status_interval(&self) -> Result<Option<usize>, Error> {
1789 self.get(Self::Getter::status_interval(self.target()))
1790 }
1791
1792 #[cfg(feature = "tmux_1_0")]
1799 fn set_status_interval(&self, status_interval: Option<usize>) -> Result<TmuxOutput, Error> {
1800 self.set(Self::Setter::status_interval(
1801 self.target(),
1802 status_interval,
1803 ))
1804 }
1805
1806 #[cfg(feature = "tmux_1_0")]
1813 fn get_status_justify(&self) -> Result<Option<StatusJustify>, Error> {
1814 self.get(Self::Getter::status_justify(self.target()))
1815 }
1816
1817 #[cfg(feature = "tmux_1_0")]
1824 fn set_status_justify(
1825 &self,
1826
1827 status_justify: Option<StatusJustify>,
1828 ) -> Result<TmuxOutput, Error> {
1829 self.set(Self::Setter::status_justify(self.target(), status_justify))
1830 }
1831
1832 #[cfg(feature = "tmux_1_0")]
1839 fn get_status_keys(&self) -> Result<Option<StatusKeys>, Error> {
1840 self.get(Self::Getter::status_keys(self.target()))
1841 }
1842
1843 #[cfg(feature = "tmux_1_0")]
1850 fn set_status_keys(&self, status_keys: Option<StatusKeys>) -> Result<TmuxOutput, Error> {
1851 self.set(Self::Setter::status_keys(self.target(), status_keys))
1852 }
1853
1854 #[cfg(feature = "tmux_1_0")]
1861 fn get_status_left(&self) -> Result<Option<String>, Error> {
1862 self.get(Self::Getter::status_left(self.target()))
1863 }
1864
1865 #[cfg(feature = "tmux_1_0")]
1872 fn set_status_left(&self, status_left: Option<String>) -> Result<TmuxOutput, Error> {
1873 self.set(Self::Setter::status_left(self.target(), status_left))
1874 }
1875
1876 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1883 fn get_status_left_attr(&self) -> Result<Option<String>, Error> {
1884 self.get(Self::Getter::status_left_attr(self.target()))
1885 }
1886
1887 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1894 fn set_status_left_attr(&self, status_left_attr: Option<String>) -> Result<TmuxOutput, Error> {
1895 self.set(Self::Setter::status_left_attr(
1896 self.target(),
1897 status_left_attr,
1898 ))
1899 }
1900
1901 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1908 fn get_status_left_bg(&self) -> Result<Option<String>, Error> {
1909 self.get(Self::Getter::status_left_bg(self.target()))
1910 }
1911
1912 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1919 fn set_status_left_bg(&self, status_left_bg: Option<String>) -> Result<TmuxOutput, Error> {
1920 self.set(Self::Setter::status_left_bg(self.target(), status_left_bg))
1921 }
1922
1923 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1930 fn get_status_left_fg(&self) -> Result<Option<String>, Error> {
1931 self.get(Self::Getter::status_left_fg(self.target()))
1932 }
1933
1934 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
1941 fn set_status_left_fg(&self, status_left_fg: Option<String>) -> Result<TmuxOutput, Error> {
1942 self.set(Self::Setter::status_left_fg(self.target(), status_left_fg))
1943 }
1944
1945 #[cfg(feature = "tmux_1_0")]
1952 fn get_status_left_length(&self) -> Result<Option<usize>, Error> {
1953 self.get(Self::Getter::status_left_length(self.target()))
1954 }
1955
1956 #[cfg(feature = "tmux_1_0")]
1963 fn set_status_left_length(
1964 &self,
1965
1966 status_left_length: Option<usize>,
1967 ) -> Result<TmuxOutput, Error> {
1968 self.set(Self::Setter::status_left_length(
1969 self.target(),
1970 status_left_length,
1971 ))
1972 }
1973
1974 #[cfg(feature = "tmux_1_9")]
1981 fn get_status_left_style(&self) -> Result<Option<String>, Error> {
1982 self.get(Self::Getter::status_left_style(self.target()))
1983 }
1984
1985 #[cfg(feature = "tmux_1_9")]
1992 fn set_status_left_style(
1993 &self,
1994
1995 status_left_style: Option<String>,
1996 ) -> Result<TmuxOutput, Error> {
1997 self.set(Self::Setter::status_left_style(
1998 self.target(),
1999 status_left_style,
2000 ))
2001 }
2002
2003 #[cfg(feature = "tmux_1_7")]
2010 fn get_status_position(&self) -> Result<Option<StatusPosition>, Error> {
2011 self.get(Self::Getter::status_position(self.target()))
2012 }
2013
2014 #[cfg(feature = "tmux_1_7")]
2021 fn set_status_position(
2022 &self,
2023
2024 status_position: Option<StatusPosition>,
2025 ) -> Result<TmuxOutput, Error> {
2026 self.set(Self::Setter::status_position(
2027 self.target(),
2028 status_position,
2029 ))
2030 }
2031
2032 #[cfg(feature = "tmux_1_0")]
2039 fn get_status_right(&self) -> Result<Option<String>, Error> {
2040 self.get(Self::Getter::status_right(self.target()))
2041 }
2042
2043 #[cfg(feature = "tmux_1_0")]
2050 fn set_status_right(&self, status_right: Option<String>) -> Result<TmuxOutput, Error> {
2051 self.set(Self::Setter::status_right(self.target(), status_right))
2052 }
2053
2054 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
2061 fn get_status_right_attr(&self) -> Result<Option<String>, Error> {
2062 self.get(Self::Getter::status_right_attr(self.target()))
2063 }
2064
2065 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
2072 fn set_status_right_attr(
2073 &self,
2074 status_right_attr: Option<String>,
2075 ) -> Result<TmuxOutput, Error> {
2076 self.set(Self::Setter::status_right_attr(
2077 self.target(),
2078 status_right_attr,
2079 ))
2080 }
2081
2082 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
2089 fn get_status_right_fg(&self) -> Result<Option<String>, Error> {
2090 self.get(Self::Getter::status_right_fg(self.target()))
2091 }
2092
2093 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_1_9")))]
2100 fn set_status_right_fg(&self, status_right_fg: Option<String>) -> Result<TmuxOutput, Error> {
2101 self.set(Self::Setter::status_right_fg(
2102 self.target(),
2103 status_right_fg,
2104 ))
2105 }
2106
2107 #[cfg(feature = "tmux_1_0")]
2114 fn get_status_right_length(&self) -> Result<Option<usize>, Error> {
2115 self.get(Self::Getter::status_right_length(self.target()))
2116 }
2117
2118 #[cfg(feature = "tmux_1_0")]
2125 fn set_status_right_length(
2126 &self,
2127
2128 status_right_length: Option<usize>,
2129 ) -> Result<TmuxOutput, Error> {
2130 self.set(Self::Setter::status_right_length(
2131 self.target(),
2132 status_right_length,
2133 ))
2134 }
2135
2136 #[cfg(feature = "tmux_1_9")]
2143 fn get_status_right_style(&self) -> Result<Option<String>, Error> {
2144 self.get(Self::Getter::status_right_style(self.target()))
2145 }
2146
2147 #[cfg(feature = "tmux_1_9")]
2154 fn set_status_right_style(
2155 &self,
2156
2157 status_right_style: Option<String>,
2158 ) -> Result<TmuxOutput, Error> {
2159 self.set(Self::Setter::status_right_style(
2160 self.target(),
2161 status_right_style,
2162 ))
2163 }
2164
2165 #[cfg(feature = "tmux_1_9")]
2172 fn get_status_style(&self) -> Result<Option<String>, Error> {
2173 self.get(Self::Getter::status_style(self.target()))
2174 }
2175
2176 #[cfg(feature = "tmux_1_9")]
2183 fn set_status_style(&self, status_style: Option<String>) -> Result<TmuxOutput, Error> {
2184 self.set(Self::Setter::status_style(self.target(), status_style))
2185 }
2186
2187 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_2")))]
2194 fn get_status_utf8(&self) -> Result<Option<Switch>, Error> {
2195 self.get(Self::Getter::status_utf8(self.target()))
2196 }
2197
2198 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_2")))]
2205 fn set_status_utf8(&self, status_utf8: Option<Switch>) -> Result<TmuxOutput, Error> {
2206 self.set(Self::Setter::status_utf8(self.target(), status_utf8))
2207 }
2208
2209 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
2216 fn get_terminal_overrides(&self) -> Result<Option<String>, Error> {
2217 self.get(Self::Getter::terminal_overrides(self.target()))
2218 }
2219
2220 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
2227 fn set_terminal_overrides(
2228 &self,
2229 terminal_overrides: Option<String>,
2230 ) -> Result<TmuxOutput, Error> {
2231 self.set(Self::Setter::terminal_overrides(
2232 self.target(),
2233 terminal_overrides,
2234 ))
2235 }
2236
2237 #[cfg(feature = "tmux_1_0")]
2244 fn get_update_environment(&self) -> Result<Option<String>, Error> {
2245 self.get(Self::Getter::update_environment(self.target()))
2246 }
2247
2248 #[cfg(feature = "tmux_1_0")]
2255 fn set_update_environment<S, I>(
2256 &self,
2257 update_environment: Option<I>,
2258 ) -> Result<TmuxOutput, Error>
2259 where
2260 I: IntoIterator<Item = S>,
2261 S: Into<Cow<'a, str>>,
2262 {
2263 self.set(TmuxCommand::with_cmds(Self::Setter::update_environment(
2264 self.target(),
2265 update_environment,
2266 )))
2267 }
2268
2269 #[cfg(all(feature = "tmux_2_6", not(feature = "tmux_3_0")))]
2276 fn get_user_keys(&self) -> Result<Option<String>, Error> {
2277 self.get(Self::Getter::user_keys(self.target()))
2278 }
2279
2280 #[cfg(all(feature = "tmux_2_6", not(feature = "tmux_3_0")))]
2287 fn set_user_keys<S: Into<Cow<'a, str>> + Clone>(
2288 &self,
2289 user_keys: Option<Vec<String>>,
2290 ) -> Result<TmuxOutput, Error> {
2291 self.set(TmuxCommand::with_cmds(Self::Setter::user_keys(
2292 self.target(),
2293 user_keys,
2294 )))
2295 }
2296
2297 #[cfg(feature = "tmux_1_0")]
2309 fn get_visual_activity(&self) -> Result<Option<Activity>, Error> {
2310 self.get(Self::Getter::visual_activity(self.target()))
2311 }
2312
2313 #[cfg(feature = "tmux_1_0")]
2325 fn set_visual_activity(&self, visual_activity: Option<Activity>) -> Result<TmuxOutput, Error> {
2326 self.set(Self::Setter::visual_activity(
2327 self.target(),
2328 visual_activity,
2329 ))
2330 }
2331
2332 #[cfg(feature = "tmux_1_0")]
2344 fn get_visual_bell(&self) -> Result<Option<Activity>, Error> {
2345 self.get(Self::Getter::visual_bell(self.target()))
2346 }
2347
2348 #[cfg(feature = "tmux_1_0")]
2360 fn set_visual_bell(&self, visual_bell: Option<Activity>) -> Result<TmuxOutput, Error> {
2361 self.set(Self::Setter::visual_bell(self.target(), visual_bell))
2362 }
2363
2364 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
2371 fn get_visual_content(&self) -> Result<Option<Switch>, Error> {
2372 self.get(Self::Getter::visual_content(self.target()))
2373 }
2374
2375 #[cfg(all(feature = "tmux_1_0", not(feature = "tmux_2_0")))]
2382 fn set_visual_content(&self, visual_content: Option<Switch>) -> Result<TmuxOutput, Error> {
2383 self.set(Self::Setter::visual_content(self.target(), visual_content))
2384 }
2385
2386 #[cfg(feature = "tmux_1_4")]
2393 fn get_visual_silence(&self) -> Result<Option<Activity>, Error> {
2394 self.get(Self::Getter::visual_silence(self.target()))
2395 }
2396
2397 #[cfg(feature = "tmux_1_4")]
2404 fn set_visual_silence(&self, visual_silence: Option<Activity>) -> Result<TmuxOutput, Error> {
2405 self.set(Self::Setter::visual_silence(self.target(), visual_silence))
2406 }
2407
2408 #[cfg(feature = "tmux_1_6")]
2415 fn get_word_separators(&self) -> Result<Option<String>, Error> {
2416 self.get(Self::Getter::word_separators(self.target()))
2417 }
2418 #[cfg(feature = "tmux_1_6")]
2425 fn set_word_separators(&self, word_separators: Option<String>) -> Result<TmuxOutput, Error> {
2426 self.set(Self::Setter::word_separators(
2427 self.target(),
2428 word_separators,
2429 ))
2430 }
2431}