Next: , Previous: , Up: Top   [Contents][Index]

3 Other Options

User Option: transient-show-popup

This option controls whether the current transient’s infix and suffix commands are shown in the popup buffer.

If t (the default), then the infix and suffix commands are shown as soon as the transient is invoked. If nil, only a one line summary is shown until the user presses a key that forms an incomplete key sequence. If a number, behave as for nil but also show the commands after that many seconds of inactivity.

User Option: transient-display-buffer-action

This option specifies the action used to display the transient popup buffer. The transient popup buffer is displayed in a window using (display-buffer buf transient-display-buffer-action).

The value of this option has the form (FUNCTION . ALIST), where FUNCTION is a function or a list of functions. Each such function should accept two arguments: a buffer to display and an alist of the same form as ALIST. See (elisp)Choosing Window.

The default is (display-buffer-in-side-window (side . bottom)). This displays the window at the bottom of the selected frame. Another useful value is (display-buffer-below-selected). This is what magit-popup used by default. For more alternatives see (elisp)Display Action Functions.

It may be possible to display the window in another frame, but whether that works in practice depends on the window-manager. If the window manager selects the new window (Emacs frame), then it doesn’t work.

If you change the value of this option, then you might also want to change the value of transient-mode-line-format.

User Option: transient-mode-line-format

This option controls whether the transient popup buffer has a mode-line, separator line, or neither.

If nil, then the buffer has no mode-line. If the buffer is not displayed right above the echo area, then this probably is not a good value.

If line (the default), then the buffer also has no mode-line, but a thin line is drawn instead, using the background color of the face transient-separator.

Otherwise this can be any mode-line format. See ~(elisp)Mode Line Format for details.

User Option: transient-highlight-mismatched-keys

This option controls whether key bindings of infix commands that do not match the respective command-line argument should be highlighted. For other infix commands this option has no effect.

When this option is non-nil, then the key binding for an infix argument is highlighted when only a long argument (e.g. --verbose) is specified but no shorthand (e.g -v). In the rare case that a shorthand is specified but the key binding does not match, then it is highlighted differently.

Highlighting mismatched key bindings is useful when learning the arguments of the underlying command-line tool; you wouldn’t want to learn any short-hands that do not actually exist.

The highlighting is done using one of the faces transient-mismatched-key and transient-nonstandard-key.

User Option: transient-substitute-key-function

This function is used to modify key bindings. It the value of this option is nil (the default), then no substitution is performed.

This function is called with one argument, the prefix object, and must return a key binding description, either the existing key description it finds in the key slot, or key description that replaces the prefix key. It could be used to make other substitutions, but that is discouraged.

For example, = is hard to reach using my custom keyboard layout, so I substitute ( for that, which is easy to reach using a layout optimized for lisp.

(setq transient-substitute-key-function
      (lambda (obj)
        (let ((key (oref obj key)))
          (if (string-match "\\`\\(=\\)[a-zA-Z]" key)
              (replace-match "(" t t key 1)
User Option: transient-detect-key-conflicts

This option controls whether key binding conflicts should be detected at the time the transient is invoked. If so, then this results in an error, which prevents the transient from being used. Because of that, conflicts are ignored by default.

Conflicts cannot be determined earlier, i.e. when the transient is being defined and when new suffixes are being added, because at that time there can be false-positives. It is actually valid for multiple suffixes to share a common key binding, provided the predicates of those suffixes prevent that more than one of them is enabled at a time.

Next: , Previous: , Up: Top   [Contents][Index]