@@ -188,33 +188,56 @@ documentation string.
188188#+cindex: common suffix commands
189189
190190A few shared suffix commands are available in all transients. These
191- suffix commands are not shown in the popup buffer by default.
191+ suffix commands are not shown permanently in every menu by default.
192+ Most of these commands share a common prefix key and pressing that key
193+ causes the common commands to be temporarily shown in the active menu.
192194
193- This includes the aborting commands mentioned in the previous section,
194- as well as some other commands that are all bound to {{{kbdvar(C-x <KEY>)}}}. After
195- {{{kbd(C-x)}}} is pressed, a section featuring all these common commands is
196- temporarily shown in the popup buffer. After invoking one of them,
197- the section disappears again. Note, however, that one of these
198- commands is described as “Show common permanently”; invoke that if you
199- want the common commands to always be shown for all transients.
195+ - User Option: transient-show-common-commands ::
200196
201- - Key: C-x t (transient-toggle-common) ::
197+ This option controls whether shared suffix commands are permanently
198+ shown alongside the menu-specific infix and suffix commands. By
199+ default, the shared commands are not permanently shown to avoid
200+ wasting precious space and overwhelming the user with too many
201+ choices.
202202
203- This command toggles whether the generic commands that are common to
204- all transients are always displayed or only after typing the
205- incomplete prefix key sequence {{{kbd(C-x)}}}. This only affects the current
206- Emacs session .
203+ If you prefer to always see these commands, then set this option to
204+ a non-~nil~ value. Alternatively the value can be toggled for the
205+ current Emacs session only, using ~transient-toggle-common~, described
206+ below .
207207
208- - User Option: transient-show-common-commands ::
208+ - User Option: transient-common-command-prefix ::
209+
210+ This option specifies the prefix key used in all transient menus
211+ to invoke most of the shared commands, which are available in all
212+ transient menus. By default these bindings are only shown after
213+ pressing that prefix key and before following that up with a valid
214+ key binding (but see the previous option).
215+
216+ For historic reasons {{{kbd(C-x)}}} is used by default, but users are
217+ encouraged to pick another key, preferably one that is not commonly
218+ used in Emacs but is still convenient to them.
219+
220+ Usually, while a transient menu is active, the user cannot invoke
221+ commands that are not bound in the menu itself. For those menus it
222+ does not matter, if {{{kbd(C-x)}}} or another commonly used prefix key is used
223+ for common menu commands. However, certain other, newer menus do
224+ not suppress key bindings established outside the menu itself, and
225+ in those cases a binding for a common menu command could shadow an
226+ external binding. For example, {{{kbd(C-x C-s)}}} could not be used to invoke
227+ ~save-buffer~, if that binding is shadowed by the menu binding for
228+ ~transient-save~.
229+
230+ Which key is most suitable depends on the user's preferences, but
231+ good choices may include function keys and {{{kbd(C-z)}}} (for many keyboard
232+ layouts {{{kbd(z)}}} is right next to {{{kbd(x)}}}, and invoking ~suspend-frame~, while a
233+ transient menu is active, would not be a good idea anyway).
209234
210- This option controls whether shared suffix commands are shown
211- alongside the transient-specific infix and suffix commands. By
212- default, the shared commands are not shown to avoid overwhelming
213- the user with too many options.
235+ - Key: C-x t (transient-toggle-common) ::
214236
215- While a transient is active, pressing {{{kbd(C-x)}}} always shows the common
216- commands. The value of this option can be changed for the current
217- Emacs session by typing {{{kbd(C-x t)}}} while a transient is active.
237+ This command toggles whether the generic commands, that are common
238+ to all transients, are permanently displayed or only after typing
239+ the incomplete prefix key sequence{{{kbd()}}}. This only affects the current
240+ Emacs session.
218241
219242The other common commands are described in either the previous or in
220243one of the following sections.
@@ -236,6 +259,10 @@ suffix command, then the value is merely saved to the transient's
236259history. That value won't be used when the transient is next invoked,
237260but it is easily accessible (see [[*Using History]]).
238261
262+ Option ~transient-common-command-prefix~ controls the prefix key used
263+ in the following bindings. For simplicity's sake the default, {{{kbd(C-x)}}},
264+ is shown below.
265+
239266- Key: C-x s (transient-set) ::
240267
241268 This command saves the value of the active transient for this Emacs
@@ -267,6 +294,10 @@ value is saved to its history. These values can be cycled through,
267294the same way one can cycle through the history of commands that read
268295user-input in the minibuffer.
269296
297+ Option ~transient-common-command-prefix~ controls the prefix key used
298+ in the following bindings. For simplicity's sake the default, {{{kbd(C-x)}}},
299+ is shown below.
300+
270301#+attr_texinfo: :compact t
271302- Key: C-M-p (transient-history-prev) ::
272303- Key: C-x p ::
@@ -354,8 +385,8 @@ For suffixes, 0 is also valid; it means that the suffix is not
354385displayed at any level.
355386
356387The levels of individual transients and/or their individual suffixes
357- can be changed interactively, by invoking the transient and then
358- pressing {{{kbd(C-x l)}}} to enter the “edit” mode, see below.
388+ can be changed interactively, by invoking the menu and entering its
389+ “edit” mode using the command ~transient-set-level~, as described below.
359390
360391The default level for both transients and their suffixes is 4. The
361392~transient-default-level~ option only controls the default for
@@ -376,6 +407,10 @@ available even if the user lowers the transient level.
376407 This option names the file that is used to persist the levels of
377408 transients and their suffixes between Emacs sessions.
378409
410+ Option ~transient-common-command-prefix~ controls the prefix key used
411+ in the following bindings. For simplicity's sake the default, {{{kbd(C-x)}}},
412+ is shown below.
413+
379414- Key: C-x l (transient-set-level) ::
380415
381416 This command enters edit mode. When edit mode is active, then all
@@ -497,7 +532,7 @@ Values]], in [[* Using History]] and in [[* Enabling and Disabling Suffixes]].
497532:UNNUMBERED: notoc
498533:END:
499534
500- Also see [[* Common Suffix Commands]].
535+ Two more essential options are documented in [[* Common Suffix Commands]].
501536
502537- User Option: transient-show-popup ::
503538
@@ -520,17 +555,6 @@ Also see [[* Common Suffix Commands]].
520555 the popup is shown after that many seconds of inactivity (using
521556 the absolute value).
522557
523- - User Option: transient-show-common-commands ::
524-
525- This option controls whether shared suffix commands are shown
526- alongside the transient-specific infix and suffix commands. By
527- default, the shared commands are not shown to avoid overwhelming
528- the user with too many options.
529-
530- While a transient is active, pressing {{{kbd(C-x)}}} always shows the common
531- commands. The value of this option can be changed for the current
532- Emacs session by typing {{{kbd(C-x t)}}} while a transient is active.
533-
534558- User Option: transient-show-during-minibuffer-read ::
535559
536560 This option controls whether the transient menu continues to be
@@ -2627,51 +2651,6 @@ See https://github.com/magit/transient/wiki/Comparison-with-prefix-keys-and-univ
26272651
26282652See https://github.com/magit/transient/wiki/Comparison-with-other-packages.
26292653
2630- ** Why did some of the key bindings change?
2631- :PROPERTIES:
2632- :UNNUMBERED: notoc
2633- :END:
2634-
2635- You may have noticed that the bindings for some of the common commands
2636- do *not* have the prefix {{{kbd(C-x)}}} and that furthermore some of these commands
2637- are grayed out while others are not. That unfortunately is a bit
2638- confusing if the section of common commands is not shown permanently,
2639- making the following explanation necessary.
2640-
2641- The purpose of usually hiding that section but showing it after the
2642- user pressed the respective prefix key is to conserve space and not
2643- overwhelm users with too much noise, while allowing the user to
2644- quickly list common bindings on demand.
2645-
2646- That however should not keep us from using the best possible key
2647- bindings. The bindings that do use a prefix do so to avoid wasting
2648- too many non-prefix bindings, keeping them available for use in
2649- individual transients. The bindings that do not use a prefix and that
2650- are *not* grayed out are very important bindings that are *always*
2651- available, even when invoking the “common command key prefix” or *any
2652- other* transient-specific prefix. The non-prefix keys that *are* grayed
2653- out however, are not available when any incomplete prefix key sequence
2654- is active. They do not use the “common command key prefix” because it
2655- is likely that users want to invoke them several times in a row and
2656- e.g., {{{kbd(M-p M-p M-p)}}} is much more convenient than {{{kbd(C-x M-p C-x M-p C-x M-p)}}}.
2657-
2658- You may also have noticed that the “Set” command is bound to {{{kbd(C-x s)}}},
2659- while Magit-Popup used to bind {{{kbd(C-c C-c)}}} instead. I have seen several
2660- users praise the latter binding (sic), so I did not change it
2661- willy-nilly. The reason that I changed it is that using different
2662- prefix keys for different common commands, would have made the
2663- temporary display of the common commands even more confusing, i.e.,
2664- after pressing {{{kbd(C-c)}}} all the bindings that begin with the {{{kbd(C-x)}}} prefix
2665- would be grayed out.
2666-
2667- Using a single prefix for common commands key means that all other
2668- potential prefix keys can be used for transient-specific commands
2669- *without* the section of common commands also popping up. {{{kbd(C-c)}}} in
2670- particular is a prefix that I want to (and already do) use for Magit, and
2671- also using that for a common command would prevent me from doing so.
2672-
2673- (See also the next question.)
2674-
26752654** Why does {{{kbd(q)}}} not quit popups anymore?
26762655:PROPERTIES:
26772656:UNNUMBERED: notoc
0 commit comments