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:
Doug Torrance 2017-09-09 21:24:17 -04:00 committed by Carlos R. Mafra
parent 1891366919
commit c3e92fef4c
38 changed files with 8920 additions and 0 deletions

148
fookb/1.xpm Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View file

@ -0,0 +1,7 @@
***** Этот текст не дублирует файл README! *****
Если вы нашли эту программу по ссылке, приведенной в какой-либо книге (мне
таких известно две), то имейте в виду, что инструкции по компиляции и
установке fookb, приведенные в этих книгах, УСТАРЕЛИ!
Делайте все так, как написано в INSTALL.

View file

@ -0,0 +1,7 @@
***** Этот текст не дублирует файл README! *****
Если вы нашли эту программу по ссылке, приведенной в какой-либо книге (мне
таких известно две), то имейте в виду, что инструкции по компиляции и
установке fookb, приведенные в этих книгах, УСТАРЕЛИ!
Делайте все так, как написано в INSTALL.

79
fookb/Ru.xpm Normal file
View 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
View 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
View 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

Binary file not shown.

158
fookb/boom.xpm Normal file
View 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
View 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

File diff suppressed because it is too large Load diff

134
fookb/configure.in Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View file

7
fookb/xrmdb.h Normal file
View 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 */