⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 us_qwerty_scalable_clean6.kbs

📁 The major functionality added in this release includes: - Rootless mode in X11 - Widget Templt
💻 KBS
字号:
## Keyboard source for the US 'qwerty' layout. This is a fairly generic# keyboard that should work at any screen resolution. It draws the keyboard# with vector graphics, using gropnode coordinate mapping to have the server# scale the keyboard to fit the screen## This keyboard works nicely at 320x240 and 240x320. It is a little tight# but still fully usable at 160x240. At 160x160 is is quite mushed and probably# not very fun to use.## Keyboard source is in the form of a perl script that uses functions# built into kbcompile.pl to generate the keyboard data.## This code is released into the public domain. Feel free to use it in whole# or in part for your own keyboard layouts.## -- Micah Dowty <micahjd@users.sourceforge.net>#$option{'side'} = PG_S_BOTTOM;$option{'size'} = 25;$option{'sizemode'} = PG_SZMODE_PERCENT;$option{'path'} = './img/';####################################### Subroutinessub initpattern {    newpattern;    clear;    setmapping(0,0,$width = 50,4,PG_MAP_SCALE);    setcolor(0xFFFFFF);    rect(0,0,$width,4);    setcolor(0);    font("Clean", 6, PG_FSTYLE_FIXED);    frame(0,0,$width,4);        $defaultpat = $defaultmods = 0;}sub keyrow {    ($num,$start,$end) = @_;    slab(0,$num,$width);    drawkey(0,$num,$start,$grid[$j++]);    for ($i=$start;$i<=$end;$i+=4) {	bar($i,$num,1);	drawkey($i,$num,4,$grid[$j++]);    }    bar($i,$num,1);    drawkey($i,$num,$width-$end,$grid[$j++]);}sub addkey {    my ($pos, $width, $height) = @_;    drawkey ($pos, $height, $width, $grid [$j++]);    $pos += $width;    bar ($pos, $height, 1);    return $pos;}sub drawgrid {    $j = 0;    @grid = @_;        keyrow(0,6,42);    keyrow(1,7,43);    keyrow(2,9,41);    # Spacebar messes up the last row    slab(0,3,$width);    $pos = 0;    $pos = addkey ($pos, 6, 3);    $pos = addkey ($pos, 4, 3);    $pos = addkey ($pos, 4, 3);    $pos = addkey ($pos, 13, 3);    $pos = addkey ($pos, 5, 3);    $pos = addkey ($pos, 5, 3);    $pos = addkey ($pos, 5, 3);    $pos = addkey ($pos, 8, 3);#    drawkey(0,3,6,$grid[$j++]);#    bar(6,3,1);#    drawkey(6,3,4,$grid[$j++]);#    bar(10,3,1);#    drawkey(10,3,4,$grid[$j++]);#    bar(14,3,1);#    drawkey(14,3,20,$grid[$j++]);#    bar(34,3,1);#    drawkey(34,3,4,$grid[$j++]);#    bar(38,3,1);#    drawkey(38,3,4,$grid[$j++]);#    bar(42,3,1);#    drawkey(42,3,4,$grid[$j++]);#    bar(46,3,1);#    drawkey(46,3,4,$grid[$j++]);}sub drawkey {    my ($x,$y,$w,$keycode,$h) = @_;        ($name,$key,$pgkey,$mods,$pat) = split /:/,$keycode;    $name =~ s/colon/:/;    $key =~ s/colon/:/;    $key = chr(substr($key,1)) if (length($key) > 1 && $key=~/^#/);    $mods = $defaultmods if (!defined $mods);    $mods = eval($mods);    $pat = $defaultpat if (!defined $pat);    $h = 1 if (!defined $h);    if (defined $name && $name ne "") {	text($x,$y,$name);    }    hotspot($x,$y,$w,$h,0,ord($key),$pgkey,$mods,$pat);}    ####################################### Main pattern (1)initpattern;drawgrid("->|:\t:PGKEY_TAB",	 "q:q:PGKEY_q",	 "w:w:PGKEY_w",	 "e:e:PGKEY_e",	 "r:r:PGKEY_r",	 "t:t:PGKEY_t",	 "y:y:PGKEY_y",	 "u:u:PGKEY_u",	 "i:i:PGKEY_i",	 "o:o:PGKEY_o",	 "p:p:PGKEY_p",	 "-:-:PGKEY_MINUS",#	 "del:\b:PGKEY_BACKSPACE",	 "cap::::3",	 "a:a:PGKEY_a",	 "s:s:PGKEY_s",	 "d:d:PGKEY_d",	 "f:f:PGKEY_f",	 "g:g:PGKEY_g",	 "h:h:PGKEY_h",	 "j:j:PGKEY_j",	 "k:k:PGKEY_k",	 "l:l:PGKEY_l",	 ";:;:PGKEY_SEMICOLON",	 "':':PGKEY_QUOTE",#	 "ret:\r:PGKEY_RETURN",	 "shf::::2",	 "z:z:PGKEY_z",	 "x:x:PGKEY_x",	 "c:c:PGKEY_c",	 "v:v:PGKEY_v",	 "b:b:PGKEY_b",	 "n:n:PGKEY_n",	 "m:m:PGKEY_m",	 " ,:,:PGKEY_COMMA",	 " .:.:PGKEY_PERIOD",	 "/:/:PGKEY_SLASH",#	 "shf::::2",	 "ctl::::4",	 "#::::5",	 "\@::::6",	 ": :PGKEY_SPACE",#	 "/\\::PGKEY_UP",#	 "\\/::PGKEY_DOWN",	 "<-::PGKEY_LEFT",	 "->::PGKEY_RIGHT",	 "<x|:\b:PGKEY_BACKSPACE",	 "ret:\r:PGKEY_RETURN");####################################### Shift pattern (2)initpattern;# Jump back to the normal pattern after a keypress$defaultpat = 1;# Shift modifier, of course$defaultmods = PGMOD_SHIFT;drawgrid(" ->|:\t:PGKEY_TAB",	 " Q:Q:PGKEY_q",	 " W:W:PGKEY_w",	 " E:E:PGKEY_e",	 " R:R:PGKEY_r",	 " T:T:PGKEY_t",	 " Y:Y:PGKEY_y",	 " U:U:PGKEY_u",	 " I:I:PGKEY_i",	 " O:O:PGKEY_o",	 " P:P:PGKEY_p",	 " _:_:PGKEY_UNDERSCORE",#	 "del:\b:PGKEY_BACKSPACE",	 " cap::::3",	 " A:A:PGKEY_a",	 " S:S:PGKEY_s",	 " D:D:PGKEY_d",	 " F:F:PGKEY_f",	 " G:G:PGKEY_g",	 " H:H:PGKEY_h",	 " J:J:PGKEY_j",	 " K:K:PGKEY_k",	 " L:L:PGKEY_l",	 " colon:colon:PGKEY_COLON",	 " \":\":PGKEY_QUOTEDBL",#	 "ret:\r:PGKEY_RETURN",	 "  shf",	 " Z:Z:PGKEY_z",	 " X:X:PGKEY_x",	 " C:C:PGKEY_c",	 " V:V:PGKEY_v",	 " B:B:PGKEY_b",	 " N:N:PGKEY_n",	 " M:M:PGKEY_m",	 " <:<:PGKEY_LESS",	 " >:>:PGKEY_GREATER",	 "  ?:?:PGKEY_QUESTION",#	 "shf",	 " ctl::::4",	 " #::::5",	 "\@::::6",	 ": :PGKEY_SPACE",#	 "/\\::PGKEY_UP",#	 "\\/::PGKEY_DOWN",	 " <-::PGKEY_LEFT",	 " ->::PGKEY_RIGHT",	 "<x|:\b:PGKEY_BACKSPACE",	 "  ret:\r:PGKEY_RETURN");# Show the shift keys as invertedsetlgop(PG_LGOP_XOR);setcolor(0xFFFFFF);rect(0,2,9,1);#rect($width-9,2,9,1);####################################### Capslock pattern (3)initpattern;# Shift modifier, of course$defaultmods = PGMOD_SHIFT;drawgrid(" ->|:\t:PGKEY_TAB",	 " Q:Q:PGKEY_q",	 " W:W:PGKEY_w",	 " E:E:PGKEY_e",	 " R:R:PGKEY_r",	 " T:T:PGKEY_t",	 " Y:Y:PGKEY_y",	 " U:U:PGKEY_u",	 " I:I:PGKEY_i",	 " O:O:PGKEY_o",	 " P:P:PGKEY_p",	 " -:-:PGKEY_MINUS",#	 "del:\b:PGKEY_BACKSPACE",	 " cap::::1",	 " A:A:PGKEY_a",	 " S:S:PGKEY_s",	 " D:D:PGKEY_d",	 " F:F:PGKEY_f",	 " G:G:PGKEY_g",	 " H:H:PGKEY_h",	 " J:J:PGKEY_j",	 " K:K:PGKEY_k",	 " L:L:PGKEY_l",	 " ;:;:PGKEY_SEMICOLON",	 " ':':PGKEY_QUOTE",#	 "ret:\r:PGKEY_RETURN",	 "  shf::::1",	 " Z:Z:PGKEY_z",	 " X:X:PGKEY_x",	 " C:C:PGKEY_c",	 " V:V:PGKEY_v",	 " B:B:PGKEY_b",	 " N:N:PGKEY_n",	 " M:M:PGKEY_m",	 " ,:,:PGKEY_COMMA",	 " .:.:PGKEY_PERIOD",	 "  /:/:PGKEY_SLASH",#	 "shf::::1",	 " ctl::::4",	 " #::::5",	 "\@::::6",	 ": :PGKEY_SPACE",#	 "/\\::PGKEY_UP",#	 "\\/::PGKEY_DOWN",	 " <-::PGKEY_LEFT",	 " ->::PGKEY_RIGHT",	 "<x|:\b:PGKEY_BACKSPACE",	 "  ret:\r:PGKEY_RETURN");# Show the caps lock as invertedsetlgop(PG_LGOP_XOR);setcolor(0xFFFFFF);rect(0,1,7,1);####################################### Control pattern (4)initpattern;$defaultpat = 1;$defaultmods = PGMOD_CTRL;drawgrid(" ->|:\t:PGKEY_TAB",	 "^q:#17:PGKEY_q",	 "^w:#23:PGKEY_w",	 "^e:#5:PGKEY_e",	 "^r:#18:PGKEY_r",	 "^t:#20:PGKEY_t",	 "^y:#25:PGKEY_y",	 "^u:#21:PGKEY_u",	 "^i:#9:PGKEY_i",	 "^o:#15:PGKEY_o",	 "^p:#16:PGKEY_p",	 " -:-:PGKEY_MINUS",#	 "del:\b:PGKEY_BACKSPACE",	 " cap::::3",	 "^a:#1:PGKEY_a",	 "^s:#19:PGKEY_s",	 "^d:#4:PGKEY_d",	 "^f:#6:PGKEY_f",	 "^g:#7:PGKEY_g",	 "^h:#8:PGKEY_h",	 "^j:#10:PGKEY_j",	 "^k:#11:PGKEY_k",	 "^l:#12:PGKEY_l",	 " ;:;:PGKEY_SEMICOLON",	 " ':':PGKEY_QUOTE",#	 "ret:\r:PGKEY_RETURN",	 "  shf::::2",	 "^z:#26:PGKEY_z",	 "^x:#24:PGKEY_x",	 "^c:#3:PGKEY_c",	 "^v:#22:PGKEY_v",	 "^b:#2:PGKEY_b",	 "^n:#14:PGKEY_n",	 "^m:#13:PGKEY_m",# To send a CTRL-ALT-m#	 "^m:#13:PGKEY_m:PGMOD_CTRL | PGMOD_ALT",	 " ,:,:PGKEY_COMMA",	 " .:.:PGKEY_PERIOD",	 "  /:/:PGKEY_SLASH",#	 "shf::::2",	 " ctl",	 " #::::5",	 "\@::::6",	 ": :PGKEY_SPACE",#	 "/\\::PGKEY_UP",#	 "\\/::PGKEY_DOWN",	 " <-::PGKEY_LEFT",	 " ->::PGKEY_RIGHT",	 "<x|:\b:PGKEY_BACKSPACE",	 "  ret:\r:PGKEY_RETURN");# Show the ctrl as invertedsetlgop(PG_LGOP_XOR);setcolor(0xFFFFFF);rect(0,3,6,1);####################################### Numbers pattern (5)initpattern;# Control keysbar(6,0,4);slab(0,1,6);slab(0,2,6);slab(0,3,6);drawkey(0,0,6," ins::PGKEY_INSERT");drawkey(0,1,6," ->|:\t:PGKEY_TAB");drawkey(0,2,6," <x|:\b:PGKEY_BACKSPACE");#drawkey(0,3,7," ret:\r:PGKEY_KP_ENTER");drawkey(0,3,6," abc::::1");setcolor (0x0);# Number gridbar(6,0,4);bar(12,0,3);bar(18,0,4);bar(24,0,4);slab(6,1,18);slab(6,2,18);slab(6,3,18);drawkey(6,0,6,"  7:7:PGKEY_KP7");drawkey(12,0,6,"  8:8:PGKEY_KP8");drawkey(18,0,6,"  9:9:PGKEY_KP9");drawkey(6,1,6,"  4:4:PGKEY_KP4");drawkey(12,1,6,"  5:5:PGKEY_KP5");drawkey(18,1,6,"  6:6:PGKEY_KP6");drawkey(6,2,6,"  1:1:PGKEY_KP1");drawkey(12,2,6,"  2:2:PGKEY_KP2");drawkey(18,2,6,"  3:3:PGKEY_KP3");drawkey(6,3,12,"  0:0:PGKEY_KP0");drawkey(18,3,6,"  .:.:PGKEY_KP_PERIOD");# Arithmetic keysbar(27,0,4);bar(31,0,4);bar(35,0,4);slab(27,1,8);slab(27,2,8);slab(27,3,8);drawkey(27,0,4," +:+:PGKEY_KP_PLUS");drawkey(27,1,4," -:-:PGKEY_KP_MINUS");drawkey(27,2,4," colon:colon:PGKEY_COLON");drawkey(27,3,4," =:=:PGKEY_KP_EQUALS");drawkey(31,0,4," *:*:PGKEY_KP_MULTIPLY");drawkey(31,1,4," /:/:PGKEY_KP_DIVIDE");drawkey(31,2,4," ^:^:PGKEY_6:PGMOD_SHIFT");drawkey(31,3,4," %:%:PGKEY_5:PGMOD_SHIFT");# Hex keysbar (35, 0, 4);bar (40, 0, 4);bar (45, 0, 4);slab (35, 1, 15);slab (35, 2, 15);drawkey(35,0,5," a:a:PGKEY_a:PGMOD_SHIFT");drawkey(40,0,5," b:b:PGKEY_b:PGMOD_SHIFT");drawkey(45,0,5," c:c:PGKEY_c:PGMOD_SHIFT");drawkey(35,1,5," d:d:PGKEY_d:PGMOD_SHIFT");drawkey(40,1,5," e:e:PGKEY_e:PGMOD_SHIFT");drawkey(45,1,5," f:f:PGKEY_f:PGMOD_SHIFT");# Navigation gridslab (35, 3, 15);drawkey(35,2,5," pu::PGKEY_PAGEUP");drawkey(40,2,5," /\\::PGKEY_UP");drawkey(45,2,5," pd::PGKEY_PAGEDOWN");drawkey(35,3,5," <-::PGKEY_LEFT");drawkey(40,3,5," \\/::PGKEY_DOWN");drawkey(45,3,5," ->::PGKEY_RIGHT");#bar (46, 0, 4);#slab (46, 1, 4);#slab (46, 2, 4);#slab (46, 3, 4);#drawkey(46,0,4," h::PGKEY_HOME");#drawkey(46,1,4," pu::PGKEY_PAGEUP");#drawkey(46,2,4," pd::PGKEY_PAGEDOWN");#drawkey(46,3,4," e::PGKEY_END");####################################### Symbols pattern (6)initpattern;$defaultpat = 1;drawgrid(" esc:\e:PGKEY_ESCAPE",	 " 1:1:PGKEY_1",	 " 2:2:PGKEY_2",	 " 3:3:PGKEY_3",	 " 4:4:PGKEY_4",	 " 5:5:PGKEY_5",	 " 6:6:PGKEY_6",	 " 7:7:PGKEY_7",	 " 8:8:PGKEY_8",	 " 9:9:PGKEY_9",	 " 0:0:PGKEY_0",	 " |:|:124",#	 "\\:\\:PGKEY_BACKSLASH",	 "  ~:~:126",	 " !:!:PGKEY_1:PGMOD_SHIFT",	 "\@:\@:PGKEY_2:PGMOD_SHIFT",	 " #:#:PGKEY_3:PGMOD_SHIFT",	 " \$:\$:PGKEY_4:PGMOD_SHIFT",	 " %:%:PGKEY_5:PGMOD_SHIFT",	 " ^:^:PGKEY_6:PGMOD_SHIFT",	 " &:&:PGKEY_7:PGMOD_SHIFT",	 " *:*:PGKEY_8:PGMOD_SHIFT",	 " (:(:PGKEY_9:PGMOD_SHIFT",	 " ):):PGKEY_0:PGMOD_SHIFT",	 " `:`:PGKEY_BACKQUOTE",#	 "ret:\r:PGKEY_RETURN",	 "  shf::::2",	 " {:{:123",	 " }:}:125",	 " [:[:PGKEY_LEFTBRACKET",	 " ]:]:PGKEY_RIGHTBRACKET",	 " +:+:PGKEY_PLUS",	 " =:=:PGKEY_EQUALS",	 " ?:?:PGKEY_QUESTION",	 " ,:,:PGKEY_COMMA",	 " .:.:PGKEY_PERIOD",#	 "/:/:PGKEY_SLASH",	 "  \\:\\:PGKEY_BACKSLASH",#	 "shf::::2",	 " ctl::::4",	 " #::::5",	 "\@",	 ": :PGKEY_SPACE",#	 "/\\::PGKEY_UP",#	 "\\/::PGKEY_DOWN",	 " <-::PGKEY_LEFT",	 " ->::PGKEY_RIGHT",	 "<x|:\b:PGKEY_BACKSPACE",	 "  ret:\r:PGKEY_RETURN");# Show the symbol button as invertedsetlgop(PG_LGOP_XOR);setcolor(0xFFFFFF);rect(10,3,4,1);### The End ###

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -