Package: rxvt-unicode
Version: 9.02-1
Severity: normal

rxvt's sequences for modifed function keys are non-standard,
non-extensible, and break ECMA-48.

Such key as <Del> is encoded CSI 3 ~. This is fine. This is the
accepted "private" CSI for function keys, with P1 = 3 to mean "Delete".

<Ctrl-Del> and <Shift-Ctrl-Del> are encoded respectively as CSI 3 ^ and
CSI 3 @. The latter, CSI @, is the CSI used for "Insert Character" where
Pn gives a count. CSI ^ is given in ECMA-48 as "SIMD - Select Implicit
Movement Direction", and controls the implicit direction of cursor
movement during normal printing; Ps=0 for LTR or Ps=1 for RTL.

The sequence for <Shift-Del> is CSI 3 $ which is an invalid CSI sequence
on its own - the dollar sign, ASCII 0x24, indicates an "intermediate byte".
The CSI continues until the first byte in the range 0x40-0x7f. rxvt
fails to provide one.

This scheme of seemingly-randomly chosen "variants" of CSI is also hard
to extend - how do you encode Alt/Meta/Super/Hyper.

Instead, I would suggest to use the scheme that other terminals are
using to do this; which is to use the second CSI positional argument to
encode the modifier state. Give the modifiers each a bitmask - Shift 1,
Alt 2, Control 4, and so on, and use this bitmask + 1 as the P2
parameter. (The 1 is added so that the default state of no modifiers
retains the "default" value of 1).

  <Del>                  CSI 3;1~
  <Shift-Del>            CSI 3;2~
  <Alt-Del>              CSI 3;3~
  <Shift-Alt-Del>        CSI 3;4~
  <Ctrl-Del>             CSI 3;5~
  <Shift-Ctrl-Del>       CSI 3;6~
  <Alt-Ctrl-Del>         CSI 3;7~    (If you can type this without
                                     rebooting ;) 
  <Shift-Alt-Ctrl-Del>   CSI 3;8~

This can be easily extended in general, without regard to how to extend
a parser.

xterm has used this scheme for many years; other terminals
(xfce4-terminal and gnome-terminal, being based on libvte) are adapting
it. Applications are gaining support for it - three I can name offhand
being tinyfugue, vim and irssi, all having native understanding of this
modifier notation.

It applies generically - anything CSI-encoded can be given these
modifiers. For example, the arrow keys

  <Up>                   CSI 1;1A
  <Shift-Up>             CSI 1;3A
  <Alt-Up>               CSI 1;4A
  ...

If rxvt adopted this scheme instead of its own custom format, then
applications would be able to cope with generic modified function keys
much easier.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24.2.nim
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages rxvt-unicode depends on:
ii  base-passwd            3.5.17            Debian base system master password
ii  libafterimage0         2.2.7-2           imaging library designed for After
ii  libc6                  2.7-6             GNU C Library: Shared libraries
ii  libfontconfig1         2.5.0-2           generic font configuration library
ii  libfreetype6           2.3.5-1+b1        FreeType 2 font engine, shared lib
ii  libgcc1                1:4.3-20080202-1  GCC support library
ii  libglib2.0-0           2.14.6-1          The GLib library of C routines
ii  libgtk2.0-0            2.12.5-2          The GTK+ graphical user interface 
ii  libice6                2:1.0.4-1         X11 Inter-Client Exchange library
ii  libjpeg62              6b-14             The Independent JPEG Group's JPEG 
ii  libperl5.8             5.8.8-12          Shared Perl library
ii  libpng12-0             1.2.15~beta5-3    PNG library - runtime
ii  librsvg2-2             2.20.0-1          SAX-based renderer library for SVG
ii  libsm6                 2:1.0.3-1+b1      X11 Session Management library
ii  libtiff4               3.8.2-7           Tag Image File Format (TIFF) libra
ii  libungif4g             4.1.6-3           library for GIF images (transition
ii  libx11-6               2:1.0.3-7         X11 client-side library
ii  libxext6               1:1.0.3-2         X11 miscellaneous extension librar
ii  libxft2                2.1.12-2          FreeType-based font drawing librar
ii  libxrender1            1:0.9.4-1         X Rendering Extension client libra
ii  ncurses-base           5.6+20080203-1    Descriptions of common terminal ty
ii  zlib1g                 1:1.2.3.3.dfsg-11 compression library - runtime

rxvt-unicode recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to