blackbox

Witold Filipczyk juandon w poczta.onet.pl
Sob, 2 Mar 2002, 19:44:43 CET


Napisałem programik do generowania "menu" dla blackboxa.
W Perlu mi się najłatwiej pisze.
Podaje mu się jako parametr katalog do plików .desktop,
zwykle /usr/X11R6/share/applnk
Programik można uskutecznić (jakąś lokalizację trzeba by zrobić).

BTW, driver do s3 działał lepiej w 4.1.0-cośtam.
W 4.2.0 po przejściu na konsolę i powrocie do graficznego screen się
kurczy.
Wystarczy podmienić driver (po przekopiowaniu starego działa lepiej).

WF
-------------- następna część ---------
#!/usr/bin/perl

sub parse_desktop {

	open DESK, $_[0];
	while ($line=<DESK>) {
		($attr,$value) = split '=', $line;
		chomp $value;
		$hasz{$attr}=$value;
	}
	close DESK;
	if ($hasz{Terminal} == 1) {
		$hasz{Exec} = "xterm -e $hasz{Exec}";
	}
	return "[exec] ($hasz{Name}) {$hasz{Exec}}\n";
}

sub parse_directory {
	
	local $wynik='';	
	local $a;
	local $file;
		
	opendir DIRECTORY, $_[0] or return $wynik;
	local @allfiles = grep !/^\./, readdir DIRECTORY;

	foreach $file (@allfiles) {
		if (-d "$_[0]/$file") {
			$a = parse_directory("$_[0]/$file");
			if ($a) {
				$wynik = $wynik . "[submenu] ($file)\n" . $a . "[end]\n";
			}
		}
	}
	
	foreach $file (@allfiles) {
		if ( -f "$_[0]/$file" ) {
			$a = parse_desktop("$_[0]/$file");
			$wynik = $wynik . $a;
		}
	}	
	return $wynik;
}

$b = '';
open PLIK, "$ARGV[0]/.order";
@lista = <PLIK>;
close PLIK;

foreach $f (@lista) {
	chomp $f;
	$a = parse_directory("$ARGV[0]/$f");
	if ($a) {
		$b = $b . "[submenu] ($f)\n" . $a . "[end]\n";
	}
}
print "[begin] (Menu)\n$b";
print "[nop]\n[stylesmenu] (Blackbox Styles) {/usr/X11R6/share/blackbox/styles}\n";
print "[config] (Config Options)\n";
print "[reconfig] (Reconfigure)\n";
print "[restart] (Restart)\n";
print "[exit] (Exit)\n[end]\n";


Więcej informacji o liście dyskusyjnej pld-devel-pl