guest@dotshare [~/groups/wms/monster] $ ls testing-the-monster/ | cat

testing the monster (scrot)

Neuromatic Jun 01, 2013 (wms/monster)

config.h(raw, dl)

SCROT

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/* see LICENSE for copyright and license */

#ifndef CONFIG_H
#define CONFIG_H

/** modifiers **/
#define MOD1            Mod1Mask    /* ALT key */
#define MOD4            Mod4Mask    /* Super/Windows key */
#define CONTROL         ControlMask /* Control key */
#define SHIFT           ShiftMask   /* Shift key */

/** generic settings **/
#define MASTER_SIZE     0.50
#define SHOW_PANEL      True      /* show panel by default on exec */
#define TOP_PANEL       True      /* False means panel is on bottom */
#define PANEL_HEIGHT    18        /* 0 for no space for panel, thus no panel */
#define DEFAULT_MODE    TILE      /* initial layout/mode: TILE MONOCLE BSTACK GRID FLOAT */
#define ATTACH_ASIDE    True      /* False means new window is master */
#define FOLLOW_WINDOW   False     /* follow the window when moved to a different desktop */
#define FOLLOW_MOUSE    False     /* focus the window the mouse just entered */
#define CLICK_TO_FOCUS  True      /* focus an unfocused window when clicked  */
#define FOCUS_BUTTON    Button3   /* mouse button to be used along with CLICK_TO_FOCUS */
#define BORDER_WIDTH    1         /* window border width */
#define FOCUS           "#395573" /* focused window border color    */
#define UNFOCUS         "#111111" /* unfocused window border color  */
#define MINWSZ          50        /* minimum window size in pixels  */
#define DEFAULT_DESKTOP 0         /* the desktop to focus initially */
#define DESKTOPS        5         /* number of desktops - edit DESKTOPCHANGE keys to suit */

/**
 * open applications to specified desktop with specified mode.
 * if desktop is negative, then current is assumed
 */
static const AppRule rules[] = { \
    /*  class     desktop  follow  float */
    { "MPlayer",     3,    True,   False  },
    { "dwb"    ,     1,    True,   False  },
    { "mutt"   ,     4,    False,  False  },
};

/* helper for spawning shell commands */
#define SHCMD(cmd) {.com = (const char*[]){"/bin/sh", "-c", cmd, NULL}}

/**
 * custom commands
 * must always end with ', NULL };'
 */
static const char *termcmd[] = { "urxvtc",     NULL };
static const char *volup[]   = { "volup.sh", NULL };
static const char *voldwn[]  = { "voldwn.sh", NULL };
static const char *menucmd[] = { "dmenu_run", "-nb", "#000000", "-nf", "#aaaaaa", "-sb", "#000000", "-sf", "#ffffff", "-fn", "-*-ohsnap-medium-r-*-*-14-*-*-*-*-*-*-*", NULL };

#define DESKTOPCHANGE(K,N) \
    {  MOD1,             K,              change_desktop, {.i = N}}, \
    {  MOD1|ShiftMask,   K,              client_to_desktop, {.i = N}},

/**
 * keyboard shortcuts
 */
static Key keys[] = {
    /* modifier          key            function           argument */
    {  MOD4,             XK_Return,     spawn,             {.com = termcmd}},
    {  MOD4,             XK_p,          spawn,             {.com = menucmd}},
    {  MOD1,             XK_u,          spawn,             {.com = volup}},
    {  MOD1,             XK_d,          spawn,             {.com = voldwn}},
    {  MOD1,             XK_b,          togglepanel,       {NULL}},
    {  MOD1,             XK_BackSpace,  focusurgent,       {NULL}},
    {  MOD4|SHIFT,       XK_c,          killclient,        {NULL}},
    {  MOD4,             XK_j,          next_win,          {NULL}},
    {  MOD4,             XK_k,          prev_win,          {NULL}},
    {  MOD4,             XK_h,          resize_master,     {.i = -10}}, /* decrease size in px */
    {  MOD4,             XK_l,          resize_master,     {.i = +10}}, /* increase size in px */
    {  MOD1,             XK_o,          resize_stack,      {.i = -10}}, /* shrink   size in px */
    {  MOD1,             XK_p,          resize_stack,      {.i = +10}}, /* grow     size in px */
    {  MOD4,             XK_Left,       rotate,            {.i = -1}},
    {  MOD4,             XK_Right,      rotate,            {.i = +1}},
    {  MOD1|SHIFT,       XK_h,          rotate_filled,     {.i = -1}},
    {  MOD1|SHIFT,       XK_l,          rotate_filled,     {.i = +1}},
    {  MOD1,             XK_Tab,        last_desktop,      {NULL}},
    {  MOD1,             XK_Return,     swap_master,       {NULL}},
    {  MOD4|SHIFT,       XK_j,          move_down,         {NULL}},
    {  MOD4|SHIFT,       XK_k,          move_up,           {NULL}},
    {  MOD4      ,       XK_t,          switch_mode,       {.i = TILE}},
    {  MOD1|SHIFT,       XK_m,          switch_mode,       {.i = MONOCLE}},
    {  MOD4,             XK_b,          switch_mode,       {.i = BSTACK}},
    {  MOD4,             XK_g,          switch_mode,       {.i = GRID}},
    {  MOD4,             XK_f,          switch_mode,       {.i = FLOAT}},
    {  MOD4|SHIFT,       XK_r,          quit,              {.i = 0}}, /* quit with exit value 0 */
    {  MOD4|SHIFT,       XK_q,          quit,              {.i = 1}}, /* quit with exit value 1 */
    {  MOD1,             XK_j,          moveresize,        {.v = (int []){   0,  25,   0,   0 }}}, /* move down  */
    {  MOD1,             XK_k,          moveresize,        {.v = (int []){   0, -25,   0,   0 }}}, /* move up    */
    {  MOD4,             XK_l,          moveresize,        {.v = (int []){  25,   0,   0,   0 }}}, /* move right */
    {  MOD4,             XK_h,          moveresize,        {.v = (int []){ -25,   0,   0,   0 }}}, /* move left  */
    {  MOD1|CONTROL,     XK_j,          moveresize,        {.v = (int []){   0,   0,   0,  25 }}}, /* height grow   */
    {  MOD1|CONTROL,     XK_k,          moveresize,        {.v = (int []){   0,   0,   0, -25 }}}, /* height shrink */
    {  MOD1|SHIFT,       XK_l,          moveresize,        {.v = (int []){   0,   0,  25,   0 }}}, /* width grow    */
    {  MOD1|SHIFT,       XK_h,          moveresize,        {.v = (int []){   0,   0, -25,   0 }}}, /* width shrink  */
       DESKTOPCHANGE(    XK_1,                             0)
       DESKTOPCHANGE(    XK_2,                             1)
       DESKTOPCHANGE(    XK_3,                             2)
       DESKTOPCHANGE(    XK_4,                             3)
       DESKTOPCHANGE(    XK_5,                             4)
       DESKTOPCHANGE(    XK_6,                             5)
};

/**
 * mouse shortcuts
 */
static Button buttons[] = {
    {  MOD4,    Button1,     mousemotion,   {.i = MOVE}},
    {  MOD1,    Button3,     mousemotion,   {.i = RESIZE}},
    {  MOD4,    Button3,     spawn,         {.com = menucmd}},
};
#endif

/* vim: set expandtab ts=4 sts=4 sw=4 : */

CLICK TO VIEW

x

monsterbar(raw, dl)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env bash
 
wm="monsterwm"
ff="/tmp/monsterwm.fifo"
 
tags=('main' 'www' 'chat' 'foo' 'bar')
 
layouts=('[]=' '[ ]' 'T=' '[#]')
 
conky -c $HOME/.conkyrc | dzen2 -bg '#000000' -h 18 -x 320 -ta r -e -p -fn "-*-ohsnap-medium-r-*-*-14-*-*-*-*-*-*-*" &
 
# Check if it's a pipe, otherwise create it
[[ -p $ff ]] || mkfifo -m 600 "$ff"
 
while read -t 60 -r wmout || true; do
desktops=( $(cut -d"|" -f1 <<< "$wmout") )
title="$(cut -d"|" -f2- <<< "$wmout")"
 
if [[ "${desktops[@]}" =~ ^(([[:digit:]]+:)+[[:digit:]]+ ?)+$ ]]; then
unset tmp
 
for desktop in "${desktops[@]}"; do
IFS=':' read -r d w m c u <<< "$desktop"
 
# Tags labels
label="${tags[$d]}"
 
# Is this the current desktop ? save the layout
((c)) && fg="#ffffff" bg="#000000" && layout="${layouts[$m]}" \
|| fg="#aaaaaa" bg="#000000"
 
# Has windows ?
((w)) && fg="#395573"
 
# Urgent windows ?
((u)) && fg="#ef2929"
 
tmp+="^fg($fg)^bg($bg) $label ^bg()^fg()"
done
fi
 
# Merge the clients indications, the tile and the info
echo "$tmp $layout $title"
done < "$ff" | dzen2 -bg '#000000' -w 320 -h 18 -ta l -e -p -fn "-*-ohsnap-medium-r-*-*-14-*-*-*-*-*-*-*" &
 
while :; do "$wm" || break; done | tee -a "$ff"
 

x

xinitrc(raw, dl)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
#
# ~/.xinitrc
#

#makes Font useable
xset +fp /usr/share/fonts/local
xset fp rehash

#Starts rxct-unicode daemon for much better Performance
urxvtd -f &

#Set Wallpaer (if is wished)
feh --no-fehbg --bg-scale /home/danny/bilder/Wallpaper/linux.jpg

#Set Cursor theme
xsetroot -cursor_name left_ptr &

#Hide the Mouse-Cursor
unclutter -idle 1 &

#Adds a conky to Statusbar
#conky -c /home/danny/.conkyrc.2 | while read -r; do xsetroot -name "$REPLY"; done &
#sh /home/danny/.bin/sh/dzen.sh &

#Starts dwm with log file
#while true; do
#	dwm 2> ~/.dwm.log
#done

#Execute this for monsterwm && dzen
exec bash /home/danny/.bin/sh/monsterbar.sh

#Starts dwm without log file
#exec dwm
 

x

Notes

Status script stolen from DjDexter ( thx ;) ) So look at his files.