release 1.14pre1
[descalc.git] / termcommon.pm
1 # key bindings for DCT, by Shiar
2
3 #                     - function keys moved back here
4 #                     - module not auto loaded by dct, but by specific display modules
5 # 1.09.3 200410142200 - enter sent as chr 10 on non-curses terminals
6 # 1.09.2 200410120145 - alt+backspace and ^W for (hard) drop
7 # 1.09.1 200410112145 - function keys moved to menu.pm
8 # 1.08.2 200409270049 - single key alias to chs: \ (often close to _)
9 # 1.08.1 200409270040 - moved from 1.8 main
10
11 use strict;
12 use warnings;
13
14 %alias = (
15         chr 4              => "quit",    # ^D
16         chr 9              => "more",    # tab
17         "\014"             => "refresh", # ^L
18 #       "\033\133\110"     => "refresh", # home
19         "\033\133\062\176" => "eex",     # ins
20         "\033\133\063\176" => "clear",   # del
21             "\177"         => "back",    # backspace
22             "\010"         => "back",    # backspace
23         "\033\010"         => "drop",    # alt+backspace
24         "\033\177"         => "drop",    # alt+backspace
25             "\027"         => "drop",    # ^W
26         chr 10             => "enter",   # enter (terminal)
27         chr 13             => "enter",   # enter (curses)
28         ' '                => "enter",   # space
29         "\033\133\101"     => "stack",   # up    - 48: k (stack)
30         "\033\133\104"     => "undo",    # left  - 48: p (picture)
31 #       "\033\133\102"     => '',        # down  - 48: q (view)
32         "\033\133\103"     => "swap",    # right - 48: r (swap)
33
34             '='            => "sto",     #
35             '_'            => "chs",     # easy to remember, difficult to type
36             '\\'           => "chs",     # single key
37 #           'y'            => "chs",     # redundant hp48 compatibility
38 #           'z'            => "eex",     # redundant hp48 compatibility
39
40             '&'            => "and",
41             '|'            => "or",
42             '#'            => "xor",
43             '~'            => "not",
44             '('            => "sl",
45             ')'            => "sr",
46
47             "s"            => "sin",
48         "\033s"            => "asin",
49             "o"            => "cos", # or u?
50         "\033o"            => "acos",
51             "t"            => "tan",
52         "\033t"            => "atan",
53             "l"            => "log",
54         "\033l"            => "alog",
55             "n"            => "ln",
56         "\033n"            => "exp",
57             "q"            => "sq",
58         "\033q"            => "sqrt",
59             "x"            => "^",
60         "\033x"            => "xroot",
61         "\033^"            => "xroot",   # for consistency
62             "v"            => "inv",
63 ); # %alias
64
65 %falias = (
66         "\033"                         =>  0, # esc
67         "\033\117\120"                 =>  1, # f1
68         "\033\133\061\061\176"         =>  1, # f1
69         "\033\133\061\062\176"         =>  2, # f2
70         "\033\133\061\063\176"         =>  3, # f3
71         "\033\133\061\064\176"         =>  4, # f4
72         "\033\117\121"                 =>  2, # f2
73         "\033\117\122"                 =>  3, # f3
74         "\033\117\123"                 =>  4, # f4
75         "\033\133\061\065\176"         =>  5, # f5
76         "\033\133\061\067\176"         =>  6, # f6
77         "\033\133\061\070\176"         =>  7, # f7
78         "\033\133\061\071\176"         =>  8, # f8
79         "\033\133\062\060\176"         =>  9, # f9
80         "\033\133\062\061\176"         => 10, # f10
81         "\033\133\062\063\176"         => 11, # f11/F1
82         "\033\133\062\064\176"         => 12, # f12/F2
83         "\033\133\062\065\176"         => 13, # F3
84         "\033\133\062\066\176"         => 14, # F4
85         "\033\133\062\070\176"         => 15, # F5
86         "\033\133\062\071\176"         => 16, # F6
87         "\033\133\063\061\176"         => 17, # F7
88         "\033\133\063\062\176"         => 18, # F8
89         "\033\133\063\063\176"         => 19, # F9
90         "\033\133\063\064\176"         => 20, # F10
91         "\033\133\062\063\073\062\176" => 21, # F11
92         "\033\133\062\064\073\062\176" => 22, # F12
93         "\033\061"                     =>  1, # alt+1
94         "\033\062"                     =>  2, # alt+2
95         "\033\063"                     =>  3, # alt+3
96         "\033\064"                     =>  4, # alt+4
97         "\033\065"                     =>  5, # alt+5
98         "\033\066"                     =>  6, # alt+6
99         "\033\067"                     =>  7, # alt+7
100         "\033\070"                     =>  8, # alt+8
101         "\033\071"                     =>  9, # alt+9
102         "\033\060"                     => 10, # alt+0
103 ); # %falias
104
105 1;
106