2017-01-12 7 views
0

Скрыть окно с Linux панели задач

Как достичь same behavior (скрыть python.exe из панели задач) с Python на Linux? (Моя цель в основном Raspbian (LXDE) и Gnome)

похож на this или this, однако я не хочу использовать wx или pygame в качестве поставщика окна, как я уже использую один (sdl2), поэтому, вероятно, нуждается чтобы позвонить, точно так же, как win32gui.

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

+0

Не будет ли 'xlsclients' или' xwininfo -root -tree' всегда показывать ваше окно? –

+0

@RolandSmith даже в Windows есть способы, как получить его, а если нет, вы можете пойти на дерево процессов, и там вы все равно сможете его найти. Важно отключить его в графическом интерфейсе, чтобы пользователь не рассматривал его как «ошибку». Аналогично, например, старые виджеты KDE на рабочем столе (afaik, у них также не было окна на панели задач). – KeyWeeUsr

ответ

0

Xorg - это путь. Если у вас этого нет, продолжайте искать дальше.

В принципе, вы можете вызвать эту команду:

xprop -name <unique window name> -f _NET_WM_STATE 32a \ 
-set _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR 

или

xprop -id <window id> -f _NET_WM_STATE 32a \ 
-set _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR 

удалить что-то из панели задач и оконные менеджеры должны уважать это.

Ubuntu's Unity - это нечто особенное, поэтому, если у вас есть несколько окон, уложенных на один значок панели задач, он либо игнорирует эту команду, либо уже использовал эту команду, чтобы складывать значки в этот единственный значок с небольшими стрелками по сторонам.

Я до сих пор не нашел способ скрыть это. Не стесняйтесь пинговать меня.

+0

Как вы находите «уникальное имя окна» или «идентификатор окна»? – dtmland

+0

Идентификатор @dtmland может быть получен, например. из '_NET_ACTIVE_WINDOW', что полезно для получения окна, которое может иметь или не иметь уникальное имя, поэтому трудно настроить таргетинг на строку. Очевидно, вы тоже можете получить заголовок активного окна, но если это не уникально, тогда он не будет вести себя так, как вы ожидали, и может нацелить совершенно другое окно. Уникальное имя окна - это имя вашего окна - например, добавить в конце PID заголовка процесса, в котором я создаю окно, которое для меня вполне безопасно, поскольку у меня нет названия, фактически видимого где угодно. – KeyWeeUsr

+0

Где я могу получить '_NET_ACTIVE_WINDOW'? Я не вижу его в списке при запуске xprop с перекрестием и выборе моего окна? – dtmland

Смежные вопросы