Your mailer has mangled this patch, please send it as an attachment.

On Sat, Dec 20, 2014 at 06:02:22AM +0100, Daniel Hahler wrote:
> Hello,
> 
> urxvt/rxvt-unicode has a strange method of handling function keys.
> 
> It defines kf1=\E[11~ to kf20=\E[34~ in its terminfo, but only has a concept
> of 10 function keys (kf1 to kf10), and then uses kf11 to kf20 for the
> shifted variants.
> 
> For F11/F12 it sends the same code as for Shift-F1/F2.
> 
> I've used to use a hack, which makes URXvt behave like xterm, by
> defining all the special keybindings
> (http://www.netswarm.net/misc/urxvt-xtermcompat.txt), but that then also
> requires to set TERM to xterm-*, which has other drawbacks and felt too
> much of a hack.
> 
> I've tried to address this in tty-keys.c, without being sure what should
> get done about the conflicts (Shift-F1 vs. F11), but then it did not
> work properly with the "xterm-keys" option anyway, which probably uses the
> common concept of 12 function keys, too?!
> 
> I think it would be nice if F11/F12 could be ignored with rxvt-unicode
> by default.
> 
>     diff --git i/tty-keys.c w/tty-keys.c
>     index a987c44..60344d1 100644
>     --- i/tty-keys.c
>     +++ w/tty-keys.c
>     @@ -120,16 +120,19 @@ const struct tty_default_key_raw 
> tty_default_raw_keys[] = {
>             { "\033[6^", KEYC_NPAGE|KEYC_CTRL },
>             { "\033[5^", KEYC_PPAGE|KEYC_CTRL },
>      
>     -       { "\033[11$", KEYC_F1|KEYC_SHIFT },
>     -       { "\033[12$", KEYC_F2|KEYC_SHIFT },
>     -       { "\033[13$", KEYC_F3|KEYC_SHIFT },
>     -       { "\033[14$", KEYC_F4|KEYC_SHIFT },
>     -       { "\033[15$", KEYC_F5|KEYC_SHIFT },
>     -       { "\033[17$", KEYC_F6|KEYC_SHIFT },
>     -       { "\033[18$", KEYC_F7|KEYC_SHIFT },
>     -       { "\033[19$", KEYC_F8|KEYC_SHIFT },
>     -       { "\033[20$", KEYC_F9|KEYC_SHIFT },
>     -       { "\033[21$", KEYC_F10|KEYC_SHIFT },
>     +       /* rxvt-unicode only has 10 function keys.
>     +        * Shift-f1 to shift-f10 are kf11 to kf20 from terminfo.
>     +        * F11/F12 send the same code as Shift-F1/Shift-F12. */
>     +       { "\033[23~", KEYC_F1|KEYC_SHIFT },
>     +       { "\033[24~", KEYC_F2|KEYC_SHIFT },
>     +       { "\033[25~", KEYC_F3|KEYC_SHIFT },
>     +       { "\033[26~", KEYC_F4|KEYC_SHIFT },
>     +       { "\033[28~", KEYC_F5|KEYC_SHIFT },
>     +       { "\033[29~", KEYC_F6|KEYC_SHIFT },
>     +       { "\033[31~", KEYC_F7|KEYC_SHIFT },
>     +       { "\033[32~", KEYC_F8|KEYC_SHIFT },
>     +       { "\033[33~", KEYC_F9|KEYC_SHIFT },
>     +       { "\033[34~", KEYC_F10|KEYC_SHIFT },
>             { "\033[23$", KEYC_F11|KEYC_SHIFT },
>             { "\033[24$", KEYC_F12|KEYC_SHIFT },
>             { "\033[2$", KEYC_IC|KEYC_SHIFT },
>     @@ -139,16 +142,16 @@ const struct tty_default_key_raw 
> tty_default_raw_keys[] = {
>             { "\033[6$", KEYC_NPAGE|KEYC_SHIFT },
>             { "\033[5$", KEYC_PPAGE|KEYC_SHIFT },
>      
>     -       { "\033[11@", KEYC_F1|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[12@", KEYC_F2|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[13@", KEYC_F3|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[14@", KEYC_F4|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[15@", KEYC_F5|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[17@", KEYC_F6|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[18@", KEYC_F7|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[19@", KEYC_F8|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[20@", KEYC_F9|KEYC_CTRL|KEYC_SHIFT },
>     -       { "\033[21@", KEYC_F10|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[23^", KEYC_F1|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[24^", KEYC_F2|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[25^", KEYC_F3|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[26^", KEYC_F4|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[28^", KEYC_F5|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[29^", KEYC_F6|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[31^", KEYC_F7|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[32^", KEYC_F8|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[33^", KEYC_F9|KEYC_CTRL|KEYC_SHIFT },
>     +       { "\033[34^", KEYC_F10|KEYC_CTRL|KEYC_SHIFT },
>             { "\033[23@", KEYC_F11|KEYC_CTRL|KEYC_SHIFT },
>             { "\033[24@", KEYC_F12|KEYC_CTRL|KEYC_SHIFT },
>             { "\033[2@", KEYC_IC|KEYC_CTRL|KEYC_SHIFT },
> 
> This can probably also get addressed using terminal-overrides probably,
> and instead of changing the code, it could have a default for
> rxvt(-unicode) then.
> 
> 
> btw: the last commit changing code in this area was the following.
> I've not managed to trigger the `KEYC_F<X>|KEYC_SHIFT` cases therein.
> Is the code correct?
> Shouldn't it at least define all the shifted variants?
> 
>     commit 2056a9ef9e91996c294b5db0a3d01ed415e95e56
>     Author: nicm <nicm>
>     Date:   Mon Jul 21 10:25:48 2014 +0000
> 
>         Drop explicit support for F13-F20 and change to match the xterm 
> terminfo
>         entry:
>         
>                 F13-F24 are S-F1 to S-F12
>                 F25-F36 are C-F1 to C-F12
>                 F37-F48 are C-S-F1 to C-S-F12
>                 F49-F60 are M-F1 to M-F12
>         and     F61-F63 are M-S-F1 to M-S-F3
>         
>         This should be no difference for applications inside tmux, but means
>         that any key binding for F13 will need to be replaced by S-F1 and so 
> on.
> 
>     diff --git a/input-keys.c b/input-keys.c
>     index 24566df..c75e28d 100644
>     --- a/input-keys.c
>     +++ b/input-keys.c
>     @@ -57,14 +57,14 @@ const struct input_key_ent input_keys[] = {
>             { KEYC_F10,             "\033[21~",     0 },
>             { KEYC_F11,             "\033[23~",     0 },
>             { KEYC_F12,             "\033[24~",     0 },
>     -       { KEYC_F13,             "\033[25~",     0 },
>     -       { KEYC_F14,             "\033[26~",     0 },
>     -       { KEYC_F15,             "\033[28~",     0 },
>     -       { KEYC_F16,             "\033[29~",     0 },
>     -       { KEYC_F17,             "\033[31~",     0 },
>     -       { KEYC_F18,             "\033[32~",     0 },
>     -       { KEYC_F19,             "\033[33~",     0 },
>     -       { KEYC_F20,             "\033[34~",     0 },
>     +       { KEYC_F1|KEYC_SHIFT,   "\033[25~",     0 },
>     +       { KEYC_F2|KEYC_SHIFT,   "\033[26~",     0 },
>     +       { KEYC_F3|KEYC_SHIFT,   "\033[28~",     0 },
>     +       { KEYC_F4|KEYC_SHIFT,   "\033[29~",     0 },
>     +       { KEYC_F5|KEYC_SHIFT,   "\033[31~",     0 },
>     +       { KEYC_F6|KEYC_SHIFT,   "\033[32~",     0 },
>     +       { KEYC_F7|KEYC_SHIFT,   "\033[33~",     0 },
>     +       { KEYC_F8|KEYC_SHIFT,   "\033[34~",     0 },
>             { KEYC_IC,              "\033[2~",      0 },
>             { KEYC_DC,              "\033[3~",      0 },
> 
> 
> Thanks,
> Daniel.
> 
> -- 
> http://daniel.hahler.de/
> 
> 
> 
> 
> 
> 
> 



> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk

> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to