linux-l: Für alle larswm-Fans...
Florian Cramer
paragram at gmx.net
Di Apr 17 18:12:25 CEST 2001
Am Tue, 17.Apr.2001 um 15:34:01 +0200 schrieb Alexander Lehmann:
> xprop
Vielen Dank! Ich habe jetzt ein kleines Perl-Script gebaut, das mit
Hilfe von xprop eine angeklickte X11-Applikation in die "dotile"-Klasse
von .larswmrc schreibt (sprich: eine X11-Applikation kachelbar macht).
Hier ist der Code:
#!/usr/bin/perl
$tempfile = "/tmp/getxclass_temp.txt";
print "Click on X application to resolve:\n";
system ("xprop > $tempfile");
open (OUTPUT, "<$tempfile") || die ("no output\n");
while (<OUTPUT>) {
if (/^WM_CLASS/) {
s/^[^"]*"([^"]+)"[^"]*"([^"]+)/\1\2/;
$classid = "$2~$1";
print "$classid\n";
}
}
close(OUTPUT);
system ("rm $tempfile");
print "Append to larswm dotile class in .larswmrc?\n";
if (<STDIN> =~ /^[yj]/i) {
open (LARSWMRC_OLD, "<.larswmrc") || die ("couldn't find .larswmrc\n");
$tempfile = "/tmp/larswmrc-new";
open (LARSWMRC_NEW, ">$tempfile") || die ("couldn't write temp file\n");
while (<LARSWMRC_OLD>) {
if (/^[\s]*larswm\.dotileclass/) {
$dotile_trigger = 1;
$dotile_count = $_; chop $dotile_count; $dotile_count =~ s/^[\s]*larswm\.dotileclass\.([0-9]+).*/\1/;
$dotile_classid = $_; chop $dotile_classid; $dotile_classid =~ s/^[^:]+:[\s]+(.*)/\1/;
push @classids, $dotile_classid;
}
else {
if ($dotile_trigger == 1 && $dotile_count < 63) {
foreach $x (@classids) {
if ($x eq $classid) {
system ("rm $tempfile");
die ("This application is already registered in the larswm 'dotile' class.\n")}
}
$dotile_count++;
print LARSWMRC_NEW "larswm.dotileclass.$dotile_count: $classid\n";
}
$dotile_trigger = 0;
}
print LARSWMRC_NEW $_;
}
system ("cp ~/.larswmrc ~/.larswmrc.bak");
system ("mv $tempfile ~/.larswmrc");
}
# eof
Mehr Informationen über die Mailingliste linux-l