# libtmux.query:order-by

- **Package:** libtmux/query
- **Language:** Common Lisp
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-lisp/blob/c2e5fc4ed3befda21f45dfa5d5868c38fd138311/src/query.lisp#L789
- **Public owner:** libtmux.query
- **Page:** https://libtmux.org/en/lisp/latest/reference/libtmux-query-order-by/

```
(order-by set predicate &key (key (function identity)) (max-items +default-max-selection-items+))
```

Return a new query set stably ordered by native PREDICATE and KEY.
PREDICATE and KEY are function objects or symbols naming global functions,
each resolved once before sorting. Invalid designators signal
LIBTMUX:INVALID-ARGUMENT. Their calls follow the STABLE-SORT callback contract.
Sorting is eager and local, mutating only a private simple-vector copy. SET
remains unchanged; items are shared and equal keys retain input order.

See also: `libtmux.query:from`, `libtmux.query:items`, `libtmux.query:where-if`.

## Parameters

- `set`
- `predicate`
- `key?`
- `max-items?`

## Guides

Pages that discuss `order-by`.

- [Native queries](/en/lisp/latest/guides/queries/)
