Hi, I have added a -l xxx% option to split-window. It is equivalent to
using -p xxx.
Best,
Anindya
On Wed, Oct 9, 2019 at 1:16 AM Anindya Mukherjee <[email protected]>
wrote:
> Thanks!! I'll look into split-window next :)
>
> On Wednesday, October 9, 2019, Nicholas Marriott <
> [email protected]> wrote:
>
>> Looks great. OpenBSD is currently approaching lock so I don't want to
>> add new features but I will apply this after the tree unlocks, then it
>> will be in tmux 3.1.
>>
>> If you want something else to do it would be nice if split-window -l
>> also accepted 10% (ie -l 10% was equivalent to -p 10) :-).
>>
>> Thanks!
>>
>>
>> On Wed, Oct 09, 2019 at 12:10:57AM -0700, Anindya Mukherjee wrote:
>> > Hi, the current version does what we discussed.
>> > Best,
>> > Anindya
>> > On Tue, Oct 8, 2019 at 8:14 AM Anindya Mukherjee <
>> [email protected]>
>> > wrote:
>> >
>> > Thanks sounds perfect.
>> > Best,
>> > Anindya
>> > On Tue, Oct 8, 2019 at 7:41 AM Nicholas Marriott
>> > <[email protected]> wrote:
>> >
>> > Sure that makes sense.
>> >
>> > Maybe it would be better to look for a % on the number so that
>> you do
>> > '-x 25%' instead of -p flag?
>> >
>> > On Tue, Oct 08, 2019 at 07:36:43AM -0700, Anindya Mukherjee
>> wrote:
>> > >A A Thanks, yes using the window itself is perfect for the
>> root
>> > size. No need
>> > >A A to walk.
>> > >A A Using -p to set rather than adjust the size makes sense.
>> In
>> > that case
>> > >A A should we make it a part of the -x or -y commands rather
>> than
>> > UDLR?
>> > >A A Something like:
>> > >A A resize-pane -x -p 25
>> > >A A to resize the pane horizontally to 25% of root width (and
>> > similarly for
>> > >A A y).
>> > >A A Best,
>> > >A A Anindya
>> > >
>> > >A A (PGP public key:
>> > >A A
>> >
>> http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x1C198D2DB291E1B0
>> > >A A )
>> > >A A On Tue, Oct 8, 2019 at 6:04 AM Nicholas Marriott
>> > >A A <[email protected]> wrote:
>> > >
>> > >A A A It seems less useful to me to be able to say "add 50%
>> of the
>> > size of the
>> > >A A A pane/window to the size of this cell" than to say
>> "make this
>> > cell cover
>> > >A A A 50% of the window". But I don't really mind that much
>> if you
>> > think it is
>> > >A A A better.
>> > >
>> > >A A A Oh the top cell will be the size of the WINDOW not the
>> pane,
>> > sorry. So
>> > >A A A it will be w->layout_root or w->sx and w->sy, not
>> > wp->layout_cell.
>> > >
>> > >A A A On Tue, Oct 08, 2019 at 05:34:27AM -0700, Anindya
>> Mukherjee
>> > wrote:
>> > >A A A >AA AA I was thinking that "-p percent" would be a
>> way to
>> > enter an
>> > >A A A adjustment for
>> > >A A A >AA AA the "resize by" commands like LRUD. So it
>> would
>> > "resize by".
>> > >A A A >AA AA In my 2x2 grid example when I look at the top
>> level
>> > cell (found
>> > >A A A by walking
>> > >A A A >AA AA up) its size is 244x65 (for the current
>> terminal
>> > size), while the
>> > >A A A size of
>> > >A A A >AA AA both the target wp and its layout cell is
>> 122x32.
>> > Is there a
>> > >A A A quick way to
>> > >A A A >AA AA get to the top level given the target pane?
>> > >A A A >AA AA Alternatively we can resize by a percentage
>> of the
>> > target pane's
>> > >A A A size like
>> > >A A A >AA AA I was doing initially which is also intuitive.
>> > >A A A >AA AA Best,
>> > >A A A >AA AA Anindya
>> > >A A A >AA AA On Tue, Oct 8, 2019 at 1:53 AM Nicholas
>> Marriott
>> > >A A A >AA AA <[email protected]> wrote:
>> > >A A A >
>> > >A A A >AA AA AA OK this looks good but there are two
>> things:
>> > >A A A >
>> > >A A A >AA AA AA - if you are using the whole size you
>> should be
>> > able to use
>> > >A A A wp->sx and
>> > >A A A >AA AA AA AAA sy for the size rather than walking
>> up to
>> > it (or you can
>> > >A A A get the root
>> > >A A A >AA AA AA AAA cell directly from wp->layout_cell).
>> > >A A A >
>> > >A A A >AA AA AA - this resizes BY a % of the total size
>> which
>> > seems a bit odd
>> > >A A A - I was
>> > >A A A >AA AA AA AAA thinking it would resize TO a % of
>> the
>> > total size?
>> > >A A A >
>> > >A A A >AA AA AA On Tue, Oct 08, 2019 at 12:34:13AM -0700,
>> > Anindya Mukherjee
>> > >A A A wrote:
>> > >A A A >AA AA AA >AAA AAA Great, thanks!
>> > >A A A >AA AA AA >AAA AAA I updated the code to use the
>> root
>> > layout cell as
>> > >A A A that seems
>> > >A A A >AA AA AA intuitive to
>> > >A A A >AA AA AA >AAA AAA me, and also tried to fix some
>> of
>> > the formatting
>> > >A A A issues.
>> > >A A A >AA AA AA >AAA AAA Best,
>> > >A A A >AA AA AA >AAA AAA Anindya
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA On Tue, Oct 8, 2019 at 12:05 AM
>> > Nicholas Marriott
>> > >A A A >AA AA AA >AAA AAA <[email protected]>
>> wrote:
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA AAA Looks good aside from a
>> few
>> > style nits I can fix
>> > >A A A before commit
>> > >A A A >AA AA AA (use tabs
>> > >A A A >AA AA AA >AAA AAA AAA not spaces, all the u_int
>> > variable declarations
>> > >A A A go in the same
>> > >A A A >AA AA AA >AAA AAA AAA statement, line length
>> needs to
>> > be <= 80 columns,
>> > >A A A new line for
>> > >A A A >AA AA AA each new
>> > >A A A >AA AA AA >AAA AAA AAA sentence in tmux.1,
>> "lines or
>> > columns" not "lines
>> > >A A A or cells" in
>> > >A A A >AA AA AA tmux.1).
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA AAA I don't have strong
>> feelings
>> > whether -p means %
>> > >A A A of parent cell
>> > >A A A >AA AA AA or total
>> > >A A A >AA AA AA >AAA AAA AAA size, it's up to you
>> which you
>> > prefer. I'd add a
>> > >A A A line to the
>> > >A A A >AA AA AA manual
>> > >A A A >AA AA AA >AAA AAA AAA explaining what it means
>> in
>> > either case.
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA AAA Thanks!
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA AAA On Mon, Oct 07, 2019 at
>> > 11:44:46PM -0700, Anindya
>> > >A A A Mukherjee
>> > >A A A >AA AA AA wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA Fixed a
>> mistake in
>> > the last upload.
>> > >A A A Sorry for the
>> > >A A A >AA AA AA noise.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA Although
>> currently
>> > I am using the
>> > >A A A parent layout cell
>> > >A A A >AA AA AA of the
>> > >A A A >AA AA AA >AAA AAA AAA target window
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA pane's cell
>> to
>> > calculate the available
>> > >A A A space, I
>> > >A A A >AA AA AA wonder if it
>> > >A A A >AA AA AA >AAA AAA AAA would be
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA better to
>> use the
>> > root layout cell,
>> > >A A A which is
>> > >A A A >AA AA AA basically the entire
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA terminal. An
>> > example is a 2x2 grid
>> > >A A A with 4 panes. Here
>> > >A A A >AA AA AA if I just
>> > >A A A >AA AA AA >AAA AAA AAA use the
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA parent cell,
>> it
>> > only covers half of
>> > >A A A the available
>> > >A A A >AA AA AA space and the
>> > >A A A >AA AA AA >AAA AAA AAA results
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA are a little
>> less
>> > intuitive compared
>> > >A A A to using the top
>> > >A A A >AA AA AA level cell.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA Best,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA Anindya
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA On Mon, Oct
>> 7,
>> > 2019 at 10:42 PM
>> > >A A A Anindya Mukherjee
>> > >A A A >AA AA AA >AAA AAA AAA <[email protected]>
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA Some
>> further
>> > adjustments. I
>> > >A A A realised that
>> > >A A A >AA AA AA checking the
>> > >A A A >AA AA AA >AAA AAA AAA percentage is not
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA
>> necessary
>> > because downstream code
>> > >A A A handles large
>> > >A A A >AA AA AA values
>> > >A A A >AA AA AA >AAA AAA AAA correctly. Also,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA the
>> layout
>> > type of the parent
>> > >A A A layout_cell is
>> > >A A A >AA AA AA always
>> > >A A A >AA AA AA >AAA AAA AAA LAYOUT_WINDOWPANE so
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA I
>> check the
>> > args instead while
>> > >A A A calculating the
>> > >A A A >AA AA AA adjustment
>> > >A A A >AA AA AA >AAA AAA AAA (which is also
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA what's
>> done
>> > in split-window).
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA Best,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA Anindya
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA On
>> Mon, Oct
>> > 7, 2019 at 9:17 PM
>> > >A A A Anindya Mukherjee
>> > >A A A >AA AA AA >AAA AAA AAA <[email protected]>
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> Hi
>> > Nicholas,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> Thanks
>> > for the feedback! I
>> > >A A A have adjusted the
>> > >A A A >AA AA AA code
>> > >A A A >AA AA AA >AAA AAA AAA accordingly.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> > percentage can now be 0 to
>> > >A A A INT_MAX as in
>> > >A A A >AA AA AA split-window.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> Yes,
>> > initially I was setting
>> > >A A A the increment as
>> > >A A A >AA AA AA a percentage
>> > >A A A >AA AA AA >AAA AAA AAA of the
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> > current pane size thinking
>> > >A A A that would be
>> > >A A A >AA AA AA convenient.
>> > >A A A >AA AA AA >AAA AAA AAA However, upon
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> trying
>> > percentage of the
>> > >A A A available space in
>> > >A A A >AA AA AA the parent cell
>> > >A A A >AA AA AA >AAA AAA AAA I prefer
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> that.
>> > Also it is then
>> > >A A A consistent with
>> > >A A A >AA AA AA split-window.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> > Changes attached. Please
>> > >A A A have a look.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> Best,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> > Anindya
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> On
>> > Mon, Oct 7, 2019 at 4:57
>> > >A A A AM Nicholas
>> > >A A A >AA AA AA Marriott
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAA
>> > >A A A <[email protected]> wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > Thanks for this.
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > For strtonum - I think
>> > >A A A it does no harm to
>> > >A A A >AA AA AA let people do
>> > >A A A >AA AA AA >AAA AAA AAA -p0 or
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > -p99999999 to mean as
>> > >A A A small or as big as
>> > >A A A >AA AA AA possible.
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > With split-window, -p
>> > >A A A is a % of the
>> > >A A A >AA AA AA available space, but
>> > >A A A >AA AA AA >AAA AAA AAA you have
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > made
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > it a % of the existing
>> > >A A A size? Is this more
>> > >A A A >AA AA AA useful?
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > You should be able to
>> > >A A A get the available
>> > >A A A >AA AA AA space by looking
>> > >A A A >AA AA AA >AAA AAA AAA at the size
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > of
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > the parent cell
>> > >A A A >AA AA AA (wp->layout_cell->parent->sx and sy).
>> > >A A A >AA AA AA >AAA AAA AAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > On Sun, Oct 06, 2019 at
>> > >A A A 03:34:33PM -0700,
>> > >A A A >AA AA AA Anindya
>> > >A A A >AA AA AA >AAA AAA AAA Mukherjee wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA Thanks
>> > >A A A Thomas for the tips! I
>> > >A A A >AA AA AA have adjusted the
>> > >A A A >AA AA AA >AAA AAA AAA code
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > accordingly.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA Regarding
>> > >A A A the args_strtonum
>> > >A A A >AA AA AA call: I want to
>> > >A A A >AA AA AA >AAA AAA AAA disallow percent
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > <=0 and >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA 100. I
>> > >A A A thought adding 1, 100
>> > >A A A >AA AA AA is a convenient
>> > >A A A >AA AA AA >AAA AAA AAA way of doing
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > that, and I get
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA a "too
>> > >A A A small/large" error when
>> > >A A A >AA AA AA invalid values
>> > >A A A >AA AA AA >AAA AAA AAA are
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > supplied.AAAAAA Is
>> > >A A A there any
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA issue with
>> > >A A A doing it this way?
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA Best,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA Anindya
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA On Sun,
>> > >A A A Oct 6, 2019 at 3:03 PM
>> > >A A A >AA AA AA Thomas Adam
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > <[email protected]>
>> > >A A A wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA Hi,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A Thanks.AAAAAA Comments
>> > >A A A >AA AA AA below:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A 1.AAAAAA You shouldn't
>> > >A A A >AA AA AA need to use 0U for
>> > >A A A >AA AA AA >AAA AAA AAA integer
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > definitions.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A 2.AAAAAA In terms of
>> > >A A A >AA AA AA calling args_strtonum()
>> > >A A A >AA AA AA >AAA AAA AAA for
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > percentage:AAAAAA 0,
>> > >A A A INT_MAX
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A should be OK, rather than
>> > >A A A >AA AA AA 1, 100, no?
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A 3.AAAAAA When you're
>> > >A A A >AA AA AA resizing in either L/R
>> > >A A A >AA AA AA >AAA AAA AAA or U/D, the
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > layout cells are
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A either LEFTRIGHT or
>> > >A A A >AA AA AA TOPBOTTOM.AAAAAA Rather
>> > >A A A >AA AA AA >AAA AAA AAA than embed your
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > percentage
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A check in all of the if
>> > >A A A >AA AA AA statements that
>> > >A A A >AA AA AA >AAA AAA AAA check for 'L', 'R',
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > etc., you
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA can
>> > >A A A pull this check out
>> > >A A A >AA AA AA to the top,
>> > >A A A >AA AA AA >AAA AAA AAA something like:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA if
>> > >A A A (layout ==
>> > >A A A >AA AA AA LAYOUT_TOPBOTTOM)
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A AAAAAA AAAAAA adjust =
>> > >A A A >AA AA AA (wp->sy * percentage) /
>> > >A A A >AA AA AA >AAA AAA AAA 100
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA else
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A AAAAAA AAAAAA adjust =
>> > >A A A >AA AA AA (wp->sx * percentage) /
>> > >A A A >AA AA AA >AAA AAA AAA 100
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA I'm
>> > >A A A sure you get the
>> > >A A A >AA AA AA idea.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A Kindly,
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A Thomas
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA On
>> > >A A A Sun, 6 Oct 2019 at
>> > >A A A >AA AA AA 20:56, Anindya
>> > >A A A >AA AA AA >AAA AAA AAA Mukherjee
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > <[email protected]>
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A wrote:
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A Hi, I have been playing
>> > >A A A >AA AA AA with adding a
>> > >A A A >AA AA AA >AAA AAA AAA percent option to
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > resize-pane.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA It's
>> > >A A A on the todo list
>> > >A A A >AA AA AA (small things) for
>> > >A A A >AA AA AA >AAA AAA AAA tmux, and I find
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > it very
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A useful. Right now it's
>> > >A A A >AA AA AA working for me but
>> > >A A A >AA AA AA >AAA AAA AAA being new to
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > tmux code I would
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA love
>> > >A A A to have some eyes on
>> > >A A A >AA AA AA it. I have
>> > >A A A >AA AA AA >AAA AAA AAA attached my changes.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA > If
>> > >A A A this is
>> > >A A A >AA AA AA worthwhile/useful then I can
>> > >A A A >AA AA AA >AAA AAA AAA do it properly
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > via github. In
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA that
>> > >A A A case any advice on
>> > >A A A >AA AA AA the proper
>> > >A A A >AA AA AA >AAA AAA AAA procedure is welcome!
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A Anindya
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA > --
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA >
>> > >A A A You received this
>> > >A A A >AA AA AA message because you are
>> > >A A A >AA AA AA >AAA AAA AAA subscribed to
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > the Google
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAA
>> > >A A A Groups "tmux-users"
>> > >A A A >AA AA AA group.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA > To
>> > >A A A unsubscribe from
>> > >A A A >AA AA AA this group and stop
>> > >A A A >AA AA AA >AAA AAA AAA receiving emails
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > from it, send
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA an
>> > >A A A email to
>> > >A A A >AA AA AA >AAA AAA AAA
>> > [email protected].
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA AAAAA > To
>> > >A A A view this discussion
>> > >A A A >AA AA AA on the web, visit
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > >AAAAA AAAAA A
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA A
>> > >A A A >AA AA AA >AAA AAA A
>> > >A A A >AA AA A
>> > >A A A
>> >
>> https://groups.google.com/d/msgid/tmux-users/CAN%2Bi5iO9yh4TSNJ_r7397%2BCwW55%2BwHqDOs20CBYpFmoXeZfHTA%40mail.gmail.com
>> .
>> > >A A A >AA AA AA >
>> > >A A A >AA AA AA >AAA AAA AAA > diff --git
>> > a/cmd-resize-pane.c
>> > >A A A b/cmd-resize-pane.c
>> > >A A A >AA AA AA >AAA AAA AAA > index 8d35d96f..519c9d5e
>> > 100644
>> > >A A A >AA AA AA >AAA AAA AAA > --- a/cmd-resize-pane.c
>> > >A A A >AA AA AA >AAA AAA AAA > +++ b/cmd-resize-pane.c
>> > >A A A >AA AA AA >AAA AAA AAA > @@ -35,9 +35,9 @@ const
>> > struct cmd_entry
>> > >A A A >AA AA AA cmd_resize_pane_entry = {
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> .name =
>> > "resize-pane",
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> .alias =
>> > "resizep",
>> > >A A A >AA AA AA >AAA AAA AAA >A
>> > >A A A >AA AA AA >AAA AAA AAA > -AAAA AAAA A .args = {
>> > "DLMRt:Ux:y:Z", 0, 1 },
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA A .args = {
>> > "DLMp:Rt:Ux:y:Z", 0, 1
>> > >A A A },
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> .usage =
>> > "[-DLMRUZ] [-x width]
>> > >A A A [-y height] "
>> > >A A A >AA AA AA >AAA AAA AAA CMD_TARGET_PANE_USAGE " "
>> > >A A A >AA AA AA >AAA AAA AAA > -AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAA
>> > >A A A "[adjustment]",
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA "[-p
>> > >A A A percentage] [adjustment]",
>> > >A A A >AA AA AA >AAA AAA AAA >A
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> .target =
>> > { 't', CMD_FIND_PANE,
>> > >A A A 0 },
>> > >A A A >AA AA AA >AAA AAA AAA >A
>> > >A A A >AA AA AA >AAA AAA AAA > @@ -57,8 +57,9 @@
>> > cmd_resize_pane_exec(struct
>> > >A A A cmd *self,
>> > >A A A >AA AA AA struct
>> > >A A A >AA AA AA >AAA AAA AAA cmdq_item *item)
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> struct
>> > sessionAAAA AAAA AAA
>> > >A A A AAAA AAAA *s =
>> > >A A A >AA AA AA item->target.s;
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A const
>> > charAAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA *errstr;
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> charAAAA
>> > AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AAAA AA
>> > >A A A >AA AA AA *cause;
>> > >A A A >AA AA AA >AAA AAA AAA > -AAAA AAAA A
>> u_intAAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AA
>> > >A A A >AA AA AA adjust;
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA A
>> u_intAAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AA
>> > >A A A >AA AA AA adjust = 0;
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> intAAAA
>> > AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AAAA AAAA AA
>> > >A A A >AA AA AA x, y;
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > u_intAAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AAAA AA
>> > >A A A >AA AA AA AAAA percentage = 0;
>> > >A A A >AA AA AA >AAA AAA AAA >A
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A if
>> > (args_has(args, 'M')) {
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > AAAA AAAA A if
>> > >A A A >AA AA AA (cmd_mouse_window(&shared->mouse, &s) ==
>> > >A A A >AA AA AA >AAA AAA AAA NULL)
>> > >A A A >AA AA AA >AAA AAA AAA > @@ -81,7 +82,29 @@
>> > cmd_resize_pane_exec(struct
>> > >A A A cmd *self,
>> > >A A A >AA AA AA struct
>> > >A A A >AA AA AA >AAA AAA AAA cmdq_item *item)
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A }
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A
>> > server_unzoom_window(w);
>> > >A A A >AA AA AA >AAA AAA AAA >A
>> > >A A A >AA AA AA >AAA AAA AAA > -AAAA AAAA A if
>> (args->argc
>> > == 0)
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA
>> AAAA if
>> > (args_has(args, 'p')) {
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAA
>> > >A A A percentage =
>> > >A A A >AA AA AA args_strtonum(args, 'p', 0,
>> > >A A A >AA AA AA >AAA AAA AAA INT_MAX, &cause);
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA A if (cause !=
>> > >A A A NULL) {
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA A cmdq_error(item,
>> > >A A A >AA AA AA "percentage %s",
>> > >A A A >AA AA AA >AAA AAA AAA cause);
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA A free(cause);
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA A return
>> > >A A A >AA AA AA (CMD_RETURN_ERROR);
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA A }
>> > >A A A >AA AA AA >AAA AAA AAA > +
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA /*
>> > >A A A Should not also have an
>> > >A A A >AA AA AA adjustment in this
>> > >A A A >AA AA AA >AAA AAA AAA case. */
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA if
>> > >A A A (args->argc > 0) {
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA A cmdq_error(item,
>> > >A A A >AA AA AA "percentage and
>> > >A A A >AA AA AA >AAA AAA AAA adjustment are mutually
>> > exclusive");
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA A return
>> > >A A A >AA AA AA (CMD_RETURN_ERROR);
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA }
>> > >A A A >AA AA AA >AAA AAA AAA > +
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA /*
>> > >A A A Calculate adjustment
>> > >A A A >AA AA AA from parent cell
>> > >A A A >AA AA AA >AAA AAA AAA size. */
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA if
>> > >A A A >AA AA AA (wp->layout_cell->parent) { /* A cell
>> > >A A A >AA AA AA >AAA AAA AAA filling the terminal has
>> no
>> > parent */
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA if
>> > >A A A >AA AA AA (args_has(args, 'U') ||
>> > >A A A >AA AA AA >AAA AAA AAA args_has(args, 'D'))
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AAAA AAAA AA
>> > >A A A >AA AA AA AAAA adjust =
>> > >A A A >AA AA AA >AAA AAA AAA
>> (wp->layout_cell->parent->sy *
>> > percentage) / 100;
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA else
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA AAA
>> > >A A A AAAA AAAA AAAA AAAA AAAA AA
>> > >A A A >AA AA AA AAAA adjust =
>> > >A A A >AA AA AA >AAA AAA AAA
>> (wp->layout_cell->parent->sx *
>> > percentage) / 100;
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA AAAA
>> > AAAA AAAA AAAA AAAA }
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA AAAA
>> AAAA }
>> > >A A A >AA AA AA >AAA AAA AAA > +AAAA AAAA A else if
>> > (args->argc == 0)
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > AAAA AAAA A adjust = 1;
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA A else
>> {
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA AAAA AAAA AAAA
>> AAAA
>> > AAAA AAAA A adjust =
>> > >A A A >AA AA AA strtonum(args->argv[0], 1, INT_MAX,
>> > >A A A >AA AA AA >AAA AAA AAA &errstr);
>> > >A A A >AA AA AA >AAA AAA AAA > diff --git a/tmux.1
>> b/tmux.1
>> > >A A A >AA AA AA >AAA AAA AAA > index e095ba40..f548af2c
>> > 100644
>> > >A A A >AA AA AA >AAA AAA AAA > --- a/tmux.1
>> > >A A A >AA AA AA >AAA AAA AAA > +++ b/tmux.1
>> > >A A A >AA AA AA >AAA AAA AAA > @@ -2224,13 +2224,18 @@
>> if
>> > specified, to
>> >> left or right by a
>> > >A A A >AA AA AA >AAA AAA AAA > +.Ar percentage
>> > >A A A >AA AA AA >AAA AAA AAA > +of the available space
>> > >A A A >AA AA AA >AAA AAA AAA > +.Fl p
>> > >A A A >AA AA AA >AAA AAA AAA > +or by
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Ar adjustment
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA with
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Fl U ,
>> > >A A A >AA AA AA >AAA AAA AAA > @@ -2246,7 +2251,11 @@
>> or
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Fl y .
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA The
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Ar adjustment
>> > >A A A >AA AA AA >AAA AAA AAA > -is given in lines or
>> cells
>> > (the default is 1).
>> > >A A A >AA AA AA >AAA AAA AAA > +is given in lines or
>> cells
>> > (the default is 1).
>> > >A A A The
>> > >A A A >AA AA AA >AAA AAA AAA > +.Ar percentage
>> > >A A A >AA AA AA >AAA AAA AAA > +and the
>> > >A A A >AA AA AA >AAA AAA AAA > +.Ar adjustment
>> > >A A A >AA AA AA >AAA AAA AAA > +are mutually exclusive.
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Pp
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA With
>> > >A A A >AA AA AA >AAA AAA AAA >AAAA .Fl Z ,
>> > >A A A >
>> > >A A A >AA AA AA > diff --git a/cmd-resize-pane.c
>> > b/cmd-resize-pane.c
>> > >A A A >AA AA AA > index 8d35d96f..eeddabf9 100644
>> > >A A A >AA AA AA > --- a/cmd-resize-pane.c
>> > >A A A >AA AA AA > +++ b/cmd-resize-pane.c
>> > >A A A >AA AA AA > @@ -35,9 +35,9 @@ const struct cmd_entry
>> > >A A A cmd_resize_pane_entry = {
>> > >A A A >AA AA AA >AAA AAA AAA A .name = "resize-pane",
>> > >A A A >AA AA AA >AAA AAA AAA A .alias = "resizep",
>> > >A A A >AA AA AA >A
>> > >A A A >AA AA AA > -AAA AAA A .args = { "DLMRt:Ux:y:Z",
>> 0, 1
>> > },
>> > >A A A >AA AA AA > +AAA AAA A .args = {
>> "DLMp:Rt:Ux:y:Z", 0, 1
>> > },
>> > >A A A >AA AA AA >AAA AAA AAA A .usage = "[-DLMRUZ] [-x
>> > width] [-y height] "
>> > >A A A >AA AA AA CMD_TARGET_PANE_USAGE " "
>> > >A A A >AA AA AA > -AAA AAA AAA AAA AAA AAA AAA
>> > "[adjustment]",
>> > >A A A >AA AA AA > +AAA AAA AAA AAA AAA AAA AAA "[-p
>> > percentage] [adjustment]",
>> > >A A A >AA AA AA >A
>> > >A A A >AA AA AA >AAA AAA AAA A .target = { 't',
>> > CMD_FIND_PANE, 0 },
>> > >A A A >AA AA AA >A
>> > >A A A >AA AA AA > @@ -55,9 +55,10 @@
>> > cmd_resize_pane_exec(struct cmd *self,
>> > >A A A struct
>> > >A A A >AA AA AA cmdq_item *item)
>> > >A A A >AA AA AA >AAA AAA AAA A struct windowAAA AAA
>> AAA
>> > AAA AAA A *w =
>> > >A A A wl->window;
>> > >A A A >AA AA AA >AAA AAA AAA A struct clientAAA AAA
>> AAA
>> > AAA AAA A *c =
>> > >A A A item->client;
>> > >A A A >AA AA AA >AAA AAA AAA A struct sessionAAA AAA
>> AAA
>> > AAA AAA *s =
>> > >A A A item->target.s;
>> > >A A A >AA AA AA > +AAA AAA A struct layout_cellAAA
>> AAA AAA
>> > *rootlc;
>> > >A A A >AA AA AA >AAA AAA AAA A const charAAA AAA
>> AAA AAA
>> > AAA AAA AAA *errstr;
>> > >A A A >AA AA AA >AAA AAA AAA A charAAA AAA AAA AAA
>> AAA
>> > AAA AAA AAA AAA AA
>> > >A A A *cause;
>> > >A A A >AA AA AA > -AAA AAA A u_intAAA AAA AAA AAA
>> AAA
>> > AAA AAA AAA AAA AA
>> > >A A A adjust;
>> > >A A A >AA AA AA > +AAA AAA> >A A A adjust = 0,
>> percentage =
>> > >A A A >AA AA AA 0;
>> > >A A A >AA AA AA >AAA AAA AAA A intAAA AAA AAA AAA
>> AAA
>> > AAA AAA> >A A A >AA AA AA >A
>> > >
>
>
>
> --
> Best,
> Anindya
>
>
--
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 [email protected].
To view this discussion on the web, visit
https://groups.google.com/d/msgid/tmux-users/CAN%2Bi5iPRHD%3DT1Kqq4OnOxXsR8qq3A%3Df3qahqWDk2WmKOV6Kffg%40mail.gmail.com.
diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c
index 8d35d96f..4ceaa37d 100644
--- a/cmd-resize-pane.c
+++ b/cmd-resize-pane.c
@@ -19,6 +19,7 @@
#include <sys/types.h>
#include <stdlib.h>
+#include <string.h>
#include "tmux.h"
@@ -55,10 +56,10 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item
*item)
struct window *w = wl->window;
struct client *c = item->client;
struct session *s = item->target.s;
- const char *errstr;
- char *cause;
+ const char *errstr, *percentstr;
+ char *cause, *percentvalstr;
u_int adjust;
- int x, y;
+ int x, y, percent, percentstrlen;
if (args_has(args, 'M')) {
if (cmd_mouse_window(&shared->mouse, &s) == NULL)
@@ -92,21 +93,72 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item
*item)
}
if (args_has(args, 'x')) {
- x = args_strtonum(args, 'x', PANE_MINIMUM, INT_MAX, &cause);
- if (cause != NULL) {
- cmdq_error(item, "width %s", cause);
- free(cause);
+ /* First check for percentage */
+ percentstr = args_get(args, 'x');
+ if (percentstr == NULL) {
+ cmdq_error(item, "missing");
return (CMD_RETURN_ERROR);
}
+
+ percentstrlen = strlen(percentstr);
+ if (percentstr[percentstrlen - 1] == '%') {
+ percentvalstr = xstrdup(percentstr);
+ percentvalstr[percentstrlen - 1] = '\0';
+ percent = strtonum(percentvalstr, 0, INT_MAX, &errstr);
+ free(percentvalstr);
+ if (errstr != NULL) {
+ cmdq_error(item, "width percent %s", errstr);
+ return (CMD_RETURN_ERROR);
+ }
+ x = (w->sx * percent) / 100;
+ if (x < PANE_MINIMUM)
+ x = PANE_MINIMUM;
+ if (x > INT_MAX)
+ x = INT_MAX;
+ } else {
+ /* Check for absolute value */
+ x = args_strtonum(args, 'x', PANE_MINIMUM, INT_MAX,
&cause);
+ if (cause != NULL) {
+ cmdq_error(item, "width %s", cause);
+ free(cause);
+ return (CMD_RETURN_ERROR);
+ }
+ }
layout_resize_pane_to(wp, LAYOUT_LEFTRIGHT, x);
}
if (args_has(args, 'y')) {
- y = args_strtonum(args, 'y', PANE_MINIMUM, INT_MAX, &cause);
- if (cause != NULL) {
- cmdq_error(item, "height %s", cause);
- free(cause);
+ /* First check for percentage */
+ percentstr = args_get(args, 'y');
+ if (percentstr == NULL) {
+ cmdq_error(item, "missing");
return (CMD_RETURN_ERROR);
}
+
+ percentstrlen = strlen(percentstr);
+ if (percentstr[percentstrlen - 1] == '%') {
+ percentvalstr = xstrdup(percentstr);
+ percentvalstr[percentstrlen - 1] = '\0';
+ percent = strtonum(percentvalstr, 0, INT_MAX, &errstr);
+ free(percentvalstr);
+ if (errstr != NULL) {
+ cmdq_error(item, "height percent %s", errstr);
+ return (CMD_RETURN_ERROR);
+ }
+ y = (w->sy * percent) / 100;
+ if (y < PANE_MINIMUM)
+ y = PANE_MINIMUM;
+ if (y > INT_MAX)
+ y = INT_MAX;
+ }
+ else {
+ /* Check for absolute value */
+ y = args_strtonum(args, 'y', PANE_MINIMUM, INT_MAX,
&cause);
+ if (cause != NULL) {
+ cmdq_error(item, "height %s", cause);
+ free(cause);
+ return (CMD_RETURN_ERROR);
+ }
+ }
layout_resize_pane_to(wp, LAYOUT_TOPBOTTOM, y);
}
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 8d63473f..e53147d0 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -63,9 +63,9 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item
*item)
enum layout_type type;
struct layout_cell *lc;
struct cmd_find_state fs;
- int size, percentage, flags, input;
- const char *template, *add;
- char *cause, *cp;
+ int size, percentage, flags, input, percentstrlen;
+ const char *template, *add, *errstr, *percentstr;
+ char *cause, *cp, *percentvalstr;
struct args_value *value;
if (args_has(args, 'h'))
@@ -73,12 +73,36 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item
*item)
else
type = LAYOUT_TOPBOTTOM;
if (args_has(args, 'l')) {
- size = args_strtonum(args, 'l', 0, INT_MAX, &cause);
- if (cause != NULL) {
- cmdq_error(item, "create pane failed: -l %s", cause);
- free(cause);
+ /* First check for percentage */
+ percentstr = args_get(args, 'l');
+ if (percentstr == NULL) {
+ cmdq_error(item, "missing");
return (CMD_RETURN_ERROR);
}
+
+ percentstrlen = strlen(percentstr);
+ if (percentstr[percentstrlen - 1] == '%') {
+ percentvalstr = xstrdup(percentstr);
+ percentvalstr[percentstrlen - 1] = '\0';
+ percentage = strtonum(percentvalstr, 0, INT_MAX,
&errstr);
+ free(percentvalstr);
+ if (errstr != NULL) {
+ cmdq_error(item, "percent %s", errstr);
+ return (CMD_RETURN_ERROR);
+ }
+ if (type == LAYOUT_TOPBOTTOM)
+ size = (wp->sy * percentage) / 100;
+ else
+ size = (wp->sx * percentage) / 100;
+ } else {
+ /* Check for absolute value */
+ size = args_strtonum(args, 'l', 0, INT_MAX, &cause);
+ if (cause != NULL) {
+ cmdq_error(item, "create pane failed: -l %s",
cause);
+ free(cause);
+ return (CMD_RETURN_ERROR);
+ }
+ }
} else if (args_has(args, 'p')) {
percentage = args_strtonum(args, 'p', 0, INT_MAX, &cause);
if (cause != NULL) {
diff --git a/tmux.1 b/tmux.1
index e095ba40..effd95e1 100644
--- a/tmux.1
+++ b/tmux.1
@@ -2225,8 +2225,8 @@ if specified, to
.It Xo Ic resize-pane
.Op Fl DLMRUZ
.Op Fl t Ar target-pane
-.Op Fl x Ar width
-.Op Fl y Ar height
+.Op Fl x Ar width | percentage%
+.Op Fl y Ar height | percentage%
.Op Ar adjustment
.Xc
.D1 (alias: Ic resizep )
@@ -2246,7 +2246,8 @@ or
.Fl y .
The
.Ar adjustment
-is given in lines or cells (the default is 1).
+is given in lines or columns (the default is 1).
+The percentages are based on the root window dimensions.
.Pp
With
.Fl Z ,
@@ -2440,7 +2441,7 @@ the command behaves like
.Op Fl c Ar start-directory
.Op Fl e Ar environment
.Oo Fl l
-.Ar size |
+.Ar size | percentage% |
.Fl p Ar percentage Oc
.Op Fl t Ar target-pane
.Op Ar shell-command
@@ -2460,7 +2461,8 @@ The
and
.Fl p
options specify the size of the new pane in lines (for vertical split) or in
-cells (for horizontal split), or as a percentage, respectively.
+columns (for horizontal split), or as a percentage, respectively.
+The percentages are based on the target pane dimensions.
The
.Fl b
option causes the new pane to be created to the left of or above