Ludovic Courtès (2014-09-06 00:22 +0400) wrote: > Alex Kost skribis: > >> Ludovic Courtès (2014-09-05 12:26 +0400) wrote: >> >>> Alex Kost skribis: >>> >>>> Hello, >>>> >>>> I would like to know people's opinions about default key bindings. >>>> >>>> Currently in a buffer with a list of packages we have: "u"/"U" to >>>> unmark/unmark all. But it leaves no room for marking for upgrade and I >>>> just bound it to "^" which is not very good. >>>> >>>> So what about combining "unmark"/"unmark all" into one key and use >>>> either: >>>> >>>> 1. "U" - unmark ("C-u U" - unmark all); >>>> "u" - mark for upgrading. >>>> >>>> 2. "u" - unmark ("C-u u" - unmark all); >>>> "U" - mark for upgrade. Should it also require (for consistency) to >>>> use upper-case "I"/"D" for marking for installing/deletion? >>> >>> I’m hesitant, but I would vote for #2. I don’t think I and D are needed >>> though. >> >> I prefer this variant as well: "u" is a too common binding for unmarking >> in Emacs (it is used in dired, buffer-menu, ibuffer, package-menu, ...). >> So unmarking should probably stay on "u" (and unmark all with prefix). > > Yes. > >>>> Also should there be a command to mark all obsolete packages for >>>> upgrading? If so, what key should it be bound to? (perhaps my favourite >>>> "^"). >>> >>> Actually this is what U does in package.el. But I’m fine with ^ here. >> >> Taylan suggested "C-u U" for this one. And I think it would be perfect, >> but... >> >> Let's say a user has both "foo-1.0:out" and "foo-1.0:doc" installed and >> one day they become obsolete. He decides to upgrade only "out" for some >> reason. May there exist such a situation? > > Ooh. Well, why not? > >> If so, then I think "C-u U" should be used to specify a particular >> output for upgrading. Actually I implemented such specifying of outputs >> for installing and deletion ("i"/"d") but not for upgrading (I don't >> remember why). > > OK. Then I’m fine with ^. OK, so the summary is: - "u" to unmark ("C-u u" to unmark all); - "i" to mark for installing "out" of the current package ("C-u i" to prompt for outputs to install); - "d" to mark for deleting all outputs of the current package ("C-u d" to prompt for outputs to delete); - "U" to mark for upgrade all outputs of the current package ("C-u U" to prompt for outputs to upgrade); - "^" to mark all obsolete packages for upgrade. And here is a patch with all changes. Perhaps it would be better to split it into several commits or is it OK to push it like this?