Categories

Links

License

Creative Commons License

Unless otherwise expressly stated, all original material of whatever nature created by and included in this weblog is licensed under a Creative Commons License.

pekwm, 04.01.2004 01:28

Nachdem ich alle Kandidaten etwas getestet habe, bin ich bei pekwm hängengeblieben.

"pewkm ist ein kleiner, schneller, funktioneller und flexibler Windowmanager, der versucht nett (hübsch) zu sein während dem er klein bleibt."
So wird er in der Doku beschrieben. Er besitzt viele Features: so kann man zum Beispiel damit wie beim pwm mehrere Fenster zusammenfassen.
Das Rootmenü, welches auf die linke (!) Maustaste belegt ist, lässt sich sehr gut anpassen, da es möglich ist, die Menüeinträge dynamisch zu generieren. Dieses Feature ist ideal, um meine Wallpaper ins Menü einzubinden, ohne für jedes einen Eintrag schreiben zu müssen.
So ist ein kleines Perl-Skript entstanden, das als Parameter Verzeichnisse mit Bilddateien entgegennimmt, diese rekursiv durchsucht, die gefundenen Bilder ins Menü integriert (die Dateinamen werden noch etwas beschönigt) und ihnen mittels xsetbg eine Handlung anzufügt.

#!/usr/bin/perl
#
# 2003 by x-way - http://waterwave.ch/weblog
#
# Add this to your menu, if you have pekwm's dynamic menu support:
#
# SubMenu = "Backgrounds" {
#   Entry { Actions = "Dynamic /path/to/this/file /path/to/your/wallpapers" }
# }
#

use warnings "all";
use strict;


print("Dynamic {\n");

for(my $i = 0; $i < scalar(@ARGV); $i++) {
        my $dir = $ARGV[$i];

        opendir(DIR, "$dir") || die "Can't opendir $dir: $!";
        my @backgrounds = grep { (! /^\./) } readdir(DIR);
        closedir DIR; 

        foreach my $x (@backgrounds) {
                my $y = $x;
                $y =~ s+.*/++g;

                if(! -d "$dir/$x") {
                        $y =~ s/\..*$//g;
                        $y =~ s/_[0-9]{3,4}x[0-9]{3,4}//g;
                        print("Entry = \"$y\" { Actions = \"Exec xsetbg -center $dir/$x \" }\n");
                } else {
                        print("Submenu = \"$y\" {\nEntry { Actions = \"Dynamic $0 $dir/$x\" }\n}");
                }
        }
}

print("}\n");

blog comments powered by Disqus