# tmux.PaneFilter

- **Module:** tmux
- **Package:** github.com/libtmux/libtmux-go/tmux
- **Language:** Go
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-go/blob/52968a3181c1c9e6d1b26c565d4b170968ae61c0/tmux/filter_generated.go#L95
- **Page:** https://libtmux.org/en/go/latest/reference/tmux-panefilter/

PaneFilter matches materialized [Pane] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Pane.SessionID], [Pane.WindowID], [Pane.ID], [Pane.WindowIndex], [Pane.Index], [Pane.CurrentCommand], [Pane.Active], [Pane.Title], [Pane.Session], and [Pane.Window]. [PaneFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter].

## Members

- `SessionID` (attribute): SessionID exactly matches the stable tmux session identifier from Pane.SessionID, including its $ sigil. A nil pointer leaves SessionID unset; a non-nil pointer applies it, including when it points to the zero value.
- `SessionIDIn` (attribute): SessionIDIn lists accepted values for the stable tmux session identifier from Pane.SessionID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves SessionIDIn unset; a non-nil empty slice is invalid.
- `WindowID` (attribute): WindowID exactly matches the stable tmux window identifier from Pane.WindowID, including its @ sigil. A nil pointer leaves WindowID unset; a non-nil pointer applies it, including when it points to the zero value.
- `WindowIDIn` (attribute): WindowIDIn lists accepted values for the stable tmux window identifier from Pane.WindowID, including its @ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIDIn unset; a non-nil empty slice is invalid.
- `ID` (attribute): ID exactly matches the stable tmux pane identifier from Pane.ID, including its % sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value.
- `IDIn` (attribute): IDIn lists accepted values for the stable tmux pane identifier from Pane.ID, including its % sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid.
- `WindowIndex` (attribute): WindowIndex exactly matches the nonnegative winlink index from Pane.WindowIndex. A nil pointer leaves WindowIndex unset; a non-nil pointer applies it, including when it points to the zero value.
- `WindowIndexIn` (attribute): WindowIndexIn lists accepted values for the nonnegative winlink index from Pane.WindowIndex. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIndexIn unset; a non-nil empty slice is invalid.
- `WindowIndexGT` (attribute): WindowIndexGT requires the nonnegative winlink index from Pane.WindowIndex to be strictly greater than the pointed-to value. A nil pointer leaves WindowIndexGT unset; a non-nil pointer applies it, including when it points to the zero value.
- `WindowIndexGTE` (attribute): WindowIndexGTE requires the nonnegative winlink index from Pane.WindowIndex to be greater than or equal to the pointed-to value. A nil pointer leaves WindowIndexGTE unset; a non-nil pointer applies it, including when it points to the zero value.
- `WindowIndexLT` (attribute): WindowIndexLT requires the nonnegative winlink index from Pane.WindowIndex to be strictly less than the pointed-to value. A nil pointer leaves WindowIndexLT unset; a non-nil pointer applies it, including when it points to the zero value.
- `WindowIndexLTE` (attribute): WindowIndexLTE requires the nonnegative winlink index from Pane.WindowIndex to be less than or equal to the pointed-to value. A nil pointer leaves WindowIndexLTE unset; a non-nil pointer applies it, including when it points to the zero value.
- `Index` (attribute): Index exactly matches the nonnegative pane index from Pane.Index. A nil pointer leaves Index unset; a non-nil pointer applies it, including when it points to the zero value.
- `IndexIn` (attribute): IndexIn lists accepted values for the nonnegative pane index from Pane.Index. A candidate matches when its materialized value equals one listed value. A nil slice leaves IndexIn unset; a non-nil empty slice is invalid.
- `IndexGT` (attribute): IndexGT requires the nonnegative pane index from Pane.Index to be strictly greater than the pointed-to value. A nil pointer leaves IndexGT unset; a non-nil pointer applies it, including when it points to the zero value.
- `IndexGTE` (attribute): IndexGTE requires the nonnegative pane index from Pane.Index to be greater than or equal to the pointed-to value. A nil pointer leaves IndexGTE unset; a non-nil pointer applies it, including when it points to the zero value.
- `IndexLT` (attribute): IndexLT requires the nonnegative pane index from Pane.Index to be strictly less than the pointed-to value. A nil pointer leaves IndexLT unset; a non-nil pointer applies it, including when it points to the zero value.
- `IndexLTE` (attribute): IndexLTE requires the nonnegative pane index from Pane.Index to be less than or equal to the pointed-to value. A nil pointer leaves IndexLTE unset; a non-nil pointer applies it, including when it points to the zero value.
- `Command` (attribute): Command exactly matches the materialized current command from Pane.CurrentCommand. A nil pointer leaves Command unset; a non-nil pointer applies it, including when it points to the zero value.
- `CommandIn` (attribute): CommandIn lists accepted values for the materialized current command from Pane.CurrentCommand. A candidate matches when its materialized value equals one listed value. A nil slice leaves CommandIn unset; a non-nil empty slice is invalid.
- `CommandContains` (attribute): CommandContains requires the materialized current command from Pane.CurrentCommand to contain the pointed-to substring. A nil pointer leaves CommandContains unset; a non-nil pointer applies it, and an empty string matches every available string.
- `CommandRegex` (attribute): CommandRegex requires the materialized current command from Pane.CurrentCommand to match Go regular expression syntax. An empty string leaves CommandRegex unset.
- `Active` (attribute): Active exactly matches the materialized active state from Pane.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value.
- `Title` (attribute): Title exactly matches the materialized title from Pane.Title. A nil pointer leaves Title unset; a non-nil pointer applies it, including when it points to the zero value.
- `TitleIn` (attribute): TitleIn lists accepted values for the materialized title from Pane.Title. A candidate matches when its materialized value equals one listed value. A nil slice leaves TitleIn unset; a non-nil empty slice is invalid.
- `TitleContains` (attribute): TitleContains requires the materialized title from Pane.Title to contain the pointed-to substring. A nil pointer leaves TitleContains unset; a non-nil pointer applies it, and an empty string matches every available string.
- `TitleRegex` (attribute): TitleRegex requires the materialized title from Pane.Title to match Go regular expression syntax. An empty string leaves TitleRegex unset.
- `AnyOf` (attribute): AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid.
- `Not` (attribute): Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset.
- `Session` (attribute): Session traverses the materialized parent returned by Pane.Session. A nil pointer leaves the relation criterion unset.
- `Window` (attribute): Window traverses the materialized parent returned by Pane.Window. A nil pointer leaves the relation criterion unset.
- `Validate` (method): Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter].
- `MarshalJSON` (method): MarshalJSON validates and encodes the pane filter; failures wrap [ErrInvalidFilter].
- `Predicate` (method): Predicate validates the pane filter and returns a local predicate for [Pane] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate.
- `UnmarshalJSON` (method): UnmarshalJSON clears the receiver, strictly decodes a pane filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error.
