Yes, see transient-display-buffer-action
in Configuration. You can
also control how the popup buffer is displayed on a case-by-case basis
by passing :display-action
to transient-define-prefix
.
To be able to mark text in Transient’s popup buffer using the mouse, you have to add the below binding. Note that for technical reasons, the region won’t be visualized, while doing so. After you have quit the transient popup, you will be able to yank it in another buffer.
(keymap-set transient-predicate-map "<mouse-set-region>" #'transient--do-stay)
If your package only supports Emacs 30, just prefix the definition
with ;;;###autoload
. If your package supports released versions of
Emacs, you unfortunately have to use a long form autoload comment
as described in (elisp)Autoload.
;;;###autoload (autoload 'magit-dispatch "magit" nil t) (transient-define-prefix magit-dispatch () ...)
See https://github.com/magit/transient/wiki/Comparison-with-prefix-keys-and-universal-arguments.
See https://github.com/magit/transient/wiki/Comparison-with-other-packages.
I agree that q is a good binding for commands that quit something.
This includes quitting whatever transient is currently active, but it
also includes quitting whatever it is that some specific transient is
controlling. The transient magit-blame
for example binds q to the
command that turns magit-blame-mode
off.
So I had to decide if q should quit the active transient (like Magit-Popup used to) or whether C-g should do that instead, so that q could be bound in individual transient to whatever commands make sense for them. Because all other letters are already reserved for use by individual transients, I have decided to no longer make an exception for q.
If you want to get q’s old binding back then you can do so. Doing
that is a bit more complicated than changing a single key binding, so
I have implemented a function, transient-bind-q-to-quit
that makes the
necessary changes. See its documentation string for more information.