dwm (вопросы)

ion, dwm, wmii, awesome, xmonad и другие

Модератор: Модераторы разделов

Аватара пользователя
edoc_modnar
Бывший модератор
Сообщения: 1638
Статус: Форум больше не посещаю

Re: dwm

Сообщение edoc_modnar »

Да это у меня есть. Просто философия dwm "на каждый пук свой патч" немного не совпала с моей.
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

Аватара пользователя
phasma
Сообщения: 405

Re: dwm

Сообщение phasma »

random_code, откуда ?) я ж его сам переписывал под 4.2 )))
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Спасибо сказали:

Аватара пользователя
edoc_modnar
Бывший модератор
Сообщения: 1638
Статус: Форум больше не посещаю

Re: dwm

Сообщение edoc_modnar »

Ага, ты у нас тут единственный умеешь писать патчи для dwm, да? Ничего, что я тут рядышком с тобой на одном форуме?
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

Аватара пользователя
phasma
Сообщения: 405

Re: dwm

Сообщение phasma »

random_code, я не про то ))) я про сам код, а не про то, что уже кто-то писал подобное )))
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Спасибо сказали:

sbar
Сообщения: 354
ОС: Gentoo

Re: dwm

Сообщение sbar »

дайте кто-нибудь нормальный патч для 4.2, для двух панелей плиз :rolleyes:
или просто переделанный dwm скиньте куда-нибудь
Спасибо сказали:

Аватара пользователя
phasma
Сообщения: 405

Re: dwm

Сообщение phasma »

Код:

