GNU ELPA - transient


Transient commands
transient-0.3.7.tar, 2021-Oct-25, 390 KiB
Jonas Bernoulli <>
Home page
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET transient RET

Full description

Taking inspiration from prefix keys and prefix arguments, Transient
implements a similar abstraction involving a prefix command, infix
arguments and suffix commands.  We could call this abstraction a
"transient command", but because it always involves at least two
commands (a prefix and a suffix) we prefer to call it just a

When the user calls a transient prefix command, then a transient
(temporary) keymap is activated, which binds the transient's infix
and suffix commands, and functions that control the transient state
are added to `pre-command-hook' and `post-command-hook'.  The
available suffix and infix commands and their state are shown in
the echo area until the transient is exited by invoking a suffix

Calling an infix command causes its value to be changed, possibly
by reading a new value in the minibuffer.

Calling a suffix command usually causes the transient to be exited
but suffix commands can also be configured to not exit the
transient state.



Old versions

transient-0.3.6.tar.lz2021-Jul-0168.9 KiB
transient-0.3.5.tar.lz2021-Jun-1668.4 KiB
transient-0.3.4.tar.lz2021-May-2568.4 KiB
transient-0.3.2.tar.lz2021-Apr-2068.4 KiB
transient-0.3.0.tar.lz2021-Feb-2768.2 KiB


# -*- mode: org -*-
* v0.3.7    2021-10-25

- Added an additional safety hatch to prevent Emacs from entering an
  inconsistent state when an unexpected error occurs.  99e48369

- Added support for implementing section movement commands in
  third-party packages.  This was requested by the maintainer of
  Emacspeak.  Because they would be of very limited use to sighted
  users no such commands are added to Transient itself.  769219b5

- ~transient-read-number-{N0,N+,N}~ now support infix arguments that
  have three different states: disabled, enabled without an empty
  value, and enabled with a non-empty value.  626d105e

- If a command is called as a suffix of itself, then the help command
  shows the function definition instead of the man-page as it usually
  does for prefixes.  e17e2b2f

- Give users more control over how the transient buffer is displayed.
  Various aspects that were previously hardcoded can now be changed
  using the ~transient-display-buffer-action~ option.  7c677737

- Added support for adding suffixes that might be neither defined nor
  autoloaded when the prefix is invoked.  This usually results in an
  error and while it is now possible to override that using an extra
  step, it is still discouraged.  6842305e

Bug fixes:

- 1e740608 transient-map: Bind C-u to universal-argument
- e9048100 Explicitly call transient--pre-command in button action
- be119ee4 Export variables for transient non-infix suffixes
- b526b9c7 transient-infix-set: Consider all incompatibility rules
- 7126d6aa Fix hydra-inspired colors
- 0c2255a2 transient-get-value: Add an emergency exit

Also contains various documentation updates and code clean-ups.

* v0.3.6    2021-07-01

- Added new option ~transient-force-single-column~, which may be useful
  for low vision.  #122

- Added new option ~transient-highlight-higher-levels~, which is
  intended for package authors.  90a05622

* v0.3.5    2021-06-16

- Added a kludge to work around some unexpected Emacs behavior.

- When showing help for a suffix that is also a subprefix, then also
  consider the manpage that is set for the prefix, if any.  a9bdd013

* v0.3.4    2021-05-25

- Very minor changes.

* v0.3.3    2021-05-24

- Added SPDX-License-Identifier library header.  7d3d8d79

* v0.3.2    2021-04-20

- Fixed an error message.  c145229a

* v0.3.1    2021-04-19

- Changed ~transient-prefix~'s ~suffix-description~ slot to be initially
  unbound, as was always intended.  c28b8a4

- Added new functions ~transient-read-file~ and
  ~transient-read-existing-file~.  a3b44224

* v0.3.0    2021-02-21

- Added a temporary kludge to prevent a transient from being invoked
  while the minibuffer is active.  A future release will enable
  this again, once we are sure that cannot cause Emacs to enter an
  inconsistent state, that causes most events to be ignored.  #112

- Improved the backtrace that is shown when a fatal error occured in a
  critical context.  This involved some back and forth.  See commits
  mentioning the "emergency exit".

- Added support for defining a per-prefix fallback suffix description
  function, which is used for suffixes that do not explicitly provide
  a description.  The new ~suffix-description~ slot is used to specify
  that function.  The new ~transient-command-summary-or-name~ function
  is useful, not just as an example.  8b22b52b

- Added ~transient-arg-value~, which can be used to extract the values
  of individual arguments in the output of ~transient-args~.  d76f73f8

- Added support for using variables in group and suffix definitions
  of a prefix.  Such indirect specifications are resolved when the
  transient prefix is being defined.  #101

- No longer bind ~M-<key>~ to any common suffix commands; freeing this
  namespace for a variety of uses in individual transient.  A few
  existing bindings had to be changed because of this.  990eb0a2

- Added ~transient-suffixes~ function, which is useful when
  ~transient-args~ is not sufficient because ...