fookb: Add version 3.1 to repository.
From https://web.archive.org/web/20140622071149/http://only.mawhrin.net/~alexey/fookb/fookb-3.1.tar.gz
This commit is contained in:
parent
1891366919
commit
c3e92fef4c
148
fookb/1.xpm
Normal file
148
fookb/1.xpm
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 94 2",
|
||||||
|
" c #070606",
|
||||||
|
". c #0c0b0b",
|
||||||
|
"X c #100f0f",
|
||||||
|
"o c Gray9",
|
||||||
|
"O c #1f1d1d",
|
||||||
|
"+ c #211f1f",
|
||||||
|
"@ c #242323",
|
||||||
|
"# c #2b2929",
|
||||||
|
"$ c #343232",
|
||||||
|
"% c #3f3d3d",
|
||||||
|
"& c #1c1074",
|
||||||
|
"* c #3c3656",
|
||||||
|
"= c #413f3f",
|
||||||
|
"- c #464444",
|
||||||
|
"; c #4a4747",
|
||||||
|
": c #4f4c4c",
|
||||||
|
"> c #575454",
|
||||||
|
", c #5f5b5b",
|
||||||
|
"< c #615e5e",
|
||||||
|
"1 c #666363",
|
||||||
|
"2 c #6b6767",
|
||||||
|
"3 c #6f6b6b",
|
||||||
|
"4 c #726e6e",
|
||||||
|
"5 c #726d7d",
|
||||||
|
"6 c #777373",
|
||||||
|
"7 c #7b7777",
|
||||||
|
"8 c #7e7a7a",
|
||||||
|
"9 c #1500b8",
|
||||||
|
"0 c #302295",
|
||||||
|
"q c #1d05d1",
|
||||||
|
"w c #1900db",
|
||||||
|
"e c #1d00fc",
|
||||||
|
"r c #240cd7",
|
||||||
|
"t c #2308f3",
|
||||||
|
"y c #2a0ef9",
|
||||||
|
"u c #2c10fc",
|
||||||
|
"i c #3a20fb",
|
||||||
|
"p c #4329fb",
|
||||||
|
"a c #482ffb",
|
||||||
|
"s c #5a4da1",
|
||||||
|
"d c #5a42fa",
|
||||||
|
"f c #6852fa",
|
||||||
|
"g c #745ff6",
|
||||||
|
"h c #7762f9",
|
||||||
|
"j c #837e7e",
|
||||||
|
"k c #fc0000",
|
||||||
|
"l c #fc1010",
|
||||||
|
"z c #fc2f2f",
|
||||||
|
"x c #fd4242",
|
||||||
|
"c c #fd6262",
|
||||||
|
"v c #fd7171",
|
||||||
|
"b c #8571f9",
|
||||||
|
"n c #868282",
|
||||||
|
"m c #8c8787",
|
||||||
|
"M c #8f8a8a",
|
||||||
|
"N c #948f8f",
|
||||||
|
"B c #979292",
|
||||||
|
"V c #9b9595",
|
||||||
|
"C c #9f9a9a",
|
||||||
|
"Z c #a59f9f",
|
||||||
|
"A c #a7a1a1",
|
||||||
|
"S c #aaa4a4",
|
||||||
|
"D c #aea8a8",
|
||||||
|
"F c #b5aeae",
|
||||||
|
"G c #beb7b7",
|
||||||
|
"H c #9080e4",
|
||||||
|
"J c #9785f8",
|
||||||
|
"K c #9d8bf8",
|
||||||
|
"L c #a493f7",
|
||||||
|
"P c #a594f8",
|
||||||
|
"I c #aa9af8",
|
||||||
|
"U c #b3a3f7",
|
||||||
|
"Y c #c6bfbf",
|
||||||
|
"T c #fd8585",
|
||||||
|
"R c #fd9494",
|
||||||
|
"E c #fdb4b4",
|
||||||
|
"W c #c2b4f7",
|
||||||
|
"Q c #c0c0c0",
|
||||||
|
"! c #cec7c7",
|
||||||
|
"~ c #d7cfcf",
|
||||||
|
"^ c #dfd7d7",
|
||||||
|
"/ c #d4c7f6",
|
||||||
|
"( c #e7dede",
|
||||||
|
") c #fec7c7",
|
||||||
|
"_ c #e2d6f6",
|
||||||
|
"` c #eee6e6",
|
||||||
|
"' c #efe5f5",
|
||||||
|
"] c #f7efef",
|
||||||
|
"[ c #fee6e6",
|
||||||
|
"{ c #f8efef",
|
||||||
|
"} c #f0e6f5",
|
||||||
|
"| c #fef5f5",
|
||||||
|
" . c Gray100",
|
||||||
|
".. c None",
|
||||||
|
/* pixels */
|
||||||
|
"S Y ~ ^ ( ` ] ] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | | . . . .] ( ",
|
||||||
|
"N A G ..^ ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .^ ! ",
|
||||||
|
"7 N Z F G Y ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ^ ( ( ! Y G ",
|
||||||
|
"2 8 N C A F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G F F G F D ",
|
||||||
|
", 3 j M ! ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ~ Z S Z Z ",
|
||||||
|
": 1 6 N ^ ` ] { ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ` ( A C C V ",
|
||||||
|
": < 4 N ^ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] ( A V V B ",
|
||||||
|
": , 3 N ^ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] ( Z B B B ",
|
||||||
|
": , 3 M ( ] | | | | | | | | | | | | | | | | | [ R x k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | E T c z k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 N ^ ] | | | | | | | | | | | | | k k k k k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | k k k k k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ( ] | | | | | | | | | | | | | T T T c k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z N V N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 N ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ( ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z N V N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 N ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z N V N ",
|
||||||
|
": , 2 N ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ( ] | | | | | | | | | | | | | | | | E k k k k T | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | R k k k k v | | | | | | | | | | | | | | ] ( Z N V N ",
|
||||||
|
": , 3 N ^ ] | | | | | | | | | | | | | x x x l k k k k k z x x ) | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | k k k k k k k k k k k k E | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ( ] | | | | | | | | | | | | | k k k k k k k k k k k k E | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] ( Z N V N ",
|
||||||
|
": , 3 M ^ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] ( Z B B N ",
|
||||||
|
": , 3 N ^ ] | | | | | | / f e / | | | | | | | | | | | | | p h | | | | | | J u | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | | | W u d P | | | | | | | | | | | | | P e U | | | | | ' u h | | | ] ( Z B B N ",
|
||||||
|
": , 3 M ( ] | | | | _ u h | | | | | | | | | | | | | | | a i | | | | | | h e W | | | ] ( Z N V N ",
|
||||||
|
": , 3 M ^ ] | | | | h u } | | | | | | | | | | | | | | / e J | | | | | _ e i | | | | ] ( Z B B N ",
|
||||||
|
": , 3 N ^ ] | | | | u h W U I J u | | | | U a i | | | J e _ / d d | | h e J P i d | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | / u e e i J K u d b | | P e a a b | | d a _ u J _ | | e e a d d e | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | h e _ | } i J J e | } i i } J e | | e b a b | | | U e u U | f a | ] ( Z N V N ",
|
||||||
|
": , 2 N ^ ] | | | f a | | J e } h i | J e W | d i | W e a u } | | | b e / | P e L | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | | u b | | i a } u J | i a | W e J | J e e u } | | P p h | P e h | | ] ( Z B B N ",
|
||||||
|
": , 3 M ^ ] | | _ e U | | e a h d | | e a U u h | | d i _ a a W h h e d f e h | | | ] ( Z N B N ",
|
||||||
|
"- , 2 m ^ ] | | L e ' | | b u b ' | | b e d U | | | u J | _ i i J | b u d L | | | | ] ^ C N N N ",
|
||||||
|
"- > 1 j ~ ` ] ] g d ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ` ^ B M M M ",
|
||||||
|
"% : , 1 G ~ ^ ^ y H ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ~ G 8 j n n ",
|
||||||
|
"$ % - > > 3 4 s t 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 2 4 6 7 ",
|
||||||
|
"@ # $ $ % % * r 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - - : > , 1 ",
|
||||||
|
". . o o o & e q O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + @ # $ % ; ",
|
||||||
|
" w 9 X O # "
|
||||||
|
};
|
152
fookb/2.xpm
Normal file
152
fookb/2.xpm
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 98 2",
|
||||||
|
" c #070606",
|
||||||
|
". c #0c0b0b",
|
||||||
|
"X c #100f0f",
|
||||||
|
"o c Gray9",
|
||||||
|
"O c #1f1d1d",
|
||||||
|
"+ c #211f1f",
|
||||||
|
"@ c #242323",
|
||||||
|
"# c #2b2929",
|
||||||
|
"$ c #343232",
|
||||||
|
"% c #3f3d3d",
|
||||||
|
"& c #1c1074",
|
||||||
|
"* c #3c3656",
|
||||||
|
"= c #413f3f",
|
||||||
|
"- c #464444",
|
||||||
|
"; c #4a4747",
|
||||||
|
": c #4f4c4c",
|
||||||
|
"> c #575454",
|
||||||
|
", c #5f5b5b",
|
||||||
|
"< c #615e5e",
|
||||||
|
"1 c #666363",
|
||||||
|
"2 c #6b6767",
|
||||||
|
"3 c #6f6b6b",
|
||||||
|
"4 c #726e6e",
|
||||||
|
"5 c #726d7d",
|
||||||
|
"6 c #777373",
|
||||||
|
"7 c #7b7777",
|
||||||
|
"8 c #7e7a7a",
|
||||||
|
"9 c #1500b8",
|
||||||
|
"0 c #302295",
|
||||||
|
"q c #1d05d1",
|
||||||
|
"w c #1900db",
|
||||||
|
"e c #1d00fc",
|
||||||
|
"r c #240cd7",
|
||||||
|
"t c #2308f3",
|
||||||
|
"y c #2a0ef9",
|
||||||
|
"u c #2c10fc",
|
||||||
|
"i c #3a20fb",
|
||||||
|
"p c #4329fb",
|
||||||
|
"a c #482ffb",
|
||||||
|
"s c #5a4da1",
|
||||||
|
"d c #5a42fa",
|
||||||
|
"f c #6852fa",
|
||||||
|
"g c #745ff6",
|
||||||
|
"h c #7762f9",
|
||||||
|
"j c #837e7e",
|
||||||
|
"k c #fc0000",
|
||||||
|
"l c #fc1010",
|
||||||
|
"z c #fc2020",
|
||||||
|
"x c #fc2f2f",
|
||||||
|
"c c #fd4242",
|
||||||
|
"v c #fd5252",
|
||||||
|
"b c #fd6262",
|
||||||
|
"n c #fd7171",
|
||||||
|
"m c #8571f9",
|
||||||
|
"M c #868282",
|
||||||
|
"N c #8c8787",
|
||||||
|
"B c #8f8a8a",
|
||||||
|
"V c #948f8f",
|
||||||
|
"C c #979292",
|
||||||
|
"Z c #9b9595",
|
||||||
|
"A c #9f9a9a",
|
||||||
|
"S c #a59f9f",
|
||||||
|
"D c #a7a1a1",
|
||||||
|
"F c #aaa4a4",
|
||||||
|
"G c #aea8a8",
|
||||||
|
"H c #b5aeae",
|
||||||
|
"J c #beb7b7",
|
||||||
|
"K c #9080e4",
|
||||||
|
"L c #9785f8",
|
||||||
|
"P c #9d8bf8",
|
||||||
|
"I c #a493f7",
|
||||||
|
"U c #a594f8",
|
||||||
|
"Y c #aa9af8",
|
||||||
|
"T c #b3a3f7",
|
||||||
|
"R c #c6bfbf",
|
||||||
|
"E c #fd8585",
|
||||||
|
"W c #fd9494",
|
||||||
|
"Q c #fda3a3",
|
||||||
|
"! c #fdb4b4",
|
||||||
|
"~ c #c2b4f7",
|
||||||
|
"^ c #c0c0c0",
|
||||||
|
"/ c #cec7c7",
|
||||||
|
"( c #d7cfcf",
|
||||||
|
") c #dfd7d7",
|
||||||
|
"_ c #d4c7f6",
|
||||||
|
"` c #e7dede",
|
||||||
|
"' c #fec7c7",
|
||||||
|
"] c #fed6d6",
|
||||||
|
"[ c #e2d6f6",
|
||||||
|
"{ c #eee6e6",
|
||||||
|
"} c #efe5f5",
|
||||||
|
"| c #f7efef",
|
||||||
|
" . c #fee6e6",
|
||||||
|
".. c #f8efef",
|
||||||
|
"X. c #f0e6f5",
|
||||||
|
"o. c #fef5f5",
|
||||||
|
"O. c Gray100",
|
||||||
|
"+. c None",
|
||||||
|
/* pixels */
|
||||||
|
"F R ( ) ` { | | ................................................................o.o.O.O.O.O.| ` ",
|
||||||
|
"V D J +.) | O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.) / ",
|
||||||
|
"7 V S H J R / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ) ` ` / R J ",
|
||||||
|
"2 8 V A D H H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J H H J H G ",
|
||||||
|
", 3 j B / ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ( S F S S ",
|
||||||
|
": 1 6 V ) { | ..| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | { ` D A A Z ",
|
||||||
|
": < 4 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` D Z Z C ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C C ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.o.o.o.] b c k k k l b Q o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o. .b k k k k k k k k k x ' o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.' k k k k k k k k k k k k l ! o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o. .z k k k z n E n z k k k k k l .o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.E k k k E o.o.o.o.o.n k k k k k E o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.c k k n o.o.o.o.o.o.o.c k k k k c o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.k k k ] o.o.o.o.o.o.o.E k k k k c o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.k k k o.o.o.o.o.o.o.o.n k k k k n o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.v b E o.o.o.o.o.o.o.o.z k k k k Q o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.E k k k k c o.o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.W k k k k l ] o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.W k k k k l ' o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.n k k k k x ] o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. .v k k k k E o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 2 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.' x k k k c ' o.o.o.c k k ' o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.W l k k l E o.o.o.o. .l k k o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o. .b k k k k n E E E E E c k k x o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.! z k k k k k k k k k k k k k k b o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.k k k k k k k k k k k k k k k k E o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.k k k k k k k k k k k k k k k k ! o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.k k k k k k k k k k k k k k k k ] o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.] c c o.o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o._ f e _ o.o.o.o.o.o.o.o.o.o.o.o.o.p h o.o.o.o.o.o.L u o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.~ u d U o.o.o.o.o.o.o.o.o.o.o.o.o.U e T o.o.o.o.o.} u h o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.[ u h o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.a i o.o.o.o.o.o.h e ~ o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.h u X.o.o.o.o.o.o.o.o.o.o.o.o.o.o._ e L o.o.o.o.o.[ e i o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.u h ~ T Y L u o.o.o.o.T a i o.o.o.L e [ _ d d o.o.h e L U i d o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o._ u e e i L P u d m o.o.U e a a m o.o.d a [ u L [ o.o.e e a d d e o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.h e [ o.X.i L L e o.X.i i X.L e o.o.e m a m o.o.o.T e u T o.f a o.| ` S V Z V ",
|
||||||
|
": , 2 V ) | o.o.o.f a o.o.L e X.h i o.L e ~ o.d i o.~ e a u X.o.o.o.m e _ o.U e I o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.u m o.o.i a X.u L o.i a o.~ e L o.L e e u X.o.o.U p h o.U e h o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.[ e T o.o.e a h d o.o.e a T u h o.o.d i [ a a ~ h h e d f e h o.o.o.| ` S V C V ",
|
||||||
|
"- , 2 N ) | o.o.I e } o.o.m u m } o.o.m e d T o.o.o.u L o.[ i i L o.m u d I o.o.o.o.| ) A V V V ",
|
||||||
|
"- > 1 j ( { | | g d | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | { ) C B B B ",
|
||||||
|
"% : , 1 J ( ) ) y K ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ( J 8 j M M ",
|
||||||
|
"$ % - > > 3 4 s t 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 2 4 6 7 ",
|
||||||
|
"@ # $ $ % % * r 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - - : > , 1 ",
|
||||||
|
". . o o o & e q O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + @ # $ % ; ",
|
||||||
|
" w 9 X O # "
|
||||||
|
};
|
152
fookb/3.xpm
Normal file
152
fookb/3.xpm
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 98 2",
|
||||||
|
" c #070606",
|
||||||
|
". c #0c0b0b",
|
||||||
|
"X c #100f0f",
|
||||||
|
"o c Gray9",
|
||||||
|
"O c #1f1d1d",
|
||||||
|
"+ c #211f1f",
|
||||||
|
"@ c #242323",
|
||||||
|
"# c #2b2929",
|
||||||
|
"$ c #343232",
|
||||||
|
"% c #3f3d3d",
|
||||||
|
"& c #1c1074",
|
||||||
|
"* c #3c3656",
|
||||||
|
"= c #413f3f",
|
||||||
|
"- c #464444",
|
||||||
|
"; c #4a4747",
|
||||||
|
": c #4f4c4c",
|
||||||
|
"> c #575454",
|
||||||
|
", c #5f5b5b",
|
||||||
|
"< c #615e5e",
|
||||||
|
"1 c #666363",
|
||||||
|
"2 c #6b6767",
|
||||||
|
"3 c #6f6b6b",
|
||||||
|
"4 c #726e6e",
|
||||||
|
"5 c #726d7d",
|
||||||
|
"6 c #777373",
|
||||||
|
"7 c #7b7777",
|
||||||
|
"8 c #7e7a7a",
|
||||||
|
"9 c #1500b8",
|
||||||
|
"0 c #302295",
|
||||||
|
"q c #1d05d1",
|
||||||
|
"w c #1900db",
|
||||||
|
"e c #1d00fc",
|
||||||
|
"r c #240cd7",
|
||||||
|
"t c #2308f3",
|
||||||
|
"y c #2a0ef9",
|
||||||
|
"u c #2c10fc",
|
||||||
|
"i c #3a20fb",
|
||||||
|
"p c #4329fb",
|
||||||
|
"a c #482ffb",
|
||||||
|
"s c #5a4da1",
|
||||||
|
"d c #5a42fa",
|
||||||
|
"f c #6852fa",
|
||||||
|
"g c #745ff6",
|
||||||
|
"h c #7762f9",
|
||||||
|
"j c #837e7e",
|
||||||
|
"k c #fc0000",
|
||||||
|
"l c #fc1010",
|
||||||
|
"z c #fc2020",
|
||||||
|
"x c #fc2f2f",
|
||||||
|
"c c #fd4242",
|
||||||
|
"v c #fd5252",
|
||||||
|
"b c #fd6262",
|
||||||
|
"n c #fd7171",
|
||||||
|
"m c #8571f9",
|
||||||
|
"M c #868282",
|
||||||
|
"N c #8c8787",
|
||||||
|
"B c #8f8a8a",
|
||||||
|
"V c #948f8f",
|
||||||
|
"C c #979292",
|
||||||
|
"Z c #9b9595",
|
||||||
|
"A c #9f9a9a",
|
||||||
|
"S c #a59f9f",
|
||||||
|
"D c #a7a1a1",
|
||||||
|
"F c #aaa4a4",
|
||||||
|
"G c #aea8a8",
|
||||||
|
"H c #b5aeae",
|
||||||
|
"J c #beb7b7",
|
||||||
|
"K c #9080e4",
|
||||||
|
"L c #9785f8",
|
||||||
|
"P c #9d8bf8",
|
||||||
|
"I c #a493f7",
|
||||||
|
"U c #a594f8",
|
||||||
|
"Y c #aa9af8",
|
||||||
|
"T c #b3a3f7",
|
||||||
|
"R c #c6bfbf",
|
||||||
|
"E c #fd8585",
|
||||||
|
"W c #fd9494",
|
||||||
|
"Q c #fda3a3",
|
||||||
|
"! c #fdb4b4",
|
||||||
|
"~ c #c2b4f7",
|
||||||
|
"^ c #c0c0c0",
|
||||||
|
"/ c #cec7c7",
|
||||||
|
"( c #d7cfcf",
|
||||||
|
") c #dfd7d7",
|
||||||
|
"_ c #d4c7f6",
|
||||||
|
"` c #e7dede",
|
||||||
|
"' c #fec7c7",
|
||||||
|
"] c #fed6d6",
|
||||||
|
"[ c #e2d6f6",
|
||||||
|
"{ c #eee6e6",
|
||||||
|
"} c #efe5f5",
|
||||||
|
"| c #f7efef",
|
||||||
|
" . c #fee6e6",
|
||||||
|
".. c #f8efef",
|
||||||
|
"X. c #f0e6f5",
|
||||||
|
"o. c #fef5f5",
|
||||||
|
"O. c Gray100",
|
||||||
|
"+. c None",
|
||||||
|
/* pixels */
|
||||||
|
"F R ( ) ` { | | ................................................................o.o.O.O.O.O.| ` ",
|
||||||
|
"V D J +.) | O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.) / ",
|
||||||
|
"7 V S H J R / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ) ` ` / R J ",
|
||||||
|
"2 8 V A D H H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J H H J H G ",
|
||||||
|
", 3 j B / ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ( S F S S ",
|
||||||
|
": 1 6 V ) { | ..| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | { ` D A A Z ",
|
||||||
|
": < 4 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` D Z Z C ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C C ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.o.o.o.] E c k k k l b Q o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.E k k k k k k k k k x ' o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.b k k k k k k k k k k k l ' o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.W k k k k v E E v k k k k k c o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.v k k l ' o.o.o.o.' k k k k k ] o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.k k k W o.o.o.o.o.o.b k k k k ! o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.k k k .o.o.o.o.o.o.E k k k k .o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. .z k k k b o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.' ! ! E z k k k x .o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.c k k k k k l E .o.o.o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.c k k k k k k x W o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.W E E c k k k k k x .o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.' l k k k k b o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o. .n c E o.o.o.o.o.o.o.Q k k k k k .o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 2 V ) | o.o.o.o.o.o.o.o.o.o.v k k k E o.o.o.o.o.o.o.k k k k k ! o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.k k k k l o.o.o.o.o.o.o.k k k k k ! o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.z k k k k Q o.o.o.o.o.Q k k k k l o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.E k k k k x .o.o.o.' z k k k k E o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o.o.o.o.o.o.c k k k k l b E b k k k k k x o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o. .n k k k k k k k k k k k b .o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.o.o.o.o.o.o.o.o.o.] n z k k k k k l b ! o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. .! ! ! ] o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.o.o._ f e _ o.o.o.o.o.o.o.o.o.o.o.o.o.p h o.o.o.o.o.o.L u o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.o.o.~ u d U o.o.o.o.o.o.o.o.o.o.o.o.o.U e T o.o.o.o.o.} u h o.o.o.| ` S C C V ",
|
||||||
|
": , 3 B ` | o.o.o.o.[ u h o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.a i o.o.o.o.o.o.h e ~ o.o.o.| ` S V Z V ",
|
||||||
|
": , 3 B ) | o.o.o.o.h u X.o.o.o.o.o.o.o.o.o.o.o.o.o.o._ e L o.o.o.o.o.[ e i o.o.o.o.| ` S C C V ",
|
||||||
|
": , 3 V ) | o.o.o.o.u h ~ T Y L u o.o.o.o.T a i o.o.o.L e [ _ d d o.o.h e L U i d o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o._ u e e i L P u d m o.o.U e a a m o.o.d a [ u L [ o.o.e e a d d e o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.h e [ o.X.i L L e o.X.i i X.L e o.o.e m a m o.o.o.T e u T o.f a o.| ` S V Z V ",
|
||||||
|
": , 2 V ) | o.o.o.f a o.o.L e X.h i o.L e ~ o.d i o.~ e a u X.o.o.o.m e _ o.U e I o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.o.u m o.o.i a X.u L o.i a o.~ e L o.L e e u X.o.o.U p h o.U e h o.o.| ` S C C V ",
|
||||||
|
": , 3 B ) | o.o.[ e T o.o.e a h d o.o.e a T u h o.o.d i [ a a ~ h h e d f e h o.o.o.| ` S V C V ",
|
||||||
|
"- , 2 N ) | o.o.I e } o.o.m u m } o.o.m e d T o.o.o.u L o.[ i i L o.m u d I o.o.o.o.| ) A V V V ",
|
||||||
|
"- > 1 j ( { | | g d | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | { ) C B B B ",
|
||||||
|
"% : , 1 J ( ) ) y K ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ( J 8 j M M ",
|
||||||
|
"$ % - > > 3 4 s t 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 2 4 6 7 ",
|
||||||
|
"@ # $ $ % % * r 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - - : > , 1 ",
|
||||||
|
". . o o o & e q O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + @ # $ % ; ",
|
||||||
|
" w 9 X O # "
|
||||||
|
};
|
148
fookb/4.xpm
Normal file
148
fookb/4.xpm
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 94 2",
|
||||||
|
" c #070606",
|
||||||
|
". c #0c0b0b",
|
||||||
|
"X c #100f0f",
|
||||||
|
"o c Gray9",
|
||||||
|
"O c #1f1d1d",
|
||||||
|
"+ c #211f1f",
|
||||||
|
"@ c #242323",
|
||||||
|
"# c #2b2929",
|
||||||
|
"$ c #343232",
|
||||||
|
"% c #3f3d3d",
|
||||||
|
"& c #1c1074",
|
||||||
|
"* c #3c3656",
|
||||||
|
"= c #413f3f",
|
||||||
|
"- c #464444",
|
||||||
|
"; c #4a4747",
|
||||||
|
": c #4f4c4c",
|
||||||
|
"> c #575454",
|
||||||
|
", c #5f5b5b",
|
||||||
|
"< c #615e5e",
|
||||||
|
"1 c #666363",
|
||||||
|
"2 c #6b6767",
|
||||||
|
"3 c #6f6b6b",
|
||||||
|
"4 c #726e6e",
|
||||||
|
"5 c #726d7d",
|
||||||
|
"6 c #777373",
|
||||||
|
"7 c #7b7777",
|
||||||
|
"8 c #7e7a7a",
|
||||||
|
"9 c #1500b8",
|
||||||
|
"0 c #302295",
|
||||||
|
"q c #1d05d1",
|
||||||
|
"w c #1900db",
|
||||||
|
"e c #1d00fc",
|
||||||
|
"r c #240cd7",
|
||||||
|
"t c #2308f3",
|
||||||
|
"y c #2a0ef9",
|
||||||
|
"u c #2c10fc",
|
||||||
|
"i c #3a20fb",
|
||||||
|
"p c #4329fb",
|
||||||
|
"a c #482ffb",
|
||||||
|
"s c #5a4da1",
|
||||||
|
"d c #5a42fa",
|
||||||
|
"f c #6852fa",
|
||||||
|
"g c #745ff6",
|
||||||
|
"h c #7762f9",
|
||||||
|
"j c #837e7e",
|
||||||
|
"k c #fc0000",
|
||||||
|
"l c #fc1010",
|
||||||
|
"z c #fc2020",
|
||||||
|
"x c #fd4242",
|
||||||
|
"c c #fd6262",
|
||||||
|
"v c #8571f9",
|
||||||
|
"b c #868282",
|
||||||
|
"n c #8c8787",
|
||||||
|
"m c #8f8a8a",
|
||||||
|
"M c #948f8f",
|
||||||
|
"N c #979292",
|
||||||
|
"B c #9b9595",
|
||||||
|
"V c #9f9a9a",
|
||||||
|
"C c #a59f9f",
|
||||||
|
"Z c #a7a1a1",
|
||||||
|
"A c #aaa4a4",
|
||||||
|
"S c #aea8a8",
|
||||||
|
"D c #b5aeae",
|
||||||
|
"F c #beb7b7",
|
||||||
|
"G c #9080e4",
|
||||||
|
"H c #9785f8",
|
||||||
|
"J c #9d8bf8",
|
||||||
|
"K c #a493f7",
|
||||||
|
"L c #a594f8",
|
||||||
|
"P c #aa9af8",
|
||||||
|
"I c #b3a3f7",
|
||||||
|
"U c #c6bfbf",
|
||||||
|
"Y c #fd8585",
|
||||||
|
"T c #fd9494",
|
||||||
|
"R c #fdb4b4",
|
||||||
|
"E c #c2b4f7",
|
||||||
|
"W c #c0c0c0",
|
||||||
|
"Q c #cec7c7",
|
||||||
|
"! c #d7cfcf",
|
||||||
|
"~ c #dfd7d7",
|
||||||
|
"^ c #d4c7f6",
|
||||||
|
"/ c #e7dede",
|
||||||
|
"( c #fec7c7",
|
||||||
|
") c #fed6d6",
|
||||||
|
"_ c #e2d6f6",
|
||||||
|
"` c #eee6e6",
|
||||||
|
"' c #efe5f5",
|
||||||
|
"] c #f7efef",
|
||||||
|
"[ c #fee6e6",
|
||||||
|
"{ c #f8efef",
|
||||||
|
"} c #f0e6f5",
|
||||||
|
"| c #fef5f5",
|
||||||
|
" . c Gray100",
|
||||||
|
".. c None",
|
||||||
|
/* pixels */
|
||||||
|
"A U ! ~ / ` ] ] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | | . . . .] / ",
|
||||||
|
"M Z F ..~ ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .~ Q ",
|
||||||
|
"7 M C D F U Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ~ / / Q U F ",
|
||||||
|
"2 8 M V Z D D F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F D D F D S ",
|
||||||
|
", 3 j m Q / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ! C A C C ",
|
||||||
|
": 1 6 M ~ ` ] { ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ` / Z V V B ",
|
||||||
|
": < 4 M ~ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] / Z B B N ",
|
||||||
|
": , 3 M ~ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] / C N N N ",
|
||||||
|
": , 3 m / ] | | | | | | | | | | | | | | | | | | c k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | | | T k k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 M ~ ] | | | | | | | | | | | | | | | | T k k k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | T k k k k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m / ] | | | | | | | | | | | | | | T k k k k k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | R k k k l Y k k k k Y | | | | | | | | | | | | ] / C M B M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | ( l k k k ( R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 M ~ ] | | | | | | | | | | | ( l k k k T | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | ( l k k k T | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m / ] | | | | | | | | | ( l k k k T | | | R k k k k Y | | | | | | | | | | | | ] / C M B M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | z k k k T | | | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 M ~ ] | | | | | | | | | k k k l Y Y Y Y Y c k k k k x Y Y Y ) | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | k k k k k k k k k k k k k k k k k k R | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | k k k k k k k k k k k k k k k k k k R | | | | | | | | ] / C M B M ",
|
||||||
|
": , 2 M ~ ] | | | | | | | | | k k k k k k k k k k k k k k k k k k R | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | R R R R R R R R R Y k k k k c R R R [ | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m / ] | | | | | | | | | | | | | | | | | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | | | | R k k k k Y | | | | | | | | | | | | ] / C M B M ",
|
||||||
|
": , 3 M ~ ] | | | | | | | | | | | | | | | | | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | | | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m / ] | | | | | | | | | | | | | | | | | | R k k k k Y | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] / C M B M ",
|
||||||
|
": , 3 m ~ ] | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ] / C N N M ",
|
||||||
|
": , 3 M ~ ] | | | | | | ^ f e ^ | | | | | | | | | | | | | p h | | | | | | H u | | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | | | E u d L | | | | | | | | | | | | | L e I | | | | | ' u h | | | ] / C N N M ",
|
||||||
|
": , 3 m / ] | | | | _ u h | | | | | | | | | | | | | | | a i | | | | | | h e E | | | ] / C M B M ",
|
||||||
|
": , 3 m ~ ] | | | | h u } | | | | | | | | | | | | | | ^ e H | | | | | _ e i | | | | ] / C N N M ",
|
||||||
|
": , 3 M ~ ] | | | | u h E I P H u | | | | I a i | | | H e _ ^ d d | | h e H L i d | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | ^ u e e i H J u d v | | L e a a v | | d a _ u H _ | | e e a d d e | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | h e _ | } i H H e | } i i } H e | | e v a v | | | I e u I | f a | ] / C M B M ",
|
||||||
|
": , 2 M ~ ] | | | f a | | H e } h i | H e E | d i | E e a u } | | | v e ^ | L e K | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | | u v | | i a } u H | i a | E e H | H e e u } | | L p h | L e h | | ] / C N N M ",
|
||||||
|
": , 3 m ~ ] | | _ e I | | e a h d | | e a I u h | | d i _ a a E h h e d f e h | | | ] / C M N M ",
|
||||||
|
"- , 2 n ~ ] | | K e ' | | v u v ' | | v e d I | | | u H | _ i i H | v u d K | | | | ] ~ V M M M ",
|
||||||
|
"- > 1 j ! ` ] ] g d ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ` ~ N m m m ",
|
||||||
|
"% : , 1 F ! ~ ~ y G ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! F 8 j b b ",
|
||||||
|
"$ % - > > 3 4 s t 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 2 4 6 7 ",
|
||||||
|
"@ # $ $ % % * r 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - - : > , 1 ",
|
||||||
|
". . o o o & e q O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O + @ # $ % ; ",
|
||||||
|
" w 9 X O # "
|
||||||
|
};
|
77
fookb/En.xpm
Normal file
77
fookb/En.xpm
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * En_xpm[] = {
|
||||||
|
"22 22 52 1",
|
||||||
|
" c None",
|
||||||
|
". c #005B77",
|
||||||
|
"+ c #005D79",
|
||||||
|
"@ c #005E7B",
|
||||||
|
"# c #005F7C",
|
||||||
|
"$ c #00607D",
|
||||||
|
"% c #00617F",
|
||||||
|
"& c #006280",
|
||||||
|
"* c #38849B",
|
||||||
|
"= c #5596AA",
|
||||||
|
"- c #006382",
|
||||||
|
"; c #38859D",
|
||||||
|
"> c #C6DCE3",
|
||||||
|
", c #FFFFFF",
|
||||||
|
"' c #5597AB",
|
||||||
|
") c #71A8B9",
|
||||||
|
"! c #006583",
|
||||||
|
"~ c #AACBD5",
|
||||||
|
"{ c #006685",
|
||||||
|
"] c #AACCD6",
|
||||||
|
"^ c #71A9BB",
|
||||||
|
"/ c #8DBAC8",
|
||||||
|
"( c #E2EDF1",
|
||||||
|
"_ c #006787",
|
||||||
|
": c #AACCD7",
|
||||||
|
"< c #5599AF",
|
||||||
|
"[ c #71AABC",
|
||||||
|
"} c #006888",
|
||||||
|
"| c #C6DDE4",
|
||||||
|
"1 c #559AAF",
|
||||||
|
"2 c #006989",
|
||||||
|
"3 c #AACDD7",
|
||||||
|
"4 c #1C7995",
|
||||||
|
"5 c #559BB0",
|
||||||
|
"6 c #006A8B",
|
||||||
|
"7 c #AACDD8",
|
||||||
|
"8 c #71ACBE",
|
||||||
|
"9 c #1C7A97",
|
||||||
|
"0 c #559BB1",
|
||||||
|
"a c #006B8D",
|
||||||
|
"b c #71ACBF",
|
||||||
|
"c c #E2EEF2",
|
||||||
|
"d c #C6DDE5",
|
||||||
|
"e c #AACDD9",
|
||||||
|
"f c #388BA6",
|
||||||
|
"g c #006D8E",
|
||||||
|
"h c #006E8F",
|
||||||
|
"i c #006F91",
|
||||||
|
"j c #007092",
|
||||||
|
"k c #007194",
|
||||||
|
"l c #007296",
|
||||||
|
"m c #007397",
|
||||||
|
"......................",
|
||||||
|
"++++++++++++++++++++++",
|
||||||
|
"@@@@@@@@@@@@@@@@@@@@@@",
|
||||||
|
"######################",
|
||||||
|
"$$$$$$$$$$$$$$$$$$$$$$",
|
||||||
|
"%%%%%%%%%%%%%%%%%%%%%%",
|
||||||
|
"&&&*======&&&&&&&&&&&&",
|
||||||
|
"---;>,''),------------",
|
||||||
|
"!!!!~,!!!>!!!!!!!!!!!!",
|
||||||
|
"{{{{],{{^{{],/>,({{{{{",
|
||||||
|
"____:,::,__<,:_[,<____",
|
||||||
|
"}}}}:,}}|}}1,1}1,1}}}}",
|
||||||
|
"22223,222445,525,52222",
|
||||||
|
"66667,666890,060,06666",
|
||||||
|
"aaabc,ded,ad,dfd,dfaaa",
|
||||||
|
"gggggggggggggggggggggg",
|
||||||
|
"hhhhhhhhhhhhhhhhhhhhhh",
|
||||||
|
"iiiiiiiiiiiiiiiiiiiiii",
|
||||||
|
"jjjjjjjjjjjjjjjjjjjjjj",
|
||||||
|
"kkkkkkkkkkkkkkkkkkkkkk",
|
||||||
|
"llllllllllllllllllllll",
|
||||||
|
"mmmmmmmmmmmmmmmmmmmmmm"};
|
81
fookb/INSTALL
Normal file
81
fookb/INSTALL
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
How to compile and install fookb:
|
||||||
|
|
||||||
|
0. The best way
|
||||||
|
|
||||||
|
The best way is to install Debian Linux and use apt-get to install precompiled
|
||||||
|
version of fookb :)
|
||||||
|
|
||||||
|
1. Generating Makefile.
|
||||||
|
|
||||||
|
./configure
|
||||||
|
|
||||||
|
You may use ``./configure --prefix some_dir'' if you wish to install fookb in
|
||||||
|
``some_dir'' -- not in ``/usr/local''. Icons will be placed under
|
||||||
|
``some_dir/share/fookb'', manual page under ``some_dir/man/man1'', fookb
|
||||||
|
itself under ``some_dir/bin''.
|
||||||
|
|
||||||
|
E.g.: ./configure --prefix /usr/local/stow/fookb
|
||||||
|
|
||||||
|
2. Fine tuning.
|
||||||
|
|
||||||
|
[Read this section only if compilation process was unsuccessful]
|
||||||
|
|
||||||
|
configure tries automagically decide: do you wish to compile WindowMaker
|
||||||
|
dockable version of fookb and would you like use PropList-like configuration
|
||||||
|
file or X resources for configuring fookb (using libWUtil).
|
||||||
|
|
||||||
|
If you have libWUtil AND WINGs/WUtil.h we will try to compile
|
||||||
|
libWUtil-enabled version of fookb. If you want to compile libWUtil-free
|
||||||
|
version of fookb, run configure with --disable-libWUtil argument.
|
||||||
|
|
||||||
|
If you have wmaker in your $PATH, we will compile WindowMaker dockable verison
|
||||||
|
of fookb. Run configure with --disable-wmaker to disable this behaviour.
|
||||||
|
|
||||||
|
If you have no wmaker in your $PATH you still can compile WindowMaker dockable
|
||||||
|
version of fookb. Run configure with --enable-wmaker.
|
||||||
|
|
||||||
|
3. Compiling
|
||||||
|
|
||||||
|
make
|
||||||
|
|
||||||
|
If compilation was unsuccessful or you can get no satisfaction, read previous
|
||||||
|
section.
|
||||||
|
|
||||||
|
4. Installing
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
5. Configuring fookb
|
||||||
|
|
||||||
|
IF YOU COMPILED libWUtil-version of fookb:
|
||||||
|
|
||||||
|
Copy fookb.cf to ~/GNUstep/Defaults/FOOkb (for Window Maker enabled) or to
|
||||||
|
~/.fookb (for Window Maker disabled version) and edit this file according to
|
||||||
|
your desire.
|
||||||
|
|
||||||
|
IF YOU COMPILED non-libWUtil version of fookb:
|
||||||
|
|
||||||
|
You should put the following resources in your
|
||||||
|
/usr/X11R6/lib/X11/app-defaults/Fookb (or in other file which will be read by
|
||||||
|
xrdb -- such as ~/.Xresources):
|
||||||
|
|
||||||
|
fookb.icon1: xpm_file_with_full_path
|
||||||
|
fookb.icon2: the same
|
||||||
|
fookb.icon3: the same
|
||||||
|
fookb.icon4: the same
|
||||||
|
fookb.iconBoom: the same
|
||||||
|
fookb.sound: Yes/No
|
||||||
|
fookb.command: some_command (for playing sound)
|
||||||
|
|
||||||
|
BOTH WAYS:
|
||||||
|
|
||||||
|
Instead of putting parameter in config file you may use the following command
|
||||||
|
line parameters:
|
||||||
|
|
||||||
|
-icon1 xpm_file_with_full_path
|
||||||
|
-icon2 the same
|
||||||
|
-icon3 the same
|
||||||
|
-icon4 the same
|
||||||
|
-iconboom the same
|
||||||
|
|
||||||
|
You may also use -display command line parameter.
|
8
fookb/KNOWN_BUGS
Normal file
8
fookb/KNOWN_BUGS
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
* If configuration parameter 'sound' is not defined, fookb will not die, but
|
||||||
|
will print error message and kill new-born child every time you switch
|
||||||
|
keyboard layout. Well, it's not a bug, it's a feature.
|
||||||
|
|
||||||
|
* Sometimes fookb receives message about changing XKB group, but
|
||||||
|
message.state.group does not point to any existing XKB group. In this
|
||||||
|
case fookb will show IconBoom (from config file) picture.
|
||||||
|
As far as I know the only way to look at this bug is to run vmware.
|
135
fookb/LICENSE
Normal file
135
fookb/LICENSE
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
License is "Artistic". Debian GNU/Linux may redistribute this program under
|
||||||
|
GPL. Yes, I understand what does it mean (it means that anyone who get this
|
||||||
|
program from Debian project can redistribute fookb under GPL). But do you
|
||||||
|
understand what does this mean? It means that if you downloaded fookb from my
|
||||||
|
site you cannot use GPL :)
|
||||||
|
|
||||||
|
P.S. Yes, Debian is the best.
|
||||||
|
P.P.S. No, there's no sense in this license.
|
||||||
|
|
||||||
|
|
||||||
|
P.P.P.S. The "Artistic License"
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The intent of this document is to state the conditions under which a
|
||||||
|
Package may be copied, such that the Copyright Holder maintains some
|
||||||
|
semblance of artistic control over the development of the Package,
|
||||||
|
while giving the users of the package the right to use and distribute
|
||||||
|
the Package in a more-or-less customary fashion, plus the right to make
|
||||||
|
reasonable modifications.
|
||||||
|
|
||||||
|
It also grants you the rights to reuse parts of a Package in your own
|
||||||
|
programs without transferring this License to those programs, provided
|
||||||
|
that you meet some reasonable requirements.
|
||||||
|
|
||||||
|
Definitions:
|
||||||
|
|
||||||
|
"Package" refers to the collection of files distributed by the
|
||||||
|
Copyright Holder, and derivatives of that collection of files
|
||||||
|
created through textual modification.
|
||||||
|
|
||||||
|
"Standard Version" refers to such a Package if it has not been
|
||||||
|
modified, or has been modified in accordance with the wishes
|
||||||
|
of the Copyright Holder as specified below.
|
||||||
|
|
||||||
|
"Copyright Holder" is whoever is named in the copyright or
|
||||||
|
copyrights for the package.
|
||||||
|
|
||||||
|
"You" is you, if you're thinking about copying or distributing
|
||||||
|
this Package.
|
||||||
|
|
||||||
|
"Reasonable copying fee" is whatever you can justify on the
|
||||||
|
basis of media cost, duplication charges, time of people involved,
|
||||||
|
and so on. (You will not be required to justify it to the
|
||||||
|
Copyright Holder, but only to the computing community at large
|
||||||
|
as a market that must bear the fee.)
|
||||||
|
|
||||||
|
"Freely Available" means that no fee is charged for the item
|
||||||
|
itself, though there may be fees involved in handling the item.
|
||||||
|
It also means that recipients of the item may redistribute it
|
||||||
|
under the same conditions they received it.
|
||||||
|
|
||||||
|
1. You may make and give away verbatim copies of the source form of the
|
||||||
|
Standard Version of this Package without restriction, provided that you
|
||||||
|
duplicate all of the original copyright notices and associated disclaimers.
|
||||||
|
|
||||||
|
2. You may apply bug fixes, portability fixes and other modifications
|
||||||
|
derived from the Public Domain or from the Copyright Holder. A Package
|
||||||
|
modified in such a way shall still be considered the Standard Version.
|
||||||
|
|
||||||
|
3. You may otherwise modify your copy of this Package in any way, provided
|
||||||
|
that you insert a prominent notice in each changed file stating how and
|
||||||
|
when you changed that file, and provided that you do at least ONE of the
|
||||||
|
following:
|
||||||
|
|
||||||
|
a) place your modifications in the Public Domain or otherwise make them
|
||||||
|
Freely Available, such as by posting said modifications to Usenet or
|
||||||
|
an equivalent medium, or placing the modifications on a major archive
|
||||||
|
site such as uunet.uu.net, or by allowing the Copyright Holder to include
|
||||||
|
your modifications in the Standard Version of the Package.
|
||||||
|
|
||||||
|
b) use the modified Package only within your corporation or organization.
|
||||||
|
|
||||||
|
c) rename any non-standard executables so the names do not conflict
|
||||||
|
with standard executables, which must also be provided, and provide
|
||||||
|
a separate manual page for each non-standard executable that clearly
|
||||||
|
documents how it differs from the Standard Version.
|
||||||
|
|
||||||
|
d) make other distribution arrangements with the Copyright Holder.
|
||||||
|
|
||||||
|
4. You may distribute the programs of this Package in object code or
|
||||||
|
executable form, provided that you do at least ONE of the following:
|
||||||
|
|
||||||
|
a) distribute a Standard Version of the executables and library files,
|
||||||
|
together with instructions (in the manual page or equivalent) on where
|
||||||
|
to get the Standard Version.
|
||||||
|
|
||||||
|
b) accompany the distribution with the machine-readable source of
|
||||||
|
the Package with your modifications.
|
||||||
|
|
||||||
|
c) give non-standard executables non-standard names, and clearly
|
||||||
|
document the differences in manual pages (or equivalent), together
|
||||||
|
with instructions on where to get the Standard Version.
|
||||||
|
|
||||||
|
d) make other distribution arrangements with the Copyright Holder.
|
||||||
|
|
||||||
|
5. You may charge a reasonable copying fee for any distribution of this
|
||||||
|
Package. You may charge any fee you choose for support of this
|
||||||
|
Package. You may not charge a fee for this Package itself. However,
|
||||||
|
you may distribute this Package in aggregate with other (possibly
|
||||||
|
commercial) programs as part of a larger (possibly commercial) software
|
||||||
|
distribution provided that you do not advertise this Package as a
|
||||||
|
product of your own.
|
||||||
|
|
||||||
|
6. The scripts and library files supplied as input to or produced as
|
||||||
|
output from the programs of this Package do not automatically fall
|
||||||
|
under the copyright of this Package, but belong to whomever generated
|
||||||
|
them, and may be sold commercially, and may be aggregated with this
|
||||||
|
Package. If such scripts or library files are aggregated with this
|
||||||
|
Package via the so-called "undump" or "unexec" methods of producing a
|
||||||
|
binary executable image, then distribution of such an image shall
|
||||||
|
neither be construed as a distribution of this Package nor shall it
|
||||||
|
fall under the restrictions of Paragraphs 3 and 4, provided that you do
|
||||||
|
not represent such an executable image as a Standard Version of this
|
||||||
|
Package.
|
||||||
|
|
||||||
|
7. You may reuse parts of this Package in your own programs, provided that
|
||||||
|
you explicitly state where you got them from, in the source code (and, left
|
||||||
|
to your courtesy, in the documentation), duplicating all the associated
|
||||||
|
copyright notices and disclaimers. Besides your changes, if any, must be
|
||||||
|
clearly marked as such. Parts reused that way will no longer fall under this
|
||||||
|
license if, and only if, the name of your program(s) have no immediate
|
||||||
|
connection with the name of the Package itself or its associated programs.
|
||||||
|
You may then apply whatever restrictions you wish on the reused parts or
|
||||||
|
choose to place them in the Public Domain--this will apply only within the
|
||||||
|
context of your package.
|
||||||
|
|
||||||
|
8. The name of the Copyright Holder may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
The End
|
70
fookb/Makefile.in
Normal file
70
fookb/Makefile.in
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
BIN_PATH=@prefix@/bin
|
||||||
|
SHARE_PATH=@prefix@/share/fookb
|
||||||
|
MAN_PATH=@prefix@/man/man1
|
||||||
|
|
||||||
|
# FLAGS=-Wall -g -DDEBUG @DEFS@
|
||||||
|
FLAGS=-Wall -Werror @DEFS@
|
||||||
|
|
||||||
|
GCC=@CC@
|
||||||
|
|
||||||
|
INCLUDEDIR=@X_CFLAGS@
|
||||||
|
LIBDIR=@X_LIBS@
|
||||||
|
PRELIBS=@X_PRE_LIBS@
|
||||||
|
EXTRALIBS=@X_EXTRA_LIBS@
|
||||||
|
|
||||||
|
LIBS=@LIBS@
|
||||||
|
|
||||||
|
# DEBUG
|
||||||
|
# DLIBS=-lefence
|
||||||
|
DLIBS=
|
||||||
|
|
||||||
|
fookb: fookb.o params.o images.o sound.o opts.o globals.o
|
||||||
|
${GCC} ${PRELIBS} ${LIBDIR} ${EXTRALIBS} ${DLIBS} ${LIBS} -o fookb fookb.o params.o images.o sound.o opts.o globals.o @WUTIL_LIB@
|
||||||
|
|
||||||
|
fookb.o: fookb.c fookb.h params.h
|
||||||
|
${GCC} -c ${FLAGS} ${INCLUDEDIR} fookb.c
|
||||||
|
|
||||||
|
params.o: params.c params.h
|
||||||
|
${GCC} -c ${FLAGS} ${INCLUDEDIR} params.c
|
||||||
|
|
||||||
|
images.o: images.c images.h
|
||||||
|
${GCC} -c ${FLAGS} ${INCLUDEDIR} images.c
|
||||||
|
|
||||||
|
sound.o: sound.h sound.c params.h
|
||||||
|
${GCC} -c ${FLAGS} ${INCLUDEDIR} sound.c
|
||||||
|
|
||||||
|
opts.o: opts.h fookb.h opts.c
|
||||||
|
${GCC} -c ${FLAGS} ${INCLUDEDIR} opts.c
|
||||||
|
|
||||||
|
globals.o: globals.c
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f fookb fookb.o params.o images.o sound.o opts.o globals.o
|
||||||
|
|
||||||
|
superclean: clean
|
||||||
|
rm -f Makefile config.*
|
||||||
|
|
||||||
|
superpuperclean: superclean
|
||||||
|
rm -f configure
|
||||||
|
rm -rf autom4te.cache
|
||||||
|
|
||||||
|
hyperclean:
|
||||||
|
rm -f config.*
|
||||||
|
|
||||||
|
hyperpiperclean: hyperclean
|
||||||
|
rm -f configure
|
||||||
|
|
||||||
|
install: fookb
|
||||||
|
mkdir -p ${BIN_PATH}
|
||||||
|
mkdir -p ${SHARE_PATH}
|
||||||
|
mkdir -p ${MAN_PATH}
|
||||||
|
cp fookb ${BIN_PATH}
|
||||||
|
cp 1.xpm ${SHARE_PATH}
|
||||||
|
cp 2.xpm ${SHARE_PATH}
|
||||||
|
cp 3.xpm ${SHARE_PATH}
|
||||||
|
cp 4.xpm ${SHARE_PATH}
|
||||||
|
cp rus.xpm ${SHARE_PATH}
|
||||||
|
cp lat.xpm ${SHARE_PATH}
|
||||||
|
cp boom.xpm ${SHARE_PATH}
|
||||||
|
cp beep_spring.au ${SHARE_PATH}
|
||||||
|
cp fookb.1x ${MAN_PATH}
|
8
fookb/README
Normal file
8
fookb/README
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Icons was submitted by LionN <xpert@mail.ru> except En.xpm and Ru.xpm
|
||||||
|
submitted by Andrei M. Soukharev <A.M.Suharev@inp.nsk.su>.
|
||||||
|
|
||||||
|
USER GUIDE
|
||||||
|
|
||||||
|
Left click - next Xkb group
|
||||||
|
Middle click - previous Xkb group
|
||||||
|
Right click - exit
|
7
fookb/README.russian.koi8-r
Normal file
7
fookb/README.russian.koi8-r
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
***** Этот текст не дублирует файл README! *****
|
||||||
|
|
||||||
|
Если вы нашли эту программу по ссылке, приведенной в какой-либо книге (мне
|
||||||
|
таких известно две), то имейте в виду, что инструкции по компиляции и
|
||||||
|
установке fookb, приведенные в этих книгах, УСТАРЕЛИ!
|
||||||
|
|
||||||
|
Делайте все так, как написано в INSTALL.
|
7
fookb/README.russian.utf-8
Normal file
7
fookb/README.russian.utf-8
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
***** Этот текст не дублирует файл README! *****
|
||||||
|
|
||||||
|
Если вы нашли эту программу по ссылке, приведенной в какой-либо книге (мне
|
||||||
|
таких известно две), то имейте в виду, что инструкции по компиляции и
|
||||||
|
установке fookb, приведенные в этих книгах, УСТАРЕЛИ!
|
||||||
|
|
||||||
|
Делайте все так, как написано в INSTALL.
|
79
fookb/Ru.xpm
Normal file
79
fookb/Ru.xpm
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * Ru_xpm[] = {
|
||||||
|
"22 22 54 1",
|
||||||
|
" c None",
|
||||||
|
". c #005B77",
|
||||||
|
"+ c #005D79",
|
||||||
|
"@ c #005E7B",
|
||||||
|
"# c #005F7C",
|
||||||
|
"$ c #00607D",
|
||||||
|
"% c #00617F",
|
||||||
|
"& c #006280",
|
||||||
|
"* c #38849B",
|
||||||
|
"= c #5596AA",
|
||||||
|
"- c #006382",
|
||||||
|
"; c #38859D",
|
||||||
|
"> c #C6DCE3",
|
||||||
|
", c #FFFFFF",
|
||||||
|
"' c #5597AB",
|
||||||
|
") c #E2EDF0",
|
||||||
|
"! c #006583",
|
||||||
|
"~ c #AACBD5",
|
||||||
|
"{ c #5598AC",
|
||||||
|
"] c #006685",
|
||||||
|
"^ c #AACCD6",
|
||||||
|
"/ c #71A9BB",
|
||||||
|
"( c #38879F",
|
||||||
|
"_ c #1C7692",
|
||||||
|
": c #006787",
|
||||||
|
"< c #AACCD7",
|
||||||
|
"[ c #5599AF",
|
||||||
|
"} c #71AABC",
|
||||||
|
"| c #C6DDE4",
|
||||||
|
"1 c #006888",
|
||||||
|
"2 c #559AAF",
|
||||||
|
"3 c #8DBBC9",
|
||||||
|
"4 c #006989",
|
||||||
|
"5 c #AACDD7",
|
||||||
|
"6 c #E2EDF1",
|
||||||
|
"7 c #006A8B",
|
||||||
|
"8 c #AACDD8",
|
||||||
|
"9 c #C6DDE5",
|
||||||
|
"0 c #1C7A97",
|
||||||
|
"a c #E2EEF1",
|
||||||
|
"b c #006B8D",
|
||||||
|
"c c #71ACBF",
|
||||||
|
"d c #E2EEF2",
|
||||||
|
"e c #AACDD9",
|
||||||
|
"f c #388BA6",
|
||||||
|
"g c #559CB3",
|
||||||
|
"h c #8DBCCC",
|
||||||
|
"i c #006D8E",
|
||||||
|
"j c #006E8F",
|
||||||
|
"k c #006F91",
|
||||||
|
"l c #007092",
|
||||||
|
"m c #007194",
|
||||||
|
"n c #007296",
|
||||||
|
"o c #007397",
|
||||||
|
"......................",
|
||||||
|
"++++++++++++++++++++++",
|
||||||
|
"@@@@@@@@@@@@@@@@@@@@@@",
|
||||||
|
"######################",
|
||||||
|
"$$$$$$$$$$$$$$$$$$$$$$",
|
||||||
|
"%%%%%%%%%%%%%%%%%%%%%%",
|
||||||
|
"&&&*====*&&&&&&&&&&&&&",
|
||||||
|
"---;>,'')>------------",
|
||||||
|
"!!!!~,!!{,{!!!!!!!!!!!",
|
||||||
|
"]]]]^,]]/,(_>,](>,]]]]",
|
||||||
|
"::::<,[}|}::<,::<,::::",
|
||||||
|
"1111<,23,211<,11<,1111",
|
||||||
|
"44445,44,6445,445,4444",
|
||||||
|
"77778,779,078,07a,7777",
|
||||||
|
"bbbcd,efg,dfg,,h9,cbbb",
|
||||||
|
"iiiiiiiiiiiiiiiiiiiiii",
|
||||||
|
"jjjjjjjjjjjjjjjjjjjjjj",
|
||||||
|
"kkkkkkkkkkkkkkkkkkkkkk",
|
||||||
|
"llllllllllllllllllllll",
|
||||||
|
"mmmmmmmmmmmmmmmmmmmmmm",
|
||||||
|
"nnnnnnnnnnnnnnnnnnnnnn",
|
||||||
|
"oooooooooooooooooooooo"};
|
15
fookb/TODO
Normal file
15
fookb/TODO
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
To find English-speaking editor for all documentation.
|
||||||
|
|
||||||
|
??? WINGs-based config utility for fookb.
|
||||||
|
|
||||||
|
[This is a place for your suggestion.]
|
||||||
|
|
||||||
|
[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
|
||||||
|
|
||||||
|
There is NO PLACE for different Xkb groups for different windows. Xkb group is
|
||||||
|
the property of X server, not window.
|
||||||
|
|
||||||
|
[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]
|
||||||
|
|
||||||
|
There is NO PLACE for putting icon in window tilebar. Use Window Maker; it
|
||||||
|
provides such facility. I'm doing nothing with windows.
|
70
fookb/VERSION
Normal file
70
fookb/VERSION
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
3.1
|
||||||
|
|
||||||
|
An idea (icon size is now configurable) and two icons from "Andrei M. Soukharev"
|
||||||
|
<A.M.Suharev@inp.nsk.su>.
|
||||||
|
|
||||||
|
Now I use subversion.
|
||||||
|
|
||||||
|
3.0-unstable
|
||||||
|
|
||||||
|
configure.in rewritten almost from scratch.
|
||||||
|
|
||||||
|
Starting from version 0.70 Window Maker does not contain libproplist anymore;
|
||||||
|
so fookb now DOES NOT SUPPORT libproplist. You will get the same functionality
|
||||||
|
with libWUtil (part of Window Maker).
|
||||||
|
|
||||||
|
lint is still unhappy.
|
||||||
|
|
||||||
|
And the most important thing -- author's email was changed everywhere.
|
||||||
|
|
||||||
|
2.21-unstable
|
||||||
|
|
||||||
|
One more step to the lint happiness.
|
||||||
|
Some #include:s added. Why did it work before???
|
||||||
|
|
||||||
|
2.20-unstable
|
||||||
|
|
||||||
|
LICENSE was changed! Please read.
|
||||||
|
|
||||||
|
--enable/disable-libproplist/wmaker options for configure.
|
||||||
|
Some cosmetic changes to make lint happy (he's still very sad).
|
||||||
|
Makefile.in was simplified (of course configure.in has some complex changes).
|
||||||
|
|
||||||
|
2.13
|
||||||
|
|
||||||
|
Seems to be stable version. Minor cosmetic changes.
|
||||||
|
|
||||||
|
2.12-unstable
|
||||||
|
|
||||||
|
Final (I hope) fixes in Makefile.in for non-proplist version.
|
||||||
|
|
||||||
|
2.11-unstable
|
||||||
|
|
||||||
|
Small error in Makefine.in for non-proplist version was fixed.
|
||||||
|
|
||||||
|
2.1-unstable
|
||||||
|
|
||||||
|
libPropList-free version. Command line parameters. X resource
|
||||||
|
management. ``configure'' script. I hope non-WindowMaker version still
|
||||||
|
work?
|
||||||
|
|
||||||
|
0.9
|
||||||
|
New icons for Xkb groups. Nasty bug was fixed: fookb plays sound twice
|
||||||
|
if you change locked Xkb group with mouse. Documentation updates.
|
||||||
|
0.8
|
||||||
|
Fookb now can play sounds.
|
||||||
|
0.7
|
||||||
|
No more #define pixmaps. Configuration file in use.
|
||||||
|
0.6
|
||||||
|
No more #define NUMG
|
||||||
|
0.5
|
||||||
|
XpmReadFileToImage error check added.
|
||||||
|
0.4
|
||||||
|
No more ass. Window Maker support happened. I hope fookb still work
|
||||||
|
w/o -DWMAKER.
|
||||||
|
0.3
|
||||||
|
The ass. Intended to be Window Maker support.
|
||||||
|
0.2
|
||||||
|
Support for all 4 Xkb groups
|
||||||
|
0.1
|
||||||
|
Basic functionality
|
BIN
fookb/beep_spring.au
Normal file
BIN
fookb/beep_spring.au
Normal file
Binary file not shown.
158
fookb/boom.xpm
Normal file
158
fookb/boom.xpm
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 104 2",
|
||||||
|
" c Gray0",
|
||||||
|
". c #080000",
|
||||||
|
"X c #080800",
|
||||||
|
"o c #100800",
|
||||||
|
"O c #101000",
|
||||||
|
"+ c #181000",
|
||||||
|
"@ c #181008",
|
||||||
|
"# c #181808",
|
||||||
|
"$ c #211808",
|
||||||
|
"% c #291808",
|
||||||
|
"& c #292108",
|
||||||
|
"* c #312108",
|
||||||
|
"= c #312908",
|
||||||
|
"- c #312910",
|
||||||
|
"; c #392910",
|
||||||
|
": c #393110",
|
||||||
|
"> c #423110",
|
||||||
|
", c #4a3910",
|
||||||
|
"< c #523910",
|
||||||
|
"1 c #4a4218",
|
||||||
|
"2 c #524218",
|
||||||
|
"3 c #5a4218",
|
||||||
|
"4 c #5a4a18",
|
||||||
|
"5 c #634a18",
|
||||||
|
"6 c #6b5218",
|
||||||
|
"7 c #735221",
|
||||||
|
"8 c #735a21",
|
||||||
|
"9 c #7b5a21",
|
||||||
|
"0 c #7b6321",
|
||||||
|
"q c #846321",
|
||||||
|
"w c #846b21",
|
||||||
|
"e c #8c6b29",
|
||||||
|
"r c #946b29",
|
||||||
|
"t c #947329",
|
||||||
|
"y c #9c7329",
|
||||||
|
"u c #9c7b29",
|
||||||
|
"i c #a56b29",
|
||||||
|
"p c #a57b29",
|
||||||
|
"a c #ce6b31",
|
||||||
|
"s c #ce7331",
|
||||||
|
"d c #ce7b31",
|
||||||
|
"f c #d67331",
|
||||||
|
"g c #a58429",
|
||||||
|
"h c #ad8431",
|
||||||
|
"j c #b58431",
|
||||||
|
"k c #b58c31",
|
||||||
|
"l c #bd8431",
|
||||||
|
"z c #bd8c31",
|
||||||
|
"x c #bd8c39",
|
||||||
|
"c c #bd9431",
|
||||||
|
"v c #bd9439",
|
||||||
|
"b c #bd9c39",
|
||||||
|
"n c #c68431",
|
||||||
|
"m c #ce8c31",
|
||||||
|
"M c #c69431",
|
||||||
|
"N c #c69439",
|
||||||
|
"B c #c69c39",
|
||||||
|
"V c #ce9439",
|
||||||
|
"C c #ce9c39",
|
||||||
|
"Z c #d68431",
|
||||||
|
"A c #d68c39",
|
||||||
|
"S c #de8c31",
|
||||||
|
"D c #d6a539",
|
||||||
|
"F c #dea539",
|
||||||
|
"G c #dead39",
|
||||||
|
"H c #e79439",
|
||||||
|
"J c #e79c31",
|
||||||
|
"K c #e79c39",
|
||||||
|
"L c #e7a539",
|
||||||
|
"P c #e7ad39",
|
||||||
|
"I c #efa539",
|
||||||
|
"U c #c69c42",
|
||||||
|
"Y c #ce9442",
|
||||||
|
"T c #cea542",
|
||||||
|
"R c #d6a542",
|
||||||
|
"E c #d6ad42",
|
||||||
|
"W c #dead42",
|
||||||
|
"Q c #dead4a",
|
||||||
|
"! c #e7ad42",
|
||||||
|
"~ c #e7b542",
|
||||||
|
"^ c #efb542",
|
||||||
|
"/ c #efbd42",
|
||||||
|
"( c #efbd4a",
|
||||||
|
") c #e7b552",
|
||||||
|
"_ c #f7b542",
|
||||||
|
"` c #f7bd42",
|
||||||
|
"' c #f7bd4a",
|
||||||
|
"] c #ffb542",
|
||||||
|
"[ c #ffbd42",
|
||||||
|
"{ c #ffc642",
|
||||||
|
"} c #ffc64a",
|
||||||
|
"| c #f7c652",
|
||||||
|
" . c #f7c65a",
|
||||||
|
".. c #ffc652",
|
||||||
|
"X. c #ffd65a",
|
||||||
|
"o. c #ffde73",
|
||||||
|
"O. c #ffe773",
|
||||||
|
"+. c #ffe77b",
|
||||||
|
"@. c #ffef84",
|
||||||
|
"#. c #fff784",
|
||||||
|
"$. c #ffff94",
|
||||||
|
"%. c #ffff9c",
|
||||||
|
"&. c #ffffbd",
|
||||||
|
"*. c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
"h M C G ~ ( ' | ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ..| ....X.O.$.#.' ! ",
|
||||||
|
"t h v C E .o.+.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.%.&.*.*.%.W C ",
|
||||||
|
"9 e h k x N B C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y C Y T Q ) ) D B c ",
|
||||||
|
"6 0 e u h k c v c c c v c c c v c c c v c c c v c c c v c c c v c c c v c c c v c c c k k k k h ",
|
||||||
|
"3 7 q e C ! ~ ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! D h h h u ",
|
||||||
|
"2 5 8 t G / ' ` ` ' ` ' ` ' ` ` ' ` ' ` ` ' ` ' ` ' ` ` ' ` ' ` ` ' ` ' ` ' ` ` } ` ` W h u u y ",
|
||||||
|
"1 5 8 t W ` { } { } } { } { } } { } { } { } } { } { } } { } { } { } } { } { } } [ } ` W h y u t ",
|
||||||
|
"< 4 8 e G ' } { } } { [ } [ } [ } [ } [ } [ } / z u j G } } ' [ } { [ } } [ } ` { ' ` ! p t y t ",
|
||||||
|
"1 5 7 e ! ` { } } [ ' } } ' { } ' } ` } } } ~ 7 7 e 0 3 e ` } } } ` } } ` } } } } { ' G h t t t ",
|
||||||
|
", 4 7 e W ` } [ } } [ } [ } } } [ } } [ ' } q 9 ` } } W 5 e } [ } } [ } [ } [ ` } [ ' W p t y t ",
|
||||||
|
"1 4 6 t W ` } } } [ } ` } [ ' { ' [ } } { } 7 c } } } } / 2 h } [ ` } } } ` } } { ' ` G h t t t ",
|
||||||
|
", 4 7 r W ` } [ } ` } } ' [ } [ } } } [ } } 8 p } [ } [ } z 2 ^ } } } } [ } [ ~ / } ` ~ p t t t ",
|
||||||
|
", 5 7 e P ' } { } } [ ' { } } } } ` } ' ! W y t ~ ' } ` } } 7 q } } [ ' ` ` ( v W } ` W p t y t ",
|
||||||
|
"1 4 6 t W ` } } [ } } [ } [ ` [ } [ } G t 9 7 9 t C } } [ } ~ 1 j } ` } [ H R b _ [ ` W h t t t ",
|
||||||
|
", 4 8 e G ' { { } } ` } ' } } ' } } ' h 3 & $ & 2 q ! } } [ } N < ! _ H L H x S H } ` ! p t y t ",
|
||||||
|
"1 4 7 e ! ` } } } } [ } [ } } { [ } [ t - @ @ @ $ 2 k ` } } [ } e 3 W H V A a H E N N D h y t t ",
|
||||||
|
", 5 7 e G ' { } [ } [ ' } [ ' } } } } y - @ O @ $ , p ' } [ ' } ` 0 1 8 0 n f x U U R G p t t t ",
|
||||||
|
"1 3 6 t W ` } { } [ } { } } [ } [ ! N 0 & @ o X @ - e ^ } } } [ } } D l i m s Z J { ` ! h t y t ",
|
||||||
|
", 4 7 r W ` } } } } [ ' } { } ~ h 6 : $ @ X X X o - 7 k C ~ } } } } ] d a s n U ^ [ ` W p t t t ",
|
||||||
|
"1 4 8 e G ' } [ } ` } } [ } C 7 - X X . X o # ; > 8 M } [ } ' K A Y A N x / ' G h y t t ",
|
||||||
|
", 5 7 e ! ` { } } } [ } } W 7 # . X o o X X X X X X o @ 2 k ` } } } ! Y I I / ' ` W p t t t ",
|
||||||
|
"1 3 6 t W ` } [ } [ ' } D e : + X . X @ $ & & @ o X . X X @ 1 z _ } } ^ U ' } } { ` W g t y t ",
|
||||||
|
", 4 7 e G ' { } } } } ! t 3 - $ @ & - & $ & & @ X X X . . X X @ 5 c ` } ( x ` { [ ` ` ! p y t t ",
|
||||||
|
"1 4 8 e ! ` } } [ } ` h 1 & % - 2 7 5 & @ o @ o X X X X X . X & e _ } ` ^ ' } } } ' G h t t t ",
|
||||||
|
", 5 7 e G ' { } } } D 9 - $ $ 1 q t 7 : $ X @ @ o X X . X X . X X 2 W } } } } [ ` { ` W p t y t ",
|
||||||
|
"1 3 6 t W ` } [ } } N 3 % $ % 5 h t 8 3 - @ @ # @ o X . X X X & h [ } [ } } } ' ` ~ p t t t ",
|
||||||
|
", 4 7 r G ' } { } ` h > @ @ - 5 u t 7 7 ; # @ $ $ o X X X . X @ q ' } [ } ` [ } ` W h t y t ",
|
||||||
|
"1 4 8 e W ' { } } ` t - # # & : 7 7 1 : & $ $ - # X X X X X 3 G } ' [ } } ` ` W p t t t ",
|
||||||
|
", 5 7 e P ` } } [ ' e * @ @ & - - = - % $ - * * @ X . . X . X X X > C } { } [ ` } ' G h t y t ",
|
||||||
|
"1 3 6 t W ` { } } ` e - @ @ ; ; $ % - & & & # X . X X X . & k } } } } [ ` ` W p t t t ",
|
||||||
|
", 4 7 e G ' } { } ' h > @ $ : , - > > - $ @ . X X X X @ r } } [ ' } } ` W h t y t ",
|
||||||
|
"1 4 8 e ! ` } [ } } D 2 @ $ - - % - - - @ X o X X o X $ y } [ } } ` { ` ! p t t t ",
|
||||||
|
", 5 7 e G ' { } } [ / q $ @ # $ @ o @ @ O o X X X X . X X . : v } } ` } [ ' ` W g t y t ",
|
||||||
|
"1 3 6 t W ` } [ } } } v > @ o # $ @ O X X X X . . . X X 7 ! } [ } [ } { ' G p t t t ",
|
||||||
|
", 4 7 r W ' { } } [ } ^ q & O @ $ $ @ . X X X X ; h ` } ' } } ` } ` W h t y t ",
|
||||||
|
"1 4 8 e G ` { } [ } } } N 1 @ o # $ @ X . X o X X $ e ` } } [ } [ ` } ` ! p t t t ",
|
||||||
|
", 5 7 e ! ' } { } ` [ } ` h ; o X @ O o o X o # @ O o X X . $ q ^ } [ ` } } ` } [ ` W h t y t ",
|
||||||
|
"1 3 6 t G ' { } } } ' { } ^ p 1 @ X X X @ o @ @ @ X X . X @ > u ~ } } } } [ } } ` } ` G p t t t ",
|
||||||
|
", 4 7 e W ` } [ } } [ } [ } ' h 5 & @ . X X X @ & 7 N ' } } [ [ } ' } [ } { ' W h t y t ",
|
||||||
|
"1 4 8 e ! ` } { } ' [ } ' [ } [ R u 4 ; $ @ X @ @ & : 7 h W } { } [ } ' [ } { ' [ ' ` ! p t t t ",
|
||||||
|
", 5 7 e G ' { } [ { } ` { } ` } } } W v t e 7 6 q h C / } { } ` } ` } [ ' { ' { { } ` G p t y t ",
|
||||||
|
"1 3 6 e W ` } } } ` } [ ' } { ` { [ } { } ` / ^ ` } } { } } [ } [ ' { } { ` } } ` ` ' W p t t t ",
|
||||||
|
"> 2 5 q D ^ ` ` ` ' ` ' ` ` ' ' ' ' ` ' ` ' ` ' ' ` ` ' ` ` ' ` ' ` ` ' ` ' ` ` ' ` / W t e e e ",
|
||||||
|
"> 2 4 5 c D W F W G W G W F W G G G F W F W G W G F W W F W F W G W F W F W F W F W D v 0 q e w ",
|
||||||
|
"- : 1 2 3 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 5 7 7 8 9 ",
|
||||||
|
"$ % - ; ; : > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > , 1 2 4 5 ",
|
||||||
|
"X o @ + @ $ # @ $ @ # $ @ # $ # @ $ # # $ # # $ @ # $ # @ $ # # $ # # $ # # $ # # $ $ $ & - > , ",
|
||||||
|
" . o @ & "
|
||||||
|
};
|
58
fookb/check.sh
Executable file
58
fookb/check.sh
Executable file
|
@ -0,0 +1,58 @@
|
||||||
|
rm /tmp/fookb*
|
||||||
|
|
||||||
|
(make superpuperclean
|
||||||
|
autoconf &&
|
||||||
|
./configure &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --enable-wmaker &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.ewm) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --disable-wmaker &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.dwm) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --enable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.ewu) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --disable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.dwu) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --enable-wmaker --enable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.ewm.ewu) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --enable-wmaker --disable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.ewm.dwu) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --disable-wmaker --enable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.dwm.ewu) &&
|
||||||
|
|
||||||
|
(make superpuperclean &&
|
||||||
|
autoconf &&
|
||||||
|
./configure --disable-wmaker --disable-libWUtil &&
|
||||||
|
make &&
|
||||||
|
mv fookb /tmp/fookb.dwm.dwu) &&
|
||||||
|
|
||||||
|
make clean
|
||||||
|
|
5710
fookb/configure
vendored
Executable file
5710
fookb/configure
vendored
Executable file
File diff suppressed because it is too large
Load diff
134
fookb/configure.in
Normal file
134
fookb/configure.in
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl
|
||||||
|
dnl (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
dnl
|
||||||
|
dnl vim:ts=8:sts=2:shiftwidth=2:expandtab:foldmethod=marker
|
||||||
|
|
||||||
|
dnl {{{1
|
||||||
|
AC_INIT(fookb.c)
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
|
||||||
|
WUTIL_LIB="-lWUtil"
|
||||||
|
AC_SUBST(WUTIL_LIB)
|
||||||
|
dnl }}}1
|
||||||
|
|
||||||
|
dnl Checks for libraries. {{{1
|
||||||
|
|
||||||
|
dnl Basic checks: X compilation settings and essential libraries {{{2
|
||||||
|
|
||||||
|
AC_PATH_XTRA
|
||||||
|
dnl Adds C compiler flags to X_CFLAGS and X linker flags to X_CFLAGS
|
||||||
|
dnl Extra libraries will be in X_EXTRA_LIBS
|
||||||
|
dnl Libraries wich should be linked before -lX11 will be in X_PRE_LIBS
|
||||||
|
dnl We do not check X_DISPLAY_MISSING because we need to check for
|
||||||
|
dnl XkbOpenDisplay in libX11 anyway.
|
||||||
|
|
||||||
|
AC_CHECK_LIB(
|
||||||
|
[X11],
|
||||||
|
[XkbOpenDisplay],
|
||||||
|
,
|
||||||
|
[AC_MSG_ERROR([[Fatal: no libX11 or no XkbOpenDisplay() in libX11]])],
|
||||||
|
$X_LIBS
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_CHECK_LIB(
|
||||||
|
[Xpm],
|
||||||
|
[XpmReadFileToImage],
|
||||||
|
,
|
||||||
|
[AC_MSG_ERROR([[Fatal: no libXpm found!]])],
|
||||||
|
$X_LIBS
|
||||||
|
)
|
||||||
|
|
||||||
|
dnl }}}2
|
||||||
|
|
||||||
|
dnl --enable/disable libWUtil (property lists handling) {{{2
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(
|
||||||
|
[libWUtil],
|
||||||
|
[ --enable-libWUtil try to use property lists handling in libWUtil],
|
||||||
|
[
|
||||||
|
if test $enable_libWUtil = yes ; then
|
||||||
|
|
||||||
|
dnl enabled: libWUtil and WINGs/WUtil.h check {{{3
|
||||||
|
AC_CHECK_LIB(
|
||||||
|
[WUtil],
|
||||||
|
[WMReadPropListFromFile],
|
||||||
|
[
|
||||||
|
dnl library is found; let's check header file {{{4
|
||||||
|
AC_CHECK_HEADERS(
|
||||||
|
[WINGs/WUtil.h],
|
||||||
|
,
|
||||||
|
[
|
||||||
|
AC_MSG_WARN([[No WINGs/WUtil.h found -- cannot compile version with property lists support. You should use X resources for customizing fookb; or, if you have libproplist, use older version of fookb]])
|
||||||
|
WUTIL_LIB=""
|
||||||
|
]
|
||||||
|
)
|
||||||
|
dnl }}}4
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_WARN([[No libWUtil found or old libWUtil version. You should use X resources for setting up fookb. If you have libproplist, use older version of fookb]])
|
||||||
|
WUTIL_LIB=""
|
||||||
|
]
|
||||||
|
,
|
||||||
|
$X_LIBS
|
||||||
|
)
|
||||||
|
dnl That's EVEN BETTER than LISP!!!
|
||||||
|
dnl }}}3
|
||||||
|
else
|
||||||
|
dnl if --disable-libWUtil is given we just do almost nothing
|
||||||
|
UTIL_LIB=""
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
dnl neither --enable nor --disable-libWUtil is not given.
|
||||||
|
dnl By default we will try to search for libWUtil {{{3
|
||||||
|
AC_CHECK_LIB(
|
||||||
|
[WUtil],
|
||||||
|
[WMReadPropListFromFile],
|
||||||
|
[
|
||||||
|
dnl library is found; let's check header file {{{4
|
||||||
|
AC_CHECK_HEADERS(
|
||||||
|
[WINGs/WUtil.h],
|
||||||
|
,
|
||||||
|
[
|
||||||
|
AC_MSG_WARN([[No WINGs/WUtil.h found -- cannot compile version with property lists support. You should use X resources for customizing fookb; or, if you have libproplist, use older version of fookb]])
|
||||||
|
WUTIL_LIB=""
|
||||||
|
]
|
||||||
|
)
|
||||||
|
dnl }}}4
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_WARN([[No libWUtil found or old libWUtil version. You should use X resources for setting up fookb. If you have libproplist, use older version of fookb]])
|
||||||
|
WUTIL_LIB=""
|
||||||
|
]
|
||||||
|
,
|
||||||
|
$X_LIBS
|
||||||
|
)
|
||||||
|
dnl }}}3
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
dnl }}}2
|
||||||
|
|
||||||
|
dnl }}}1
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(
|
||||||
|
[wmaker],
|
||||||
|
[ --enable-wmaker create windowmaker dockable application],
|
||||||
|
[
|
||||||
|
if test $enable_wmaker = yes ; then
|
||||||
|
AC_DEFINE(WMAKER)
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_CHECK_PROG(HAVE_WMAKER, wmaker, yes, no)
|
||||||
|
|
||||||
|
if test $HAVE_WMAKER = yes ; then
|
||||||
|
AC_DEFINE(WMAKER)
|
||||||
|
fi
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_OUTPUT(Makefile)
|
7
fookb/copyright
Normal file
7
fookb/copyright
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
(c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
|
||||||
|
Icons (c) 1999 LionN <xpert@mail.ru>
|
||||||
|
except Ru.xpm and En.xpm (c) by Andrei M. Soukharev <A.M.Suharev@inp.nsk.su>.
|
||||||
|
|
||||||
|
If you want to distribute, use or modificate this program, please look in
|
||||||
|
file "LICENSE".
|
146
fookb/fookb.1x
Normal file
146
fookb/fookb.1x
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
.\" Copyright (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
.\"
|
||||||
|
.\" This is free documentation; you can redistribute it and/or
|
||||||
|
.\" modify it under the terms of the Artistic License
|
||||||
|
.\" This manual is distributed in the hope that it will be useful,
|
||||||
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
.TH fookb 1 "10 Jan 2002" "fookb" "FOOcrosoft"
|
||||||
|
.SH NAME
|
||||||
|
fookb \- Xkb state indicator with optional Window Maker support
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B fookb [options]
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBfookb\fP is a Xkb state indicator. It displays
|
||||||
|
the icon corresponding to the number of Xkb locked group. You may use
|
||||||
|
mouse-clicks to change Xkb locked group with mouse. Additionally,
|
||||||
|
\fBfookb\fP can be configured to execute a program on changing group.
|
||||||
|
.P
|
||||||
|
\fBfookb\fP man page is based on \fBWMMail.app\fP man page. Program
|
||||||
|
was written from scratch.
|
||||||
|
.P
|
||||||
|
To use \fBfookb\fP with the Window Maker Dock, simply drag the
|
||||||
|
\fBfookb\fP icon to the Window Maker Dock (if \fBfookb\fP was compiled
|
||||||
|
with Window Maker support).
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
NB! Command line parameters take precedence over config file or X resources!
|
||||||
|
.TP
|
||||||
|
All the icons should be of the same size or fookb will refuse to run. If you
|
||||||
|
use Windowmaker-enabled version of fookb (windowmaker dockable applet) then
|
||||||
|
fookb will warn you if you use icons of size more than 64x64, but it will try
|
||||||
|
to run anyway.
|
||||||
|
.TP
|
||||||
|
.B -icon1
|
||||||
|
.TP
|
||||||
|
.B -icon2
|
||||||
|
.TP
|
||||||
|
.B -icon3
|
||||||
|
.TP
|
||||||
|
.B -icon4
|
||||||
|
.TP
|
||||||
|
.B -iconboom
|
||||||
|
.TP
|
||||||
|
.B -display
|
||||||
|
|
||||||
|
.SH CONFIGURATION FILE (for libWUtil-enabled version)
|
||||||
|
The configuration file consist of a single PropList dictionary, which
|
||||||
|
in turn is composed of several PropList key\-value pairs. The
|
||||||
|
recognized keys is:
|
||||||
|
.TP
|
||||||
|
.B Icon1 Filename (mandatory)
|
||||||
|
XPM file contains an icon for 1st XKB group.
|
||||||
|
.TP
|
||||||
|
.B Icon2 Filename (mandatory)
|
||||||
|
XPM file contains an icon for 2nd XKB group.
|
||||||
|
.TP
|
||||||
|
.B Icon3 Filename (mandatory)
|
||||||
|
XPM file contains an icon for 3rd XKB group.
|
||||||
|
.TP
|
||||||
|
.B Icon4 Filename (mandatory)
|
||||||
|
XPM file contains an icon for 4th XKB group.
|
||||||
|
.TP
|
||||||
|
.B IconBoom Filename (mandatory)
|
||||||
|
XPM file contains an icon for "broken Xkb". Please look in
|
||||||
|
BUGS section.
|
||||||
|
.TP
|
||||||
|
.B Sound (Yes|No)
|
||||||
|
\fBfookb\fP will run command from "Command" value (see below), if this
|
||||||
|
parameter is set to "Yes". You'll receive (non-fatal) error message if
|
||||||
|
this parameter is not defined. In any other case command will not be
|
||||||
|
run.
|
||||||
|
.TP
|
||||||
|
.B Command command_to_run
|
||||||
|
This command will be run if XKB locked group is changed and "Sound" is
|
||||||
|
set to "Yes".
|
||||||
|
|
||||||
|
.SH X resources
|
||||||
|
.TP
|
||||||
|
NB! Parameters in PropList config file take precedence over X resources!
|
||||||
|
.TP
|
||||||
|
.B fookb.icon1 Filename
|
||||||
|
.TP
|
||||||
|
.B fookb.icon2 Filename
|
||||||
|
.TP
|
||||||
|
.B fookb.icon3 Filename
|
||||||
|
.TP
|
||||||
|
.B fookb.icon4 Filename
|
||||||
|
.TP
|
||||||
|
.B fookb.iconBoom Filename
|
||||||
|
.TP
|
||||||
|
.B fookb.sound Yes/No
|
||||||
|
.TP
|
||||||
|
.B fookb.command Command
|
||||||
|
|
||||||
|
.SH EXAMPLES
|
||||||
|
Here is an example of configuration file.
|
||||||
|
.P
|
||||||
|
.nf
|
||||||
|
{
|
||||||
|
Icon1 = "/usr/local/share/fookb/icon1.xpm";
|
||||||
|
Icon2 = "/usr/local/share/fookb/icon2.xpm";
|
||||||
|
Icon3 = "/usr/local/share/fookb/icon3.xpm";
|
||||||
|
Icon4 = "/usr/local/share/fookb/icon4.xpm";
|
||||||
|
IconBoom = "/usr/local/share/fookb/crash.xpm";
|
||||||
|
Sound = "Yes";
|
||||||
|
Command = "/usr/bin/play /usr/local/share/fookb/click.au";
|
||||||
|
}
|
||||||
|
.fi
|
||||||
|
|
||||||
|
Here is an example of app-defaults file.
|
||||||
|
.P
|
||||||
|
.nf
|
||||||
|
fookb.icon1: /usr/local/share/fookb/icon1.xpm
|
||||||
|
fookb.icon2: /usr/local/share/fookb/icon2.xpm
|
||||||
|
fookb.icon3: /usr/local/share/fookb/icon3.xpm
|
||||||
|
fookb.icon4: /usr/local/share/fookb/icon4.xpm
|
||||||
|
fookb.iconBoom: /usr/local/share/fookb/crash.xpm
|
||||||
|
fookb.sound: Yes
|
||||||
|
fookb.command: /home/bgates/bin/playmssound
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH FILES
|
||||||
|
.TP
|
||||||
|
.B ~/GNUstep/Defaults/FOOkb
|
||||||
|
\fBfookb\fP defaults (for Window Maker enabled version).
|
||||||
|
.TP
|
||||||
|
.B ~/.fookb
|
||||||
|
\fBfookb\fP defaults (for Window Maker disabled version).
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
Sometimes \fBfookb\fP receives message about changing XKB group, but
|
||||||
|
message.state.group does not point to any existing XKB group. In this
|
||||||
|
case \fBfookb\fP will show IconBoom (from config file) picture.
|
||||||
|
.P
|
||||||
|
As far as I know the only way to look at this bug is to run vmware.
|
||||||
|
|
||||||
|
.SH VERSION
|
||||||
|
This man page is [hopefully] up-to-date for version 3.1 of \fBfookb\fP.
|
||||||
|
|
||||||
|
.SH AUTHORS
|
||||||
|
.P
|
||||||
|
\fBfookb\fP is (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>.
|
||||||
|
.P
|
||||||
|
This manpage was written by Alexey Vyskubov <alexey@mawhrin.net>.
|
304
fookb/fookb.c
Normal file
304
fookb/fookb.c
Normal file
|
@ -0,0 +1,304 @@
|
||||||
|
/*
|
||||||
|
* fookb.c
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h> /* malloc() */
|
||||||
|
#include <stdio.h> /* puts() */
|
||||||
|
|
||||||
|
/* X Window headers */
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xutil.h>
|
||||||
|
|
||||||
|
/* Command line parsing and X resource manager */
|
||||||
|
#include <X11/Xresource.h>
|
||||||
|
|
||||||
|
/* XKB fun */
|
||||||
|
#include <X11/XKBlib.h>
|
||||||
|
|
||||||
|
/* My own fun */
|
||||||
|
#include "fookb.h"
|
||||||
|
#include "images.h"
|
||||||
|
#include "sound.h"
|
||||||
|
#include "opts.h"
|
||||||
|
|
||||||
|
#define sterror(x) (void)printf("Strange error, please report! %s:%d, %s\n",\
|
||||||
|
__FILE__, __LINE__, x)
|
||||||
|
|
||||||
|
|
||||||
|
static void getGC(Window win, GC *gc, Display *dpy)
|
||||||
|
{
|
||||||
|
unsigned long valuemask = 0; /* No data in ``values'' */
|
||||||
|
XGCValues values;
|
||||||
|
*gc = XCreateGC(dpy, win, valuemask, &values);
|
||||||
|
/* FIXME Check if there was an error */
|
||||||
|
/* XSetForeground(dpy, *gc, BlackPixel(dpy, scr)); */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, register char *argv[])
|
||||||
|
{
|
||||||
|
Display *dpy;
|
||||||
|
int scr;
|
||||||
|
Window root;
|
||||||
|
|
||||||
|
int err;
|
||||||
|
|
||||||
|
int event_rtrn; /* for XkbOpenDisplay */
|
||||||
|
int error_rtrn;
|
||||||
|
int reason_rtrn;
|
||||||
|
|
||||||
|
XkbEvent labuda; /* Xkb event. X event will be labuda.core */
|
||||||
|
|
||||||
|
Window billy; /* _The_ Window */
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
Window dilly; /* ...and his icon */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int border = 0; /* _The_ Window parameters */
|
||||||
|
|
||||||
|
XWMHints *wm_hints;
|
||||||
|
XClassHint class_hints;
|
||||||
|
|
||||||
|
#ifdef WMAKER /* If we use Windowmaker, _The_ Window will */
|
||||||
|
XSizeHints *BigBunny; /* be withdrawn. And we do not want to
|
||||||
|
place empty border by hand. */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GC gc; /* Graphic context */
|
||||||
|
|
||||||
|
char resn[] = "fookb";
|
||||||
|
char resc[] = "Fookb";
|
||||||
|
|
||||||
|
|
||||||
|
int state = 0; /* We suppose that latin keyboard is the
|
||||||
|
primal state FIXME */
|
||||||
|
|
||||||
|
/*
|
||||||
|
event_rtrn = malloc(sizeof(int));
|
||||||
|
error_rtrn = malloc(sizeof(int));
|
||||||
|
reason_rtrn = malloc(sizeof(int));
|
||||||
|
*/
|
||||||
|
|
||||||
|
XrmInitialize(); /* We should initialize X resource
|
||||||
|
manager before doing something else
|
||||||
|
*/
|
||||||
|
|
||||||
|
ParseOptions(&argc, argv); /* We should parse command line
|
||||||
|
options and try to find '-display'
|
||||||
|
before opening X display */
|
||||||
|
|
||||||
|
/* Go, fighters, go! */
|
||||||
|
dpy = XkbOpenDisplay(mydispname,
|
||||||
|
&event_rtrn,
|
||||||
|
&error_rtrn, NULL, NULL, &reason_rtrn);
|
||||||
|
|
||||||
|
/* Oops. */
|
||||||
|
if (dpy == NULL) {
|
||||||
|
(void)puts("Cannot open display.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
scr = DefaultScreen(dpy);
|
||||||
|
root = RootWindow(dpy, scr);
|
||||||
|
|
||||||
|
MoreOptions(dpy); /* Now we can parse X server resource
|
||||||
|
database. It is not available
|
||||||
|
before display is opened */
|
||||||
|
|
||||||
|
/* We would like receive the only Xkb event: XkbStateNotify. And only
|
||||||
|
* when XkbLockGroup happens. */
|
||||||
|
|
||||||
|
if (False == XkbSelectEvents(dpy,
|
||||||
|
XkbUseCoreKbd,
|
||||||
|
XkbAllEventsMask,
|
||||||
|
0)) {
|
||||||
|
sterror("Cannot XkbSelectEvents. It's your problem -- not mine.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
} /* Deselect all events */
|
||||||
|
|
||||||
|
if (False == XkbSelectEventDetails(dpy,
|
||||||
|
XkbUseCoreKbd,
|
||||||
|
XkbStateNotify,
|
||||||
|
XkbAllEventsMask,
|
||||||
|
XkbGroupLockMask)) {
|
||||||
|
sterror("Cannot XkbSelectEventDetails. It's your problem -- not mine.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
} /* Select XkbStateNotify/XkbgroupLock */
|
||||||
|
|
||||||
|
read_images(dpy); /* Let's read icon images */
|
||||||
|
|
||||||
|
/* Run out! */
|
||||||
|
billy = XCreateSimpleWindow(dpy,
|
||||||
|
root,
|
||||||
|
0, 0,
|
||||||
|
get_width(), get_height(),
|
||||||
|
border,
|
||||||
|
BlackPixel(dpy, scr),
|
||||||
|
WhitePixel(dpy, scr));
|
||||||
|
XStoreName(dpy, billy, "fookb");
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
dilly = XCreateSimpleWindow(dpy,
|
||||||
|
root,
|
||||||
|
0, 0,
|
||||||
|
get_width(), get_height(),
|
||||||
|
border,
|
||||||
|
BlackPixel(dpy, scr),
|
||||||
|
WhitePixel(dpy, scr));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class_hints.res_name = resn;
|
||||||
|
class_hints.res_class = resc;
|
||||||
|
|
||||||
|
err = XSetClassHint(dpy, billy, &class_hints);
|
||||||
|
switch(err) {
|
||||||
|
case BadAlloc:
|
||||||
|
sterror("BadAlloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
case BadWindow:
|
||||||
|
sterror("BadWindow");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
wm_hints = XAllocWMHints();
|
||||||
|
wm_hints->window_group = billy;
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
wm_hints->icon_window = dilly;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
wm_hints->input = False;
|
||||||
|
wm_hints->flags = InputHint | WindowGroupHint;
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
wm_hints->flags = wm_hints->flags | IconWindowHint;
|
||||||
|
err = XSetWMHints(dpy, dilly, wm_hints);
|
||||||
|
switch(err) {
|
||||||
|
case BadAlloc:
|
||||||
|
sterror("BadAlloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
case BadWindow:
|
||||||
|
sterror("BadWindow");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
wm_hints->initial_state = WithdrawnState;
|
||||||
|
wm_hints->flags = wm_hints->flags | StateHint;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
err = XSetWMHints(dpy, billy, wm_hints);
|
||||||
|
switch(err) {
|
||||||
|
case BadAlloc:
|
||||||
|
sterror("BadAlloc");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
case BadWindow:
|
||||||
|
sterror("BadWindow");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
/* Look at the comment for XSizeHints * BigBunny */
|
||||||
|
BigBunny = XAllocSizeHints();
|
||||||
|
if (NULL == BigBunny) {
|
||||||
|
(void)printf("Not enough memory, %s:%d.\n", __FILE__, __LINE__);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
/* Nasty Hack. XSizeHints.x & XSizeHints.y are obsolete. */
|
||||||
|
BigBunny->x = 0;
|
||||||
|
BigBunny->y = 0;
|
||||||
|
BigBunny->flags = PPosition;
|
||||||
|
XSetWMNormalHints(dpy, billy, BigBunny);
|
||||||
|
XFree(BigBunny);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The only thing we would like to do - update our billy */
|
||||||
|
#ifndef WMAKER
|
||||||
|
XSelectInput(dpy, billy, ExposureMask | ButtonPressMask);
|
||||||
|
#else /* ...or dilly?! */
|
||||||
|
XSelectInput(dpy, dilly, ExposureMask | ButtonPressMask);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
XSetCommand(dpy, billy, argv, argc);
|
||||||
|
|
||||||
|
/* Programmer supplied functions */
|
||||||
|
#ifndef WMAKER
|
||||||
|
getGC(billy, &gc, dpy);
|
||||||
|
#else
|
||||||
|
getGC(dilly, &gc, dpy);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Let's look */
|
||||||
|
XMapWindow(dpy, billy); /* We would like to see the window. */
|
||||||
|
|
||||||
|
/* HELLO! HELLO! HELLO! Is that our GOOD FRIEND main loop here? */
|
||||||
|
while (1) {
|
||||||
|
XNextEvent(dpy, &labuda.core);
|
||||||
|
switch (labuda.core.type) {
|
||||||
|
|
||||||
|
case Expose: /* We should update our window. */
|
||||||
|
if (labuda.core.xexpose.count != 0)
|
||||||
|
/* Well, I knew what does it mean,
|
||||||
|
but I forgot :) */
|
||||||
|
break;
|
||||||
|
#ifndef WMAKER
|
||||||
|
update_window(billy, gc, state, dpy);
|
||||||
|
#else
|
||||||
|
update_window(dilly, gc, state, dpy);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case ButtonPress:
|
||||||
|
|
||||||
|
switch (labuda.core.xbutton.button) {
|
||||||
|
case Button1:
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts("Button1 pressed.");
|
||||||
|
#endif
|
||||||
|
XkbLockGroup(dpy,
|
||||||
|
XkbUseCoreKbd,
|
||||||
|
(state + 1) % 4);
|
||||||
|
break;
|
||||||
|
case Button2:
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts("Button2 pressed.");
|
||||||
|
#endif
|
||||||
|
XkbLockGroup(dpy,
|
||||||
|
XkbUseCoreKbd,
|
||||||
|
(state + 3) % 4);
|
||||||
|
break;
|
||||||
|
case Button3:
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts("Button3 pressed, bye.");
|
||||||
|
#endif
|
||||||
|
XFreeGC(dpy, gc);
|
||||||
|
XDestroyWindow(dpy, billy);
|
||||||
|
#ifdef WMAKER
|
||||||
|
XDestroyWindow(dpy, dilly);
|
||||||
|
#endif
|
||||||
|
XCloseDisplay(dpy);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: /* XkbLockGroup happens : FIXME */
|
||||||
|
drip();
|
||||||
|
state = labuda.state.group;
|
||||||
|
#ifdef DEBUG
|
||||||
|
printf("%u\n", state);
|
||||||
|
#endif
|
||||||
|
if ((state < 0) || (state > 4))
|
||||||
|
state = 4;
|
||||||
|
#ifndef WMAKER
|
||||||
|
update_window(billy, gc, state, dpy);
|
||||||
|
#else
|
||||||
|
update_window(dilly, gc, state, dpy);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts("."); /* XkbLockGroup happens */
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
12
fookb/fookb.cf
Normal file
12
fookb/fookb.cf
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# ALL THE ICONS SHOULD OF THE SAME SIZE!
|
||||||
|
{
|
||||||
|
# Icon1 = "/usr/local/share/fookb/1.xpm";
|
||||||
|
# Icon2 = "/usr/local/share/fookb/2.xpm";
|
||||||
|
Icon1 = "/usr/local/share/fookb/lat.xpm";
|
||||||
|
Icon2 = "/usr/local/share/fookb/rus.xpm";
|
||||||
|
Icon3 = "/usr/local/share/fookb/3.xpm";
|
||||||
|
Icon4 = "/usr/local/share/fookb/4.xpm";
|
||||||
|
IconBoom = "/usr/local/share/fookb/boom.xpm";
|
||||||
|
Sound = "Yes";
|
||||||
|
Command = "/usr/bin/play /usr/local/share/fookb/beep_spring.au";
|
||||||
|
}
|
13
fookb/fookb.h
Normal file
13
fookb/fookb.h
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* fookb.h
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FOOKB_H
|
||||||
|
#define FOOKB_H
|
||||||
|
|
||||||
|
extern char mydispname[256]; /* X display name */
|
||||||
|
|
||||||
|
#endif /* FOOKB_H */
|
17
fookb/globals.c
Normal file
17
fookb/globals.c
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* File: globals.c
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xresource.h>
|
||||||
|
|
||||||
|
char mydispname[256]; /* X display name */
|
||||||
|
|
||||||
|
XrmDatabase cmdlineDB; /* X resource database generated from
|
||||||
|
command line */
|
||||||
|
XrmDatabase finalDB; /* X resource database generated from
|
||||||
|
app-defaults and X resource
|
||||||
|
database */
|
182
fookb/images.c
Normal file
182
fookb/images.c
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
/*
|
||||||
|
* images.c
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h> /* puts() */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/* Xpm fun */
|
||||||
|
#include <X11/xpm.h>
|
||||||
|
|
||||||
|
//#include "fookb.h"
|
||||||
|
#include "params.h"
|
||||||
|
#include "images.h"
|
||||||
|
|
||||||
|
/* Let us make lint happy! */
|
||||||
|
#define lputs(x) (void)(puts(x))
|
||||||
|
|
||||||
|
static int w = 0;
|
||||||
|
static int h = 0;
|
||||||
|
|
||||||
|
static XImage *stupid_picture[5]; /* Icons for fookb */
|
||||||
|
|
||||||
|
int get_width() {
|
||||||
|
return w;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_height() {
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_one_image(char *name, int index, Display *dpy)
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
|
||||||
|
foo = XpmReadFileToImage(dpy, name, &stupid_picture[index],
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
|
if (0 == w) {
|
||||||
|
w = stupid_picture[index]->width;
|
||||||
|
if (0 == w) {
|
||||||
|
lputs("FATAL: Icon1 has zero width!");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
#ifdef WMAKER
|
||||||
|
if (w > 64) {
|
||||||
|
lputs("Warning: Icon width is more than 64. Strange things may happen.");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 == h) {
|
||||||
|
h = stupid_picture[index]->height;
|
||||||
|
if (0 == h) {
|
||||||
|
lputs("FATAL: Icon1 had zero height!");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
#ifdef WMAKER
|
||||||
|
if (h > 64) {
|
||||||
|
lputs("Warning: Icon height is more than 64. Strange things may happen.");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (w != stupid_picture[index]->width) {
|
||||||
|
lputs("FATAL: Not all icons are of the same width!");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (h != stupid_picture[index]->height) {
|
||||||
|
lputs("FATAL: Not all iconse are of the same height!");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
return (foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_images(Display *dpy)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int res;
|
||||||
|
int status = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
|
||||||
|
switch (i) {
|
||||||
|
case 0:
|
||||||
|
res = get_one_image(read_param("Icon1"), 0, dpy);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
res = get_one_image(read_param("Icon2"), 1, dpy);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
res = get_one_image(read_param("Icon3"), 2, dpy);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
res = get_one_image(read_param("Icon4"), 3, dpy);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
res = get_one_image(read_param("IconBoom"), 4, dpy);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (res) {
|
||||||
|
case XpmOpenFailed:
|
||||||
|
lputs("Xpm file open failed:");
|
||||||
|
status = 1 << 5;
|
||||||
|
break;
|
||||||
|
case XpmFileInvalid:
|
||||||
|
lputs("Xpm file is invalid:");
|
||||||
|
status = 1 << 6;
|
||||||
|
break;
|
||||||
|
case XpmNoMemory:
|
||||||
|
lputs("No memory for open xpm file:");
|
||||||
|
status = 1 << 7;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(status == 0)) {
|
||||||
|
status += 1 << i;
|
||||||
|
switch (i) {
|
||||||
|
case 0:
|
||||||
|
lputs(read_param("Icon1"));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
lputs(read_param("Icon2"));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
lputs(read_param("Icon3"));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
lputs(read_param("Icon4"));
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
lputs(read_param("IconBoom"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lputs("UNKNOWN ERROR! PLEASE REPORT!!!");
|
||||||
|
exit(-2);
|
||||||
|
}
|
||||||
|
exit(status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void update_window(Window win, GC gc, unsigned int whattodo, Display *dpy)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = XPutImage(dpy, win, gc, stupid_picture[whattodo],
|
||||||
|
0, 0, 0, 0, w, h);
|
||||||
|
|
||||||
|
if (0 == err) return;
|
||||||
|
|
||||||
|
switch (err) {
|
||||||
|
case BadDrawable:
|
||||||
|
lputs("Fatal error, XPutImage returns BadDrawable. "
|
||||||
|
"Please report!");
|
||||||
|
break;
|
||||||
|
case BadGC:
|
||||||
|
lputs("Fatal error, XPutImage returns BadGC. "
|
||||||
|
"Please report!");
|
||||||
|
break;
|
||||||
|
case BadMatch:
|
||||||
|
lputs("Fatal error, XPutImage returns BadMatch. "
|
||||||
|
"Please report!");
|
||||||
|
break;
|
||||||
|
case BadValue:
|
||||||
|
lputs("Fatal error, XPutImage returns BadValue. "
|
||||||
|
"Please report!");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lputs("Fatal error, XPutImage returns unknown error. "
|
||||||
|
"Please report, but probably "
|
||||||
|
"it is a bug in X.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
18
fookb/images.h
Normal file
18
fookb/images.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* images.h
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef IMAGES_H
|
||||||
|
#define IMAGES_H
|
||||||
|
|
||||||
|
int get_width();
|
||||||
|
int get_height();
|
||||||
|
void read_images(Display *dpy);
|
||||||
|
char *get_me_name(int);
|
||||||
|
|
||||||
|
//extern XImage *stupid_picture[5]; /* Icons for fookb */
|
||||||
|
|
||||||
|
void update_window(Window, GC, unsigned int, Display *);
|
||||||
|
#endif /* IMAGES_H */
|
301
fookb/lat.xpm
Normal file
301
fookb/lat.xpm
Normal file
|
@ -0,0 +1,301 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 247 2",
|
||||||
|
" c #080000",
|
||||||
|
". c Gray3",
|
||||||
|
"X c #100808",
|
||||||
|
"o c #180000",
|
||||||
|
"O c #080821",
|
||||||
|
"+ c #000031",
|
||||||
|
"@ c #080831",
|
||||||
|
"# c #101029",
|
||||||
|
"$ c #181831",
|
||||||
|
"% c #210000",
|
||||||
|
"& c #210810",
|
||||||
|
"* c #290810",
|
||||||
|
"= c #211010",
|
||||||
|
"- c #291010",
|
||||||
|
"; c #310008",
|
||||||
|
": c #390008",
|
||||||
|
"> c #291821",
|
||||||
|
", c #292129",
|
||||||
|
"< c #292939",
|
||||||
|
"1 c #312929",
|
||||||
|
"2 c #313131",
|
||||||
|
"3 c #000042",
|
||||||
|
"4 c #000052",
|
||||||
|
"5 c #00005a",
|
||||||
|
"6 c #080852",
|
||||||
|
"7 c #08085a",
|
||||||
|
"8 c #180042",
|
||||||
|
"9 c #101042",
|
||||||
|
"0 c #181842",
|
||||||
|
"q c #181852",
|
||||||
|
"w c #00006b",
|
||||||
|
"e c #000073",
|
||||||
|
"r c #00007b",
|
||||||
|
"t c #080873",
|
||||||
|
"y c #18006b",
|
||||||
|
"u c #181063",
|
||||||
|
"i c #181863",
|
||||||
|
"p c #101073",
|
||||||
|
"a c #10107b",
|
||||||
|
"s c #181873",
|
||||||
|
"d c #18187b",
|
||||||
|
"f c #21005a",
|
||||||
|
"g c #29184a",
|
||||||
|
"h c #311852",
|
||||||
|
"j c #290073",
|
||||||
|
"k c #290873",
|
||||||
|
"l c #21187b",
|
||||||
|
"z c #39106b",
|
||||||
|
"x c #21214a",
|
||||||
|
"c c #393942",
|
||||||
|
"v c #313152",
|
||||||
|
"b c #393952",
|
||||||
|
"n c #212163",
|
||||||
|
"m c #21216b",
|
||||||
|
"M c #21296b",
|
||||||
|
"N c #292963",
|
||||||
|
"B c #21217b",
|
||||||
|
"V c #292973",
|
||||||
|
"C c #29317b",
|
||||||
|
"Z c #31216b",
|
||||||
|
"A c #39396b",
|
||||||
|
"S c #31317b",
|
||||||
|
"D c #39397b",
|
||||||
|
"F c #420818",
|
||||||
|
"G c #4a0010",
|
||||||
|
"H c #520818",
|
||||||
|
"J c #5a0010",
|
||||||
|
"K c #5a0818",
|
||||||
|
"L c #5a0821",
|
||||||
|
"P c #4a2931",
|
||||||
|
"I c #5a3139",
|
||||||
|
"U c #6b0010",
|
||||||
|
"Y c #730010",
|
||||||
|
"T c #730018",
|
||||||
|
"R c #7b0018",
|
||||||
|
"E c #630821",
|
||||||
|
"W c #631021",
|
||||||
|
"Q c #6b1021",
|
||||||
|
"! c #6b1029",
|
||||||
|
"~ c #730031",
|
||||||
|
"^ c #731029",
|
||||||
|
"/ c #7b1829",
|
||||||
|
"( c #732939",
|
||||||
|
") c #4a2973",
|
||||||
|
"_ c #52397b",
|
||||||
|
"` c Gray29",
|
||||||
|
"' c #42425a",
|
||||||
|
"] c #4a4a5a",
|
||||||
|
"[ c #5a525a",
|
||||||
|
"{ c #42426b",
|
||||||
|
"} c #42427b",
|
||||||
|
"| c #525263",
|
||||||
|
" . c #52526b",
|
||||||
|
".. c #5a6373",
|
||||||
|
"X. c #734252",
|
||||||
|
"o. c #7b4a5a",
|
||||||
|
"O. c Gray39",
|
||||||
|
"+. c #63636b",
|
||||||
|
"@. c Gray42",
|
||||||
|
"#. c #7b6b73",
|
||||||
|
"$. c #7b737b",
|
||||||
|
"%. c #000084",
|
||||||
|
"&. c #080884",
|
||||||
|
"*. c #000094",
|
||||||
|
"=. c #101084",
|
||||||
|
"-. c #10108c",
|
||||||
|
";. c #18188c",
|
||||||
|
":. c #182184",
|
||||||
|
">. c #212184",
|
||||||
|
",. c #292984",
|
||||||
|
"<. c #21219c",
|
||||||
|
"1. c #293194",
|
||||||
|
"2. c #29319c",
|
||||||
|
"3. c #313184",
|
||||||
|
"4. c #39398c",
|
||||||
|
"5. c #313194",
|
||||||
|
"6. c #393994",
|
||||||
|
"7. c #39399c",
|
||||||
|
"8. c #3131a5",
|
||||||
|
"9. c #424284",
|
||||||
|
"0. c #4a4a84",
|
||||||
|
"q. c #424294",
|
||||||
|
"w. c #4a4a9c",
|
||||||
|
"e. c #4a529c",
|
||||||
|
"r. c #525284",
|
||||||
|
"t. c #52529c",
|
||||||
|
"y. c #525a94",
|
||||||
|
"u. c #5a5a9c",
|
||||||
|
"i. c #4242bd",
|
||||||
|
"p. c #4a4abd",
|
||||||
|
"a. c #5252a5",
|
||||||
|
"s. c #5a5aa5",
|
||||||
|
"d. c #5252b5",
|
||||||
|
"f. c #5a63b5",
|
||||||
|
"g. c #636384",
|
||||||
|
"h. c #636394",
|
||||||
|
"j. c #73738c",
|
||||||
|
"k. c #6363a5",
|
||||||
|
"l. c #6b6bad",
|
||||||
|
"z. c #7373a5",
|
||||||
|
"x. c #7373ad",
|
||||||
|
"c. c #7b7bad",
|
||||||
|
"v. c #7373b5",
|
||||||
|
"b. c #4a4ac6",
|
||||||
|
"n. c #7373c6",
|
||||||
|
"m. c #7b84b5",
|
||||||
|
"M. c #840018",
|
||||||
|
"N. c #8c0018",
|
||||||
|
"B. c #940018",
|
||||||
|
"V. c #941031",
|
||||||
|
"C. c #842131",
|
||||||
|
"Z. c #ad0021",
|
||||||
|
"A. c #a51839",
|
||||||
|
"S. c #b50021",
|
||||||
|
"D. c #b50829",
|
||||||
|
"F. c #bd0021",
|
||||||
|
"G. c #bd0831",
|
||||||
|
"H. c #b51839",
|
||||||
|
"J. c #8c1852",
|
||||||
|
"K. c #940842",
|
||||||
|
"L. c #9c0042",
|
||||||
|
"P. c #94185a",
|
||||||
|
"I. c #9c185a",
|
||||||
|
"U. c #9c2163",
|
||||||
|
"Y. c #ad0852",
|
||||||
|
"T. c #a5215a",
|
||||||
|
"R. c #845263",
|
||||||
|
"E. c #8c5263",
|
||||||
|
"W. c #847b7b",
|
||||||
|
"Q. c #a5424a",
|
||||||
|
"!. c #ad4a5a",
|
||||||
|
"~. c #bd5a6b",
|
||||||
|
"^. c #b5637b",
|
||||||
|
"/. c #ce0018",
|
||||||
|
"(. c #c60021",
|
||||||
|
"). c #c60029",
|
||||||
|
"_. c #ce0021",
|
||||||
|
"`. c #d60021",
|
||||||
|
"'. c #d60029",
|
||||||
|
"]. c #de0029",
|
||||||
|
"[. c #de0031",
|
||||||
|
"{. c #c61842",
|
||||||
|
"}. c #ce1842",
|
||||||
|
"|. c #ff4a73",
|
||||||
|
" X c #9c73ad",
|
||||||
|
".X c #ad7394",
|
||||||
|
"XX c #bd7384",
|
||||||
|
"oX c #bd738c",
|
||||||
|
"OX c #bd73a5",
|
||||||
|
"+X c #d64a84",
|
||||||
|
"@X c #c67384",
|
||||||
|
"#X c #c6738c",
|
||||||
|
"$X c #ce738c",
|
||||||
|
"%X c #ce7b94",
|
||||||
|
"&X c #ff5a84",
|
||||||
|
"*X c #848484",
|
||||||
|
"=X c #8c8484",
|
||||||
|
"-X c Gray55",
|
||||||
|
";X c #94848c",
|
||||||
|
":X c Gray58",
|
||||||
|
">X c #8484ad",
|
||||||
|
",X c #8484b5",
|
||||||
|
"<X c #848cb5",
|
||||||
|
"1X c #8c8cb5",
|
||||||
|
"2X c #8c8cbd",
|
||||||
|
"3X c #8c94bd",
|
||||||
|
"4X c #9494bd",
|
||||||
|
"5X c #9c9cb5",
|
||||||
|
"6X c #9c9cbd",
|
||||||
|
"7X c #a5949c",
|
||||||
|
"8X c #a5a5a5",
|
||||||
|
"9X c Gray68",
|
||||||
|
"0X c #a5a5bd",
|
||||||
|
"qX c #ada5bd",
|
||||||
|
"wX c #b5adad",
|
||||||
|
"eX c #8484c6",
|
||||||
|
"rX c #9c9cc6",
|
||||||
|
"tX c #adadc6",
|
||||||
|
"yX c #a5add6",
|
||||||
|
"uX c #b5b5c6",
|
||||||
|
"iX c #bdbdce",
|
||||||
|
"pX c #bdc6ce",
|
||||||
|
"aX c #ce8494",
|
||||||
|
"sX c #d68494",
|
||||||
|
"dX c #ff84ad",
|
||||||
|
"fX c #c6bdce",
|
||||||
|
"gX c #cebdc6",
|
||||||
|
"hX c #cecece",
|
||||||
|
"jX c #c6c6d6",
|
||||||
|
"kX c #cecede",
|
||||||
|
"lX c #ced6de",
|
||||||
|
"zX c #d6c6ce",
|
||||||
|
"xX c #d6dede",
|
||||||
|
"cX c #dedeef",
|
||||||
|
"vX c #e7cee7",
|
||||||
|
"bX c #e7d6ef",
|
||||||
|
"nX c #ffcef7",
|
||||||
|
"mX c #f7dee7",
|
||||||
|
"MX c #ffdee7",
|
||||||
|
"NX c #e7e7e7",
|
||||||
|
"BX c #e7e7ef",
|
||||||
|
"VX c #efe7f7",
|
||||||
|
"CX c #efeff7",
|
||||||
|
"ZX c #f7e7ef",
|
||||||
|
"AX c #ffe7ef",
|
||||||
|
"SX c Gray97",
|
||||||
|
"DX c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
"$ @ 3 3 6 q n q q q n n i q q 0 q n i q q x q i m 0 ' v q m n q q q g ( C.C.C.C.C.C.( Q.~.!./ Q ",
|
||||||
|
"@ n j.N B <.7.f.cXyXd.p.p.eXcXjXeXi.b.n.kXcXyXp.d.yXSXCXn.b.p.yXcXkX X+X|.|.|.|.|.&XdXnXDX&XG.D.",
|
||||||
|
"# ' 9X*XV r a r.hX8XS t t 9.hXhX9.t t i 0XhXr.t t r.hX5Xi t t 0.lX4Xh K.D.S.D.D.G.G.G.}.}.G.Z.Z.",
|
||||||
|
"O < =X0.3 5 4 Z :Xj.3 5 5 6 j.j.4 u m 4 0.g.q 7 4 n A { 3 m 7 q g.{ 8 ~ B.B.B.N.N.N.N.N.N.N.M.M.",
|
||||||
|
"O 0 9 x r.5X>Xz.7 4.z.0X1X3.e w S 0XpX3.r e 4.uXqXD e e 3.iX0XD r %.s .X@XXXXXoXoXoXXXXXR.E.R.R.",
|
||||||
|
"O + 3 3 0.SXjXt %.r y.SXjXa %.*.t 0XDXm %.%.t 0XtXt &.r B DX5Xt *.*.=.SXDXSXDXSXDXSXCXNX9X8X7X7X",
|
||||||
|
"O @ x 9 A c.l.d w.,.} ,Xh.d >.9.s 3XrXd s.tXD >X4XM c.k.s 6XrXB q.>.l vXmXmXmXZXmXmXmXzX7X;X;X-X",
|
||||||
|
"# c @.*X9.r a 6XDXNXw.e r v.SXDXz.e %.4.fXDXl.%.r l.DXiX3.r e rXDXcX_ P.H.H.H.H.A.H.A.A.^ ! ! Q ",
|
||||||
|
"O # #.| 5 %.r m CX1X5 %.r m SXCXs %.%.5 rXjX9.e r a CXtXw %.e s CXm.f Y.].].].[.[.[.).).N.R R R ",
|
||||||
|
"O < < .S 0Xs.6.:.7.=.c.l.:.3.3.w.rXtX,Xw.a v.rX3Xw.3.9.a.4XtXz.p 8.z Y.].].].[.[.[.[.).B.M.M.M.",
|
||||||
|
"O + + 3 g.DXjX3.%.%.6.DXfX3.%.%.=.kXDXy.e *.a xXcXp %.e 0.DXDXe.%.*.k Y.].].].'.[.'.).).N.R M.R ",
|
||||||
|
"O + 3 3 D iX6Xw %.r t CXtXw =.5.w h.iX9.t q.w h.l.p >.q.i 6X6Xt 7.-.y U.{.H.{.H.H.H.H.A./ ! ! ! ",
|
||||||
|
"# < ] .l.t w.>XtX4Xw.S 4.q.iXkXk.-.a l.uXSXl.&.r x.SXDXl.e e z.DXyX9.vXZXMXZXSXVXSXZXkX7X;X:X;X",
|
||||||
|
"O $ #.@.t %.%.u.DXkXa r %.a 6XDXD %.*.t 6XSX} %.*.>.CXCX>.*.%.3.DX5Xq SXDXDXDXDXDXDXSXNX8X:X:X:X",
|
||||||
|
"O $ b b 5 w.:.r 0Xh.r 5.=.&.,Xh.k.t 5.t ,Xy.x.V :.>.4.D d >.9.k.t.m.Z OXsXsX$XsXsX%X%XXXE.o.o.o.",
|
||||||
|
"O @ + 6 g.CXuX6.%.*.6.kXiX4.%.%.4.iXkXh.&.r q.BXBX6.%.%.l.SXDXx.e *.k L././.(.(.F.F.F.Z.Y Y Y Y ",
|
||||||
|
"O + 3 3 A CX0Xt %.%.B DXtXt %.%.t 0XDXS w &.5 6XrXw %.r p SXCXi %.*.j Y.].].].].[.'.'.).B.M.M.M.",
|
||||||
|
"# # ] v h.u.2XC c.l.m rX4X:.k.c.,.2Xy.0X2XyX,X3.3.a.4XtXt.4.9.1.yXl.z Y.].].'.].[.[.).).N.R R M.",
|
||||||
|
"O < @.@.S r t l.DXpX4.r r 3.fXDXh.=.r d kXDXu.%.%.e.DXDXy.%.%.z.DXiX) I.{.H.{.H.H.H.H.A./ ^ ! ! ",
|
||||||
|
"O $ [ .5 %.*.7 CXtXw %.%.t 6XjX0.e %.&.k.,X>.r %.t rX0Xt %.w 4.jX4Xu bXZXMXZXVXAXVXZXzX7X;X;X;X",
|
||||||
|
"O $ @ x m 6.>.;.5.q.>.c.l.;.6.t w.h.,Xa *.r w.rX4X6.e w q.uX4Xx.a 7.>.SXDXDXDXDXDXDXSXNX8X:X7X:X",
|
||||||
|
"O + 3 3 ,XDXcX7.%.e h.DXfX1.%.%.,.jXDX3.*.*.a hXkX:.%.r y.DXjXa *.*.=.vXmXmXmXmXmXmXvXzX7X-X-X=X",
|
||||||
|
"O + x 3 i cX1Xu >.4.r.jX6Xs ,.q.i tXCXm C q.s 0XtXp k.c.n tXk.m q.1.z J.A.A.A.V.A.A.A.V.Q E E E ",
|
||||||
|
"# # @.| D a ,.s.DXDX4Xt 5.w.lXDX1Xw.1.w.kXDX3Xq.7.q.lXDXl.%.a m.DXkX_ L.`.`.`.'._.).(.S.M.R Y T ",
|
||||||
|
"O < [ ..t *.*.-.6XrX&.*.*.&.l.<X1.*.*.%.v.3X,.*.*.*.3XrX&.*.*.2.m.f.j Y.].].'.[.].[.'.).N.M.M.M.",
|
||||||
|
"O $ # v m -.-.:.i p d =.;.;.s t >.-.;.-.d p >.;.-.:.p p ;.-.=.>.t d z T.{.{.{.{.{.{.H.A./ ^ ^ ! ",
|
||||||
|
", [ +.*XxXBXCXVXVXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXSXZXZXZXZXBXZXZXkX7X;X;X;X",
|
||||||
|
"1 O.@.:XxXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXNX8X:X:X:X",
|
||||||
|
"2 [ @.:XxXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXNX8X7X:X:X",
|
||||||
|
"> P I X.^.@X@X@X#X@X#X@X$X@X@X$X@X$X@X@X@X@X@X$X@X@X@X@X@X@X$X@X#X$X#X$X@X$X@X$X#X#X@X^.o.X.X.X.",
|
||||||
|
"= G G U B.S.F.F.S.F.S.F.S.F.S.F.S.S.F.F.S.F.S.S.F.F.F.S.F.S.S.S.S.Z.S.S.S.Z.S.Z.S.Z.Z.B.Y U U J ",
|
||||||
|
"- G J Y F._._.`.`.`.).`.`.`.).`.`.`._.`.'.`.`.`.`._.`.'.`._.`.`.'.).`.'._.'.).`.'.).).).N.R R R ",
|
||||||
|
"* G J R ).'.'.[.[.[.'.].'.[.].[.[.[.'.'.].'.[.[.[.[.'.'.[.'.].[.[.].'.].[.'.].[.'.].'.(.N.R M.M.",
|
||||||
|
"- F L ! A.{.{.{.H.{.{.{.{.{.{.{.H.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.H.A./ ^ ^ ! ",
|
||||||
|
"2 [ O.-XzXmXZXZXVXZXVXZXVXBXZXZXVXZXVXBXZXVXZXBXZXVXZXBXZXVXZXBXZXVXBXZXVXZXZXVXZXVXZXkX7X;X;X;X",
|
||||||
|
"2 [ #.;XcXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXNX8X:X:X:X",
|
||||||
|
"1 [ @.*XzXmXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXmXzX7X;X:X;X",
|
||||||
|
"= F F W V.A.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.A.H.H.H.H.A.H.H.A.A.A.Q Q Q W ",
|
||||||
|
"- G J Y S.(._._._.).)._._.)._._._.).).)._.)._._.).).)._.)._._._.).).)._.)._._._._.)._.S.M.R Y Y ",
|
||||||
|
"- G J T F.).).'.).'.).'.).'.).).'.)._.'.'.'.).).'.).'.'.'.).).'.'.'.'.'.'.).).'.'.).(.).N.R R R ",
|
||||||
|
"* G G U Z.S.F.F.F.F.F.F.F.S.).F.F.F.F.S.F.S.).F.F.S.F.F.S.).F.F.S.S.S.F.S.).F.F.S.F.S.Z.T T U T ",
|
||||||
|
"> I I X.XX%X%XaXsX%XaXaXsXaXaXaX%XaX%XaXaXaXaXaXsX%XaXaXaXaXaXaXsX%XaXaXaXaXaXaXsX%X%XXXR.X.o.o.",
|
||||||
|
", [ +.*XxXSXSXSXSXSXDXSXSXSXSXDXSXDXSXDXSXDXSXSXSXDXSXDXSXSXDXSXSXDXSXDXSXSXDXSXDXSXCXxX7X-X:X-X",
|
||||||
|
", ` [ [ wXgXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXwX#.$.W.W.",
|
||||||
|
"= * * F F H K L L L K L L L L L L L K L L L L L L K L L L L L L L K L L L L L L L H H H F L L L ",
|
||||||
|
"X ; ; ; ; ; : ; : ; : ; : ; : ; : ; : ; ; : ; : ; : ; : ; : ; : ; : ; : ; : ; : ; : : G G : G J ",
|
||||||
|
"X X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o % ; ; : ",
|
||||||
|
"= . . X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X & * "
|
||||||
|
};
|
108
fookb/opts.c
Normal file
108
fookb/opts.c
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
/*
|
||||||
|
* File: opts.c
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <X11/Xlib.h> /* X Window standard header */
|
||||||
|
#include <X11/Xresource.h> /* X resource manager stuff */
|
||||||
|
|
||||||
|
#include "fookb.h"
|
||||||
|
#include "opts.h"
|
||||||
|
|
||||||
|
static int tblentr = 6; /* There are 6 recognized
|
||||||
|
options */
|
||||||
|
static XrmOptionDescRec tbl[] = {
|
||||||
|
{"-icon1", ".icon1",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL},
|
||||||
|
{"-icon2", ".icon2",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL},
|
||||||
|
{"-icon3", ".icon3",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL},
|
||||||
|
{"-icon4", ".icon4",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL},
|
||||||
|
{"-iconboom", ".iconBoom",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL},
|
||||||
|
{"-display", ".display",
|
||||||
|
XrmoptionSepArg,
|
||||||
|
(XPointer) NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
void ParseOptions(int *argc, register char *argv[])
|
||||||
|
{
|
||||||
|
XrmValue value;
|
||||||
|
char *str_type[20];
|
||||||
|
mydispname[0] = '\0';
|
||||||
|
|
||||||
|
XrmParseCommand(&cmdlineDB, tbl, tblentr, "fookb", argc, argv);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts("Hereiam");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (1 != *argc) {
|
||||||
|
puts("Fookb v 3.0");
|
||||||
|
puts("\tUsage: fookb [options]");
|
||||||
|
puts("Possible options:");
|
||||||
|
puts("-icon1 xpm_file\t\tIcon to show for the 1st Xkb group");
|
||||||
|
puts("-icon2 xpm_file\t\tIcon to show for the 2nd Xkb group");
|
||||||
|
puts("-icon3 xpm_file\t\tIcon to show for the 3rd Xkb group");
|
||||||
|
puts("-icon4 xpm_file\t\tIcon to show for the 4th Xkb group");
|
||||||
|
puts("-iconboom xpm_file\tIcon to show when Xkb system goes crazy");
|
||||||
|
puts("-display X_display\tX display to use (normally not needed)");
|
||||||
|
puts("");
|
||||||
|
#ifdef HAVE_WINGS_WUTIL_H
|
||||||
|
puts("Command line parameters takes precedence over X resources or configuration file!");
|
||||||
|
printf("Configuration file location: ");
|
||||||
|
#ifdef WMAKER
|
||||||
|
puts("~/GNUstep/Defaults/FOOkb");
|
||||||
|
#else
|
||||||
|
puts("~/.fookb");
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
puts("Command line paramaters takes precedence over X resources!");
|
||||||
|
#endif
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We should get display now -- we need it for access to other
|
||||||
|
databases */
|
||||||
|
if (XrmGetResource(cmdlineDB, "fookb.display", "Fookb.Display",
|
||||||
|
str_type, &value) == True) {
|
||||||
|
(void) strncpy(mydispname, value.addr, (size_t)value.size);
|
||||||
|
#ifdef DEBUG
|
||||||
|
puts(mydispname);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MoreOptions(Display *dpy)
|
||||||
|
{
|
||||||
|
|
||||||
|
XrmDatabase servDB, appDB;
|
||||||
|
|
||||||
|
appDB = XrmGetFileDatabase
|
||||||
|
("/usr/X11R6/lib/X11/app-defaults/Fookb");
|
||||||
|
(void) XrmMergeDatabases(appDB, &finalDB); /* Fookb defaults file
|
||||||
|
added into final
|
||||||
|
database */
|
||||||
|
|
||||||
|
/* Let's look: does xrdb load server defautls? (As a property of
|
||||||
|
root window.) */
|
||||||
|
if (XResourceManagerString(dpy) != NULL) {
|
||||||
|
servDB = XrmGetStringDatabase(XResourceManagerString(dpy));
|
||||||
|
XrmMergeDatabases(servDB, &finalDB);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
32
fookb/opts.h
Normal file
32
fookb/opts.h
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* File: opts.h
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPTS_H
|
||||||
|
#define OPTS_H
|
||||||
|
|
||||||
|
/* X Window resource management */
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xresource.h>
|
||||||
|
extern XrmDatabase cmdlineDB; /* Database for resources from command
|
||||||
|
line */
|
||||||
|
|
||||||
|
extern XrmDatabase finalDB; /* Database for resources from other
|
||||||
|
sources -- app-defaults and X
|
||||||
|
Window resources */
|
||||||
|
|
||||||
|
void ParseOptions(int *argc, register char *argv[]); /* Parse
|
||||||
|
command
|
||||||
|
line
|
||||||
|
options */
|
||||||
|
|
||||||
|
void MoreOptions(Display *dpy); /* Parse
|
||||||
|
app-defaults
|
||||||
|
and X
|
||||||
|
resources
|
||||||
|
database */
|
||||||
|
|
||||||
|
#endif /* OPTS_H */
|
155
fookb/params.c
Normal file
155
fookb/params.c
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h> /* strlen & strcat */
|
||||||
|
#include <ctype.h> /* toupper */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "params.h"
|
||||||
|
#include "opts.h"
|
||||||
|
|
||||||
|
/* Let's make lint happy */
|
||||||
|
#define lputs(x) (void)puts(x)
|
||||||
|
|
||||||
|
char *read_param(char *string)
|
||||||
|
{
|
||||||
|
XrmValue xvalue;
|
||||||
|
|
||||||
|
#ifdef HAVE_WINGS_WUTIL_H
|
||||||
|
WMPropList *pl;
|
||||||
|
WMPropList *value;
|
||||||
|
WMPropList *tmp;
|
||||||
|
char *path;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char *newstring;
|
||||||
|
char *newString;
|
||||||
|
char *result;
|
||||||
|
char *str_type[20];
|
||||||
|
|
||||||
|
/* Let's make lint happy */
|
||||||
|
xvalue.size = 0;
|
||||||
|
|
||||||
|
#ifndef HAVE_WINGS_WUTIL_H
|
||||||
|
newstring = (char *) malloc(7 + strlen(string));
|
||||||
|
newString = (char *) malloc(7 + strlen(string));
|
||||||
|
/* 7 is strlen("fookb.") + 1 */
|
||||||
|
|
||||||
|
if ((NULL == newstring) || (NULL == newString)) {
|
||||||
|
lputs("Not enough memory");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy(newstring, "fookb.");
|
||||||
|
strcpy(newString, "Fookb.");
|
||||||
|
|
||||||
|
strcat(newstring, string);
|
||||||
|
strcat(newString, string);
|
||||||
|
#else
|
||||||
|
/* libWUtil contains handy function */
|
||||||
|
newstring = wstrconcat("fookb.", string);
|
||||||
|
newString = wstrconcat("Fookb.", string);
|
||||||
|
#endif
|
||||||
|
newstring[6] = tolower((unsigned char)newstring[6]);
|
||||||
|
newString[6] = toupper((unsigned char)newString[6]);
|
||||||
|
|
||||||
|
/* Command line parameters take precedence over all */
|
||||||
|
|
||||||
|
if (XrmGetResource(cmdlineDB,
|
||||||
|
newstring,
|
||||||
|
newString,
|
||||||
|
str_type,
|
||||||
|
&xvalue) == True) {
|
||||||
|
result = (char *) malloc(xvalue.size + 1);
|
||||||
|
if (NULL == result) {
|
||||||
|
lputs("Not enough memory");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
strncpy(result, xvalue.addr, (size_t)xvalue.size);
|
||||||
|
result[(int) xvalue.size + 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef HAVE_WINGS_WUTIL_H
|
||||||
|
wfree(newstring);
|
||||||
|
wfree(newString);
|
||||||
|
#else
|
||||||
|
free(newstring);
|
||||||
|
free(newString);
|
||||||
|
#endif
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_WINGS_WUTIL_H
|
||||||
|
|
||||||
|
wfree(newstring);
|
||||||
|
wfree(newString);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Here we start the game with property lists.
|
||||||
|
* pl will be property list, read from DEFAULTS_FILE.
|
||||||
|
* tmp will be temporary key for this property list,
|
||||||
|
* constructed using ``string'', supplied to function.
|
||||||
|
* value will be property list, which contain the value
|
||||||
|
* of parameter
|
||||||
|
*/
|
||||||
|
|
||||||
|
path = wexpandpath(DEFAULTS_FILE);
|
||||||
|
pl = WMReadPropListFromFile(path);
|
||||||
|
wfree(path);
|
||||||
|
|
||||||
|
if (!pl) {
|
||||||
|
lputs("Cannot open config file: ");
|
||||||
|
lputs(DEFAULTS_FILE);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = WMCreatePLString(string);
|
||||||
|
value = WMGetFromPLDictionary(pl, tmp);
|
||||||
|
WMReleasePropList(tmp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* pl and value objects will exist as long as fookb is running
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!value) {
|
||||||
|
lputs("Cannot find in config file value for: ");
|
||||||
|
lputs(string);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!WMIsPLString(value)) {
|
||||||
|
lputs("Value for: ");
|
||||||
|
lputs(string);
|
||||||
|
lputs("in config file is not a string.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
result = WMGetFromPLString(value);
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
lputs("Something wrong with libWUtils :(");
|
||||||
|
lputs("Please report this error to fookb author.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
#else /* HAVE_WINGS_WUTIL_H */
|
||||||
|
|
||||||
|
if (XrmGetResource(finalDB, newstring, newString, str_type,
|
||||||
|
&xvalue) == True) {
|
||||||
|
result = (char *) malloc(xvalue.size + 1);
|
||||||
|
if (NULL == result) {
|
||||||
|
lputs("Not enough memory");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
strncpy(result, xvalue.addr, (size_t)xvalue.size);
|
||||||
|
result[(int) xvalue.size + 1] = '\0';
|
||||||
|
free(newstring);
|
||||||
|
free(newString);
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
(void)printf("Fatal error: cannot find configuration parameter %s\n",
|
||||||
|
newstring);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
27
fookb/params.h
Normal file
27
fookb/params.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* params.h
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PARAMS_H
|
||||||
|
#define PARAMS_H
|
||||||
|
|
||||||
|
#ifdef HAVE_WINGS_WUTIL_H
|
||||||
|
#include <WINGs/WUtil.h>
|
||||||
|
|
||||||
|
#ifdef WMAKER
|
||||||
|
#define DEFAULTS_FILE "~/GNUstep/Defaults/FOOkb"
|
||||||
|
#else
|
||||||
|
#define DEFAULTS_FILE "~/.fookb"
|
||||||
|
#endif /* WMAKER */
|
||||||
|
|
||||||
|
#endif /* HAVE_WINGS_WUTIL_H */
|
||||||
|
|
||||||
|
#include <X11/Xlib.h> /* X Window standard header */
|
||||||
|
#include <X11/Xresource.h> /* X resource manager stuff */
|
||||||
|
|
||||||
|
char *read_param(char *);
|
||||||
|
|
||||||
|
#endif /* PARAMS_H */
|
310
fookb/rus.xpm
Normal file
310
fookb/rus.xpm
Normal file
|
@ -0,0 +1,310 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *magick[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 256 2",
|
||||||
|
" c Gray0",
|
||||||
|
". c #070000",
|
||||||
|
"X c #0c0000",
|
||||||
|
"o c #130000",
|
||||||
|
"O c #1d0001",
|
||||||
|
"+ c #150c27",
|
||||||
|
"@ c #1f1234",
|
||||||
|
"# c #1c1927",
|
||||||
|
"$ c #270002",
|
||||||
|
"% c #3d0002",
|
||||||
|
"& c #330002",
|
||||||
|
"* c #362b2b",
|
||||||
|
"= c #3d3838",
|
||||||
|
"- c #00034c",
|
||||||
|
"; c #00045e",
|
||||||
|
": c #1b0756",
|
||||||
|
"> c #1b084a",
|
||||||
|
", c #00056e",
|
||||||
|
"< c #1b0676",
|
||||||
|
"1 c #1e086a",
|
||||||
|
"2 c #321f5c",
|
||||||
|
"3 c #271456",
|
||||||
|
"4 c #2f1b6b",
|
||||||
|
"5 c #311d6e",
|
||||||
|
"6 c #382b55",
|
||||||
|
"7 c #3d3a4a",
|
||||||
|
"8 c #372270",
|
||||||
|
"9 c #410003",
|
||||||
|
"0 c #450003",
|
||||||
|
"q c #4c0003",
|
||||||
|
"w c #42080a",
|
||||||
|
"e c #5d0004",
|
||||||
|
"r c #550004",
|
||||||
|
"t c #5c1c1f",
|
||||||
|
"y c #481214",
|
||||||
|
"u c #4e3e3e",
|
||||||
|
"i c #592526",
|
||||||
|
"p c #5e3436",
|
||||||
|
"a c #6d0005",
|
||||||
|
"s c #670205",
|
||||||
|
"d c #660e11",
|
||||||
|
"f c #730005",
|
||||||
|
"g c #780005",
|
||||||
|
"h c #7e0005",
|
||||||
|
"j c #7b181b",
|
||||||
|
"k c #733739",
|
||||||
|
"l c #433858",
|
||||||
|
"z c #412e7d",
|
||||||
|
"x c #4a3a75",
|
||||||
|
"c c #4c4a4a",
|
||||||
|
"v c #564040",
|
||||||
|
"b c #544e58",
|
||||||
|
"n c #5b595a",
|
||||||
|
"m c #4a4757",
|
||||||
|
"M c #4a4163",
|
||||||
|
"N c #534d65",
|
||||||
|
"B c #554778",
|
||||||
|
"V c #5b5a69",
|
||||||
|
"C c #684f50",
|
||||||
|
"Z c #675a5b",
|
||||||
|
"A c #775556",
|
||||||
|
"S c #764345",
|
||||||
|
"D c #6e5f60",
|
||||||
|
"F c #635a7d",
|
||||||
|
"G c #6d6b6b",
|
||||||
|
"H c #646367",
|
||||||
|
"J c #696877",
|
||||||
|
"K c #716d6d",
|
||||||
|
"L c #7c6565",
|
||||||
|
"P c #716e7c",
|
||||||
|
"I c #747373",
|
||||||
|
"U c #7c7b7b",
|
||||||
|
"Y c #72737e",
|
||||||
|
"T c #000796",
|
||||||
|
"R c #000690",
|
||||||
|
"E c #1c099f",
|
||||||
|
"W c #190785",
|
||||||
|
"Q c #0007a5",
|
||||||
|
"! c #180aba",
|
||||||
|
"~ c #1808a8",
|
||||||
|
"^ c #210d9a",
|
||||||
|
"/ c #2a14a8",
|
||||||
|
"( c #2e18b2",
|
||||||
|
") c #3c238b",
|
||||||
|
"_ c #3e26af",
|
||||||
|
"` c #3323bc",
|
||||||
|
"' c #0e0adc",
|
||||||
|
"] c #140ac8",
|
||||||
|
"[ c #140cd7",
|
||||||
|
"{ c #1f1adb",
|
||||||
|
"} c #000ae2",
|
||||||
|
"| c #0c0ce9",
|
||||||
|
" . c #000bf7",
|
||||||
|
".. c #040bf7",
|
||||||
|
"X. c #000bfd",
|
||||||
|
"o. c #010cfd",
|
||||||
|
"O. c #1111eb",
|
||||||
|
"+. c #2114d2",
|
||||||
|
"@. c #3827c4",
|
||||||
|
"#. c #432b97",
|
||||||
|
"$. c #4f368e",
|
||||||
|
"%. c #51348f",
|
||||||
|
"&. c #553d97",
|
||||||
|
"*. c #48318f",
|
||||||
|
"=. c #553aa1",
|
||||||
|
"-. c #4636c5",
|
||||||
|
";. c #59458a",
|
||||||
|
":. c #5d499d",
|
||||||
|
">. c #4a41bc",
|
||||||
|
",. c #614e8a",
|
||||||
|
"<. c #6a5495",
|
||||||
|
"1. c #735d9e",
|
||||||
|
"2. c #654dab",
|
||||||
|
"3. c #755ea5",
|
||||||
|
"4. c #6e6587",
|
||||||
|
"5. c #7a689b",
|
||||||
|
"6. c #7e7d8c",
|
||||||
|
"7. c #777686",
|
||||||
|
"8. c #7d7793",
|
||||||
|
"9. c #7f8585",
|
||||||
|
"0. c #850006",
|
||||||
|
"q. c #8e0006",
|
||||||
|
"w. c #960007",
|
||||||
|
"e. c #910006",
|
||||||
|
"r. c #940309",
|
||||||
|
"t. c #9e1f24",
|
||||||
|
"y. c #97292c",
|
||||||
|
"u. c #a40007",
|
||||||
|
"i. c #ab0107",
|
||||||
|
"p. c #b60209",
|
||||||
|
"a. c #b01015",
|
||||||
|
"s. c #ba1d23",
|
||||||
|
"d. c #9d3f42",
|
||||||
|
"f. c #9b4649",
|
||||||
|
"g. c #9d5c5e",
|
||||||
|
"h. c #816767",
|
||||||
|
"j. c #857b7b",
|
||||||
|
"k. c #957879",
|
||||||
|
"l. c #916668",
|
||||||
|
"z. c #a27779",
|
||||||
|
"x. c #c6020a",
|
||||||
|
"c. c #d5000a",
|
||||||
|
"v. c #dc000a",
|
||||||
|
"b. c #db000a",
|
||||||
|
"n. c #d21017",
|
||||||
|
"m. c #d0282e",
|
||||||
|
"M. c #c7282e",
|
||||||
|
"N. c #e2000a",
|
||||||
|
"B. c #e0040d",
|
||||||
|
"V. c #ea010a",
|
||||||
|
"C. c #f7000b",
|
||||||
|
"Z. c #f5010b",
|
||||||
|
"A. c #f2010c",
|
||||||
|
"S. c #fd000b",
|
||||||
|
"D. c #fe010c",
|
||||||
|
"F. c #fc020d",
|
||||||
|
"G. c #fa010c",
|
||||||
|
"H. c #d04045",
|
||||||
|
"J. c #837b8c",
|
||||||
|
"K. c #827993",
|
||||||
|
"L. c #887ba7",
|
||||||
|
"P. c #83838e",
|
||||||
|
"I. c #8f8c8c",
|
||||||
|
"U. c #8d8d8d",
|
||||||
|
"Y. c #888586",
|
||||||
|
"T. c #848592",
|
||||||
|
"R. c #878994",
|
||||||
|
"E. c #888796",
|
||||||
|
"W. c #898a95",
|
||||||
|
"Q. c #8f8e9c",
|
||||||
|
"!. c #8c8c9a",
|
||||||
|
"~. c #8d9094",
|
||||||
|
"^. c #8d9099",
|
||||||
|
"/. c #918e8e",
|
||||||
|
"(. c #9a8787",
|
||||||
|
"). c #908f9d",
|
||||||
|
"_. c #9c8f90",
|
||||||
|
"`. c #929191",
|
||||||
|
"'. c #969393",
|
||||||
|
"]. c #969797",
|
||||||
|
"[. c #91919f",
|
||||||
|
"{. c #93959d",
|
||||||
|
"}. c #959a9c",
|
||||||
|
"|. c #9a9595",
|
||||||
|
" X c #9c9a9a",
|
||||||
|
".X c #928aa4",
|
||||||
|
"XX c #9495a2",
|
||||||
|
"oX c #9798a4",
|
||||||
|
"OX c #999aa6",
|
||||||
|
"+X c #9a9ba8",
|
||||||
|
"@X c #9f9fad",
|
||||||
|
"#X c #9c9daa",
|
||||||
|
"$X c #9a95a9",
|
||||||
|
"%X c #9ca2a5",
|
||||||
|
"&X c #9fa0ab",
|
||||||
|
"*X c #a48a8a",
|
||||||
|
"=X c #aa8d8d",
|
||||||
|
"-X c #a59b9b",
|
||||||
|
";X c #aa9596",
|
||||||
|
":X c #ab9c9c",
|
||||||
|
">X c #a29495",
|
||||||
|
",X c #ba9b9b",
|
||||||
|
"<X c #b39797",
|
||||||
|
"1X c #a09fad",
|
||||||
|
"2X c #a4a2a2",
|
||||||
|
"3X c #a1a2ae",
|
||||||
|
"4X c #aba3a3",
|
||||||
|
"5X c #adaaaa",
|
||||||
|
"6X c #a4a4b1",
|
||||||
|
"7X c #a6a8b4",
|
||||||
|
"8X c #a9aab6",
|
||||||
|
"9X c #acadba",
|
||||||
|
"0X c #aeb2b2",
|
||||||
|
"qX c #afb6bb",
|
||||||
|
"wX c #b5aaab",
|
||||||
|
"eX c #b7a6a7",
|
||||||
|
"rX c #b4b3b3",
|
||||||
|
"tX c #b1b2be",
|
||||||
|
"yX c #bbb7b7",
|
||||||
|
"uX c #b8b7b7",
|
||||||
|
"iX c #bbb2b2",
|
||||||
|
"pX c #bdbaba",
|
||||||
|
"aX c #b5baba",
|
||||||
|
"sX c #b8b8c7",
|
||||||
|
"dX c #c59f9f",
|
||||||
|
"fX c #c4898a",
|
||||||
|
"gX c #c2a3a3",
|
||||||
|
"hX c #c6acac",
|
||||||
|
"jX c #c7baba",
|
||||||
|
"kX c #d2aeae",
|
||||||
|
"lX c #d6b6b6",
|
||||||
|
"zX c #cbc7c7",
|
||||||
|
"xX c #c9c5c5",
|
||||||
|
"cX c #c9c0c0",
|
||||||
|
"vX c #cecaca",
|
||||||
|
"bX c #c4c5c8",
|
||||||
|
"nX c #cbd1d1",
|
||||||
|
"mX c #d7c9c9",
|
||||||
|
"MX c #dad6d6",
|
||||||
|
"NX c #ded9d9",
|
||||||
|
"BX c #d6d2d2",
|
||||||
|
"VX c #c6c8d3",
|
||||||
|
"CX c #e2c7c7",
|
||||||
|
"ZX c #e1dddd",
|
||||||
|
"AX c #ead8d8",
|
||||||
|
"SX c #e5e0e0",
|
||||||
|
"DX c #eee7e7",
|
||||||
|
"FX c #f3ecec",
|
||||||
|
"GX c #f3e7e7",
|
||||||
|
"HX c #f6f1f1",
|
||||||
|
"JX c #f5f0f0",
|
||||||
|
"KX c #fbf6f6",
|
||||||
|
"LX c #fbf5f5",
|
||||||
|
"PX c #fcf7f7",
|
||||||
|
"IX c #faf2f2",
|
||||||
|
"UX c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
"4XpXvXMXZXDXFXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXUXUXUXUXFXZX",
|
||||||
|
"/.4XpXxXMXFXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXMXvX",
|
||||||
|
"U /.2XwXpXjXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXvXvXBXZXSXvXxXpX",
|
||||||
|
"H U /. X2XrXyXyXyXyXpXyXyXyXpXyXpXyXyXpXyXyXpXyXyXyXpXyXpXyXyXpXyXyXpXyXyXyXpXyXyXpXyXrXrXrXwX5X",
|
||||||
|
"n G j.I.vXNXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXBX2X4X2X-X",
|
||||||
|
"b H I `.MXDXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXNX4X X X|.",
|
||||||
|
"c n K /.NXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXIXdXkXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZX2X|.|.'.",
|
||||||
|
"c n G I.NXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXdX;X,XkXlXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZX2X'.'.'.",
|
||||||
|
"c n K /.NXHXKXKXPXPXPXPXPXPXPXPXPXPXPXPXPXkX5XnXpXuXbXrXCXPXPXPXPXPXPXPXPXPXPXPXKXKXJXZX2X'.'.`.",
|
||||||
|
"c n G /.NXHXKXKXPXPXPXPXPXPXPXPXAXDXPXPXmXh.aXuXuXrXpXqXlXPXPXPXDXAXIXPXPXPXPXPXKXKXJXZX-X'.'.`.",
|
||||||
|
"c n G I.NXHXKXKXPXPXPXPXPXPXKXCXeX(.lXPX,X* U X2X2X}.4XAXFXPXlX(.;XCXPXPXPXPXPXKXKXJXZX2X'.'.`.",
|
||||||
|
"c n G I.NXHXKXKXPXPXPXPXPXPXCX,XpX=XhXgX:Xn b 5X X].2XgXlX;X,XiX<XgXlXAXPXPXPXPXKXKXJXZX2X'.'.`.",
|
||||||
|
"c n G I.NXHXKXKXPXPXPXPXPXKX=XaX(.k.vX/.Y.Y.0X`.= c |.eXj.9.9.nXk.<XcXlXPXPXPXPXKXKXJXZX2X'.'.`.",
|
||||||
|
"c n G I.NXHXKXKXPXPXPXPXKXAX>X;XeXu I.`.I U yX*XL u A rXY.K U.wXL <XgXhXJXPXPXPXKXKXJXZX-X'.'.`.",
|
||||||
|
"c n K I.NXHXKXKXPXPXPXPXlX*XwX=XAXh.G ].`.U.*XGXFX=X* K `.Y.].:X<X*X*XhXkXkXPXPXKXKXJXZX2X'.'.`.",
|
||||||
|
"c n K /.NXHXKXKXPXPXKXlX;X%X0XY.AX*XY.I U X].,XIXmXK ].I.G j.|.*XL U uX2XjXCXKXKXKXJXZX2X'.'.`.",
|
||||||
|
"- ; , R } .o.o.o.o.| ;.{.[.{.oX;.4 H V [.).[.%X#.) ~.[.[.^.,.,.8 x R.XX[.$X5.O.o.o...} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o.../ 7.oX#XE.7XT.8 N P [.T.T.Q.K.E.Q.T.T..X<.$.6 6.6X!.@X}.L.+...o...} Q T T T ",
|
||||||
|
"- ; , R ' .o.o.o.' 5.R.&XE.OX@X&Xx < > + # 7.T.#X&XE.7.5 E ] W l OX+XXXQ.3X.X1...o...} Q T T R ",
|
||||||
|
"- ; , R } .o.o.o.! 4.3XW.3X3X@X3XoX( ' W + Y P.XXXXP.7./ o.| 5 ~.3X6X3X6X!.%X2.| o...} Q T T T ",
|
||||||
|
"- ; , R } .o.o...*.}.3XXX[.+XOX#X0X&.o.~ V #XoXOX@X+X%X<.| ~ N 8X3XOX#X[.[.1XK.-.o. .} Q T T T ",
|
||||||
|
"- ; , R ' .o.o.' 4 XXW.P.+X+XXX6X%X;.[ z T.8XtXXXoX@X8XXX;.3 N OX6XXXOX#XE.P..X{ o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.[ F T.XXXX[.#X+X#X@XQ.7.{.oX8X9XR.P E.XXoX{.9.E.@X3XoX#XoXQ.W.J.>.o. .} Q T T T ",
|
||||||
|
"- ; , R } .o...! M R.T.9XoXoXXX#X@X6X3X&XQ.#X7X@X!.OXE.Q.@X7X6X6X#XXXOXOXQ.W.OX-.o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.! 6 {.8X3XOX+X#X#X#X6X@XXX6.[.sX7XXX@XQ.6.Q.+X@X#X+X@X@X).6.W.J.` o. .} Q T T R ",
|
||||||
|
"- ; , R } .o.o.] x R.#XoXoXOX3X#X+XOX[.W.T.XX#XoXQ.Q.XXR.T.T.).[.XX#X#XXXQ.XX5.@.o. .} Q T T T ",
|
||||||
|
"- ; , R ' .o.o.' 1 7 T.Q.[.[.XX[.oXXX[.6.[.Q.!.+XQ.T.XXQ.T.[.XXXX[.Q.XXXXQ.3X=...o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o.^ J XXXX6.T.T.[.Q.Q.oX7.6X#XW.OX3XoX6XOX6.Q.XXQ.XXE.Q.Q.oX.X3.| o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o.] : 7 P.6X3XQ.T.6.T.#X3X[.7.E.Q.[.W.J H oXXXE.E.@XE.E.8X9.%.| o.o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o...~ 6 J 7.bXoXP.oXW.6XsXQ.Q.8XT.T.7XE.6.sX7X@XE.E.7X%X8.2._ o.o.o. .} Q T T T ",
|
||||||
|
"- ; , R ' .o.o.o.o.| ~ : m P.oX7.4.N b +X+X9X8X@X@X8X9XOX+XV m !.VXsX5.&.o.o.o.o.o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o.o.o.o.] : @ 7.*.~ : V XX+X3XoX#X3XoX6X#XXX7.V #XtX@X( ..o.o.o.o.o. .} Q T T T ",
|
||||||
|
"- ; , R } .o.o.o.o.o.o.o.' < B L.:.B tXtX3XQ.P T.7.Y [.6X8XtX7X#X{.$X+.o.o.o.o.o.o. .} Q T T T ",
|
||||||
|
"q e a e.v.C.S.S.D.D.D.D.D.D.p.L ~.0XpX(.p S h.L -X>Xj.Y.A i j.5X2X XH.G.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.N.C.S.S.D.D.D.D.S.S.u.b I.;Xs.p.k *X(.:XiXwX:X(.=XS w t y.n.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.N.C.S.S.D.D.D.D.S.S.x.y A z.M.a.wX;X4X:X>X:X:X4XfXgXs.N.G.D.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.N.C.S.S.D.D.D.D.S.D.C.p.g f.z.k J.C -X_.:XeX;XjXf.g.m.D.D.D.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.N.C.S.S.D.D.D.D.D.D.D.D.c.x.a.d A Z k.h.(.j.j.;XA d.A.D.D.D.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.N.C.S.S.D.D.D.D.D.D.D.D.D.G.V.i.r.a i K /.j.l.t.x.G.D.D.D.D.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a e.v.C.S.S.D.D.D.D.D.D.D.D.D.D.D.G.Z.c.q.d j a.B.G.D.D.D.D.D.D.D.D.D.D.D.D.S.S.C.N.u.w.w.w.",
|
||||||
|
"q e a q.v.C.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.A.v.V.G.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.C.N.u.w.w.w.",
|
||||||
|
"q r a q.v.C.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.C.v.u.e.w.e.",
|
||||||
|
"0 r s 0.b.A.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.A.b.w.q.q.q.",
|
||||||
|
"9 q r s p.c.b.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.b.c.x.h 0.0.0.",
|
||||||
|
"& % q r r f g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g s a f g g ",
|
||||||
|
"$ $ & % % % 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 0 q r e s ",
|
||||||
|
"X o o o O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O $ $ $ & % q ",
|
||||||
|
" X o O $ "
|
||||||
|
};
|
51
fookb/sound.c
Normal file
51
fookb/sound.c
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* File: sound.c
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <unistd.h> /* fork() */
|
||||||
|
#include <sys/types.h> /* pid_t */
|
||||||
|
#include <stdlib.h> /* system */
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdio.h> /* puts() */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "sound.h"
|
||||||
|
#include "params.h"
|
||||||
|
|
||||||
|
void drip()
|
||||||
|
{
|
||||||
|
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
pid = fork();
|
||||||
|
|
||||||
|
if (pid == (pid_t) (-1)) {
|
||||||
|
puts("Cannot fork!");
|
||||||
|
switch (errno) {
|
||||||
|
case ENOMEM:
|
||||||
|
puts("Not enough memory!");
|
||||||
|
exit(22);
|
||||||
|
break;
|
||||||
|
case EAGAIN:
|
||||||
|
puts("To many processes!");
|
||||||
|
exit(23);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
puts("Unknown error, please report!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pid == (pid_t) 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strcmp(read_param("Sound"), "Yes")) {
|
||||||
|
exit(system(read_param("Command")));
|
||||||
|
} else {
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
13
fookb/sound.h
Normal file
13
fookb/sound.h
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* File: sound.h
|
||||||
|
*
|
||||||
|
* (c) 1998-2004 Alexey Vyskubov <alexey@mawhrin.net>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SOUND_H
|
||||||
|
#define SOUND_H
|
||||||
|
|
||||||
|
void drip(void);
|
||||||
|
|
||||||
|
#endif
|
0
fookb/test/foo
Normal file
0
fookb/test/foo
Normal file
7
fookb/xrmdb.h
Normal file
7
fookb/xrmdb.h
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
extern XrmDatabase cmdlineDB; /* Database for resources from command
|
||||||
|
line */
|
||||||
|
|
||||||
|
extern XrmDatabase finalDB; /* Database for resources from other
|
||||||
|
sources -- app-defaults and X
|
||||||
|
Window resources */
|
||||||
|
|
Loading…
Reference in a new issue