--- dwm-4.2/config.h Wed May 30 14:20:42 2007 +++ dwm/config.h Sat Jun 23 11:24:14 2007 @@ -10,6 +10,7 @@ #define SELBORDERCOLOR "#ff0000" #define SELBGCOLOR "#006699" #define SELFGCOLOR "#ffffff" +#define BARSEC "~/.dwm/daemon/get" /* tagging */ #define TAGS \ --- dwm-4.2/draw.c Wed May 30 14:20:42 2007 +++ dwm/draw.c Sat Jun 23 14:01:02 2007 @@ -48,8 +48,9 @@ /* extern */ -void -drawstatus(void) { +void +bar_fst(void) { + int i, x; dc.x = dc.y = 0; @@ -84,9 +85,80 @@ else drawtext(NULL, dc.norm); } + + XSetForeground(dpy, dc.gc, dc.sel[ColBorder]); + XDrawLine(dpy, dc.drawable, dc.gc, 0, 0, sw, 0); + XDrawLine(dpy, dc.drawable, dc.gc, 0, dc.h-1, sw, dc.h - 1); + XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0); + +} + +#ifdef BARSEC + +void +bar_snd(void) { + + int x, y, w, h; + unsigned int len, olen; + char buf[256]; + + dc.x = dc.y = 0; + XRectangle r = {dc.x, dc.y, sw, dc.h}; + + XSetForeground(dpy, dc.gc, dc.sel[ColBG]); + XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); + + w = 0; + olen = len = strlen(btext); + if(len >= sizeof buf) + len = sizeof buf - 1; + memcpy(buf, btext, len); + buf[len] = 0; + h = dc.font.ascent + dc.font.descent; + y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent; + x = (h / 2); + /* shorten text if necessary */ + while(len && (w = textnw(buf, len)) > dc.w - h) + buf[--len] = 0; + if(len < olen) { + if(len > 1) + buf[len - 1] = '.'; + if(len > 2) + buf[len - 2] = '.'; + if(len > 3) + buf[len - 3] = '.'; + } + + XSetForeground(dpy, dc.gc, dc.sel[ColFG]); + if(dc.font.set) + XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, btext, strlen(btext)); + else + XDrawString(dpy, dc.drawable, dc.gc, x, y, btext, strlen(btext)); + + XSetForeground(dpy, dc.gc, dc.sel[ColBorder]); + XDrawLine(dpy, dc.drawable, dc.gc, 0, 0, sw, 0); + XDrawLine(dpy, dc.drawable, dc.gc, 0, dc.h-1, sw, dc.h - 1); + + XCopyArea(dpy, dc.drawable, barsec, dc.gc, 0, 0, sw, bh, 0, 0); + +} + +#endif + +void +drawstatus(void) { + + bar_fst(); XSync(dpy, False); + +#ifdef BARSEC + bar_snd(); + XSync(dpy, False); +#endif + } + void drawtext(const char *text, unsigned long col[ColLast]) { --- dwm-4.2/dwm.h Sat Jun 23 10:34:40 2007 +++ dwm/dwm.h Sat Jun 23 14:02:37 2007 @@ -94,6 +94,11 @@ Layout *lt; Window root, barwin; +#ifdef BARSEC + Window barsec; + char btext[256]; +#endif + #ifdef TAGLAYOUTS Layout **taglayouts; /* global layouts array */ Layout **currenttaglayout; /* current tag layout */ --- dwm-4.2/event.c Wed May 30 14:20:42 2007 +++ dwm/event.c Sat Jun 23 14:04:18 2007 @@ -219,6 +219,9 @@ XFreePixmap(dpy, dc.drawable); dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); XResizeWindow(dpy, barwin, sw, bh); +#ifdef BARSEC +#endif updatebarpos(); lt->arrange(); } @@ -253,8 +256,14 @@ XExposeEvent *ev = &e->xexpose; if(ev->count == 0) { - if(barwin == ev->window) +#ifdef BARSEC + if(barwin || barsec == ev->window) drawstatus(); +#else + if(barwin == ev->window) + drawstatus(); +#endif + } } --- dwm-4.2/main.c Sat Jun 23 11:12:12 2007 +++ dwm/main.c Sat Jun 23 14:02:30 2007 @@ -15,6 +15,7 @@ /* extern */ char stext[256]; + int screen, sx, sy, sw, sh, wax, way, waw, wah; unsigned int bh, bpos, ntags, numlockmask; Atom wmatom[WMLast], netatom[NetLast]; @@ -28,6 +29,11 @@ DC dc = {0}; Window root, barwin; +#ifdef BARSEC + Window barsec; + char btext[256]; +#endif + #ifdef TAGLAYOUTS Layout **taglayouts = NULL; Layout **currenttaglayout = NULL; @@ -55,6 +61,9 @@ XFreePixmap(dpy, dc.drawable); XFreeGC(dpy, dc.gc); XDestroyWindow(dpy, barwin); +#ifdef BARSEC + XDestroyWindow(dpy, barsec); +#endif XFreeCursor(dpy, cursor[CurNormal]); XFreeCursor(dpy, cursor[CurResize]); XFreeCursor(dpy, cursor[CurMove]); @@ -69,6 +78,25 @@ } +#ifdef BARSEC + +static void +updatetext() { + + char _bar[256]; + + strcpy(btext, ""); + FILE * proc; + proc = popen(BARSEC, "r"); + + fgets(_bar, 256, proc); + strncpy(btext, _bar, strlen(_bar) - 1); + + pclose(proc); + +} + +#endif + static unsigned long initcolor(const char *colstr) { Colormap cmap = DefaultColormap(dpy, screen); @@ -210,9 +238,18 @@ DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); XDefineCursor(dpy, barwin, cursor[CurNormal]); +#ifdef BARSEC + barsec = XCreateWindow(dpy, root, sx, sy, sw, bh, 0, + DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); + XDefineCursor(dpy, barsec, cursor[CurNormal]); +#endif bpos = BARPOS; updatebarpos(); XMapRaised(dpy, barwin); +#ifdef BARSEC + XMapRaised(dpy, barsec); +#endif strcpy(stext, "dwm-"VERSION); /* pixmap for everything */ dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); @@ -247,20 +284,32 @@ wax = sx; way = sy; - wah = sh; waw = sw; switch(bpos) { default: - wah -= bh; + wah = sh - bh; way += bh; XMoveWindow(dpy, barwin, sx, sy); +#ifdef BARSEC + wah = sh - bh; + XMoveWindow(dpy, barsec, sx, sy + wah); + wah -= bh; +#endif break; case BarBot: - wah -= bh; + wah = sh - bh; XMoveWindow(dpy, barwin, sx, sy + wah); +#ifdef BARSEC + wah = sh - bh; + way += bh; + XMoveWindow(dpy, barsec, sx, sy); +#endif break; case BarOff: XMoveWindow(dpy, barwin, sx, sy - bh); +#ifdef BARSEC + XMoveWindow(dpy, barsec, sx, sy - bh); +#endif break; } XSync(dpy, False); @@ -316,6 +365,9 @@ XSetErrorHandler(NULL); xerrorxlib = XSetErrorHandler(xerror); XSync(dpy, False); +#ifdef BARSEC + updatetext(); +#endif setup(); drawstatus(); scan(); @@ -357,6 +409,9 @@ if(handler[ev.type]) (handler[ev.type])(&ev); /* call handler */ } +#ifdef BARSEC + updatetext(); +#endif } cleanup(); XCloseDisplay(dpy);


