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