SEARCH

Enter your search query in the box above ^, or use the forum search tool.

You are not logged in.

#1 2009-12-04 15:25:46

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

PeKwm on crunchbang linux system

hi #!ers,
i'd like to share my experience with PeKwm, a little window manager.... blablabla... i'm not gonna reproduce all the wonderful doc pages that you could find on the web:

my purpose is : i've discovered PeKwm, i like it, but it's a little complex to use the first time (first time is always 'délicat') , so i'll share my config:)
as you can see in many docs about PeK, all is done with config files placed in your ~/.pekwm folder, so not so far from openbox... but no obconf, neither obmenu... ...like #!7.10, you have to tweak a lot :D
first, screens, n1 with greyarp gtk theme, second one with xfce4.4 gtk theme
and yes, it handles xcompmgr better than openbox on my system...( don't know why)
pekarp_setup_test1_by_arpinux.png  pekarp_setup_test2_by_arpinux.png
full view                                                               full view

as you could see, no taskbar, no panel, no icons on desktop and a right-click menu on desktop :)
so, if you're here, i hope you've already took a look at pekwm doc, on main page & on ubuntu forums.... i hope so because i'm not gonna explain everything :D i'll just show:

let's start with the ~/.pekwm/start file :P

#!/bin/sh
# PekWM start file
# This file is a simple shell script; It gets run on pekwm startup, after 
# the theme and all config has loaded if it is set executable
# (chmod +x start).
#
# This is different from ~/.xinitrc because a normal configuration of 
# .xinitrc you'll run all commands, then launch the window manager last.
#
# It also gets re-run every time pekwm is restarted.
# 
# As for it's usefulness, well, it's up to you. I actually set my background
# from my start file; since it runs after the theme gets loaded, this 
# effectively overrides whatever's in the theme.
# 
# There's probably a few other good uses for it, too. I mainly pushed for it
# because when I was doing fluxbox's docs, people used to complain that there
# wasn't one, and I wanted to avoid that for pekwm. ;) --eyez

# Enable power management
gnome-power-manager --sm-disable &

# Enable auto-mounting
thunar --daemon &

# Set desktop wallpaper
nitrogen --set-scaled ~/.pekwm/pek_background.png &

# Enable Eyecandy - off by default
(sleep 4s && xcompmgr -c -t-5 -l-5 -r4.2 -o.55) &

# Launch network manager applet
(sleep 4s && nm-applet) &

# Launch clipboard manager
parcellite &

# Launch Conky
conky -q -c ~/.pekwm/pek_conkyrc &

# Launch panel
tint2 -c ~/.pekwm/pek_tint2rc &

# Launch notes
xpad &

the start file has the same function as our ~/.config/openbox/autostart.sh.  a little difference with openbox: the start file is reread each time you select 'restart' from the pekwm menu (so don't put firefox or you'll see a new instance of firefox each time you 'restart' pekwm...) . nothing special more to say.

let's continue with the 'config' file, the equivalent to our ~/.config/openbox.rc.xml (but a simple version, because in PeK, some properties are set in the 'menu' & 'autoproperties' files.)
it's where you can set your workspace number/names, the path of your config files ( default is ~/.pekwm)

Files {
    Keys = "~/.pekwm/keys"
    Mouse = "~/.pekwm/mouse"
    Menu = "~/.pekwm/menu"
    Start = "~/.pekwm/start"
    AutoProps = "~/.pekwm/autoproperties"
    Theme = "~/.pekwm/themes/Pekarp"
    Icons = "~/.pekwm/icons/"
}

MoveResize {
    EdgeAttract = "10"
    EdgeResist = "10"
    WindowAttract = "5"
    WindowResist = "5"
    OpaqueMove = "True"
    OpaqueResize = "False"
}

Screen {
    Workspaces = "6"
    WorkspacesPerRow = "0"
    WorkspaceNames = "Main;Web;View;Music;Graph;Admin"
    ShowFrameList = "True"
    ShowStatusWindow = "False"
    ShowStatusWindowCenteredOnRoot = "False"
    ShowClientID = "False"
    ShowWorkspaceIndicator = "500"
    PlaceNew = "True"
    FocusNew = "True"

    TrimTitle = "..."
    FullscreenAbove = "True"
    FullscreenDetect = "True"
    HonourRandr = "True"
    HonourAspectRatio = "True"
    EdgeSize = "1 1 1 1"
    EdgeIndent = "False"
    PixmapCacheSize = "20"
    DoubleClickTime = "250"

    Placement {
        Model = "CenteredOnParent Smart MouseNotUnder"
        Smart {
            Row = "True"
            TopToBottom = "True"
            LeftToRight = "True"
            OffsetX = "0"
            OffsetY = "0"
        }
    }

    UniqueNames  {
        SetUnique = "False"
        Pre = " #"
        Post = ""
    }
}

Menu {
    DisplayIcons = "True"

    Icons = "DEFAULT" {
        Minimum = "16x16"
        Maximum = "16x16"
    }

    # To enable make separate window have other icon size restrictions,
    # for example wallpaper menu found in pekwm_menu_tools, set the following
    # for each menu you want to "free".

    # Icons = "Wallpaper" {
    #     Minimum = "64x64"
    #     Maximum = "64x64"
    # }

    # Defines how menus act on mouse input.
    # Possible values are: "ButtonPress ButtonRelease DoubleClick Motion"
    # To make submenus open on mouse over, comment the default Enter,
    # uncomment the alternative, and reload pekwm.
    
    Select = "Motion MotionPressed"
    # Enter = "MotionPressed ButtonPress"
    Enter = "Motion"
    Exec = "ButtonRelease"
}

CmdDialog {
    HistoryUnique = "True"
    HistorySize = "1024"
    HistoryFile = "~/.pekwm/history"
    HistorySaveInterval = "16"
}

Harbour {
    OnTop = "True"
    MaximizeOver = "False"
    Placement = "Right"
    Orientation = "TopToBottom"
    Head = "0"

    DockApp {
        SideMin = "64"
        SideMax = "0"
    }
}

if you want to speed up a little your system, you can replace

    OpaqueMove = "True"

by

    OpaqueMove = "False"

and

    DisplayIcons = "True"

by

    DisplayIcons = "False"

and now, the 'keys' file, where you set your shortcuts.
PeKwm support keybindings & 'chain bindings' which means that you can execute a script/apps with a keybinding (like in openbox) but you can also use 'keychain': ie you press [Ctrl]+[Alt]+[M](for Menu), then release , then when you press [R] and you've got the RootMenu, if you press [W], you've got WindowMenu...
it's a little complicated but i'll give you mine. i made the first section to fit to our usual openbox keybindings.
be careful : think to comment lines in conflict as i made. (ie Keypress = Mod1 Ctrl c = conkywonky but Keychain Mod1 Ctrl c = corners keybindings so you have to comment one section or change the Keypress/Keychain)

INCLUDE = "vars"

Global {
# - - ----------------------------------------------- - -
# Simple bindings to most frequently used actions.
#
# Adding your own frequently used actions is easy -
# just copy it over from CHAINS and edit the keypress!
    #Arp Crunch Apps
    Keypress = "Mod1 F2" { Actions = "ShowCmdDialog" }
    Keypress = "Mod1 F3" { Actions = "Exec ~/.pekwm/scripts/dmenu-bind.sh &" }
    Keypress = "Mod1 f" { Actions = "Exec rox-filer &" }
    Keypress = "Mod1 t" { Actions = "Exec roxterm &" }
    Keypress = "Mod1 m" { Actions = "Exec roxterm -e mocp -T transparent-background &" }
    Keypress = "Mod1 g" { Actions = "Exec gimp &" }
    Keypress = "Mod1 e" { Actions = "Exec gedit &" }
    Keypress = "Mod1 w" { Actions = "Exec firefox &" }
    Keypress = "Mod1 v" { Actions = "Exec gnome-volume-control &" }
    Keypress = "Mod1 h" { Actions = "Exec thunar &" }
    Keypress = "Ctrl Mod1 c" { Actions = "Exec ~/.pekwm/pek_conkywonky &" }
    Keypress = "Ctrl Mod1 p" { Actions = "Exec ~/.pekwm/pek_tintwonky &" }
    Keypress = "Ctrl Mod1 g" { Actions = "Exec /home/arp/bin/cb_screenshot/cb_screenshot &" }
    KeyPress = "Print" { Actions = "Exec scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f' &"}
    KeyPress = "Mod1 Print" { Actions = "Exec scrot -d 10 '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f' &"}
    
    # Moving in frames
    KeyPress = "Mod1 Tab" { Actions = "NextFrameMRU EndRaise" }
    KeyPress = "Mod1 Shift Tab" { Actions = "PrevFrameMRU EndRaise" }
    KeyPress = "Mod1 Ctrl Tab" { Actions = "NextFrameMRU EndRaise" }
    KeyPress = "Mod1 Ctrl Shift Tab" { Actions = "PrevFrameMRU EndRaise" }
    KeyPress = "Mod4 Tab" { Actions = "ActivateClientRel 1" }
    KeyPress = "Mod4 Shift Tab" { Actions = "ActivateClientRel -1" }
    KeyPress = "Mod4 Ctrl Right" { Actions = "MoveClientRel 1" }
    KeyPress = "Mod4 Ctrl Left" { Actions = "MoveClientRel -1" }
    KeyPress = "Mod4 Left" { Actions = "FocusDirectional Left" }
    KeyPress = "Mod4 Right" { Actions = "FocusDirectional Right" }
    KeyPress = "Mod4 Up" { Actions = "FocusDirectional Up" }
    KeyPress = "Mod4 Down" { Actions = "FocusDirectional Down" }
    # Moving in workspaces
    KeyPress = "Ctrl Mod1 Left" { Actions = "GotoWorkspace Left" }
    KeyPress = "Ctrl Mod1 Right" { Actions = "GotoWorkspace Right" }
    KeyPress = "Ctrl Mod1 Up" { Actions = "GotoWorkspace Up" }
    KeyPress = "Ctrl Mod1 Down" { Actions = "GotoWorkspace Down" }
    KeyPress = "Mod4 1" { Actions = "GotoWorkspace 1" }
    KeyPress = "Mod4 2" { Actions = "GotoWorkspace 2" }
    KeyPress = "Mod4 3" { Actions = "GotoWorkspace 3" }
    KeyPress = "Mod4 4" { Actions = "GotoWorkspace 4" }
    KeyPress = "Mod4 5" { Actions = "GotoWorkspace 5" }
    KeyPress = "Mod4 6" { Actions = "GotoWorkspace 6" }
    KeyPress = "Mod4 7" { Actions = "GotoWorkspace 7" }
    KeyPress = "Mod4 8" { Actions = "GotoWorkspace 8" }
    KeyPress = "Mod4 9" { Actions = "GotoWorkspace 9" }
    KeyPress = "Ctrl Mod1 Shift Left" { Actions = "SendToWorkspace Next; GoToWorkspace Next" }
    KeyPress = "Ctrl Mod1 Shift Right" { Actions = "SendToWorkspace Prev; GoToWorkspace Prev" }
    KeyPress = "Ctrl Mod1 Shift Up" { Actions = "SendToWorkspace NextV; GoToWorkspace NextV" }
    KeyPress = "Ctrl Mod1 Shift Down" { Actions = "SendToWorkspace PrevV; GoToWorkspace PrevV" }
    KeyPress = "Mod4 F1" { Actions = "SendToWorkspace 1" }
    KeyPress = "Mod4 F2" { Actions = "SendToWorkspace 2" }
    KeyPress = "Mod4 F3" { Actions = "SendToWorkspace 3" }
    KeyPress = "Mod4 F4" { Actions = "SendToWorkspace 4" }
    KeyPress = "Mod4 F5" { Actions = "SendToWorkspace 5" }
    KeyPress = "Mod4 F6" { Actions = "SendToWorkspace 6" }
    KeyPress = "Mod4 F7" { Actions = "SendToWorkspace 7" }
    KeyPress = "Mod4 F8" { Actions = "SendToWorkspace 8" }
    KeyPress = "Mod4 F9" { Actions = "SendToWorkspace 9" }
    # Simple window management
    KeyPress = "Mod4 M" { Actions = "Toggle Maximized True True" }
    KeyPress = "Mod4 G" { Actions = "Maxfill True True" }
    KeyPress = "Mod4 F" { Actions = "Toggle FullScreen" }
    KeyPress = "Mod4 Return" { Actions = "MoveResize" }
    KeyPress = "Mod4 Q" { Actions = "Close" }
    KeyPress = "Mod4 S" { Actions = "Toggle Shaded" }
    KeyPress = "Mod4 I" { Actions = "Toggle Iconified" }
    # Marking
    KeyPress = "Mod4 Z" { Actions = "Toggle Marked" }
    KeyPress = "Mod4 A" { Actions = "AttachMarked" }
    # Tagging
    KeyPress = "Mod4 T" { Actions = "Toggle Tagged False" }
    # Menus
    KeyPress = "Mod4 R" { Actions = "ShowMenu Root" }
    KeyPress = "Mod4 W" { Actions = "ShowMenu Window" }
    KeyPress = "Mod4 L" { Actions = "ShowMenu Goto" }
    KeyPress = "Mod4 C" { Actions = "ShowMenu GotoClient" }
    KeyPress = "Mod4 Shift I" { Actions = "ShowMenu Icon" }
    KeyPress = "Mod4 X" { Actions = "HideAllMenus" }
    # External Commands
    KeyPress = "Mod4 E" { Actions = "Exec $TERM" }
    # Pekwm control
    KeyPress = "Ctrl Mod1 Delete" { Actions = "Reload" }
    KeyPress = "Mod4 D" { Actions = "ShowCmdDialog" }
    KeyPress = "Mod4 H" { Actions = "Toggle HarbourHidden" }

# - - ----------------------------------------------- - -
# CHAINS. These give you access to just about everything.
    # Move to Corner
#    Chain = "Ctrl Mod1 C" {
#        KeyPress = "Q" { Actions = "MoveToEdge TopLeft" }
#        KeyPress = "Y" { Actions = "MoveToEdge TopCenterEdge" }
#        KeyPress = "W" { Actions = "MoveToEdge TopCenterEdge" }
#        KeyPress = "Shift Y" { Actions = "MoveToEdge TopEdge" }
#        KeyPress = "Shift W" { Actions = "MoveToEdge TopEdge" }
#        KeyPress = "P" { Actions = "MoveToEdge TopRight" }
#        KeyPress = "E" { Actions = "MoveToEdge TopRight" }
#        KeyPress = "A" { Actions = "MoveToEdge LeftCenterEdge" }
#        KeyPress = "Shift A" { Actions = "MoveToEdge LeftEdge" }
#        KeyPress = "L" { Actions = "MoveToEdge RightCenterEdge" }
#        KeyPress = "D" { Actions = "MoveToEdge RightCenterEdge" }
#        KeyPress = "Shift L" { Actions = "MoveToEdge RightEdge" }
#        KeyPress = "Shift D" { Actions = "MoveToEdge RightEdge" }
#        KeyPress = "Z" { Actions = "MoveToEdge BottomLeft" }
#        KeyPress = "B" { Actions = "MoveToEdge BottomCenterEdge" }
#        KeyPress = "X" { Actions = "MoveToEdge BottomCenterEdge" }
#        KeyPress = "Shift B" { Actions = "MoveToEdge BottomEdge" }
#        KeyPress = "Shift X" { Actions = "MoveToEdge BottomEdge" }
#        KeyPress = "M" { Actions = "MoveToEdge BottomRight" }
#        KeyPress = "C" { Actions = "MoveToEdge BottomRight" }
#        KeyPress = "H" { Actions = "MoveToEdge Center" }
#        KeyPress = "S" { Actions = "MoveToEdge Center" }
#    }
    # Menus
    Chain = "Ctrl Mod1 M" {
        KeyPress = "R" { Actions = "ShowMenu Root" }
        KeyPress = "W" { Actions = "ShowMenu Window" }
        KeyPress = "I" { Actions = "ShowMenu Icon" }
        KeyPress = "G" { Actions = "ShowMenu Goto" }
        KeyPress = "C" { Actions = "ShowMenu GotoClient" }
        KeyPress = "D" { Actions = "ShowMenu Decor" }
        KeyPress = "A" { Actions = "ShowMenu AttachClientInFrame" }
        KeyPress = "F" { Actions = "ShowMenu AttachFrameInFrame" }
        Keypress = "Shift A" { Actions = "ShowMenu AttachClient" }
        Keypress = "Shift F" { Actions = "ShowMenu AttachFrame" }
        KeyPress = "X" { Actions = "HideAllMenus" }
    }
    # Grouping
    Chain = "Ctrl Mod1 T" {
        KeyPress = "T" { Actions = "Toggle Tagged False" }
        KeyPress = "B" { Actions = "Toggle Tagged True" }
        KeyPress = "C" { Actions = "Unset Tagged" }
        KeyPress = "G" { Actions = "Toggle GlobalGrouping" }
        KeyPress = "M" { Actions = "Toggle Marked" }
        KeyPress = "A" { Actions = "AttachMarked" }
        KeyPress = "D" { Actions = "Detach" }
        Keypress = "P" { Actions = "AttachClientInNextFrame" }
        KeyPress = "O" { Actions = "AttachClientInPrevFrame" }
        Keypress = "I" { Actions = "AttachFrameInNextFrame" }
        KeyPress = "U" { Actions = "AttachFrameInPrevFrame" }
    }
    # Decor Toggles
    Chain = "Ctrl Mod1 D" {
        KeyPress = "B" { Actions = "Toggle DecorBorder" }
        KeyPress = "T" { Actions = "Toggle DecorTitlebar" }
        KeyPress = "D" { Actions = "Toggle DecorBorder; Toggle DecorTitlebar" }
    }
    # Window Actions
    Chain = "Ctrl Mod1 A" {
        Chain = "G" {
            KeyPress = "G" { Actions = "MaxFill True True" }
            KeyPress = "V" { Actions = "MaxFill False True" }
            KeyPress = "H" { Actions = "MaxFill True False" }
        }
        Chain = "M" {
            KeyPress = "M" { Actions = "Toggle Maximized True True" }
            KeyPress = "V" { Actions = "Toggle Maximized False True" }
            KeyPress = "H" { Actions = "Toggle Maximized True False" }
        }
        Chain = "Q" {
            KeyPress = "Q" { Actions = "Close" }
            KeyPress = "F" { Actions = "CloseFrame" }
            KeyPress = "K" { Actions = "Kill" }
        }
        KeyPress = "S" { Actions = "Toggle Shaded" }
        KeyPress = "A" { Actions = "Toggle Sticky" }
        KeyPress = "O" { Actions = "Toggle AlwaysOnTop" }
        KeyPress = "B" { Actions = "Toggle AlwaysBelow" }
        KeyPress = "I" { Actions = "Set Iconified" }
        KeyPress = "R" { Actions = "Raise" }
        KeyPress = "Shift R" { Actions = "Raise True" }
        KeyPress = "L" { Actions = "Lower" }
        KeyPress = "Shift L" { Actions = "Lower True" }
        KeyPress = "X" { Actions = "ActivateOrRaise" }
        KeyPress = "Return" { Actions = "MoveResize" }
        KeyPress = "F" { Actions = "Toggle Fullscreen" }
        KeyPress = "Left" { Actions = "GrowDirection Left" }
        KeyPress = "Right" { Actions = "GrowDirection Right" }
        KeyPress = "Up" { Actions = "GrowDirection Up" }
        KeyPress = "Down" { Actions = "GrowDirection Down" }
    }
    # Moving in Frames
    Chain = "Ctrl Mod1 F" {
        KeyPress = "P" { Actions = "NextFrame AlwaysRaise" }
        KeyPress = "O" { Actions = "PrevFrame AlwaysRaise" }
        KeyPress = "Shift P" { Actions = "NextFrameMRU EndRaise" }
        KeyPress = "Shift O" { Actions = "PrevFrameMRU EndRaise" }
        KeyPress = "I" { Actions = "ActivateClientRel 1" }
        KeyPress = "U" { Actions = "ActivateClientRel -1" }
        KeyPress = "Shift I" { Actions = "MoveClientRel 1" }
        KeyPress = "Shift U" { Actions = "MoveClientRel -1" }
        KeyPress = "Up" { Actions = "FocusDirectional Up" }
        KeyPress = "Down" { Actions = "FocusDirectional Down" }
        KeyPress = "Left" { Actions = "FocusDirectional Left" }
        Keypress = "Right" { Actions = "FocusDirectional Right" }
        KeyPress = "1" { Actions = "ActivateClientNum 1" }
        KeyPress = "2" { Actions = "ActivateClientNum 2" }
        KeyPress = "3" { Actions = "ActivateClientNum 3" }
        KeyPress = "4" { Actions = "ActivateClientNum 4" }
        KeyPress = "5" { Actions = "ActivateClientNum 5" }
        KeyPress = "6" { Actions = "ActivateClientNum 6" }
        KeyPress = "7" { Actions = "ActivateClientNum 7" }
        KeyPress = "8" { Actions = "ActivateClientNum 8" }
        KeyPress = "9" { Actions = "ActivateClientNum 9" }
        KeyPress = "0" { Actions = "ActivateClientNum 10" }
        KeyPress = "C" { Actions = "ShowCmdDialog GotoClientID " }
    }
    # Workspaces
    Chain = "Ctrl Mod1 W" {
        KeyPress = "Right" { Actions = "GoToWorkspace Right" }
        KeyPress = "Left" { Actions = "GoToWorkspace Left" }
        KeyPress = "N" { Actions = "GoToWorkspace Next" }
        KeyPress = "P" { Actions = "GoToWorkspace Prev" }
        KeyPress = "1" { Actions = "GoToWorkspace 1" }
        KeyPress = "2" { Actions = "GoToWorkspace 2" }
        KeyPress = "3" { Actions = "GoToWorkspace 3" }
        KeyPress = "4" { Actions = "GoToWorkspace 4" }
        KeyPress = "5" { Actions = "GoToWorkspace 5" }
        KeyPress = "6" { Actions = "GoToWorkspace 6" }
        KeyPress = "7" { Actions = "GoToWorkspace 7" }
        KeyPress = "8" { Actions = "GoToWorkspace 8" }
        KeyPress = "9" { Actions = "GoToWorkspace 9" }
        KeyPress = "Up" { Actions = "SendToWorkspace Next; GoToWorkspace Next" }
        KeyPress = "Down" { Actions = "SendToWorkspace Prev; GoToWorkspace Prev" }
        KeyPress = "F1" { Actions = "SendToWorkspace 1" }
        KeyPress = "F2" { Actions = "SendToWorkspace 2" }
        KeyPress = "F3" { Actions = "SendToWorkspace 3" }
        KeyPress = "F4" { Actions = "SendToWorkspace 4" }
        KeyPress = "F5" { Actions = "SendToWorkspace 5" }
        KeyPress = "F6" { Actions = "SendToWorkspace 6" }
        KeyPress = "F7" { Actions = "SendToWorkspace 7" }
        KeyPress = "F8" { Actions = "SendToWorkspace 8" }
        KeyPress = "F9" { Actions = "SendToWorkspace 9" }
    }
    # External commands
    Chain = "Ctrl Mod1 E" {
        KeyPress = "E" { Actions = "Exec $TERM" }
        KeyPress = "L" { Actions = "Exec xlock -mode blank &" }
        KeyPress = "S" { Actions = "Exec scrot &" }
        KeyPress = "C" { Actions = "ShowCmdDialog" }
    }
    # Wm actions
#    Chain = "Ctrl Mod1 P" {
#        KeyPress = "Delete" { Actions = "Reload" }
#        KeyPress = "Next" { Actions = "Restart" }
#        KeyPress = "End" { Actions = "Exit" }
#        KeyPress = "Prior" { Actions = "RestartOther twm" }
#        KeyPress = "D" { Actions = "ShowCmdDialog" }
#        KeyPress = "H" { Actions = "Toggle HarbourHidden" }
#    }
    # Skipping
    Chain = "Ctrl Mod1 S" {
        Keypress = "M" { Actions = "Toggle Skip Menus" }
        Keypress = "F" { Actions = "Toggle Skip FocusToggle" }
        Keypress = "S" { Actions = "Toggle Skip Snap" }
    }
}