сча исчо и polachok выложит )))
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Спасибо сказали:

sbar
Сообщения: 354
ОС: Gentoo

Re: dwm

Сообщение sbar »

не кидайтесь помидорами пожалуйста, но...
может я патчу как-то не так... O_O
вот что я делаю

$

$ patch -p1 < dwm2panel-4.2.patch patching file config.h patch: **** malformed patch at line 10: /* tagging */

почему так происходит? я только "cp config.default.h config.h" сделал и все, ничего не менял.
скажите как патчить правильно плиз
или патч как-то криво вставился? табуляцию вроде форум убирает например? может лучше в аттачах патчи выкладывать?
Спасибо сказали:

sbar
Сообщения: 354
ОС: Gentoo

Re: dwm

Сообщение sbar »

тупо вручную пропатчил :)
есть 2 вопроса: что это за мифическая часть кода в файле main.c? в патче написано а у меня нету такого...

Код: Выделить всё

#ifdef TAGLAYOUTS
Layout **taglayouts = NULL;
Layout **currenttaglayout = NULL;

2. нижняя панель изменяется только когда я переключусь на какой-нить десктоп? возможно ли сделать, что б само менялось, раз в 1 секунду например? или, скажем брать из stdin в нижнюю панель, а из верхней убрать эту часть, которая из stdin берет.
Спасибо сказали:

Аватара пользователя
phasma
Сообщения: 405

Re: dwm

Сообщение phasma »

хм, вот в том, что те кинул нужно исчо указать путь до файла ... там де у тебя лежит то, что должно выводица на нижнюю панель ...
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Спасибо сказали:

sbar
Сообщения: 354
ОС: Gentoo

Re: dwm

Сообщение sbar »

phasma писал(а):
15.07.2007 16:36
хм, вот в том, что те кинул нужно исчо указать путь до файла ... там де у тебя лежит то, что должно выводица на нижнюю панель ...
это я заметил :)
но вот как заставить что б скрипт запускался сам, а не только после переключения десктопов или окон... хотя нет, он все-таки выполняется раз в секунду, но только если на stdin что-то поступает :)

и чуть не забыл. phasma, большое спасибо за патч! :)
Спасибо сказали:

Аватара пользователя
phasma
Сообщения: 405

Re: dwm

Сообщение phasma »

а, ты про это ... ну попробуй запустить цикл, ток это вряд ли что-то даст вминяемое, ибо скорее всего DWM просто будет подвисать )))
NB: Dell XPS 1330 T5250|DDR2 4GB|NV 8400|250 GB
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Спасибо сказали:

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: dwm

Сообщение pento »

Debian Lenny

[spec@baza:~]$ dwm -v
dwm-4.4.1, © 2006-2007 A. R. Garbe, S. van Dijk, J. Salmi, P. Hruby, S. Nagy

[spec@baza:~]$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

[spec@baza:~]$ cat /home/spec/distribs/System/dwm-4.4.1/config.h | grep FONT
#define FONT "-xos4-terminus-medium-*-normal-*-14-*-*-*-*-*-iso10646-1"

И вот такая проблема с отображением кириллицы в статус баре :(

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: dwm

Сообщение pento »

Спасибо сказали:

Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: dwm

Сообщение diesel »

pento писал(а):
09.09.2007 12:20
Проблема решена :)
http://www.linux.org.ru/view-message.jsp?msgid=1199673

огромное спасибо за ссылку!
Спасибо сказали:

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: dwm

Сообщение pento »

diesel, это спасибо Polachok -> Asgard :)
Вообще, интересный менеджер окон..."Допиши меня" называется :) Сделал переключение между тегами "пред" и "след" для 4.4.1 - могу выложить патч.
Спасибо сказали:

