LINUX.ORG.RU

dwm + emulator + windows title

 , , ,


0

1

Я запускаю emulator android

emulator -avd Pixel_2_API_R -netdelay none -netspeed full

Запущенный эмулятор хочет быть float(blink’ает) Запускаю xprop:

$xprop.sh
title: "Android Emulator - Pixel_2_API_R:5554"
$xprop.sh
title:

https://ibb.co/VWsWmgm сам эмулятор имеет титл Android Emulator - Pixel_2_API_R:5554

https://ibb.co/9TCTw7d панелька имеет титл title:(пусто)

в dwm добавить бы что-то типа

{ NULL, NULL, "Android Emulator-*", 0, 1, -1 },

возможно ли это?

И второе, как быть с панелькой, которая имеет title пусто?

И третье: может как-то можно выставить титл\виндовс класс\инстанс всему этому делу?

★★★★

Последнее исправление: bryak (всего исправлений: 1)

Там же не только по тайтлу можно фильтровать, посмотри WM_CLASS, он обычно более специфичен и постоянен.

d ★★★★
()
Ответ на: комментарий от d

$xprop.sh у меня рисует не только title, а и wm_class и wm_instance. Если он не срисовал, значит его нет

bryak ★★★★
() автор топика

И третье: может как-то можно выставить титл\виндовс класс\инстанс всему этому делу?

man xprop

xprop -set WM_NAME "name"

Android Emulator - Pixel_2_API_R:5554
возможно ли это?

Попробуй патч со strncmp, если ничего лучше не предложат.

d ★★★★
()
Ответ на: комментарий от d

Я так понимаю, что нужно пропатчить этот кусок кода в dwm? Готовых патчей нет?

/* function implementations */
void
applyrules(Client *c)
{
	const char *class, *instance;
	unsigned int i;
	const Rule *r;
	Monitor *m;
	XClassHint ch = { NULL, NULL };

	/* rule matching */
	c->isfloating = 0;
	c->tags = 0;
	XGetClassHint(dpy, c->win, &ch);
	class    = ch.res_class ? ch.res_class : broken;
	instance = ch.res_name  ? ch.res_name  : broken;

	for (i = 0; i < LENGTH(rules); i++) {
		r = &rules[i];
		if ((!r->title || strstr(c->name, r->title))
		&& (!r->class || strstr(class, r->class))
		&& (!r->instance || strstr(instance, r->instance)))
		{
			c->isfloating = r->isfloating;
			c->tags |= r->tags;
			for (m = mons; m && m->num != r->monitor; m = m->next);
			if (m)
				c->mon = m;
		}
	}
	if (ch.res_class)
		XFree(ch.res_class);
	if (ch.res_name)
		XFree(ch.res_name);
	c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
}
bryak ★★★★
() автор топика
15 февраля 2021 г.
Ответ на: комментарий от d

так

{ NULL, NULL, "Android Emulator -", 0, 1, -1 },

или так

{ NULL, NULL, "Android Emulator", 0, 1, -1 },

или так

{ NULL, NULL, "Android Emulator - ", 0, 1, -1 },

не работает

PS: Почему так долго между ответом и постом? Не работал в android dev, извиняюсь за таймаут

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 2)
Ответ на: комментарий от anonymous

выхорп окна эмулятора

XdndAware(ATOM) = BITMAP
WM_NAME(STRING) = "Android Emulator - Pixel_2_API_R:5554"
_NET_WM_NAME(UTF8_STRING) = "Android Emulator - Pixel_2_API_R:5554"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x0, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x8200007
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                window id # of group leader: 0x8200007
WM_CLIENT_MACHINE(STRING) = "debian-home"
_NET_WM_PID(CARDINAL) = 18564
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 136314886
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified size: 557 by 1031
                program specified minimum size: 200 by 200
                window gravity: Static

выхлоп панельки с кнопками(рядом с эмулятором)

XdndAware(ATOM) = BITMAP
WM_NAME(STRING) =
_NET_WM_NAME(UTF8_STRING) = "Emulator"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x0, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_UTILITY, _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x8200007
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                window id # of group leader: 0x8200007
WM_CLIENT_MACHINE(STRING) = "debian-home"
_NET_WM_PID(CARDINAL) = 18564
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 136314898
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 527, 17
                user specified size: 61 by 512
                program specified minimum size: 61 by 512
                program specified maximum size: 61 by 512
                window gravity: Static
bryak ★★★★
() автор топика

Так и как же быть в этом случае?

bryak ★★★★
() автор топика
Ответ на: комментарий от anonymous

Сделал просто «Android», так же blink’ает т.е окно не float

bryak ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.