Releases: AntonGepting/tmux-interface-rs
v0.3.2
v0.3.1
v0.3.0
Massive changes incompatible with latest release.
Command building and combining mechanisms changed.
Still can be used very carefully on your own risk.
Still missing almost all library documentation
(principles of usage can be partially derived from unit tests or integration tests).
- Refactor: breaking changes options support (
optionsmodule)
Command building mechanisms instead of bitflags
-
Getter/Setter structures for building getter/setter option commands
-
Single/Multiple/All getter/setter for options
-
Local/Global options support
-
Controller structures for working with all options structures
Submodules:ServerOptionsSessionOptionsGlobalSessionOptionsLocalSessionOptions
WindowOptionsGlobalWindowOptionsLocalWindowOptions
PaneOptionsUserOptions
Control (getter/setter):
ServerOptionsCtlSessionOptionsCtlGlobalSessionOptionsCtlLocalSessionOptionsCtl
WindowOptionsCtlGlobalWindowOptionsCtlLocalWindowOptionsCtl
PaneOptionsCtl
-
Feature: add macro feature for commands builder using lazy short flags instead of looking for full methods names (e.g.
new_session!(-s "session_name"),kill_session!(-t "session_name)... ). -
Refactor/Feature: variables (
variablesmodule), change from bitflags to format enums
Submodules:SessionsWindowsPanes
Controller (getter):SessionsCtlWindowsCtlPanesCtl
-
Feature:
TmuxCommand,cmd_builder -
Feature: add styles partial support (
stylesmodule)
(not fully functional yet, preparing for review, contradictions, compatibility with other modules and future development, etc)AlignColourRangeStyleListStyle
-
Feature: add formats partial support (
formatsmodule). Used mainly for variables module. Allows to build custom format strings for requesting custom tmux variables lists and parsing later in structures.Variable- single Variable as enum with fields for tmux variables (as string e.g.{#window_active})Formats- list with variables and separator (as string e.g.{#window_active}'{#window_index}'{#...})VariableOutput- single pointer to variable or structure field where output should be stored ()FormatsOutput- list with pointers to variables or structure fields where output should be stored ()
-
Feature: add tmux control mode support draft (
control_modemodule)
(not fully functional yet, preparing for review, contradictions, compatibility with other modules and future development, etc) -
Feature: add tmux 3.3 partial support (cargo features:
tmux_3_3,tmux_3_3a) -
Feature: add tmux 3.2 partial support (cargo features:
tmux_3_2,tmux_3_2a) -
Feature: add tmux 3.1 partial support (cargo features:
tmux_3_1,tmux_3_1a,tmux_3_1b,tmux_3_1c) -
Feature(#11): breaking changes, switch back to builder pattern for tmux
commands. -
breaking changes, switch from borrowing to owning builder pattern
-
commands are now made more compatible with default and control modes of tmux,
binary executable part of command moved to separate struct -
order of given arguments for commands doesn't matter,
.build()function uses
default order of arguments from tmux manual -
fix(#8): fix
ShowOptionsarguments order -
fix(#10): fix typing mistake in structure name,
SelectLayoutstruct of
.select_layout()command -
fix(#9): fix typing mistake in function name,
.background()method of
.run_shell()andif_shellcommands -
refactor: restructuring of modules, submodules, directories, files
-
fix: adapt/rework/rewrite integration and unit tests
v0.2.1
v0.2.0
- fix parsing of time in Session and Window (
session_activity,
session_created,session_last_attached,window_activity)
v0.1.0
- introduce new architecture (massive incompatible changes with older versions)
- refactor tmux command wrapper functions
-
old simplified function call was:
let mut tmux = TmuxInterface::new(); tmux.new_session(NewSessionBuilder::new().session_name(...)); // or let mut tmux = TmuxInterface::new(); let new_session = NewSession { detached: Some(true), ..Default::default(); }; tmux.new_session(&new_session).unwrap(); -
change to simplified function call now:
let mut tmux = TmuxCommand:new(); tmux.new_session().detached().session_name(...)...(...).output().unwrap(); // or directly NewSession::new().detached().session_name(...)...(...).output().unwrap();
-
- rename crate feature
use_cmd_alias->cmd_alias
v0.0.7
- add cargo feature
use_cmd_aliasfor alias support for tmux commands
(list-sessions->ls) - implement builder pattern for structures of tmux subcommands
(NewSessionBuilder::new().session_name("my_session_name").build()) - add cargo features
tmux_0_8...tmux_X_Xfor multiple tmux versions support - add target objects and corresponding functions (
TargetSession,
TargetWindow,TargetWindowExt,TargetPane,TargetPaneExtas an equivalent
totarget-session,target-window,target-pane) - restructuring of directories and files add tmux options objects and functions
- add tmux options (
ServerOptions,SessionOptions,WindowOptions,PaneOptions) - add tmux variables (
session_*,window_*,pane_*)
v0.0.6
- add
Layoutstruct - add
from_strfunctions for parsing - add
SessionStackstruct - add
PaneTabsstruct - add bitflags for parsing variables
- refactor arguments number and structures for functions
- move non-optional arguments out of structure
- add callback hooks (
pre_hook,post_hook) - add enum for pane size (size, percentage)
- accept
rustfmt,clippysuggestions and formatting - add inheritance of
stdin, fixopen terminal failed: not a terminal - add
tmux 3.0asupport