Аватара пользователя
Wing
Сообщения: 60
ОС: Debian GNU/Linux

Re: dwm

Сообщение Wing »

друзья!
почему-то не работает togglemax, даже с дефолтным конфигом. все остальное вроде работает, а вот именно togglemax - нет. возможно, кто-то может помочь.
upd: неожиданно все заработало..
Спасибо сказали:

Аватара пользователя
Joker
Сообщения: 22
ОС: Gentoo Linux

Re: dwm

Сообщение Joker »

ни кто не может выложить патч чтоб в разных тегах разное положение окон было, для версии 4.5 плз. ))

update: уже не нада
В этой жизни меня подводят доброта и порядочность
Спасибо сказали:

Аватара пользователя
kernel_mode
Сообщения: 347
Статус: infinity++
ОС: Gentoo(desktop)/Arch(laptop)

Re: dwm

Сообщение kernel_mode »

diesel писал(а):
11.09.2007 10:13
pento писал(а):
09.09.2007 12:20
Проблема решена :)
http://www.linux.org.ru/view-message.jsp?msgid=1199673

огромное спасибо за ссылку!


А мне что-то не помогло...

Код: Выделить всё

localhost ~ # locale
 LANG=ru_RU.UTF-8
 LC_CTYPE="ru_RU.UTF-8"
 LC_NUMERIC=C
 LC_TIME="ru_RU.UTF-8"
 LC_COLLATE="ru_RU.UTF-8"
 LC_MONETARY="ru_RU.UTF-8"
 LC_MESSAGES="ru_RU.UTF-8"
 LC_PAPER="ru_RU.UTF-8"
 LC_NAME="ru_RU.UTF-8"
 LC_ADDRESS="ru_RU.UTF-8"
 LC_TELEPHONE="ru_RU.UTF-8"
 LC_MEASUREMENT="ru_RU.UTF-8"
 LC_IDENTIFICATION="ru_RU.UTF-8"
 LC_ALL=
 localhost ~ # cd dwm*
 localhost dwm-4.6 # cat config.h | grep FONT
 #define FONT            "-*-verdana-medium-r-*-*-*-*-*-*-*-*-iso10646-1"

Как быть?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: dwm

Сообщение pento »

http://dwm.h17.ru/index.php

Домен и хостиниг просьба не обсуждать :)
В общем, есть идея создать страницу готовых цветовых настроек для dwm (по примеру http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/).
Постите свои цветовые гаммы и они попадут на ту страницу.

kernel_mode писал(а):
21.11.2007 20:07
А мне что-то не помогло...

А с терминусом такая же фигня?
Спасибо сказали:

Аватара пользователя
kernel_mode
Сообщения: 347
Статус: infinity++
ОС: Gentoo(desktop)/Arch(laptop)

Re: dwm

Сообщение kernel_mode »

pento писал(а):
23.11.2007 22:46
kernel_mode писал(а):
21.11.2007 20:07
А мне что-то не помогло...

А с терминусом такая же фигня?

Угу.
---
Xfontsel ещё как-то странно себя ведёт. (Processing fonts... и всё тут)
pento писал(а):
23.11.2007 22:46
Постите свои цветовые гаммы и они попадут на ту страницу.

Код: Выделить всё

#define NORMBORDERCOLOR         "black"
#define NORMBGCOLOR             "black"
#define NORMFGCOLOR             "gray"
#define SELBORDERCOLOR          "black"
#define SELBGCOLOR              "black"
#define SELFGCOLOR              "white"

^^
Спасибо сказали:

Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: dwm

Сообщение pento »

Может кто в курсе патча или другого способа перезапустить после перекомпила dwm?
И что бы при этом сохранились открытые окна приложений.
Спасибо сказали:

Аватара пользователя
koshak
Сообщения: 61

Re: dwm

Сообщение koshak »

при попытке компиляции выводит следующее

Код: Выделить всё

koshak@koshak:~/Documents/dwm-4.7$ make install clean

dwm build options:

CFLAGS   = -Os -I. -I/usr/include -I/usr/X11R6/include -DVERSION="4.7"

LDFLAGS  = -s -L/usr/lib -lc -L/usr/X11R6/lib -lX11

CC       = cc

CC dwm.c

