dwm (вопросы)
Модератор: Модераторы разделов
Re: dwm
хм, с панелями токо 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
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
polachok выложил патч для dwm 4.0 добавляющий вторую панель с таскбаром http://polachok.net/usr/src.html
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Re: dwm
Код:
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
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
Хм, вот решил тоже попробовать сабж, а он мне выдаёт такое:
Шрифты в системе есть, я их юзаю в системной консоли и в urxvt.
Если просто указать все звёздочки, то выдаёт:
В данном случае запускается, но вместо русских шрифтов крякозябры![:(](./images/smilies/sad.gif)
ЗЫ Патч для юникода, который мелькал выше по топику накладывал, ничего не изменилось![:(](./images/smilies/sad.gif)
Код: Выделить всё
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
В данном случае запускается, но вместо русских шрифтов крякозябры
![:(](./images/smilies/sad.gif)
ЗЫ Патч для юникода, который мелькал выше по топику накладывал, ничего не изменилось
![:(](./images/smilies/sad.gif)
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
- helicopter
- Сообщения: 324
- Статус: Комсомолец
- ОС: Gentoo Linux
Re: dwm
Да ? И как-же часто создатели сталкиваются с кириллицей в заголовках окон ?
![:laugh:](./images/smilies/laugh.gif)
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
- edoc_modnar
- Бывший модератор
- Сообщения: 1638
- Статус: Форум больше не посещаю
Re: dwm
А с каких пор юникод == кириллица?
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
- Delirious Stranger
- Сообщения: 340
- Статус: кофейник
- ОС: Funtoo + Calculate
Re: dwm
helicopter,
у меня работает вот так
у меня работает вот так
Код: Выделить всё
#define FONT "-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*"
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
- edoc_modnar
- Бывший модератор
- Сообщения: 1638
- Статус: Форум больше не посещаю
Re: dwm
Более того, работает и вот так: "-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
Юникод != кириллица, но траблы вылезают имеено при сочетании кириллицы и юникодной локали.
Delirious Stranger писал(а): ↑16.06.2007 09:09helicopter,
у меня работает вот так
Код: Выделить всё
#define FONT "-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*"
Попробовал, dwm запустился, но трабла с заголовками осталась, вот так выглядит заголовок фаерфокса на вкладке с секлабом. Что с юникодным патчем, что без него, один фиг
Код: Выделить всё
'$']'Q'S'_'`'V - SecurityLab - Mozilla Firefox
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
- helicopter
- Сообщения: 324
- Статус: Комсомолец
- ОС: Gentoo Linux
Re: dwm
Товарищи, у кого нормально отображаются русские загловки окон в utf8 просьба назвать версию и список прикрученых патчей.
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Re: dwm
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
Хм, значит надо копать в сторону хака с XLC_LOCALE. Хм или может это потому, что у мну dwm-4.2...
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
- helicopter
- Сообщения: 324
- Статус: Комсомолец
- ОС: Gentoo Linux
Re: dwm
Всем спасибо, хакнул XLC_LOCALE, русские заголовки стали отображаться нормально ![:rolleyes:](./images/smilies/rolleyes.gif)
![:rolleyes:](./images/smilies/rolleyes.gif)
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Re: 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
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Re: 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
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Re: dwm
Может где-то уже задавали такой вопрос, но я не нашел. Возможно ли менять мастеробласть не по вертикали, а по горизонтали? А то когда окна находятся одно над другим, я не могу понять, как увеличить размер одного и уменьшить размер другого.
Re: dwm
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
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0
Re: dwm
phasma,
хорошо... тогда как это делается?
хорошо... тогда как это делается?
- Delirious Stranger
- Сообщения: 340
- Статус: кофейник
- ОС: Funtoo + Calculate
Re: dwm
kes, поставь, чтобы в мастер-области могло находиться только одно приложение...
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Re: dwm
Delirious Stranger,
Так у меня и так одно стоит. о_О
Все стандартно:
Так у меня и так одно стоит. о_О
Все стандартно:
Код: Выделить всё
#define MASTERWIDTH 600 /* master width per thousand */
#define NMASTER 1 /* clients in master area */
#define SNAP 32 /* snap pixel */
Re: dwm
на офф странице 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
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
kes, извиняюсь. неправильно пост прочитал. смотрите в сторону bottom stack patch
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
- edoc_modnar
- Бывший модератор
- Сообщения: 1638
- Статус: Форум больше не посещаю
Re: dwm
Кому-нибудь удалось найти нормальный патч для работы togglemax в tiled-режиме? Все, что я находил - мусор, который просто тупо переводит окна в плавающий режим и вызывает стандартный togglemax для плавающего окна. Хочу по-правильному.
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Re: dwm
а можно по-подробнее плиз?helicopter писал(а): ↑17.06.2007 23:58Всем спасибо, хакнул XLC_LOCALE, русские заголовки стали отображаться нормально
![:rolleyes:](./images/smilies/rolleyes.gif)
вот эта дока не помогла
Re: dwm
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
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
Можно и так. Только вот неMaster-область все равно будет занимать несколько пикселей. Это, конечно, лучше, чем float для всех окон, но все равно криво. Плюс ко всему на всех остальных тегах мастер-окна будут на весь экран. А вот это уже существенно.
Проблему надеюсь решить переходом на ion3 (:
Проблему надеюсь решить переходом на ion3 (:
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Re: dwm
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 ...
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
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
dwm patches are junk by default.
problem is solved at now, i'm using ion3 (:
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
Re: dwm
Код:
--- 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
Old NB: Asus A6km AMD Turion MT-32|DDR 2 GB|NV GFGO 7300|60 Gb
OS: Ubuntu 9.10, FreeBSD 8.0