Transient User and Developer Manual

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 “transient”.

When the user calls a transient prefix command, 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 a popup buffer until the transient is exited by invoking a suffix command.

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.

The second part of this manual, which describes how to modify existing transients and create new transients from scratch, can be hard to digest if you are just getting started. A useful resource to get over that hurdle is Psionic K’s interactive tutorial, available at https://github.com/positron-solutions/transient-showcase.

This manual is for Transient version 0.4.3.

Copyright (C) 2018–2024 Free Software Foundation, Inc.

You can redistribute this document and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Table of Contents