dwm.c:26:19: error: errno.h: No such file or directory

dwm.c:27:20: error: locale.h: No such file or directory

dwm.c:29:19: error: stdio.h: No such file or directory

dwm.c:30:20: error: stdlib.h: No such file or directory

dwm.c:31:20: error: string.h: No such file or directory

dwm.c:32:20: error: unistd.h: No such file or directory

dwm.c:33:24: error: sys/select.h: No such file or directory

dwm.c:34:23: error: sys/types.h: No such file or directory

dwm.c:35:22: error: sys/wait.h: No such file or directory

dwm.c:36:19: error: regex.h: No such file or directory

и так далее. в чем может быть проблема?
Время уходит. А мы остаемся.
Спасибо сказали:

Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

Re: dwm

Сообщение Dimon93rus »

Покажите файлик dwm.c....
А devel пакеты от Xorg установлены?
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали:

Аватара пользователя
koshak
Сообщения: 61

Re: dwm

Сообщение koshak »

dwm.c стандартный.
xorg-dev проворонил, а вот перечисленные .h файлы есть.
Время уходит. А мы остаемся.
Спасибо сказали:

Аватара пользователя
SilentMan
Сообщения: 228
Статус: %_%
ОС: Arch Linux

Re: dwm

Сообщение SilentMan »

Никто случаем не знает как ограничить макс. высоту окна? просто есть дополнительная панелька внизу, которая налазит на окна.

Разобрался сам. Ищем строчку 1457, отнимаем сколько надо.
Registered Linux user #451481
Спасибо сказали:

Аватара пользователя
mannequin
Сообщения: 31
ОС: Slackware 12.1

Re: dwm

Сообщение mannequin »

Есть ли способ добраться до свёрнутых в трей окон? Просто мой Gajim запускается УЖЕ свёрнутым и я не знаю как его достать :( Есть идеи?
Спасибо сказали:

Аватара пользователя
Wing
Сообщения: 60
ОС: Debian GNU/Linux

Re: dwm

Сообщение Wing »

mannequin писал(а):
17.04.2008 15:59
Есть ли способ добраться до свёрнутых в трей окон? Просто мой Gajim запускается УЖЕ свёрнутым и я не знаю как его достать :( Есть идеи?

у меня на 9-м теге висит stalonetray. Все приложения, которые сворачиваются в трей, висят там. например, Stardict от которого мне нужен только сканер
Спасибо сказали:

Bender
Сообщения: 81
ОС: Ubuntu 11.04 amd64

Re: dwm

Сообщение Bender »

Никто не знает как сделать, чтобы не оставались зазоры у окон вроде терминалов? И ещё Emacs также себя ведёт, остаются зазоры, то есть не на полный экран.
Спасибо сказали:

Аватара пользователя
ishitori
Сообщения: 502
ОС: gentoo -> archlinux

Re: dwm

Сообщение ishitori »

Bender писал(а):
23.08.2008 17:06
Никто не знает как сделать, чтобы не оставались зазоры у окон вроде терминалов? И ещё Emacs также себя ведёт, остаются зазоры, то есть не на полный экран.


никак.

Код: Выделить всё

http://lists.suckless.org/dwm/0712/4479.html


можешь попробовать сделать, как там написано, то есть

Код: Выделить всё

static Bool resizehints = False;


но будет только хуже - окно растянется на весь экран, но место зазора все равно будет пустым (у меня так, по крайней мере).
я уже привык к таким зазорам. к тому же не часто открываю несколько терминалов сразу. а когда к какому-нибудь тэгу привязываешь только один терминал, то он, как положено, занимает всю площадь экрана.
морнинг круассан..
Спасибо сказали:

Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: dwm

Сообщение polachok »

но будет только хуже - окно растянется на весь экран, но место зазора все равно будет пустым (у меня так, по крайней мере).

естественно, блджад, оно будет пустым. символ шрифта шириной в 8 пикселей ты не засунешь в пять оставшихся. но при этом имеем нормальный аккуратный бэкграунд (как в терминале), а не разглядываем в дырки воллапир с титьками.

а когда к какому-нибудь тэгу привязываешь только один терминал, то он, как положено, занимает всю площадь экрана.

4.2, зависит от шрифта.
И немедленно выпил.
Спасибо сказали: