Pekwm is a young WindowManager that aims to be lean and mean and look attractive at the same time, without being sold on EyeCandy at the cost of Bloat. Features include:

  • grouping windows in a single frame à la PWM
  • keygrabber with keychains support
  • configurable mouse actions
  • configurable root and window menu
  • Xinerama support
  • configurable window placement policy
  • basic pixmap theming
  • autoprops, ie rules to automatically set window properties such as stickiness, decorations, grouping etc
  • dynamic menus regenerated on every view by parsing the output of external programs

The WindowManager also has basic support for WindowMaker dock applications.

With all of this, it still attempts to concentrate on its task, and not offer features that can be had by way of using external tools.

See also:


Try putting this in your window menu definition

Entry = "Info" {

Actions = "Exec \

ID=\$( xprop -root '\$0' _NET_ACTIVE_WINDOW | cut -f2 -d ) \ ( \

xprop -id \$ID \ echo '--------------------' \ xwininfo -id \$ID | tail +4 \

) | xmessage -center -buttons close -title 'xprop / xwininfo' -file - &"


This will give you a new window menu entry called Info which brings up a box with the information and properties of the associated window.

Recursive Dynamic Wallpaper Menu

Here's one to do a recursive, dynamic wallpaper menu. I found this searching google and then modified it to use feh so that I can maintain wallpapers across sessions. Here's the script
  1. /usr/bin/perl


  1. Script Based on the script Copyright © 2003 by the pekwm
  2. development team. Small bits added/changed to show wallpapers by Rds
  3. Recursive and link bit added by Enrique < > with
  4. the help of linux_weenie.


  1. Add this to your menu, if you have pekwm's dynamic menu support:


  1. SubMenu? = "Backgrounds" {

  2. Entry = "" {
  3. Actions = "Dynamic /path/to/this/file /path/to/wallpapers"
  4. }
  5. }


  1. This script uses feh to set the wallpaper by default. You may have to modify
  2. this. If you use feh, you can get wallpapers persistent across sessions by
  3. adding the following line to your /.pekwm/start file:


  1. source /.fehbg


use warnings "all"; use strict;

my $paper_changer = "feh --bg-scale";

if (scalar(@ARGV) == 1) { # Specifying a directory

print("Dynamic {\n"); &listpic($ARGV[0?); # Call the subroutines with the dir as arg print("}\n");


sub listpic {

my $dir = $_[0?;

opendir(DIR, "$dir") || die "Can't opendir $dir: $!"; my @papers = readdir(DIR); # Put all files/dirs into the @papers array closedir DIR;

foreach my $x (@papers) {

if(-d "$dir/$x" && !("." = /$x/ || ".." = /$x/)) {

  1. Run recursively through all sub directories

print("Submenu = \"$x\" {\n"); &listpic("$dir/$x"); print("}\n");

} elsif (!-d "$dir/$x") {

my @file = grep { (! /^\./) && ( /^.*\.[pPjJgG?[nNpPiI?[gGfF?/ )} $x; print("Entry = \"@file\" { Actions = \"Exec $paper_changer $dir/@file\" }\n");




Put the following in your pekwm menu

Submenu = "Wallpapers" {

Entry { Actions = "Dynamic /path/to/wallpapers/" }



Part of CategoryWindowManager

The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • JayBromley
The following authors of this page have agreed to the WlugWikiLicense.

PHP Warning

lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href=''></a>]: Wrong datatype for second argument

lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href=''></a>]: Wrong datatype for second argument