all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: <rms@gnu.org>, "Stefan Monnier" <monnier@iro.umontreal.ca>
Cc: bzg@altern.org, emacs-devel@gnu.org
Subject: RE: New keybinding suggestion: C-x _ for `shrink-window'
Date: Thu, 1 Nov 2007 09:54:22 -0700	[thread overview]
Message-ID: <BNELLINCGFJLDJIKDGACMEGACEAA.drew.adams@oracle.com> (raw)
In-Reply-To: <E1InNSQ-00056p-0g@fencepost.gnu.org>

>     Actually, I'd prefer to deprecate those bindings (along with
>     C-x ^) and replace them with a binding that allows the user to do:
>        M-x window-resize RET
>     (which we'd of course bind to some key) and then
>        ^ ^ ^ } } } } } { { { { } } ...
>     or  left left left up up up up up up up
>
> I think that is worth trying.  To make it convenient we need
> a key binding for window-resize.  How about C-x _?

FWIW - This is trivial to do with Do Re Mi. Function `doremi' lets you
increment or decrement anything repeatedly, using the arrow keys or a mouse
wheel (or both). It is made for this kind of thing.

In this case, we define two commands, `window-resize' and
`window-resize-horizontally', that use `doremi' to increment the height and
width, respectively. Left and right arrows are used for horizontal; up and
down arrows are used for vertical. Each command calls the other whenever the
arrow-key type changes (horizontal vs vertical). Only one of the commands
needs to be bound to a key - e.g. bind `window-resize' to `C-x _'.

Try it. You can get `doremi' here:
http://www.emacswiki.org/cgi-bin/wiki/doremi.el. Some doc is here:
http://www.emacswiki.org/cgi-bin/wiki/DoReMi. You can end either command by
hitting any key besides an arrow or the mouse wheel (e.g. `C-g').

These definitions are trivial, even if they might not appear trivial to
someone unfamiliar with `doremi' - they are typical. The first arg to
`doremi' is an incrementation (growth) function. The second arg is the
initial value. The third arg is the increment to pass to the growth
function. The growth function returns the new value, so that it can be
echoed to the user at each arrow key press.

