git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: David Aguilar <davvid@gmail.com>
To: Bert Wesarg <bert.wesarg@googlemail.com>
Cc: Johannes Sixt <j6t@kdbg.org>,
	Pratyush Yadav <me@yadavpratyush.com>,
	Birger Skogeng Pedersen <birger.sp@gmail.com>,
	Git List <git@vger.kernel.org>, David <bouncingcats@gmail.com>
Subject: Re: feature request, git-gui: add hotkey to toggle amend/new
Date: Tue, 10 Sep 2019 01:54:46 -0700	[thread overview]
Message-ID: <20190910085446.GB32239@gmail.com> (raw)
In-Reply-To: <CAKPyHN3+Sr2QJGR7Sw02x0A9OXshVUQofqH=ShXDivmqP5X7vw@mail.gmail.com>

On Wed, Sep 04, 2019 at 09:03:02PM +0200, Bert Wesarg wrote:
> On Wed, Sep 4, 2019 at 8:52 PM Johannes Sixt <j6t@kdbg.org> wrote:
> >
> > Am 04.09.19 um 19:46 schrieb Pratyush Yadav:
> > > On 04/09/19 08:24AM, Johannes Sixt wrote:
> > >> That is worth a try. The check box title offers a natural hotkey then:
> > >> "_A_mend last commit", Alt-a.
> > >
> > > Right now, the binding proposed is Ctrl-e.  My mental model for the key
> > > bindings as of now is having the "actions" bound to Ctrl, and bindings
> > > that move you around in the UI bound to Alt.  So it makes more sense to
> > > me to have a "amend toggle" bound to Ctrl.  Maybe that's just me though.
> > > Anyone else care to chime in?
> >
> > "Amend last commit" is NOT an action. It switches a state.
> >
> > It is common in Windows GUIs that every control, including menu items,
> > has a hotkey associated, the underlined letter in the caption, and the
> > hotkey to access that UI control is Alt+that letter. It's not
> > necessarily a matter of moving around.
> >
> > And, BTW, this hotkey thing is also the case on my Linux desktop
> > (KDE-based).
> >
> > But of course, git-gui is different and totally off track here. It has
> > *zero* controls marked for hotkey-accessibility. I was just hoping to
> > spark an effort to make some of the controls marked and hotkey-accessible.
> 
> I'm in favor of making this a checkbox, also in the menu. As all menu
> entries have currently a CTRL+ binding assigned, I think this one
> should have one too. As CTRL+A is taken, and the proposal is CTRL+E, I
> would be fine with this. If the menus and the UX elements also honors
> mnemonic now or in the future, I don't think they need to match the
> CTRL+ binding. Thus if this gets Alt+A I'm fine with this too.
> 
> Bert
> 
> >
> > -- Hannes

git-gui might not be so focused on providing a fast way to launch a
visual $EDITOR, but Ctrl+E is the hotkey we use everywhere in git-cola
when lauching external editors on selected files.  Sometimes it's the
"hot" action so even "Enter" gets that action, but it's worth
considering if we ever want git-gui's status widget to be able to launch
editors.

We also let Ctrl+Enter launch the default xdg-open action on the
selected file (e.g. image files go to the default image editing program,
html files to a browser, etc).

While we're on the topic of hotkeys, some valuable hotkeys for an
English-centric keyboard are {J,K,L} because of the home row.

In web browsers, Ctrl-L is a very common hotkey for focusing the URL
input, so we stole that same hotkey for the "git log <...>" input
in the git-dag tool.  In that tool the arguments to "log" are very
much like a URL from the input perspective, so it's nice to be able
to use a familiar and convenient hotkey for that purpose.  The placement
of the input field[1] is also at the top of that tool, just like in a web
browser.

[1] https://git-cola.github.io/images/dag.png

Ctrl-L is also used to focus the "Commit summary" line edit for the main
git-cola commit message editor.  That seems like the most sensible
"main" behavior for the main commit GUI.  Maybe git-gui can do that too.

Ctrl-J is kinda like "down" in vim, and so we let that focus the "diff"
widget which is typically "down" below the status and commit widgets in
cola[2].

[2] https://git-cola.github.io/images/screenshot-dark-linux.png

Ctrl-K focuses the status widget because it's "up".  Also, K and L are
adjacent on the keyboard, and they are also adjacent visually in the UI
so there's a visual and muscle memory pairing there between the Status
and Commit widgets.

The JKL hotkeys are nice to have in addition to the numeric hotkeys
because they're so convenient.  In some cases (like when the diff widget
is focused) we allow Alt-{J,K} to jump down/up (next/prev) between the
files in the status widget, otherwise regular {J,K} can be used if it
has focus.

Thanks for at least trying to keep some parity with git-cola's hotkeys.
It's not completely possible in all situations, but it's good to at
least share notes on how we use the GUI.
-- 
David

  reply	other threads:[~2019-09-10  8:54 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-31 10:51 feature request, git-gui: add hotkey to toggle amend/new Birger Skogeng Pedersen
2019-09-02 16:25 ` Birger Skogeng Pedersen
2019-09-02 18:07   ` Bert Wesarg
2019-09-02 19:49     ` Birger Skogeng Pedersen
2019-09-02 19:56       ` [PATCH] Add hotkey to toggle "Amend Last Commit" radio selector Birger Skogeng Pedersen
2019-09-03  8:52         ` Bert Wesarg
2019-09-03 10:25           ` Bert Wesarg
2019-09-03 16:20           ` Bert Wesarg
2019-09-02 20:12       ` feature request, git-gui: add hotkey to toggle amend/new Bert Wesarg
2019-09-02 20:15         ` Bert Wesarg
2019-09-03  5:37           ` Birger Skogeng Pedersen
2019-09-03 12:45             ` Pratyush Yadav
2019-09-03 14:06               ` Birger Skogeng Pedersen
2019-09-03 17:34                 ` Pratyush Yadav
2019-09-03 15:35               ` David
2019-09-03 17:27                 ` Pratyush Yadav
2019-09-04  6:24               ` Johannes Sixt
2019-09-04 17:46                 ` Pratyush Yadav
2019-09-04 17:54                   ` Birger Skogeng Pedersen
2019-09-04 18:52                   ` Johannes Sixt
2019-09-04 19:03                     ` Bert Wesarg
2019-09-10  8:54                       ` David Aguilar [this message]
2019-09-11 10:27                         ` Birger Skogeng Pedersen
2019-09-11 18:34                           ` Pratyush Yadav
2019-09-11 18:47                             ` Pratyush Yadav
2019-09-03  1:01     ` David
2019-09-03  8:44       ` Bert Wesarg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190910085446.GB32239@gmail.com \
    --to=davvid@gmail.com \
    --cc=bert.wesarg@googlemail.com \
    --cc=birger.sp@gmail.com \
    --cc=bouncingcats@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=me@yadavpratyush.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).