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