Subject: bug#64619: [PATCH] Add toggle-window-dedicated command

From: [email-masked]
Date: Sun, 20 Aug 2023 14:09:35 +0000 (UTC)

Gregory Heytings <[email-masked]> writes:
>> So I don't think this variable can serve the user preference for
>> whether the window should be strongly or weekly dedicated by
>> default.
>>
>
> Agreed.
>
> Let's now see whether Spencer agrees that using that variable to tweak
> the behavior of C-x b is enough to avoid the annoyance he experienced.

I didn't know about switch-to-buffer-in-dedicated-window.  It does
resolve the basic annoyance I described, of C-x b not working.

But, it affects all windows, not just ones that have been interactively
dedicated by the user.  I personally have just set
switch-to-buffer-in-dedicated-window to `pop', so that C-x b works when
I happen to be in a window which was made strongly dedicated by a Lisp
program.  But for windows which I interactively choose to dedicate with
toggle-window-dedicated, I think I'd prefer the `t' behavior.  Which is
effectively what we have now by weakly dedicating the window.

(Further in the vein of "customizing different window dedications
differently", maybe toggle-window-dedicated should even have its own
unique dedication symbol by default, `interactively' or something, so a
user can customize the behavior of that without affecting other windows.
That would mean weak dedication by default, of course.)

I would be fine with a variable controlling what toggle-window-dedicated
does.  In the "unique dedication symbol for toggle-window-dedicated"
case that variable could just hold that symbol and if people want strong
dedication they can set it to `t'.

---

Completely separate suggestion and possible resolution: Maybe we can
have two commands, one which does weak dedication and the other strong
dedication?  And eventually, when we add keybindings, we could have weak
bound to C-x w d and strong to C-x w D?

I suggest this because the indicator I added to the mode line shows 'd'
for weak dedication and 'D' for strong dedication.  And while testing, I
just unthinkingly tried to do strong dedication (instead of weak) by
hitting C-x w D (instead of C-x w d).  That is, I just assumed that the
keybindings would match the mode line indicator.  Which actually seems
like it would be a very good idea so maybe we should do that.

And if we did that, it would resolve the issue of defaults since both
options would be easily accessible.  And it's not too wasteful of
keybinding space since we rarely bind both lowercase and uppercase keys
anyway, so we probably already wouldn't use C-x w D for anything else.

We wouldn't add the bindings at first though, since we should not just
assume that people will start using this command.  So for now this would
just mean adding a second toggle-window-dedication-strong command, which
people who want strong dedication can use.

Gregory mentioned not liking C-x w d, so we could also change the
indicator and the expected future keybinding to something other than d/D
- any suggestions?  Although personally I think d/D is good.