Re: [dev] tabbed - why?

From: Eric Pruitt <eric.pruitt_AT_gmail.com>
Date: Mon, 17 Feb 2014 15:10:38 -0600

On Mon, Feb 17, 2014 at 09:49:49PM +0100, Markus Teich wrote:
> For local terminal multiplexing I find tabbed to be more convenient because of
> the simple modifier keybindings instead of the more complex prefix concept of
> tmux and screen.

In screen, you can use "bindkey" to avoid the issue of prefixes, and I
imagine there's something similar for tmux. I have Ctrl+Tab,
Ctrl+Shift+Tab and Ctrl+T all configured with bindkey so they need not
be prefixed with the escape key. For the first two, you'll need to
configure your terminal emulator to emit specialized key sequences.
Here's what I have for my key bindings in my screenrc:

    # Ctrl+(Shift)+Tab
    bindkey "^[[27;5;9~" next
    bindkey "^[[27;6;9~" prev

    # MinTTY (Cygwin) Ctrl+(Shift)+Tab
    bindkey "^[[1;5I" next
    bindkey "^[[1;6I" prev

In st, I use the following entries in config.h to emit the proper key
sequences:

    // Ctrl+Tab
    { XK_Tab, ControlMask, "\033[27;5;9~", 0, 0, 0},
    // Ctrl+Shft+Tab
    { XK_ISO_Left_Tab, ShiftControl, "\033[27;6;9~", 0, 0, 0},

And in my Xresources file, I use something similar for xterm and urxvt:

    *vt100.translations: #override Ctrl Shift <Key>Q: string(0x1b) string("[27;4;9~") \n
        Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n
        Ctrl Shift <Key>Tab: string(0x1b) string("[27;6;9~")
    [...]
    urxvt.keysym.Control-Tab: \033[27;5;9~
    urxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~

That said, using escape prefixes in screen has actually grown on me, and
although I originally found it annoying, I like it now. I did change
mine from ^A to ^F, though; I use ^A in lieu of home far too often.

> Most of the other tmux features like session management and scrollback
> buffer I do not need that often.

I experimented with tabbed at one point, but I have the opposite problem
in that I use those features extensively in addition to splitting. I
tend to have my terminal on its own tag, and I have screen macros that
load alternative configurations based on how I have my terminal split.
For example, if I only have one window in focus, Ctrl+(Shift)+Tab acts
like you would expect it to in a browser, but whenever I have vertical
and / or horizontal splits, my keybinds are automatically remapped so
that Ctrl+(Shift)+Tab cycles clockwise and counter clockwise through the
windows.

In lieu of using tabbed for other applications, I wrote a patch for dwm
that allows me to use Modkey+, and Modkey+. to cycle between windows in
similar groups based on the process name; if I have Firefox open then
press ModKey+., the active Firefox window will be swapped out with
another Firefox, Chrome or Opera window since I have them in the same
group:

    static const char *procgroups[] = {
        "firefox,chromium,chrome,opera,iceweasel", // Browsers
        "pidgin,pithos", // Space-wasters
        "soffice.bin,xpdf.real", // Document editing
    };

Eric
Received on Mon Feb 17 2014 - 22:10:38 CET

This archive was generated by hypermail 2.3.0 : Mon Feb 17 2014 - 22:12:05 CET