# Keys when MoveResize is active
MoveResize {
    KeyPress = "Left" { Actions = "MoveHorizontal -10" }
    KeyPress = "Right" { Actions = "MoveHorizontal 10" }
    KeyPress = "Up" { Actions = "MoveVertical -10" }
    KeyPress = "Down" { Actions = "MoveVertical 10" }
    Keypress = "Shift Left" { Actions = "MoveHorizontal -1" }
    Keypress = "Shift Right" { Actions = "MoveHorizontal 1" }
    Keypress = "Shift Up" { Actions = "MoveVertical -1" }
    Keypress = "Shift Down" { Actions = "MoveVertical 1" }
    Keypress = "Mod4 Left" { Actions = "ResizeHorizontal -10" }
    Keypress = "Mod4 Right" { Actions = "ResizeHorizontal 10" }
    Keypress = "Mod4 Up" { Actions = "ResizeVertical -10" }
    Keypress = "Mod4 Down" { Actions = "ResizeVertical 10" }
    Keypress = "Mod1 Left" { Actions = "ResizeHorizontal -10" }
    Keypress = "Mod1 Right" { Actions = "ResizeHorizontal 10" }
    Keypress = "Mod1 Up" { Actions = "ResizeVertical -10" }
    Keypress = "Mod1 Down" { Actions = "ResizeVertical 10" }
    Keypress = "Shift Mod4 Left" { Actions = "ResizeHorizontal -1" }
    Keypress = "Shift Mod4 Right" { Actions = "ResizeHorizontal 1" }
    Keypress = "Shift Mod4 Up" { Actions = "ResizeVertical -1" }
    Keypress = "Shift Mod4 Down" { Actions = "ResizeVertical 1" }
    Keypress = "Shift Mod1 Left" { Actions = "ResizeHorizontal -1" }
    Keypress = "Shift Mod1 Right" { Actions = "ResizeHorizontal 1" }
    Keypress = "Shift Mod1 Up" { Actions = "ResizeVertical -1" }
    Keypress = "Shift Mod1 Down" { Actions = "ResizeVertical 1" }
    Keypress = "s" { Actions = "MoveSnap" }
    Keypress = "Escape" { Actions = "Cancel" }
    Keypress = "q" { Actions = "Cancel" }
    Keypress = "Return" { Actions = "End" }
}

