# tmux.WindowFilter

- **Module:** tmux
- **Package:** github.com/libtmux/libtmux-go/tmux
- **Language:** Go
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-go/blob/5f808882015a975a65acc7f9da5b3ff0d5cbdc91/tmux/filter_generated.go#L50
- **Page:** https://libtmux.org/reference/go/tmux-windowfilter/

WindowFilter matches materialized [Window] 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 [Window.SessionID], [Window.ID], [Window.Index], [Window.Name], [Window.Active], [Window.Session], and [Window.Panes]. [WindowFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter].

## Members

- `SessionID` (attribute) — SessionID exactly matches the stable tmux session identifier from Window.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 Window.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.
- `ID` (attribute) — ID exactly matches the stable tmux window identifier from Window.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 window identifier from Window.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.
- `Index` (attribute) — Index exactly matches the nonnegative winlink index from Window.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 winlink index from Window.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 winlink index from Window.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 winlink index from Window.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 winlink index from Window.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 winlink index from Window.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.
- `Name` (attribute) — Name exactly matches the materialized window name from Window.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value.
- `NameIn` (attribute) — NameIn lists accepted values for the materialized window name from Window.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid.
- `NameContains` (attribute) — NameContains requires the materialized window name from Window.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string.
- `NameRegex` (attribute) — NameRegex requires the materialized window name from Window.Name to match Go regular expression syntax. An empty string leaves NameRegex unset.
- `Active` (attribute) — Active exactly matches the materialized active state from Window.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value.
- `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 Window.Session. A nil pointer leaves the relation criterion unset.
- `Panes` (attribute) — Panes traverses the materialized pane views returned by Window.Panes. 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 window filter; failures wrap [ErrInvalidFilter].
- `Predicate` (method) — Predicate validates the window filter and returns a local predicate for [Window] 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 window filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error.
