MAJOR=5 MINOR=0 DEVNAME=tty DEVMODE=0666 : ˆl–ß=¿J•4Å6 ¸î61hßÄ „€Ûa–Ü4ý()¨‰P@Šë�;q—ÔÅ£Ã/ # # hypermap.map 1994/11/11 # Michael Shields # # A keymap redesigned for sanity. # # # This keymap is a ground-up reimplementation of the keyboard map, # intended to be consistent and rational. It uses an m4 metalanguage to # declare the key mappings. Usage is `m4 hypermap.map | loadkeys'. # # The modifier flags used are `shift' (1), `control' (4), and `alt' (8). # Left and right modifiers are not distinguished. # # In general, Meta is always distinguished, and M-S-KEY is distinct from # M-KEY. This is good news for Emacs users. C-S-KEY is consistently # folded into C-KEY. # # Shift is more loosely interpreted than the other modifiers; usually if # S-KEY has no special meaning, the action will be the same as KEY. # However, if M-KEY or H-KEY is undefined, nothing happens. # # Because Caps Lock's position is so out of proportion to its utility, # it's been totally redefined to a new sort of modifier, which I've # arbitrarily named `Hyper'. Shift is ignored with Hyper. Hyper # provides dead keys: # H-` dead accent grave # H-' dead acute accent # H-^ dead circumflex # H-t dead tilde # H-d dead diaeresis # and ISO-8859-1 symbols (some more mnemonic than others): # H-SPC nobreakspace # H-! inverted bang # H-h cents (`hundredths') # H-# pounds sterling # H-$ currency # H-y yen # H-| broken bar # H-s section (the galaxy symbol) # H-c copyright # H-a feminine ordinal # H-< left guillemot # H-] not sign (it's angular) # H-- soft hyphen # H-r registered trademark symbol # H-= macron # H-0 degrees # H-[ plus/minus (near + and -) # H-k superior 2 (jkl form a series) # H-l superior 3 # H-u mu # H-p pilcrow # H-: centered dot # H-j superior 1 # H-o masculine ordinal # H-> right guillemot # H-q 1/4 fraction (qwe form a series) # H-w 1/2 fraction # H-e 3/4 fraction # H-? inverted question mark # H-x multiplication symbol # H-% division symbol # You can also use Hyper plus Alt to type characters by decimal code on # the keypad, as with Alt alone, or in hex on the main keyboard. And # H-TAB is a Caps Lock. # # Function keys work as marked, unless with Alt, in which case they # switch to the console with the same number. Shift adds 12 and Hyper # adds 24 to the numbers (i.e., they logically switch to other banks). # Thus you can easily address up to 48. Control is ignored, for # consistency with X. # # Finally, you can change the behavior of the Caps Lock and Controls # with m4 command-line options. The default values are equivalent to # `-DCAPSLOCK_K=Hyper -DLEFTCTRL_K=Control -DRIGHTCTRL_K=Control'. You # can remove the Hyper code entirely with `-DCAPSLOCK_K=Caps_Lock'. # # This file is arranged vaguely by key position on the classic PC layout. # dnl Set default values. ifdef(`CAPSLOCK_K', , `define(`CAPSLOCK_K', `Hyper')') ifdef(`LEFTCTRL_K', , `define(`LEFTCTRL_K', `Control')') ifdef(`RIGHTCTRL_K', , `define(`RIGHTCTRL_K', `Control')') dnl Figure out if any key is a Hyper key. If so, define `hyper', both dnl for usefulness and `ifdef' testability. ifelse(CAPSLOCK_K, `Hyper', `define(`hyper', `ctrlr')', LEFTCTRL_K, `Hyper', `define(`hyper', `ctrlr')', RIGHTCTRL_K, `Hyper', `define(`hyper', `ctrlr')') define(`Hyper', `CtrlR') keymaps 0,1,4,5,8,9,12,13`'ifdef(`hyper', `,128,129,132,133,136,137,140,141') dnl General usage of these macros is MACRO(KEYCODE, UNSHIFTED, SHIFTED). dnl We first undefine `shift', which only causes problems. undefine(`shift') define(`SIMPLE', `keycode $1 = $2 $2') define(`KEY', ` keycode $1 = $2 VoidSymbol shift keycode $1 = $3 alt keycode $1 = Meta_$2 shift alt keycode $1 = Meta_$3') dnl This macro adds Control variations to a key. define(`CONTROL', ` control keycode $1 = $2 shift control keycode $1 = $2 control alt keycode $1 = Meta_$2 shift control alt keycode $1 = Meta_$2') dnl Add Hyper variations to a key. define(`HYPER', ifdef(`hyper', ` hyper keycode $1 = $2 shift hyper keycode $1 = $2')) define(`CONTROLHYPER', ifdef