# Keys for CmdDialog editing
InputDialog {
    KeyPress = "Left" { Actions = "CursPrev" }
    KeyPress = "Right" { Actions = "CursNext" }
    KeyPress = "Ctrl A" { Actions = "CursBegin" }
    KeyPress = "Ctrl E" { Actions = "CursEnd" }
    KeyPress = "BackSpace" { Actions = "Erase;CompleteAbort" }
    KeyPress = "Ctrl K" { Actions = "ClearFromCursor" }
    KeyPress = "Ctrl C" { Actions = "Clear" }
    KeyPress = "Return" { Actions = "Exec" }
    KeyPress = "Escape" { Actions = "Close" }
    KeyPress = "Up" { Actions = "HistPrev" }
    KeyPress = "Down" { Actions = "HistNext" }
    KeyPress = "Ctrl P" { Actions = "HistPrev" }
    KeyPress = "Ctrl N" { Actions = "HistNext" }
        KeyPress = "Ctrl B" { Actions = "CursPrev" }
        KeyPress = "Ctrl F" { Actions = "CursNext" }
        KeyPress = "Tab" { Actions = "Complete" }
    KeyPress = "Any Any" { Actions = "Insert" }
}

# Keys working in menus
Menu {
    KeyPress = "Down" { Actions = "NextItem" }
    KeyPress = "Up" { Actions = "PrevItem" }
    KeyPress = "Ctrl N" { Actions = "NextItem" }
    KeyPress = "Ctrl P" { Actions = "PrevItem" }
    KeyPress = "Left" { Actions = "LeaveSubmenu" }
    KeyPress = "Right" { Actions = "EnterSubmenu" }
    KeyPress = "Return" { Actions = "Select" }
    KeyPress = "space" { Actions = "Select" }
    KeyPress = "Escape" { Actions = "Close" }
    KeyPress = "Q" { Actions = "Close" }
}

the 'keys' file is completed by the 'mouse' file
it's where i've put the transparency tips from openbox (herefrom another me :P )

FrameTitle {
    ButtonRelease = "1" { Actions = "Raise; Focus; ActivateClient" }
    ButtonRelease = "Mod1 1" { Actions = "Focus; Raise" }
    ButtonRelease = "Mod4 1" { Actions = "Focus; Raise" }
    ButtonRelease = "2" { Actions = "ActivateClient" }
    ButtonRelease = "Mod4 3" { Actions = "Close" }
    ButtonRelease = "3" { Actions = "ShowMenu Window" }
    ButtonRelease = "4" { Actions = "ActivateClientRel 1" }
    ButtonRelease = "5" { Actions = "ActivateClientRel -1" }
    ButtonRelease = "Mod1 4" { Actions = "SendToWorkspace Next; GotoWorkspace Next" }
    ButtonRelease = "Mod1 5" { Actions = "SendToWorkspace Prev; GotoWorkspace Prev" }
    ButtonRelease = "Mod1 Shift 4" { Actions = "SendToWorkspace PrevV; GotoWorkspace PrevV" }
    ButtonRelease = "Mod1 Shift 5" { Actions = "SendToWorkspace NextV; GotoWorkspace NextV" }
    ButtonRelease = "Ctrl 4" { Actions = "MoveClientRel 1" }
    ButtonRelease = "Ctrl 5" { Actions = "MoveClientRel -1" }
    ButtonRelease = "Ctrl Mod1 1" { Actions = "Focus; Raise True" }
    DoubleClick = "2" { Actions = "Toggle Shaded" }
    DoubleClick = "Mod1 2" { Actions = "Toggle Shaded" }
    DoubleClick = "1" { Actions = "MaxFill True True" }
    DoubleClick = "Mod1 1" { Actions = "Toggle Maximized True True" }
    Motion = "1" { Threshold = "4"; Actions = "Raise; Move" }
    Motion = "Mod1 1" { Threshold = "4"; Actions = "Raise; Move" }
    Motion = "Mod4 1" { Threshold = "4"; Actions = "Raise; Move" }
    Motion = "2" { Threshold = "4"; Actions = "GroupingDrag True" }
    Motion = "Mod1 3" { Actions = "Resize" }
    # Remove the following line if you want to use click to focus.
    Enter = "Any Any" { Actions = "Focus" }
}