(defun window-resize (&optional increment window)
  "Change height WINDOW incrementally.
INCREMENT is the size increment.
WINDOW is selected.  WINDOW defaults to the selected window."
  (interactive "p")
  (select-window (or window (selected-window)))
  (doremi (lambda (incr) (shrink-window incr) (window-height))
          (window-height) (- increment) t)
  (when (member (car unread-command-events)
                '(left right M-left M-right))
    (window-resize-horizontally increment window)))

(defun window-resize-horizontally (&optional increment window)
  "Change width of WINDOW incrementally.
INCREMENT is the size increment.
WINDOW is selected.  WINDOW defaults to the selected window."
  (interactive "p")
  (select-window (or window (selected-window)))
  (let ((doremi-up-key 'left)
        (doremi-boost-up-key 'M-left)
        (doremi-down-key 'right)
        (doremi-boost-down-key 'M-right))
    (doremi (lambda (incr) (shrink-window-horizontally incr)
                    (window-width))
            (window-width) nil t))
  (when (member (car unread-command-events)
                (list doremi-up-key doremi-down-key
                      doremi-boost-up-key doremi-boost-down-key))
    (window-resize increment window)))

  reply	other threads:[~2007-11-01 16:54 UTC|newest]

Thread overview: 163+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-28 10:39 New keybinding suggestion: C-x _ for `shrink-window' Bastien
2007-10-28 10:41 ` Lennart Borgman (gmail)
2007-10-28 12:06   ` Bastien
2007-10-28 11:21     ` Lennart Borgman (gmail)
2007-10-28 14:40       ` Bastien
2007-10-28 20:20         ` Lennart Borgman (gmail)
2007-10-28 21:47           ` Bastien
2007-10-28 21:47           ` Bastien
2007-10-28 22:05             ` Lennart Borgman (gmail)
2007-10-29  0:03             ` Lennart Borgman (gmail)
2007-10-29  8:43               ` Bastien
2007-10-29  0:11 ` Richard Stallman
2007-10-29 13:14   ` Bastien
2007-10-31 11:57   ` Bastien
2007-10-31 11:58   ` Bastien
2007-10-31 15:54     ` Stefan Monnier
2007-10-31 16:18       ` Juanma Barranquero
2007-10-31 17:31         ` Bastien
2007-10-31 23:58         ` Richard Stallman
2007-11-01  0:26           ` Lennart Borgman (gmail)
2007-11-01  1:14             ` Juanma Barranquero
2007-11-01  1:28               ` Lennart Borgman (gmail)
2007-11-01  1:46                 ` Juanma Barranquero
2007-11-01  2:17                   ` Lennart Borgman (gmail)
2007-11-01  3:41               ` Bastien
2007-11-01  1:13           ` Juanma Barranquero
2007-11-01 19:04             ` Richard Stallman
2007-11-03 21:56           ` Stephen J. Turnbull
2007-11-04  1:41             ` Andreas Schwab
2007-11-04  2:49               ` Stephen J. Turnbull
2007-11-04 19:56             ` Richard Stallman
2007-10-31 16:20       ` Lennart Borgman (gmail)
2007-10-31 23:58       ` Richard Stallman
2007-11-01 16:54         ` Drew Adams [this message]
2007-11-01 22:01           ` Drew Adams
2007-11-01 22:27             ` David Kastrup
2007-11-01 23:05               ` Drew Adams
2007-11-02 14:28           ` Bastien
2007-11-02 14:28             ` Drew Adams
2007-11-03  0:20               ` Bastien
2007-11-03  3:58             ` Richard Stallman
2007-11-03  4:14               ` Miles Bader
2007-11-03  5:46                 ` Bastien
2007-11-03  5:35                   ` Miles Bader
2007-11-03 14:11                     ` Bastien
2007-11-03 15:15                   ` Drew Adams
2007-11-03 16:43                     ` Bastien
2007-11-03 16:43                       ` Lennart Borgman (gmail)
2007-11-04  0:11                 ` Richard Stallman
2007-11-05  3:30                   ` Bastien
2007-11-05  7:37                     ` Drew Adams
2007-11-05 11:06                       ` Bastien
2007-11-08 15:32                       ` Bastien
2007-11-10  1:09                         ` Drew Adams
2007-11-10  1:11                           ` Drew Adams
2007-11-11  5:00                           ` Bastien
2007-11-11  8:42                             ` Drew Adams
2007-11-11 17:17                               ` Bastien
2007-11-11 17:26                                 ` Drew Adams
2007-11-11 23:54                                   ` Richard Stallman
2007-11-12  0:07                                     ` Drew Adams
2007-11-12  3:20                                       ` Bastien
2007-11-12  2:55                                         ` Drew Adams
2007-11-12  4:18                                           ` Bastien
2007-11-12 11:47                                           ` Robert J. Chassell
2007-11-12 13:47                                             ` Bastien
2007-11-12 19:03                                               ` Lennart Borgman (gmail)
2007-11-12 21:20                                                 ` Robert J. Chassell
2007-11-12 21:31                                                 ` Drew Adams
2007-11-12 22:09                                                   ` Lennart Borgman (gmail)
2007-11-12 22:51                                                     ` Drew Adams
2007-11-14  0:26                                                       ` Lennart Borgman (gmail)
2007-11-16 23:49                                                       ` Drew Adams
2007-11-17  1:36                                                         ` Lennart Borgman (gmail)
2007-11-17  9:09                                                           ` Drew Adams
2007-11-17 15:44                                                             ` Lennart Borgman (gmail)
2007-11-17 17:28                                                               ` Drew Adams
2007-11-12 21:41                                                 ` Robert J. Chassell
2007-11-12 22:15                                                   ` Lennart Borgman (gmail)
2007-11-13 13:40                                                 ` Bastien
2007-11-13 17:51                                                   ` Juanma Barranquero
2007-11-14  0:58                                                     ` Bastien
2007-11-14  2:48                                                     ` Richard Stallman
2007-11-14  8:45                                                       ` Juanma Barranquero
2007-11-13 23:52                                                   ` Juri Linkov
2007-11-14  1:05                                                     ` Bastien
2007-11-12 17:18                                       ` Richard Stallman
2007-11-12 17:28                                         ` Drew Adams
2007-11-11 14:02                             ` Stefan Monnier
2007-11-11 17:11                               ` Bastien
2007-11-11 19:33                             ` Richard Stallman
2007-11-12  3:19                               ` Bastien
2007-11-12 17:18                                 ` Richard Stallman
2007-11-13 13:25                                   ` Bastien
2007-11-13 18:49                                     ` Robert J. Chassell
2007-11-14  0:27                                       ` Lennart Borgman (gmail)
2007-11-14 14:41                                         ` Lennart Borgman (gmail)
2007-11-14  1:14                                       ` Bastien
2007-11-14  1:56                                         ` Robert J. Chassell
2007-11-15 20:52                                           ` Bastien
2007-11-15 20:57                                             ` Bastien
     [not found]                                             ` <473CBBA7.8090507@gmail.com>
2007-11-16 12:39                                               ` Bastien
2007-11-14 17:53                                         ` Richard Stallman
2007-11-14 18:12                                           ` Bastien
     [not found]                                             ` <473B7CDD.4040401@gmail.com>
2007-11-15 21:05                                               ` Bastien
2007-11-15 21:38                                                 ` Lennart Borgman (gmail)
2007-11-15 22:27                                                   ` Lennart Borgman (gmail)
2007-11-16 12:41                                                     ` Bastien
2007-11-16 21:52                                                       ` Juri Linkov
2007-11-17  0:10                                                         ` Lennart Borgman (gmail)
2007-11-17  1:45                                                           ` Juri Linkov
2007-11-17  9:28                                                             ` martin rudalics
2007-11-17 11:58                                                               ` Bastien
2007-11-17  2:17                                                         ` Bastien
2007-11-17  9:09                                                           ` Drew Adams
2007-11-17 12:08                                                             ` Bastien
2007-11-17 17:28                                                               ` Drew Adams
2007-11-18  0:10                                                                 ` Bastien
2007-11-19  1:20                                                                   ` Drew Adams
2007-11-19  2:45                                                                     ` Bastien
2007-11-19  6:48                                                                       ` Drew Adams
2007-11-17 15:59                                                             ` Juri Linkov
2007-11-17 16:34                                                               ` Lennart Borgman (gmail)
2007-11-17 16:38                                                                 ` Juri Linkov
2007-11-17 17:25                                                                   ` Lennart Borgman (gmail)
2007-11-17 23:52                                                                   ` Bastien
2007-11-17 23:51                                                               ` Bastien
2007-11-18  0:16                                                                 ` Juri Linkov
2007-11-18  2:16                                                                   ` Bastien
2007-11-18  2:31                                                                     ` Lennart Borgman (gmail)
2007-11-18 12:04                                                                       ` Juri Linkov
2007-11-19  2:23                                                                         ` Bastien
2007-11-14 23:09                                           ` Lennart Borgman (gmail)
2007-11-14 23:46                                           ` Juri Linkov
2007-11-15  0:21                                             ` Lennart Borgman (gmail)
2007-11-15  1:08                                               ` Stefan Monnier
2007-11-15  8:29                                                 ` Lennart Borgman (gmail)
2007-11-16  1:16                                                 ` Juri Linkov
2007-11-16 12:58                                                   ` Bastien
2007-11-16 15:47                                                     ` Stefan Monnier
2007-11-16 17:13                                                       ` Bastien
2007-11-16 18:17                                                         ` Stefan Monnier
2007-11-16 19:19                                                           ` Bastien
2007-11-16 21:48                                                             ` Stefan Monnier
2007-11-17  2:26                                                               ` Bastien
2007-11-17  4:22                                                                 ` Stefan Monnier
2007-11-17 11:54                                                                   ` Bastien
2007-11-18  3:09                                                                     ` Stefan Monnier
2007-11-19  2:30                                                                       ` Bastien
2007-11-15 13:07                                               ` Richard Stallman
2007-11-15 13:07                                             ` Richard Stallman
     [not found]                         ` <E1Ir5H0-0002Ty-Jz@fencepost.gnu.org>
2007-11-11 17:10                           ` Bastien
2007-11-11 23:54                             ` Richard Stallman
2007-11-12  3:33                               ` Bastien
2007-11-12 17:18                                 ` Richard Stallman
2007-11-13 13:27                                   ` Bastien
2007-11-11 23:54                             ` Richard Stallman
2007-11-12  3:36                               ` Bastien
2007-11-18 22:46                                 ` Richard Stallman
2007-11-19  2:34                                   ` Bastien
2007-11-02 16:51       ` Sascha Wilde
2007-10-31 23:58     ` Richard Stallman
2007-11-01  6:30       ` David Kastrup

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

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

  git send-email \
    --in-reply-to=BNELLINCGFJLDJIKDGACMEGACEAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.com \
    --cc=bzg@altern.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rms@gnu.org \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.