Thanks.

I have applied this, but I thought it was better to put the x-y and
x-y-and-cancel in the same if() block so I have changed to do that. Let
me know if you see any mistakes.

I didn't change the default keys. I don't want non-mouse default keys in
the root table. I don't mind having bindings for S-NPage and S-PPage in
copy mode though but you will need to add both I think.

The changes should be GitHub next time it syncs up in an hour or so.


On Wed, Nov 15, 2017 at 07:09:15PM -0800, Stephen Hicks wrote:
>    I've added the documentation.
>    I also went ahead and added S-PageUp and S-PageDown bindings to the
>    default keymap, the latter of which uses page-down-and-cancel.A  This
>    mirrors the scrollback behavior of xterm and standard linux TTYs, and
>    should therefore be natural for many users (provided their terminals send
>    those keys in the first place).A  If you want, I can revert that change.
>    On Sat, Nov 11, 2017 at 1:33 PM, Nicholas Marriott
>    <nicholas.marri...@gmail.com> wrote:
> 
>      thanks. you also need to add these to tmux.1
> 
>      On Fri, Nov 10, 2017 at 02:53:26PM -0800, Stephen Hicks wrote:
>      >A  A  Sorry for the delay.AA  I've redone the patch to instead provide
>      the
>      >A  A  -and-cancel versions of the three relevant commands
>      >A  A  (cursor-down-and-cancel doesn't seem to make sense, in my
>      opinion, nor
>      >A  A  does it currently respect the copy-mode -e flag).
>      >A  A  On Mon, Oct 30, 2017 at 12:51 AM, Nicholas Marriott
>      >A  A  <nicholas.marri...@gmail.com> wrote:
>      >
>      >A  A  A  OK well we can just leave -e for the moment and have the new
>      commands as
>      >A  A  A  well assuming the new diff is pretty small.
>      >
>      >A  A  A  On Mon, Oct 30, 2017 at 03:50:15PM +1100, Cam Hutchison wrote:
>      >A  A  A  > Yes, I have Prefix-[ and Prefix-^[ set to copy-mode, and
>      >A  A  A  > MouseDrag1Pane, WheelUpPane and "-T root PPage" using
>      copy-mode -e.
>      >A  A  A  >
>      >A  A  A  > On 29 October 2017 at 19:34, Nicholas Marriott
>      >A  A  A  > <nicholas.marri...@gmail.com> wrote:
>      >A  A  A  > > Have you got some key bindings that do copy-mode -e and
>      some that
>      >A  A  A  just
>      >A  A  A  > > do plain copy-mode?
>      >A  A  A  > >
>      >A  A  A  > >
>      >A  A  A  > >
>      >A  A  A  > > On Sun, Oct 29, 2017 at 01:17:37PM +1100, Cam Hutchison
>      wrote:
>      >A  A  A  > >> Stephen,
>      >A  A  A  > >>
>      >A  A  A  > >> Sorry for the delay in responding - life got in the
>      way...
>      >A  A  A  > >>
>      >A  A  A  > >> Stephen Hicks wrote:
>      >A  A  A  > >> > In my mind, those two models are not mutually
>      exclusive.AA  When I
>      >A  A  A  use the
>      >A  A  A  > >> > mouse wheel to initiate a scrollback, I do tend to be
>      in the
>      >A  A  A  second model,
>      >A  A  A  > >> > but on the keyboard, how I enter copy mode is more
>      related to
>      >A  A  A  whether the
>      >A  A  A  > >> > thing I'm looking for is on the screen or not, in
>      addition to
>      >A  A  A  whether I'm
>      >A  A  A  > >> > searching, scrolling, or copying.
>      >A  A  A  > >>
>      >A  A  A  > >> No, not mutually exclusive but when nicm said to also
>      remove the -e
>      >A  A  A  > >> option, I didn't see how your proposed changes would
>      allow me to
>      >A  A  A  retain
>      >A  A  A  > >> the mode I ues.
>      >A  A  A  > >>
>      >A  A  A  > >> > My setting looks roughly like this:
>      >A  A  A  > >> >
>      >A  A  A  > >> > bind [ copy-mode
>      >A  A  A  > >> > bind -n S-PgUp copy-mode -u
>      >A  A  A  > >> > bind -T copy-mode PgUp send-keys -X page-up
>      >A  A  A  > >> > bind -T copy-mode S-PgUp send-keys -X page-up
>      >A  A  A  > >> > bind -T copy-mode PgDn send-keys -X page-down
>      >A  A  A  > >> > bind -T copy-mode S-PgDn send-keys -X
>      page-down-maybe-cancel
>      >A  A  A  > >>
>      >A  A  A  > >> I wonder if a simpler way would be to define two new copy
>      mode
>      >A  A  A  commands,
>      >A  A  A  > >> autoexit-on and autoexit-off. It's not quite ideal as two
>      commands,
>      >A  A  A  as
>      >A  A  A  > >> it smells more like an option but there are no pane
>      options or copy
>      >A  A  A  mode
>      >A  A  A  > >> options.
>      >A  A  A  > >>
>      >A  A  A  > >> With these two commands, you could replace 'copy-mode -e'
>      with
>      >A  A  A  > >> 'copy-mode; send-keys -X autoexit-on' and you could
>      replace your
>      >A  A  A  > >> bindings with a similar sequence that sends autoexit-off
>      then
>      >A  A  A  page-down,
>      >A  A  A  > >> or autoexit-on then page-down, etc.
>      >A  A  A  > >>
>      >A  A  A  > >> That is, give control of the basic components needed to
>      compose the
>      >A  A  A  > >> higher-level behaviour.
>      >A  A  A  > >>
>      >A  A  A  > >> I'd be happy with getting rid of copy-mode -e with
>      something like
>      >A  A  A  this
>      >A  A  A  > >>
>      >A  A  A  > >> If I seem a little defensive of copy-mode -e its because
>      I added it
>      >A  A  A  :-)
>      >A  A  A  > >>
>      >A  A  A  > >> Cheers,
>      >A  A  A  > >> Cam
>      >A  A  A  > >>
>      >A  A  A  > >> > On Wed, Oct 25, 2017 at 7:37 PM, Cam Hutchison
>      <c...@camh.ch>
>      >A  A  A  wrote:
>      >A  A  A  > >> >
>      >A  A  A  > >> > > On 26 October 2017 at 05:39, Stephen Hicks
>      >A  A  A  <stephenhi...@gmail.com> wrote:
>      >A  A  A  > >> > > > I appreciate the patch that went in a while back to
>      add
>      >A  A  A  "copy-mode -e",
>      >A  A  A  > >> > > > allowing to automatically exit copy-mode when
>      reaching the
>      >A  A  A  bottom of the
>      >A  A  A  > >> > > > buffer.AA  But I find that this functionality is a
>      bit of
>      >A  A  A  "spooky action
>      >A  A  A  > >> > > at a
>      >A  A  A  > >> > > > distance": the decision to exit depends not on the
>      input the
>      >A  A  A  caused the
>      >A  A  A  > >> > > > scroll-down, but instead of the input that
>      initially scrolled
>      >A  A  A  up.
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > I'm not sure I understand your use case or your issue
>      with the
>      >A  A  A  current
>      >A  A  A  > >> > > behaviour. Is it just the "spooky action at a
>      distance" that
>      >A  A  A  you object to?
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > The current behaviour is intended to model two
>      different ways
>      >A  A  A  that copy
>      >A  A  A  > >> > > mode can be used:
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > 1) The normal mode where you are copying data out of
>      the
>      >A  A  A  scrollback
>      >A  A  A  > >> > > buffer, searching through it, or some other explicit
>      action.
>      >A  A  A  This mode
>      >A  A  A  > >> > > requires you to take an equally explicit action to
>      exit.
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > 2) Scrollback mode, where you are just scrolling back
>      through
>      >A  A  A  the
>      >A  A  A  > >> > > terminal history. In this mode, you enter typically
>      with just a
>      >A  A  A  PageUp
>      >A  A  A  > >> > > or ScrollUp event, not a binding that is explicitly
>      copy-mode.
>      >A  A  A  This
>      >A  A  A  > >> > > way, exiting mirrors your entry - when you scroll
>      back to where
>      >A  A  A  you
>      >A  A  A  > >> > > started, you're no longer in copy mode.
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > I don't understand the "spooky action at a distance"
>      (I get
>      >A  A  A  that how you
>      >A  A  A  > >> > > enter the mode defines how you can exit the mode, but
>      that's
>      >A  A  A  all related
>      >A  A  A  > >> > > and not spooky unrelated stuff, or at a distance).
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > I can't see how your approach allows the distinction
>      between
>      >A  A  A  these two
>      >A  A  A  > >> > > use cases to be retained. Perhaps using separate key
>      tables,
>      >A  A  A  but that
>      >A  A  A  > >> > > feels like a lot of extra configuration.
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > Can you explain why you want to change this?
>      >A  A  A  > >> > >
>      >A  A  A  > >> > > >
>      >A  A  A  > >> > > > I've put together a small patch to allow opting
>      into the
>      >A  A  A  auto-exit
>      >A  A  A  > >> > > behavior
>      >A  A  A  > >> > > > on scroll-down commands instead.AA  Currently I've
>      overloaded
>      >A  A  A  the
>      >A  A  A  > >> > > send-keys -R
>      >A  A  A  > >> > > > argument (which seems somewhat appropriate given
>      that exiting
>      >A  A  A  copy-mode
>      >A  A  A  > >> > > is a
>      >A  A  A  > >> > > > sort of "reset"), but I'd also be happy to find a
>      different
>      >A  A  A  way to pass
>      >A  A  A  > >> > > the
>      >A  A  A  > >> > > > option (either adding an additional argument to
>      send-keys, or
>      >A  A  A  adding
>      >A  A  A  > >> > > > scroll-down, etc, to the 1-arg branch so that you'd
>      write
>      >A  A  A  "send-keys -X
>      >A  A  A  > >> > > > scroll-down -e", though in that case I'm not sure
>      what to do
>      >A  A  A  if the
>      >A  A  A  > >> > > argument
>      >A  A  A  > >> > > > is anything *other* than -e - currently it silently
>      does
>      >A  A  A  nothing if a
>      >A  A  A  > >> > > > command has the wrong (number of) arguments, which
>      isn't
>      >A  A  A  great.
>      >A  A  A  > >> > > >
>      >A  A  A  > >> > > > Please let me know how to proceed so that this
>      functionality
>      >A  A  A  can be
>      >A  A  A  > >> > > added.
>      >A  A  A  > >> > > > Or if you'd rather continue on a GitHub pull
>      request, that
>      >A  A  A  would be
>      >A  A  A  > >> > > great as
>      >A  A  A  > >> > > > well.
>      >A  A  A  > >> > > >
>      >A  A  A  > >> > > > Thanks!
>      >A  A  A  > >> > > > steve
>      >A  A  A  > >> > > >
>      >A  A  A  > >> > > > --
>      >A  A  A  > >> > > > You received this message because you are
>      subscribed to the
>      >A  A  A  Google Groups
>      >A  A  A  > >> > > > "tmux-users" group.
>      >A  A  A  > >> > > > To unsubscribe from this group and stop receiving
>      emails from
>      >A  A  A  it, send an
>      >A  A  A  > >> > > > email to tmux-users+unsubscr...@googlegroups.com.
>      >A  A  A  > >> > > > To post to this group, send email to
>      >A  A  A  tmux-users@googlegroups.com.
>      >A  A  A  > >> > > > For more options, visit
>      https://groups.google.com/d/optout.
>      >A  A  A  > >> > >
>      >A  A  A  > >>
>      >A  A  A  > >> --
>      >A  A  A  > >> You received this message because you are subscribed to
>      the Google
>      >A  A  A  Groups "tmux-users" group.
>      >A  A  A  > >> To unsubscribe from this group and stop receiving emails
>      from it,
>      >A  A  A  send an email to tmux-users+unsubscr...@googlegroups.com.
>      >A  A  A  > >> To post to this group, send an email to
>      >A  A  A  tmux-users@googlegroups.com.
>      >A  A  A  > >> For more options, visit
>      https://groups.google.com/d/optout.
>      >A  A  A  > >
>      >A  A  A  > > --
>      >A  A  A  > > You received this message because you are subscribed to
>      the Google
>      >A  A  A  Groups "tmux-users" group.
>      >A  A  A  > > To unsubscribe from this group and stop receiving emails
>      from it,
>      >A  A  A  send an email to tmux-users+unsubscr...@googlegroups.com.
>      >A  A  A  > > To post to this group, send an email to
>      tmux-users@googlegroups.com.
>      >A  A  A  > > For more options, visit
>      https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tmux-users+unsubscr...@googlegroups.com.
To post to this group, send an email to tmux-users@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to