manager which means that you can have windows open right next to each other on your
desktop without having to align the windows right next to each other and they don't
overlap. There is probably a better definition or description somewhere else. It does take
some getting used to but I enjoy the control and space it allows me.
First the particulars:
I am using a noname laptop with a 40 gig hd, 1.5 gHz cpu, 1 gig ram, using bigbass' fatfree puppy
3.01 live cd that I have been adding and configuring to my tastes. I keep my save file on
a partition on my hd. I downloaded the tar package from this website:
http://www.suckless.org/dwm/
Then followed these directions exactly,
http://www.xsnake.net/howto/dwm/dwm-eng.php
cntrl-alt-bcksp out of X. Then I typed 'startx dwm' and the dwm desktop came up. Done!
(These are the directions that matter the most, I have cut and pasted them onto this thread
for clarity.)
Code: Select all
1) cd /path/to/dwm-4.0.tar.gz
2) tar zxvf dwm-4.0.tar.gz
After that I suggest you go directly with:
3) make clean install (as root)
boot manager so you have the compiling ability and commands. This is how I did it. First
I asked a question and get an answer which put me on the right track. Thanks puppyluvr!!
http://www.murga-linux.com/puppy/viewto ... 221#258221
Then I searched for the file in all the wrong ways until I finally found what I needed using
http://www.google.com/linux
The ways that didn't work where using the wellminded puppy search and the forum seach.
For some reason they didn't work.
In the midst of looking I found a thread where someone a while ago asked basically the same
question and Barry answered. The advice was: click on menu-go to help-then go to "how
to write programs for puppy". I finally found the devx_301.sfs file here:
http://distro.ibiblio.org/pub/linux/dis ... modules-3/
--------some customizations you may want. To change the way dwm acts, the tabs on top,
the colors, the keystrokes and other things, you go into the dwm-5.3.1 folder and change
the config.h file. Note that config.h and config.def.h are the same thing but when you compile
it will take orders from the config.h file. I'm still learning about the configuring so I am going
very slow and only changing very small things at a time. Here is my current config.h file.
Code: Select all
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char font[] = "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#cccccc";
static const char normbgcolor[] = "#cccccc";
static const char normfgcolor[] = "#000000";
static const char selbordercolor[] = "#0066ff";
static const char selbgcolor[] = "#0066ff";
static const char selfgcolor[] = "#ffffff";
static unsigned int borderpx = 1; /* border pixel of windows */
static unsigned int snap = 32; /* snap pixel */
static Bool showbar = True; /* False means no bar */
static Bool topbar = True; /* False means bottom bar */
static Bool readin = True; /* False means do not read stdin */
static Bool usegrab = False; /* True means grabbing the X server
during mouse-based resizals */
/* tagging */
static const char tags[][MAXTAGLEN] = { "www1", "term2", "text3", "rox4", "rox5", "media6", "app7", "app8", "app9" };
static unsigned int tagset[] = {1, 1}; /* after start, first tag is selected */
static Rule rules[] = {
/* class instance title tags mask isfloating */
{ "Gimp", NULL, NULL, 0, True },
{ "Firefox", NULL, NULL, 1 << 8, True },
};
/* layout(s) */
static float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static Bool resizehints = True; /* False means respect size hints in tiled resizals */
static Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
};
/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[] = { "mrxvt", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */
/* click can be a tag number (starting at 0),
* ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};
which opens up my mrxvt. (I like mrxvt because I like transparency although not true, and
I like the ability to have tabs. I also use urxvt) Then I type the command for the program
I want to use ie
Code: Select all
seamonkey, opera, leafpad, audacious, rox, asunder, etc.
the command or the cli will be dead until you terminate the application. Basic stuff I know.
Right now I'm working on a document that will have the names of all the commands for the
programs on my system and keystrokes for programs that I want to assign to them. I will
make an alias to open this document in so I can see how to navigate thru my system until
I memorize the commands. Even still, I'll keep it up there for when I have a brain freeze.