OtherTitle {
    ButtonRelease = "1" { Actions = "Raise; Focus" }
    ButtonRelease = "2" { Actions = "Focus" }
    ButtonRelease = "3" { Actions = "Close" }
    ButtonRelease = "Mod4 3" { Actions = "ShowMenu Window" }
    ButtonRelease = "Mod1 4" { Actions = "SendToWorkspace Next; GotoWorkspace Next" }
    ButtonRelease = "Mod1 5" { Actions = "SendToWorkspace Prev; GotoWorkspace Prev" }
    ButtonRelease = "Mod1 Shift 4" { Actions = "SendToWorkspace PrevV; GotoWorkspace PrevV" }
    ButtonRelease = "Mod1 Shift 5" { Actions = "SendToWorkspace NextV; GotoWorkspace NextV" }
    Motion = "1" { Threshold = "4"; Actions = "Raise; Move" }
    Motion = "Mod1 1" { Threshold = "4"; Actions = "Raise; Move" }
    Motion = "Mod4 1" { Threshold = "4"; Actions = "Raise; Move" }
    # Remove the following line if you want to use click to focus.
    Enter = "Any Any" { Actions = "Focus" }
}

Border {
    TopLeft {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize TopLeft" } }
    Top {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize Top" } }
    TopRight {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize TopRight" } }
    Left {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize Left" } }
    Right {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize Right" } }
    BottomLeft {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize BottomLeft" } }
    Bottom {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize Bottom" } }
    BottomRight {
        # Remove the following line if you want to use click to focus.
        Enter = "Any Any" { Actions = "Focus" }
        ButtonPress = "1" { Actions = "Focus; Resize BottomRight" } }
}

ScreenEdge {
    Down {
        ButtonRelease = "3" { Actions = "ShowMenu Root" }
        ButtonRelease = "2" { Actions = "ShowMenu Goto" }
        ButtonRelease = "Mod4 2" { Actions = "ShowMenu GotoClient" }
        ButtonRelease = "4" { Actions = "GoToWorkspace Right" }
        ButtonRelease = "5" { Actions = "GoToWorkspace Left" }
        ButtonRelease = "Mod1 4" { Actions = "GoToWorkspace Next" }
        ButtonRelease = "Mod1 5" { Actions = "GoToWorkspace Prev" }
    }
    Up {
        ButtonRelease = "3" { Actions = "ShowMenu Root" }
        ButtonRelease = "2" { Actions = "ShowMenu Goto" }
        ButtonRelease = "Mod4 2" { Actions = "ShowMenu GotoClient" }
        ButtonRelease = "Mod1 4" { Actions = "GoToWorkspace Next" }
        ButtonRelease = "Mod1 5" { Actions = "GoToWorkspace Prev" }
    }
    Left {
        Enter = "Mod1 Any" { Actions = "GoToWorkspace Left" }
        ButtonRelease = "3" { Actions = "ShowMenu Root" }
        ButtonRelease = "1" { Actions = "GoToWorkspace Left" }
        DoubleClick = "1" { Actions = "GoToWorkspace Left" }
        ButtonRelease = "2" { Actions = "ShowMenu Goto" }
        ButtonRelease = "Mod4 2" { Actions = "ShowMenu GotoClient" }
        ButtonRelease = "4" { Actions = "GoToWorkspace Right" }
        ButtonRelease = "5" { Actions = "GoToWorkspace Left" }
        ButtonRelease = "Mod1 4" { Actions = "GoToWorkspace Next" }
        ButtonRelease = "Mod1 5" { Actions = "GoToWorkspace Prev" }
        EnterMoving = "Any Any" { Actions = "WarpToWorkspace Left" }
    }
    Right {
        Enter = "Mod1 Any" { Actions = "GoToWorkspace Right" }
        ButtonRelease = "3" { Actions = "ShowMenu Root" }
        ButtonRelease = "1" { Actions = "GoToWorkspace Right" }
        DoubleClick = "1" { Actions = "GoToWorkspace Right" }
        ButtonRelease = "2" { Actions = "ShowMenu Goto" }
        ButtonRelease = "Mod4 2" { Actions = "ShowMenu GotoClient" }
        ButtonRelease = "4" { Actions = "GoToWorkspace Right" }
        ButtonRelease = "5" { Actions = "GoToWorkspace Left" }
        ButtonRelease = "Mod1 4" { Actions = "GoToWorkspace Next" }
        ButtonRelease = "Mod1 5" { Actions = "GoToWorkspace Prev" }
        EnterMoving = "Any Any" { Actions = "WarpToWorkspace Right" }
    }
}

Client {
    # Remove the following line and uncomment the alternative if windows should raise when clicked.
    ButtonPress = "1" { Actions = "Focus" }
    # Uncomment the following line if windows should raise when clicked.
    # ButtonPress = "1" { Actions = "Focus; Raise" }

    ButtonRelease = "Mod1 1" { Actions = "Focus; Raise" }
    ButtonRelease = "Mod4 1" { Actions = "Lower" }
    # window transparency control
    ButtonRelease = "Mod1 4" { Actions = "Exec transset-df -p --inc 0.2" }
    ButtonRelease = "Mod1 5" { Actions = "Exec transset-df -p --min 0.2 --dec 0.2" }
    ButtonRelease = "Mod1 Shift 4" { Actions = "SendToWorkspace PrevV; GotoWorkspace PrevV" }
    ButtonRelease = "Mod1 Shift 5" { Actions = "SendToWorkspace NextV; GotoWorkspace NextV" }
    ButtonRelease = "Ctrl Mod1 1" { Actions = "Focus; Raise True" }
    Motion = "Mod1 1" { Threshold = "4"; Actions = "Focus; Raise; Move" }
    Motion = "Mod4 1" { Threshold = "4"; Actions = "Focus; Raise; Move" }
    Motion = "Mod1 2" { Threshold = "4"; Actions = "GroupingDrag True" }
    Motion = "Mod1 3" { Actions = "Resize" }
    # Remove the following line if you want to use click to focus.
    Enter = "Any Any" { Actions = "Focus" }
}

Root {
    ButtonRelease = "3" { Actions = "ShowMenu Root" }
    ButtonRelease = "2" { Actions = "ShowMenu Goto" }
    ButtonRelease = "Mod4 2" { Actions = "ShowMenu GotoClient" }
    # Horizontal movement
    ButtonRelease = "4" { Actions = "GoToWorkspace Right" }
    ButtonRelease = "5" { Actions = "GoToWorkspace Left" }
    ButtonRelease = "Mod1 4" { Actions = "GoToWorkspace Next" }
    ButtonRelease = "Mod1 5" { Actions = "GoToWorkspace Prev" }
    # Vertical movement
    ButtonRelease = "Shift 4" { Actions = "GoToWorkspace Up" }
    ButtonRelease = "Shift 5" { Actions = "GoToWorkspace Down" }
    ButtonRelease = "Mod1 Shift 4" { Actions = "GoToWorkspace NextV" }
    ButtonRelease = "Mod1 Shift 5" { Actions = "GoToWorkspace PrevV" }
    ButtonRelease = "1" { Actions = "HideAllMenus" }
}

Menu {
    Enter = "Any Any" { Actions = "Focus" }
    Motion = "Mod1 1" { Threshold = "4"; Actions = "Focus; Raise; Move" }
}

Other {
    Enter = "Any Any" { Actions = "Focus" }
    ButtonRelease = "3" { Actions = "Close" }
    Motion = "1" { Actions = "Focus; Raise; Move" }
    Motion = "Mod1 1" { Threshold = "4"; Actions = "Focus; Raise; Move" }
}

the compositing lines that i change in the 'Client' section to enable transparency control with the mouse wheel:

    ButtonRelease = "Mod1 4" { Actions = "Exec transset-df -p --inc 0.2" }
    ButtonRelease = "Mod1 5" { Actions = "Exec transset-df -p --min 0.2 --dec 0.2" }

so, with this config: send your window to another desktop by Alt+Whellup/down on the titlebar and increase/decrease transparency by Alt+Whellup/down on the client window (the "inside").

another config file in PeK: the 'vars' file. pretty easy to understand, it's here to apply 'variables' on every PeK config files.

$TERM="roxterm"
$FILE="rox-filer"
$EDIT="gedit"
$WEB="firefox"

you can put simple command (like me), or complex one: you can specify here specials command so that the other config files are lighter.

another one... yep, the 'autoproperties' file: it's where you can configure specials rules to apply to specific window/apps. i didn't modify the default one , so, i'll say nothing about it (i confess that i HAVE TO work/learn a little more on this file ;)  )

and the last.... the 'menu' file
that's where i spend a lot of time... so i hope this post could help some of you to speed up your PeK install/config :)
here is my menu.... explanation after.....
here you setup your rootmenu (on the desktop) AND the 'windowmenu' (the one who appears when you right-clic on a titlebar)

# Menu config for pekwm

# Variables
INCLUDE = "vars"

RootMenu = "PeK wm" {
      Entry = "Run.." { Actions = "ShowCmdDialog" }
    Entry = "reload" { Actions = "Reload" }
    Entry = "restart" { Actions = "Restart" }

    Separator {}
    Entry { Actions = "Dynamic ~/.pekwm/scripts/pekwm_ls_menu -l1 -d /home/arp/" }
      Entry = "term" { Actions = "Exec $TERM &" }
#      Entry = "gmail" { Actions = "Exec $WEB http://mail.google.com/mail/?hl=fr&shva=1#inbox &" }
    Submenu = "gmail" {
        Entry = "" { Actions = "Dynamic ~/.pekwm/scripts/pekwm_gmail.sh" }
    }
    Entry = "info" { Actions = "Exec conky -c ~/scripts/conkyfullrc &" }
    Entry = "" { Actions = "Dynamic ~/.pekwm/scripts/system.pl" }

      Separator {}

      Submenu = "config" {
            Submenu = "pek config" {
              Entry = "~/.pekwm" { Actions = "Exec $FILE ~/.pekwm &" }
              Entry = "~start" { Actions = "Exec $EDIT ~/.pekwm/start &" }
              Entry = "~menu" { Actions = "Exec $EDIT ~/.pekwm/menu &" }
              Entry = "~keys" { Actions = "Exec $EDIT ~/.pekwm/keys &" }
              Entry = "~config" { Actions = "Exec $EDIT ~/.pekwm/config &" }
              Entry = "~autoprop" { Actions = "Exec $EDIT ~/.pekwm/autoproperties &" }
          }
          Submenu = "pek themes" {
              Entry { Actions = "Dynamic /usr/share/pekwm/scripts/pekwm_themeset.sh /usr/share/pekwm/themes" }
              Entry { Actions = "Dynamic /usr/share/pekwm/scripts/pekwm_themeset.sh ~/.pekwm/themes" }
          }
        Submenu = "gtk themes" {
            Entry { Actions = "Dynamic ~/.pekwm/scripts/pekwm_gtk_menu -l" }
        }
#          Entry = "interface" {Actions = "Exec lxappearance &"}
          Entry = "wallpaper" { Actions = "Exec nitrogen --sort=alpha ~/images/wallpapers &" }
          Submenu = "3D effect" {
              Entry = "" { Actions = "Dynamic ~/.pekwm/scripts/pekwm_xcompmgr.sh" }
          }
          Entry = "display" { Actions = "Exec grandr &" }
          Submenu = "conky" {
              Entry = "edit rc" { Actions = "Exec $EDIT ~/.pekwm/pek_conkyrc &" }
              Entry = "restart" { Actions = "Exec ~/.pekwm/pek_conkywonky &" }
          }
          Submenu = "tint2" {
              Entry = "edit rc" { Actions = "Exec $EDIT ~/.pekwm/pek_tint2rc &" }
              Entry = "restart" { Actions = "Exec ~/.pekwm/pek_tintwonky &" }
          }
          Entry = "screensaver" { Actions ="Exec gnome-screensaver-preferences &" }
      }
      Submenu = "apps" {
          Submenu = "graph" {
              Entry = "comix" { Actions = "Exec comix &" }
              Entry = "ghtumb" { Actions = "Exec gthumb ~/images &" }
              Entry = "the gimp" { Actions = "Exec gimp &" }
              Entry = "inkscape" { Actions = "Exec inkscape &" }
              Entry = "agave" { Actions = "Exec agave &" }
              Entry = "gcolor2" { Actions = "Exec gcolor2 &" }
              Entry = "phatch" { Actions = "Exec phatch &" }
              Entry = "font viewer" { Actions = "Exec gnome-specimen &" }
              Entry = "scan util" { Actions = "Exec xsane &" }
              Submenu = "screenshot" {
                  Entry = "now" { Actions = "Exec scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f' &" }
                  Entry = "in 5 secs" { Actions = "Exec scrot -d 5 '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f' &" }
                  Entry = "in 10 secs" { Actions = "Exec scrot -d 10 '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f' &" }
              }
          }
          Submenu = "Web" {
              Entry = "firefox" { Actions = "Exec $WEB &" }
              Entry = "torrent" { Actions = "Exec transmission &" }
              Entry = "elinks" { Actions = "Exec roxterm -e elinks &" }
              Entry = "xchat" { Actions = "Exec xchat &" }
          }
          Submenu = "Media" {
              Entry = "vlc" { Actions = "Exec vlc &" }
              Entry = "moc" { Actions = "Exec roxterm -e mocp -T transparent-background &" }
              Entry = "audacity" { Actions = "Exec audacity &" }
              Entry = "cdripper" { Actions = "Exec sound-juicer &" }
              Entry = "soundconverter" { Actions = "Exec soundconverter &" }
              Entry = "avidemux" { Actions = "Exec avidemux &" }
              Entry = "winff" { Actions = "Exec winff &" }
              Entry = "cd/dvd burner" { Actions = "Exec xfburn &" }
              Entry = "desktop record" { Actions = "Exec gtk-recordMyDesktop &" }
              Entry = "volume" { Actions = "Exec gnome-volume-control &" }
          }
          Submenu = "Tools" {
              Entry = "searchtool" { Actions = "Exec catfish &" }
              Entry = "disk usage" { Actions = "Exec baobab &" }
              Entry = "calcul" { Actions = "Exec gcalctool &" }
              Entry = "notes" { Actions = "Exec xpad &" }
              Entry = "agenda" { Actions = "Exec osmo &" }
              Entry = "screenshot" { Actions = "Exec scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ && gthumb ~/images/$f'" & }
              Entry = "cd/dvd burner" { Actions = "Exec xfburn &" }
              Entry = "volume" { Actions = "Exec gnome-volume-control &" }
          }
      }
      Submenu = "admin" {
          Entry = "debs manager" { Actions = "Exec gksudo synaptic &" }
          Entry = "partitioner" { Actions = "Exec gksudo gparted &" }
          Entry = "root term" { Actions = "Exec gksudo $TERM &"}
          Entry = "root filer" { Actions = "Exec gksudo $FILE &" }
    }

    Separator {}

    Entry = "" { Actions = "Dynamic  ~/.pekwm/scripts/pekwm_time.sh" }

    Separator {}

    Entry = "exit" { Actions = "Exit" }
}

WindowMenu = "Window Menu" {
      Entry = "(Un)Stick" { Actions = "Toggle Sticky" }
      Entry = "(Un)Shade" { Actions = "Toggle Shaded" }
      Entry = "Iconify " { Actions = "Set Iconified" }

      Submenu = "Maximize" {
          Entry = "Full" { Actions = "Toggle Maximized True True" }
          Entry = "Horizontal" { Actions = "Toggle Maximized True False" }
          Entry = "Vertical" { Actions = "Toggle Maximized False True" }
      }
      Submenu = "Fill" {
          Entry = "Full" { Actions = "MaxFill True True" }
          Entry = "Horizontal" { Actions = "MaxFill True False" }
          Entry = "Vertical" { Actions = "MaxFill False True" }
      }
      Submenu = "Stacking" {
          Entry = "Raise " { Actions = "Raise" }
          Entry = "Lower" { Actions = "Lower" }
          Entry = "Always On Top " { Actions = "Toggle AlwaysOnTop" }
          Entry = "Always Below" { Actions = "Toggle AlwaysBelow" }
      }
      Submenu = "Decor" {
          Entry = "Decor" { Actions = "Toggle DecorBorder; Toggle DecorTitlebar" }
          Entry = "Border" { Actions = "Toggle DecorBorder" }
          Entry = "Titlebar" { Actions = "Toggle DecorTitlebar" }

      }
      Submenu = "Skip" {
          Entry = "Menus" { Actions = "Toggle Skip Menus" }
          Entry = "Focus Toggle" { Actions = "Toggle Skip FocusToggle" }
          Entry = "Snap" { Actions = "Toggle Skip Snap" }
      }
      SubMenu = "Send To" {
          # Create sendto menu once per pekwm config reload. The fast way that
          # will work for most if not all users.
          COMMAND = "/usr/share/pekwm/scripts/pekwm_ws_menu.sh send"
          # Create sendto menu every time the menu is opened. The slow way.
          # This is what you want if you are using external tools to make
          # the amount of workspaces something else than what you define in
          # ~/.pekwm/config. You will know if you want this.
          # Entry = "" { Actions = "Dynamic /usr/share/pekwm/scripts/pekwm_ws_menu.sh send dynamic" }
      }
      Separator {}
      Entry = "Close" { Actions = "Close" }
      Submenu = "Kill" { Entry = "Kill application" { Actions = "Kill" } }
  }

still here ?? :D
thx ;)

so, let's begin the better part.... how does this menu works?
i think you've noticed the line at the beginning

INCLUDE = "vars"

so don't forget to edit your 'vars' file ( to replace rox with pcmanfm of thunar as you want.... but, please, take a look at rox-filer.... he's a good one :)  )

the dynamic menu: you've seen

    Entry { Actions = "Dynamic ~/.pekwm/scripts/pekwm_ls_menu -l1 -d /home/arp/" }

the dynamic menu in PeK is the equivalent to our pipemenus: it reads any scripts (sh, perl,curl,py..) and display the output in an Entry or a Submenu.
some of the scripts comes from crunchbang (with a little hack), some comes from others PeK/ob users (i'll put a list at the end of the post) and some are apps comes from pekwm_menu_tools , a project who tends to develop dynamic menu for pek. you'll have to install the package (by compiling) if you want those features in your menu: gtk-theme chooser, directory list.

i've put some extra feature that you have to discover with the allpack :D  so dl it on devart ;)

so, that's it :)
i think i'm gonna keep PeKwm as main wm. i really enjoy using PeK-Rox instead of OB-PcManfm.
i've tried to keep in mind all the awesome work that corenominal did on #!, i've took some of his scripts ( conkywonky, xcompmgr...) and some scripts from thuban, a frenchie ubuntu/arch/openbox/PeK user.
as all config files are included in the ~/.pekwm folder, i've put mine in a zip available on my devart page.

this is the end. not really a howto, not a tuto, just my config :D

*links*
my complete PeK config on devart: http://arpinux.deviantart.com/art/PeKwm … -145677832
PeKwm main page: http://pekwm.org/projects/pekwm
PeKwm Doc: http://www.pekwm.org/files/pekwm/doc/0. … index.html
HowTo PeK on ubuntu : http://ubuntuforums.org/showthread.php?t=662204  by urukrama
Thuban post (in french but easily readable ) : http://forums.archlinux.fr/topic4967.html
Dynamic menus on bladdo.net: http://bladdo.net/scripts

**

thx again to corenominal for all the awesome works he's done on #! (scripting, setup, ideas, theming...), thx to Hanna for making me discover PeKwm, thx to all #! community for his kindness & friendship spirit...
don't hesitate to post your question/issues here, i'll try to answer. or you can mail me here or on my devart page.

enjoy!
cheers,
arp.

Offline

Be excellent to each other!

#2 2009-12-04 15:52:16

Hanna
Conky Queen
From: Finland
Registered: 2008-11-29
Posts: 759

Re: PeKwm on crunchbang linux system

First of all thank you for writing this all (I never could have done it myself).

On xcompmgr, I have to say my experience has been bit different, with Openbox it's pretty smooth but with pekwm it gets bit sluggish. But I guess it's then rather just system related than wm related.


HANNA (without "h" in the end) likes green and #! smile
Also know as ultraturquoise online / #! last.fm / #! DeviantART / U

Offline

#3 2009-12-04 16:06:45

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

^^ thx
talking about xcompmgr, i do agree , this apps live her own life lol  the results are always surprising smile

Offline

#4 2009-12-04 17:25:25

aicardi
#! Member
From: Chicago, IL. USA
Registered: 2009-10-31
Posts: 65
Website

Re: PeKwm on crunchbang linux system

I've used Pekwm for a long time and love it.

I have a simple start file. This keeps everything pertaining to Pekwm's startup contained in a single file.

#!/bin/sh
#
Esetroot ~/.pekwm/bg/PKWM_3.jpg &
sleep 1; tint2 &
sleep 1; conky &
sleep 1; tomboy &
sleep 1; wicd-client &
sleep 1; volwheel &
sleep 1; xfce4-power-manager &

# Dropbox
sleep 1; dropbox start &
gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false &
gconftool-2 -s -t bool /desktop/gnome/background/draw_background false &
gconftool-2 -s -t bool /apps/nautilus/preferences/always_use_browser false &
gconftool-2 -s -t bool /apps/nautilus/preferences/show_advanced_permissions true &

Last edited by aicardi (2009-12-04 17:40:05)


--
aicardi

Offline

#5 2009-12-04 19:34:11

evilgravedigger
#! Member
From: Russia
Registered: 2009-11-29
Posts: 78

Re: PeKwm on crunchbang linux system

as you could see, no taskbar, no panel, no icons on desktop and a right-click menu on desktop smile

You can say this about openbox too big_smile
Is there any serious difference except long configuring and absence of GUI configuration tools? I really don't understand - do you find openbox unstable? Ugly? Slow? Difficult to configrure?
If not - what's the reason to use PekWM?

PS - Rox-filer is terrible, BTW that's the only reason i don't like puppy linux too much.


…the Linux philosophy is «laugh in the face of danger». Oops. Wrong one. «Do it yourself». That’s it.
Linus Torwalds
I'm back to crunchbang!  smile

Offline

#6 2009-12-04 19:55:49

aicardi
#! Member
From: Chicago, IL. USA
Registered: 2009-10-31
Posts: 65
Website

Re: PeKwm on crunchbang linux system

evilgravedigger wrote:

as you could see, no taskbar, no panel, no icons on desktop and a right-click menu on desktop smile

You can say this about openbox too big_smile
Is there any serious difference except long configuring and absence of GUI configuration tools? I really don't understand - do you find openbox unstable? Ugly? Slow? Difficult to configrure?
If not - what's the reason to use PekWM?

PS - Rox-filer is terrible, BTW that's the only reason i don't like puppy linux too much.

My thoughts on this. Personally I don't see any serious difference in the two. I am used to Pekwm and the cconfiguration files.
Don't like xml files. smile Stability? I would say they are both solid. Ugly? You could make them look identical as far as that goes. I do like the auto grouping and tabbed windows in Pekwm. Don't know if OB does that.


As for rox-filer... I agree. I use Thunar.


--
aicardi

Offline

#7 2009-12-04 20:04:59

evilgravedigger
#! Member
From: Russia
Registered: 2009-11-29
Posts: 78

Re: PeKwm on crunchbang linux system

Ow, if that's just a habit - i can understand it smile
I'm not sure about tabbed windows and auto grouping... i don't use this functiouns.
I used to hate XML configuration files, that's why i used fluxbox some years ago. But now i use obmenu and that's ok smile


…the Linux philosophy is «laugh in the face of danger». Oops. Wrong one. «Do it yourself». That’s it.
Linus Torwalds
I'm back to crunchbang!  smile

Offline

#8 2009-12-04 20:09:08

omns
#! wanderer
From: ~/
Registered: 2008-11-25
Posts: 5,131

Re: PeKwm on crunchbang linux system

Thanks for this how-to arpinux. Very thorough, concise and easily adapted your own needs.

I love how we openly share all these little projects with each other at #!. smile Maybe this is what crunchbang is really all about???

Offline

#9 2009-12-04 20:15:44

aicardi
#! Member
From: Chicago, IL. USA
Registered: 2009-10-31
Posts: 65
Website

Re: PeKwm on crunchbang linux system

omns wrote:

Thanks for this how-to arpinux. Very thorough, concise and easily adapted your own needs.

I love how we openly share all these little projects with each other at #!. smile Maybe this is what crunchbang is really all about???

Agreed.
BTW omns I keep up with your blog on Debian. Very nice. I use squeeze and Pekwm on four laptops and our desktop (XFCE4 on desktop). #! on my acerOne with Pekwm.
For me #!, as well as this forum are ubuntu done right. smile


--
aicardi

Offline

#10 2009-12-04 21:53:23

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

omns wrote:

Thanks for this how-to arpinux. Very thorough, concise and easily adapted your own needs.

I love how we openly share all these little projects with each other at #!. smile Maybe this is what crunchbang is really all about???

exactly big_smile  i've learn a lot with #! community smile

@evilgravedigger : this post is not a ' Pek vs. Openbox '
i don't think openbox is ugly or unstable.... (i'm using #! since the 7.10 pre-release!!!)
i don't think everybody have to use rox-filer... ( but rox-filer was the first #! file manager !!)
in fact, i don't think here... cool  i'm just sharing my config if it could help someone to get his PeKwm rolling faster.
there is no critics in my post, just a little "hello there, i use something that may interest you, take a look smile "

so please.... for the next posts, keep it in mind: we are just here to share our experiences, not to say "i don't like that..... this one is better..."   ... there is always better,faster,stronger,deeper,harder.... tongue

Offline

#11 2009-12-04 21:56:20

evilgravedigger
#! Member
From: Russia
Registered: 2009-11-29
Posts: 78

Re: PeKwm on crunchbang linux system

I see smile
OK.


…the Linux philosophy is «laugh in the face of danger». Oops. Wrong one. «Do it yourself». That’s it.
Linus Torwalds
I'm back to crunchbang!  smile

Offline

#12 2009-12-04 22:23:52

anonymous
The Mystery Member
From: Arch Linux Forums
Registered: 2008-11-29
Posts: 9,418

Re: PeKwm on crunchbang linux system

Thank you for sharing this guide arpinux; I've been meaning to try Pekwm someday.

Offline

#13 2009-12-04 22:26:04

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

^ thx anonymous, if you do so, try to post your config here wink

Offline

#14 2009-12-04 22:45:49

Hanna
Conky Queen
From: Finland
Registered: 2008-11-29
Posts: 759

Re: PeKwm on crunchbang linux system

Well there has to be something in PeKwm because I don't remember when I last used OB and while I have bad memory I swear last time wasn't on last weel. tongue It's true that the differences between OB and PeKwm are minimal but I guess it's the small difference that fascinates me.


HANNA (without "h" in the end) likes green and #! smile
Also know as ultraturquoise online / #! last.fm / #! DeviantART / U

Offline

#15 2009-12-05 03:11:42

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

*EDIT*
if you want logout PeKwm, no need to "logout" tongue
just add this line in your ~/.pekwm/menu file

    Entry = "exit to #!" { Actions = "RestartOther /usr/bin/openbox" }

and reload pek wink

Offline

#16 2009-12-05 15:16:29

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

Great post! I'm playing around with pekwm from time to time - but I have the problem, that some apps are not shown as icon in the tint2-toolbar (ex. terminator - no, firefox - yes). With the same tint2-config it is running well with openbox. Any idea?

Offline

#17 2009-12-05 15:43:38

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

yt wrote:

Great post! I'm playing around with pekwm from time to time - but I have the problem, that some apps are not shown as icon in the tint2-toolbar (ex. terminator - no, firefox - yes). With the same tint2-config it is running well with openbox. Any idea?

hi,
thx for your kind words,
about your issue, you have to edit your ~/.pekwm/autoproperties file and search for 'terminator' or 'x-terminal-emulator' to see if there are specific rules concerning terminator.
or maybe in your 'vars' file , if $TERM is set to be terminator with specific options (like skip taskbar), that could make your issue happen ...
you can compare our config files too, it could help...
at least, you could send me your ~/.pekwm directory in a gzip so i could test it if you want ( <arplinuxnet at gmail dot com> )
smile

Offline

#18 2009-12-18 21:57:44

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

After some testing for a while I'm now using the standard config from the pekwm source package. Now with terminator I have an icon in my tint2 toolbar, but other programms has still no icon (ex. I'm using abaqus (a finite element solver) - the pre/postprocessor is invisible in the toolbar). How can I change this behaviour?

Second problem: Some applications has a strange behaviour such as GQview. I like to sort my photographies after an  excursion with GQview in full screen mode. When I now want to delete a picture I press DEL - but the delete dialog doesn't appear on top like in openbox, but behind the full screen display of the picture. How can I change this?

Offline

#19 2009-12-18 22:14:19

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

hi yt,
talking about icon issue with tint2, i didn't experiment this kind of bug... hmm
for the "pop up window behind the main window" stuff, take a look at your ~/.pekwm/config file, and be sure to have

    PlaceNew = "True"
    FocusNew = "True"

in the "Screen" section .

check the autoproperties file too and look at the TypeRules section. it should look like this:

TypeRules {
    /*
     Desktop windows such as nautilus window in gnome. These should
     cover the root window and be below all other windows. Also they
     should not be included in the menu and in snapping.
     */
     Property = "DESKTOP" {
        FrameGeometry = "0x0+0+0"
        Titlebar = "False"
        Border = "False"
        Sticky = "True"
        Skip = "FocusToggle Menus Snap"
        Layer = "Desktop"
        Focusable = "False"
    }
    Property = "DOCK" {
        Titlebar = "False"
        Border = "False"
        Sticky = "True"
        Layer = "Dock"
        Skip = "FocusToggle Menus"
        Focusable = "False"
    }
    Property = "TOOLBAR"  {
        Skip = "FocusToggle Menus Snap"
    }
    Property = "MENU"  {
        Titlebar = "False"
        Border = "False"
        Layer = "OnTop"
        Skip = "FocusToggle Menus Snap"
    }
    Property = "UTILITY"  {
    }
    Property = "SPLASH"  {
        Titlebar = "False"
        Border = "False"
        Layer = "OnTop"
    }
    Property = "DIALOG"  {
        Layer = "OnTop"
    }
    Property = "NORMAL"  {
    }
}

so, your pop-up, dialog, or menu windows should be "OnTop".  but i'm not sure it'll be ontop of fullscreen windows... at least, ontop of maximized windows.

Offline

#20 2009-12-18 22:29:46

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

Thank you for the information. The only difference is the Layer = "OnTop" line in the menu section. But in fullscreen mode it doesn't solve the problem.

Offline

#21 2009-12-18 23:16:26

arpinux
#! Die Hard
From: Montréal, France
Registered: 2009-01-15
Posts: 686
Website

Re: PeKwm on crunchbang linux system

so now, we know that pek treat fullscreen window as a "real-OnTop-layer"..  good to know tongue

Offline

#22 2010-01-11 15:36:40

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

Is there an option in pekwm like "GrowToEdgeNorth" in openbox? I didn't find any solution for implementing that in the docu.

Offline

#23 2010-03-07 20:05:19

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

Offline

#24 2010-03-22 11:02:39

yt
#! Member
From: Cologne / Germany
Registered: 2009-06-01
Posts: 73

Re: PeKwm on crunchbang linux system

New version out: release-0.1.12 released 2010-03-11

http://www.pekwm.org/projects/pekwm/releases

Running fine for me. To compile adjust the links to /usr/share/autolink-xxx/ after unpacking of the archive.

Offline

Board footer

Powered by FluxBB

Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.

Debian Logo