GNU ELPA - transient


Transient commands
transient-0.3.6.tar, 2021-Jul-01, 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.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.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 one needs the suffix
  objects, not just their values.  #98

- Added ~init-value~ slot for infix and prefix objects.  If this value
  bound then it is called with the object as only argument instead of
  the primary ~transient-init-value~ method of the object class.  #96,

- Added ~unsavable~ slot for infix objects.  If this is non-nil, then
  the value of the infix is removed from the prefix value before
  saving, setting and adding to history.  #96

- Added support for right padding the keys of all suffixes in a group.
  This is controlled using the new ~pad-keys~ slot of group objects.
  7502390b, 293a437d

- Added support for delaying setup of the suffixes of a prefix until
  that is invoked.  Also added support for using unnamed functions as
  suffix commands.  Taken together these changes make it possible to
  dynamically create the list of suffixed.  See the ~notmuch-transient~
  package for two examples: ~notmuch-search-transient~ and
  ~notmuch-tag-transient~.  f2252d53, a3e53633

- Added the infix class ~transient-lisp-variable~.  2d8ceff4

- Added ~transient-infix-read~, which allows arbitrary commands to read
  a value the same way as would the infix command that is provided as
  an argument to this function.  73694be4

- Added support for coloring suffixes in a Hydra-like fashion.
  To enable this, customize option ~transient-semantic-coloring~.

- Added support for disabling and dimming suffix commands that are
  currently not suitable, instead of completely hidding them.  #80

- Autoload functions that serve a purpose similar to that of
  ~define-key~. #85

- Consistently use ~transient-~ as th...