📄 00000007.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: reden (Offer 快快来啊 ~!), 信区: Linux <BR>标 题: Linux程式设计入门 - termios/keymap/terminal progr <BR>发信站: BBS 水木清华站 (Thu Apr 1 20:01:16 1999) <BR> <BR>Linux程式设计入门 - termios/keymap/terminal programming <BR> <BR> <BR> termios <BR> <BR> <BR> int tcgetattr (int fd, struct termios *termios_p); <BR> <BR> int tcsetattr (int fd, int optional_actions,const struct termios <BR> <BR> *termios_p); <BR> <BR> <BR> keymap <BR> <BR> <BR> 我写了一个小程式来专门处理Linux上的keymap,keymap.h及keymap.c。 <BR> <BR> <BR> 在Linux Terminal上,如果您想要设定某些按键返回特定值,您会需要用到以 <BR> <BR> 下这些技巧。 <BR> <BR> <BR> 设定keymap <BR> <BR> <BR> #include <linux/kd.h> <BR> <BR> #include <linux/keyboard.h> <BR> <BR> <BR> void setkeymap(void) <BR> <BR> { <BR> <BR> struct kbentry KEYMAP; <BR> <BR> KEYMAP.kb_table=STATE; <BR> <BR> KEYMAP.kb_index=SCANCODE; <BR> <BR> KEYMAP.kb_value=VALUE; <BR> <BR> ioctl(console,KDSKBENT,&KEYMAP); <BR> <BR> } <BR> <BR> <BR> STATE为状态键组合 <BR> <BR> /usr/include/linux/keyboard.h中 <BR> <BR> <BR> #define KG_SHIFT 0 <BR> <BR> #define KG_CTRL 2 <BR> <BR> #define KG_ALT 3 <BR> <BR> #define KG_ALTGR 1 <BR> <BR> #define KG_SHIFTL 4 <BR> <BR> #define KG_SHIFTR 5 <BR> <BR> #define KG_CTRLL 6 <BR> <BR> #define KG_CTRLR 7 <BR> <BR> #define KG_CAPSSHIFT 8 <BR> <BR> <BR> 使用方式如: <BR> <BR> #define KST_CTRL (1<<KG_CTRL) <BR> <BR> #define KST_ALT (1<<KG_ALT) <BR> <BR> #define KST_SHIFT (1<<KG_SHIFT) <BR> <BR> #define KST_CTRL_ALT (KST_CTRL|KST_ALT) <BR> <BR> #define KST_ALT_SHIFT (KST_ALT|KST_SHIFT) <BR> <BR> <BR> SCANCODE为键盘扫描码 <BR> <BR> <BR> #define SCAN_ESC 0x01 <BR> <BR> #define SCAN_1 0x02 <BR> <BR> #define SCAN_2 0x03 <BR> <BR> #define SCAN_3 0x04 <BR> <BR> #define SCAN_4 0x05 <BR> <BR> #define SCAN_5 0x06 <BR> <BR> #define SCAN_6 0x07 <BR> <BR> #define SCAN_7 0x08 <BR> <BR> #define SCAN_8 0x09 <BR> <BR> #define SCAN_9 0x0A <BR> <BR> #define SCAN_0 0x0B <BR> <BR> #define SCAN_MINUS 0x0C <BR> <BR> #define SCAN_PLUS 0x0D <BR> <BR> #define SCAN_BACK 0x0E <BR> <BR> #define SCAN_TAB 0x0F <BR> <BR> #define SCAN_Q 0x10 <BR> <BR> #define SCAN_W 0x11 <BR> <BR> #define SCAN_E 0x12 <BR> <BR> #define SCAN_R 0x13 <BR> <BR> #define SCAN_T 0x14 <BR> <BR> #define SCAN_Y 0x15 <BR> <BR> #define SCAN_U 0x16 <BR> <BR> #define SCAN_I 0x17 <BR> <BR> #define SCAN_O 0x18 <BR> <BR> #define SCAN_P 0x19 <BR> <BR> #define SCAN_LTQUOTE 0x1A <BR> <BR> #define SCAN_RTQUOTE 0x1B <BR> <BR> #define SCAN_ENTER 0x1C <BR> <BR> #define SCAN_CTRL 0x1D <BR> <BR> #define SCAN_A 0x1E <BR> <BR> #define SCAN_S 0x1F <BR> <BR> #define SCAN_D 0x20 <BR> <BR> #define SCAN_F 0x21 <BR> <BR> #define SCAN_G 0x22 <BR> <BR> #define SCAN_H 0x23 <BR> <BR> #define SCAN_J 0x24 <BR> <BR> #define SCAN_K 0x25 <BR> <BR> #define SCAN_L 0x26 <BR> <BR> #define SCAN_SPLIT 0x27 <BR> <BR> #define SCAN_QUOTE 0x28 <BR> <BR> #define SCAN_MARK 0x29 <BR> <BR> #define SCAN_LSHIFT 0x2A <BR> <BR> #define SCAN_STAND 0x2B <BR> <BR> #define SCAN_Z 0x2C <BR> <BR> #define SCAN_X 0x2D <BR> <BR> #define SCAN_C 0x2E <BR> <BR> #define SCAN_V 0x2F <BR> <BR> #define SCAN_B 0x30 <BR> <BR> #define SCAN_N 0x31 <BR> <BR> #define SCAN_M 0x32 <BR> <BR> #define SCAN_LSQUOTE 0x33 <BR> <BR> #define SCAN_RSQUOTE 0x34 <BR> <BR> #define SCAN_QUESTION 0x35 <BR> <BR> #define SCAN_RSHIFT 0x36 <BR> <BR> #define SCAN_PRTSCR 0x37 <BR> <BR> #define SCAN_ALT 0x38 <BR> <BR> #define SCAN_SPACE 0x39 <BR> <BR> #define SCAN_CAPSLOCK 0x3A <BR> <BR> #define SCAN_F1 0x3B <BR> <BR> #define SCAN_F2 0x3C <BR> <BR> #define SCAN_F3 0x3D <BR> <BR> #define SCAN_F4 0x3E <BR> <BR> #define SCAN_F5 0x3F <BR> <BR> #define SCAN_F6 0x40 <BR> <BR> #define SCAN_F7 0x41 <BR> <BR> #define SCAN_F8 0x42 <BR> <BR> #define SCAN_F9 0x43 <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -