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 (
options
module)
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:ServerOptions
SessionOptions
GlobalSessionOptions
LocalSessionOptions
WindowOptions
GlobalWindowOptions
LocalWindowOptions
PaneOptions
UserOptions
Control (getter/setter):
ServerOptionsCtl
SessionOptionsCtl
GlobalSessionOptionsCtl
LocalSessionOptionsCtl
WindowOptionsCtl
GlobalWindowOptionsCtl
LocalWindowOptionsCtl
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 (
variables
module), change from bitflags to format enums
Submodules:Sessions
Windows
Panes
Controller (getter):SessionsCtl
WindowsCtl
PanesCtl
-
Feature:
TmuxCommand
,cmd_builder
-
Feature: add styles partial support (
styles
module)
(not fully functional yet, preparing for review, contradictions, compatibility with other modules and future development, etc)Align
Colour
Range
StyleList
Style
-
Feature: add formats partial support (
formats
module). 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_mode
module)
(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
ShowOptions
arguments order -
fix(#10): fix typing mistake in structure name,
SelectLayout
struct of
.select_layout()
command -
fix(#9): fix typing mistake in function name,
.background()
method of
.run_shell()
andif_shell
commands -
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_alias
for 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_X
for multiple tmux versions support - add target objects and corresponding functions (
TargetSession
,
TargetWindow
,TargetWindowExt
,TargetPane
,TargetPaneExt
as 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
Layout
struct - add
from_str
functions for parsing - add
SessionStack
struct - add
PaneTabs
struct - 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
,clippy
suggestions and formatting - add inheritance of
stdin
, fixopen terminal failed: not a terminal
- add
tmux 3.0a
support