dwm (вопросы)

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

Модераторы: broom, aim

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

Re: dwm

Сообщение phasma » 02.06.2007 00:27

хм, с панелями токо 3.6 версия ... draw.* в них нада копаться в основном ))) в 4.х хз как там чего ))
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 » 02.06.2007 12:03

phasma писал(а):
02.06.2007 00:27
хм, с панелями токо 3.6 версия ... draw.* в них нада копаться в основном ))) в 4.х хз как там чего ))
draw.c почти одинаков во многих версиях (сравнил 3.4 и 4.1). что конкретно там ковырять нужно?
Спасибо сказали:

Аватара пользователя
Delirious Stranger
Сообщения: 340
Статус: кофейник
ОС: Funtoo + Calculate

Re: dwm

Сообщение Delirious Stranger » 02.06.2007 18:52

polachok выложил патч для dwm 4.0 добавляющий вторую панель с таскбаром http://polachok.net/usr/src.html
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 02.06.2007 23:50

Код:

void drawbbar(void) { int x, y, h, w; static char buf[256]; unsigned int len, olen; XGCValues gcv; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; gcv.foreground = dc.norm[ColFG]; XChangeGC(dpy, dc.gc, GCForeground, &gcv); XSetForeground(dpy, dc.gc, dc.norm[ColBG]); r.x = r.y = BORDERPX; r.width = sw - BORDERPX; r.height = textw(stext) - BORDERPX; XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); if(BORDERPX != 0) { r.x = r.y = 0; r.width = sw; r.height = textw(stext); XSetForeground(dpy, dc.gc, dc.norm[ColBorder]); XDrawRectangles(dpy, dc.drawable, dc.gc, &r, 1); } XSetForeground(dpy, dc.gc, dc.norm[ColFG]); 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.norm[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)); XCopyArea(dpy, dc.drawable, bbar, dc.gc, 0, 0, sw, bh, 0, 0); } /* extern */ void drawstatus(void) { drawbar(); XSync(dpy, False); #ifdef BOTTOM_BAR drawbbar(); XSync(dpy, False); #endif }
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
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 13.06.2007 02:02

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

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

helicopter@localhost ~/dwm/bin $ DISPLAY=:1 ./dwm
dwm: missing fontset: ISO10646-1
dwm: missing fontset: JISX0201.1976-0
dwm: missing fontset: GB2312.1980-0
dwm: missing fontset: KSC5601.1987-0
dwm: missing fontset: JISX0208.1983-0
dwm: missing fontset: ISO8859-1
dwm: missing fontset: ISO8859-1
error, cannot load font: '-*-terminus-*-*-*-*-*-*-*-*-*-*-*-u'

Шрифты в системе есть, я их юзаю в системной консоли и в urxvt.
Если просто указать все звёздочки, то выдаёт:

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

helicopter@localhost ~/dwm/dwm-4.2 $ DISPLAY=:1 ./dwm
dwm: missing fontset: GB2312.1980-0
dwm: missing fontset: KSC5601.1987-0
dwm: missing fontset: JISX0208.1983-0

В данном случае запускается, но вместо русских шрифтов крякозябры :(


ЗЫ Патч для юникода, который мелькал выше по топику накладывал, ничего не изменилось :(
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 16.06.2007 02:14

polachok писал(а):
07.04.2007 18:33
и чего создатели dwm с самого начала под UTF-8 не затачивали...

у создателей все работает, это у Вас лично какие-то косяки...


Да ? И как-же часто создатели сталкиваются с кириллицей в заголовках окон ? :laugh:
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

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

Re: dwm

Сообщение edoc_modnar » 16.06.2007 02:52

А с каких пор юникод == кириллица?
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

Аватара пользователя
Delirious Stranger
Сообщения: 340
Статус: кофейник
ОС: Funtoo + Calculate

Re: dwm

Сообщение Delirious Stranger » 16.06.2007 09:09

helicopter,
у меня работает вот так

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

#define FONT            "-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*"
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Спасибо сказали:

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

Re: dwm

Сообщение edoc_modnar » 16.06.2007 09:50

Более того, работает и вот так: "-xos4-terminus-medium-r-normal--12-*-*-*-*-*-koi8-r"
Локаль в юникоде.
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 17.06.2007 22:04

random_code писал(а):
16.06.2007 02:52
А с каких пор юникод == кириллица?

Юникод != кириллица, но траблы вылезают имеено при сочетании кириллицы и юникодной локали.

Delirious Stranger писал(а):
16.06.2007 09:09
helicopter,
у меня работает вот так

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

#define FONT            "-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*"



Попробовал, dwm запустился, но трабла с заголовками осталась, вот так выглядит заголовок фаерфокса на вкладке с секлабом. Что с юникодным патчем, что без него, один фиг

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

'$']'Q'S'_'`'V - SecurityLab - Mozilla Firefox
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 17.06.2007 22:58

Товарищи, у кого нормально отображаются русские загловки окон в utf8 просьба назвать версию и список прикрученых патчей.
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: dwm

Сообщение Aectann » 17.06.2007 23:08

helicopter писал(а):
17.06.2007 22:58
Товарищи, у кого нормально отображаются русские загловки окон в utf8 просьба назвать версию и список прикрученых патчей.

DWM 4.0, без патчей. Самое интересное - в ArchLinux с юникодом были такие же траблы, в Debian - все отлично (:
My god... it's full of stars!...
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 17.06.2007 23:26

Хм, значит надо копать в сторону хака с XLC_LOCALE. Хм или может это потому, что у мну dwm-4.2...
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: dwm

Сообщение helicopter » 17.06.2007 23:58

Всем спасибо, хакнул XLC_LOCALE, русские заголовки стали отображаться нормально :rolleyes:
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 24.06.2007 12:17

как можно поменять местами два окна на одном тэге ? ... если просто перерисовать их, то при обновлении порядок останется таким же ...
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
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 24.06.2007 16:22

все, проблема решена ))
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
Спасибо сказали:

kes
Сообщения: 28
ОС: Gentoo

Re: dwm

Сообщение kes » 27.06.2007 15:38

Может где-то уже задавали такой вопрос, но я не нашел. Возможно ли менять мастеробласть не по вертикали, а по горизонтали? А то когда окна находятся одно над другим, я не могу понять, как увеличить размер одного и уменьшить размер другого.
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 28.06.2007 03:35

kes, да, в конфиг.аш все прописывается ...
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
Спасибо сказали:

kes
Сообщения: 28
ОС: Gentoo

Re: dwm

Сообщение kes » 28.06.2007 07:45

phasma,
хорошо... тогда как это делается?
Спасибо сказали:

Аватара пользователя
Delirious Stranger
Сообщения: 340
Статус: кофейник
ОС: Funtoo + Calculate

Re: dwm

Сообщение Delirious Stranger » 28.06.2007 16:01

kes, поставь, чтобы в мастер-области могло находиться только одно приложение...
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Спасибо сказали:

kes
Сообщения: 28
ОС: Gentoo

Re: dwm

Сообщение kes » 28.06.2007 21:12

Delirious Stranger,
Так у меня и так одно стоит. о_О
Все стандартно:

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

#define MASTERWIDTH        600        /* master width per thousand */
#define NMASTER            1        /* clients in master area */
#define SNAP            32        /* snap pixel */
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 28.06.2007 21:25

на офф странице 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
Спасибо сказали:

Аватара пользователя
Delirious Stranger
Сообщения: 340
Статус: кофейник
ОС: Funtoo + Calculate

Re: dwm

Сообщение Delirious Stranger » 29.06.2007 22:53

kes, извиняюсь. неправильно пост прочитал. смотрите в сторону bottom stack patch
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Спасибо сказали:

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

Re: dwm

Сообщение edoc_modnar » 02.07.2007 19:53

Кому-нибудь удалось найти нормальный патч для работы togglemax в tiled-режиме? Все, что я находил - мусор, который просто тупо переводит окна в плавающий режим и вызывает стандартный togglemax для плавающего окна. Хочу по-правильному.
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

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

Re: dwm

Сообщение sbar » 08.07.2007 22:27

helicopter писал(а):
17.06.2007 23:58
Всем спасибо, хакнул XLC_LOCALE, русские заголовки стали отображаться нормально
а можно по-подробнее плиз? :rolleyes:
вот эта дока не помогла
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 09.07.2007 12:05

random_code, хм, а смысл togglemax в tiled режиме ? .. в принципе можно попробовать сделать так ... сначала сделать mw равной ширине экрана, затем сделать окно главным ... zoom ..
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 » 11.07.2007 01:18

Можно и так. Только вот неMaster-область все равно будет занимать несколько пикселей. Это, конечно, лучше, чем float для всех окон, но все равно криво. Плюс ко всему на всех остальных тегах мастер-окна будут на весь экран. А вот это уже существенно.

Проблему надеюсь решить переходом на ion3 (:
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 11.07.2007 19:33

1) sources of 4.2 version have function for hiding windows ...
2) if you want, i can send to you tags patch ...

sorry, X without russian support ...
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 » 11.07.2007 19:41

dwm patches are junk by default.
problem is solved at now, i'm using ion3 (:
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:

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

Re: dwm

Сообщение phasma » 12.07.2007 14:09

Код:

--- 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 TAGLAYOUTS /* tagging */ #define TAGS \ --- dwm-4.2/dwm.h Wed May 30 14:20:42 2007 +++ dwm/dwm.h Sat Jun 23 10:34:40 2007 @@ -94,6 +94,11 @@ Layout *lt; Window root, barwin; +#ifdef TAGLAYOUTS + Layout **taglayouts; /* global layouts array */ + Layout **currenttaglayout; /* current tag layout */ +#endif + /* client.c */ void attach(Client *c); /* attaches c to global client list */ void configure(Client *c); /* send synthetic configure event */ @@ -128,6 +133,10 @@ void togglebar(const char *arg); /* shows/hides the bar */ void togglemax(const char *arg); /* toggles maximization of floating client */ void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ + +#ifdef TAGLAYOUTS + void setlayoutall(const char *arg); /* setlayout for all tags */ +#endif /* main.c */ void updatebarpos(void); /* updates the bar position */ --- dwm-4.2/layout.c Wed May 30 14:20:42 2007 +++ dwm/layout.c Sat Jun 23 10:53:49 2007 @@ -163,7 +163,18 @@ initlayouts(void) { unsigned int i, w; + lt = &layout[0]; + +#ifdef TAGLAYOUTS + int loop; + + for(loop=0; loop < ntags; loop++) { + taglayouts[loop] = &layout[0]; + } + currenttaglayout = taglayouts; +#endif + nlayouts = sizeof layout / sizeof layout[0]; for(blw = i = 0; i < nlayouts; i++) { w = textw(layout[i].symbol); @@ -220,7 +231,25 @@ lt->arrange(); else drawstatus(); + +#ifdef TAGLAYOUTS + *currenttaglayout = lt; +#endif + +} + +#ifdef TAGLAYOUTS +void +setlayoutall(const char *arg) { + int loop; + + setlayout(arg); + + for (loop=0; loop < ntags; loop++) { + taglayouts[loop] = lt; + } } +#endif void togglebar(const char *arg) { --- dwm-4.2/main.c Wed May 30 14:20:42 2007 +++ dwm/main.c Sat Jun 23 11:12:12 2007 @@ -28,6 +28,11 @@ DC dc = {0}; Window root, barwin; +#ifdef TAGLAYOUTS + Layout **taglayouts = NULL; + Layout **currenttaglayout = NULL; +#endif + /* static */ static int (*xerrorxlib)(Display *, XErrorEvent *); @@ -56,6 +61,12 @@ XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); XSync(dpy, False); free(seltag); + +#ifdef TAGLAYOUTS + free(taglayouts); + +#endif + } static unsigned long @@ -170,6 +181,13 @@ for(ntags = 0; tags[ntags]; ntags++); seltag = emallocz(sizeof(Bool) * ntags); seltag[0] = True; + +#ifdef TAGLAYOUTS + + taglayouts = emallocz(sizeof(Layout*) * ntags); + +#endif + /* style */ dc.norm[ColBorder] = initcolor(NORMBORDERCOLOR); dc.norm[ColBG] = initcolor(NORMBGCOLOR); --- dwm-4.2/tag.c Wed May 30 14:20:42 2007 +++ dwm/tag.c Sat Jun 23 10:52:11 2007 @@ -145,8 +145,15 @@ for(i = 0; i < ntags; i++) seltag[i] = arg == NULL; - i = arg ? atoi(arg) : 0; - if(i >= 0 && i < ntags) + i = arg ? atoi(arg) : -1; + if(i >= 0 && i < ntags) { seltag[i] = True; + +#ifdef TAGLAYOUTS + currenttaglayout = &(taglayouts[i]); + lt = *currenttaglayout; +#endif + + } lt->arrange(); }


код для 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
Спасибо сказали: