http://dwm.suckless.org/http://www.calculate-linux.org/blogs/ru/212/showКомпиляция и установка:
wget
http://dl.suckless.org/dwm/dwm-6.0.tar.gztar xf dwm-6.0.tar.gz
cd dwm-6.0
make
sudo cp dwm /usr/bin
$ cat ~/.xinitrc
exec dwm
Запуск: startx
Указать шрифты из /usr/X11/lib/X11/fonts , чтобы отображались русские буквы на верхней панели
Меню:
wget
http://dl.suckless.org/tools/dmenu-4.5.tar.gztar xf dmenu-4.5.tar.gz
cd dmenu-4.5
make
sudo cp dmenu /usr/bin/dmenu_run
Изменения в исходники dmenu:
case XK_KP_Enter:
if (vfork() == 0){ // child
if(execlp((sel && !(ev->state & ShiftMask)) ? sel->text : text, 0)<0){
//cerr<< "failed to execvp\n";
//return -1;
}
//}else if (pID < 0){ // failed to fork
}else{
}
/*puts*///system((sel && !(ev->state & ShiftMask)) ? sel->text : text);
exit(EXIT_SUCCESS);
.....
static Item items[] ={{"firefox", 0, 0}, {"gedit", 0, 0}, {"gajim", 0, 0}, {"gnome-commander", 0, 0}, {"gimp", 0, 0}, {"soffice", 0, 0}, {0,0,0}};
....
void
readstdin(void) {
char buf[sizeof text], *p, *maxstr = NULL;
size_t i, max = 0, size = 0;
/* read each line from stdin and add it to the item list */
/* for(i = 0; fgets(buf, sizeof buf, stdin); i++) {
if(i+1 >= size / sizeof *items)
if(!(items = realloc(items, (size += BUFSIZ))))
eprintf("cannot realloc %u bytes:", size);
if((p = strchr(buf, '\n')))
*p = '\0';
if(!(items
.text = strdup(buf)))
eprintf("cannot strdup %u bytes:", strlen(buf)+1);
if(strlen(items.text) > max)
max = strlen(maxstr = items.text);
}
if(items)
items.text = NULL;*/
inputw = maxstr ? textw(dc, maxstr) : 0;
lines = MIN(lines, i);
}