Я пытаюсь определить источник окна, которое замерзает, но безуспешно :
[andrii@andrii-Aspire-A517-51G ~]$ xprop | awk -F'=' '/_NET_WM_PID/ {print $2}' | xargs ps
PID TTY TIME CMD
8434 pts/0 00:00:00 bash
967972 pts/0 00:00:00 xargs
967991 pts/0 00:00:00 ps
[andrii@andrii-Aspire-A517-51G ~]$ xprop | awk -F'=' '/_NET_WM_PID/ {print $2}'
[andrii@andrii-Aspire-A517-51G ~]$
Также, это ^ приложение пропускает панель задач.
cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
wmctrl -l -p -x
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x6a0bec9
Serial number of failed request: 13
Current serial number in output stream: 13
$ wmctrl -m
Name: Openbox
Class:
PID: N/A
Window manager's "showing the desktop" mode: OFF
$ env | grep -i desktop
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session2
DESKTOP_SESSION=plasma
XDG_SESSION_DESKTOP=plasma
XDG_CURRENT_DESKTOP=KDE
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_DATA_DIRS=/usr/share/plasma:/home/andrii/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
$
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x44185cd (has no name)
Root window id: 0x9a4 (the root window) (has no name)
Parent window id: 0x9a4 (the root window) (has no name)
55 children:
0x4418619 (has no name): () 1x1+0+0 +401+244
0x4418618 (has no name): () 1x1+0+0 +401+244
0x4418617 (has no name): () 1x1+0+0 +401+244
0x4418616 (has no name): () 1x1+0+0 +401+244
0x4418615 (has no name): () 1x1+0+0 +401+244
0x4418614 (has no name): () 1x1+0+0 +401+244
0x4418613 (has no name): () 1x1+0+0 +401+244
0x4418612 (has no name): () 1x1+0+0 +401+244
0x4418611 (has no name): () 1x1+0+0 +401+244
0x4418610 (has no name): () 1x1+0+0 +401+244
0x441860f (has no name): () 1x1+0+0 +401+244
0x441860e (has no name): () 1x1+0+0 +401+244
0x441860d (has no name): () 1x1+0+0 +401+244
0x441860c (has no name): () 1x1+0+0 +401+244
0x441860b (has no name): () 1x1+0+0 +401+244
0x441860a (has no name): () 1x1+0+0 +401+244
0x4418609 (has no name): () 1x1+0+0 +401+244
0x4418608 (has no name): () 1x1+0+0 +401+244
0x4418607 (has no name): () 1x1+0+0 +401+244
0x4418606 (has no name): () 1x1+0+0 +401+244
0x4418605 (has no name): () 1x1+0+0 +401+244
0x4418604 (has no name): () 1x1+0+0 +401+244
0x4418603 (has no name): () 1x1+0+0 +401+244
0x4418602 (has no name): () 1x1+0+0 +401+244
0x4418601 (has no name): () 1x1+0+0 +401+244
0x4418600 (has no name): () 1x1+0+0 +401+244
0x44185ff (has no name): () 1x1+0+0 +401+244
0x44185fe (has no name): () 1x1+0+0 +401+244
0x44185fd (has no name): () 1x1+0+0 +401+244
0x44185fc (has no name): () 1x1+0+0 +401+244
0x44185fb (has no name): () 1x1+0+0 +401+244
0x44185fa (has no name): () 1x1+0+0 +401+244
0x44185f9 (has no name): () 26x1+1891+1043 +2292+1287
0x44185f8 (has no name): () 26x1+1891+1038 +2292+1282
0x44185f7 (has no name): () 1x25+1917+1019 +2318+1263
0x44185f6 (has no name): () 26x1+1+1043 +402+1287
0x44185f5 (has no name): () 26x1+1+1038 +402+1282
0x44185f4 (has no name): () 1x25+0+1019 +401+1263
0x44185f3 (has no name): () 1864x1+27+1043 +428+1287
0x44185f2 (has no name): () 1864x1+27+1038 +428+1282
0x44185ed (has no name): () 1916x4+1+1039 +402+1283
4 children:
0x44185f1 (has no name): () 1x4+1890+0 +2292+1283
0x44185f0 (has no name): () 1x4+25+0 +427+1283
0x44185ef (has no name): () 25x4+1891+0 +2293+1283
0x44185ee (has no name): () 25x4+0+0 +402+1283
0x44185e5 (has no name): () 1x994+1917+26 +2318+270
0x44185e4 (has no name): () 1x994+0+26 +401+270
0x44185de (has no name): () 1916x1+1+23 +402+267
0x44185dd (has no name): () 1x25+1917+1 +2318+245
0x44185dc (has no name): () 26x1+1892+0 +2293+244
0x44185db (has no name): () 26x1+0+0 +401+244
0x44185da (has no name): () 1866x1+26+0 +427+244
0x44185d9 (has no name): () 1x25+0+1 +401+245
0x44185d8 (has no name): () 1916x22+1+1 +402+245
12 children:
0x44185ec (has no name): () 18x18+1856+2 +2258+247
0x44185eb (has no name): () 20x20+2+1 +404+246
0x44185ea (has no name): () 18x18+0+0 +402+245
0x44185e9 (has no name): () 18x18+0+0 +402+245
0x44185e8 (has no name): () 18x18+1896+2 +2298+247
0x44185e7 (has no name): () 18x18+1876+2 +2278+247
0x44185e6 (has no name): () 1792x20+62+1 +464+246
0x44185e3 (has no name): () 2x22+1914+0 +2316+245
0x44185e2 (has no name): () 25x2+1891+0 +2293+245
0x44185e1 (has no name): () 2x22+0+0 +402+245
0x44185e0 (has no name): () 25x2+0+0 +402+245
0x44185df (has no name): () 1866x2+25+0 +427+245
0x44185d3 (has no name): () 1916x1+1+1037 +402+1281
2 children:
0x44185d5 (has no name): () 26x1+1890+0 +2292+1281
0x44185d4 (has no name): () 26x1+0+0 +402+1281
0x44185d2 (has no name): () 1x1012+1916+25 +2317+269
1 child:
0x44185d7 (has no name): () 1x18+0+994 +2317+1263
0x44185d1 (has no name): () 1916x1+1+24 +402+268
0x44185d0 (has no name): () 1x1012+1+25 +402+269
1 child:
0x44185d6 (has no name): () 1x18+0+994 +402+1263
0x44185ce (has no name): () 1914x1012+2+25 +403+269
1 child:
0x44185cf (has no name): () 1914x1012+0+0 +403+269
Absolute upper-left X: 401
Absolute upper-left Y: 244
Relative upper-left X: 401
Relative upper-left Y: 244
Width: 1918
Height: 1044
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +401+244 --399+244 --399--208 +401--208
-geometry 1918x1044+401+244
Bit gravity: ForgetGravity
Window gravity: NorthWestGravity
Backing-store hint: NotUseful
Backing-planes to be preserved: 0xffffffff
Backing pixel: 0
Save-unders: No
Someone wants these events:
ButtonPress
ButtonRelease
EnterWindow
LeaveWindow
SubstructureRedirect
FocusChange
Do not propagate these events:
Override redirection?: No
No window manager hints defined
Window manager hints:
Process id: (unknown)
No normal window size hints defined
No zoom window size hints defined
No window shape defined
No border shape defined
upd. Я убиваю это окно и вот сравнение ps faux
до и после:
https://paste.ubuntu.com/p/2Rf9Kzjpw7/
https://paste.ubuntu.com/p/8rwZySP9Vc/
xwininfo -tree -root | pastebinit
https://paste.ubuntu.com/p/krDy9QwDq3/
(defined id 0x44185cd)
xprop -root|grep ^_NET_CLIENT_LIST | pastebinit
https://paste.ubuntu.com/p/FVYhCzkkQj/
wmctrl -l | pastebinit 3 12:57
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x6a0bec9
Serial number of failed request: 13
Current serial number in output stream: 13
You are trying to send an empty document, exiting.
xlsclients | pastebinit
Это двухэтапная идентификация ваших таинственных окон.
Вы можете открыть терминал и использовать
$ xwininfo
, который предложит вам выбрать окно, о котором вы хотите получить информацию.
Как только вы получите идентификатор окна WIN_ID
(среди прочего), вы можете получить дополнительную информацию с помощью других флагов или с помощью wmctrl
, см. Идентификация 1b ниже.
В частности, вы можете захотеть получить идентификатор процесса.
Если wmctrl
не работает для этого, вы можете попробовать получить PID
из WIN_ID
с помощью
$ xprop -id <WIN_ID> | grep _NET_WM_PID (or simply...)
$ xprop -id <WIN_ID> _NET_WM_PID
. не используйте grep
, вы можете получить другую интересную информацию.
По моему опыту, это не всегда дает положительные результаты.
См. Также Идентификатор 2 ниже.
Связанные :
В качестве альтернативы (возможно, более простой в использовании, но в вашем случае это не работает) вы можете открыть терминал и использовать
$ wmctrl -l -p -x
для вывода списка всех окон, управляемых текущим оконным менеджером {{1 }} (вы можете проверить это с помощью wmctrl -m
или env | grep -i desktop
, и было бы полезно, чтобы вы разместили этот вывод в OP).
Из wmctrl --help
:
The format of the window list:
<window ID> <desktop ID> <client machine> <window title>
Это основной формат, полученный с помощью -l
. Опции -p
и -x
добавляют дополнительные столбцы.
Столбцы 1 (числовой идентификатор окна, из базовой опции -l
), 3 (№ PID, из опции -p
), 4 ( WM_CLASS
, из опции -x
) и 5 (заголовок окна, из базовой опции -l
) вывода будут наиболее полезными.
Затем вы можете использовать
$ wmctrl -a <WIN>
с каждым из перечисленных окон, чтобы «активировать окно, переключившись на его рабочий стол и подняв его» (отметьте). Таким образом, вы может идентифицировать ваши таинственные окна.
Что касается
: «Этот аргумент определяет окно. По умолчанию он интерпретируется как строка. Строка сопоставляется с заголовками окон, и используется первое совпадающее окно. t чувствителен к регистру, и строка может появиться в любой позиции заголовка. "
Таким образом, в большинстве случаев вы можете использовать для
любую подстроку столбца 5 выше, например, wmctrl - a 'Firefox'
.
Возможно, вам потребуется соответствующим образом экранировать строку.
В качестве альтернативы вы можете использовать
$ wmctrl -a <window hex no.> -i
со столбцом 1 выше (что позволяет избежать любой возможной двусмысленности с сопоставлением строк заголовок окна) или
$ wmctrl -a <WM_CLASS> -x
в столбце 4 выше.
Вы можете повозиться с другими забавными и полезными параметрами, например -R
или -G
.
С помощью pidno
каждого целевого окна вы можете использовать
$ ps -ef | grep <pidno>
$ pwdx <pidno>
$ pidstat -p <pidno>
$ ls /proc/<pidno>
$ cat /proc/<pidno>/<file>
для дальнейшей идентификации.
Вы можете увидеть с помощью ls
над тем, что вы можете использовать для <файл>
, например, status
или cmdline
.
Источники: