저는 Devilspie2를 사용하여 Firefox 창이 열려 있을 때를 감지하고 열려 있을 때 창 장식을 제거하려고 합니다.
이것은 작동하지만 Devilspie2가 시작될 때 창이 이미 열려 있는 경우에만 Devilspie2가 실행되는 동안 새 창을 열면 아무 일도 일어나지 않습니다.
내 이론은 Firefox가 열린 후 응용 프로그램 이름을 빠르게 변경한다는 것입니다. 문제는 응용 프로그램이 열릴 때 초기 이름을 찾을 수 있을 만큼 빠르게 응용 프로그램 이름을 모니터링할 수 없다는 것입니다. 내 스크립트에 있는 것과 일치하는 새 Firefox 창에 대한 "응용 프로그램 이름"을 표시합니다.
내 Devilspie2 스크립트는 다음과 같습니다.
-- Matching by application name:
if (get_application_name()=="Firefox") then
undecorate_window();
end
-- Matching by windows that end in "Mozilla Firefox" :
if (End=='' or string.sub(get_window_name(),-string.len("Mozilla Firefox"))=="Mozilla Firefox") then
undecorate_window();
end
debug_print("Window Name: " .. get_window_name());
debug_print("Application name: " .. get_application_name())
출력은 다음과 같습니다 xprop -spy
.
Benguin ~>xprop -spy
GDK_TIMESTAMP_PROP(GDK_TIMESTAMP_PROP) = 0x61
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x94ca5200
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_STICK
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 0, 0
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x2e00023
bitmap id # of mask for icon: 0x2e00029
window id # of group leader: 0x2e00001
_GTK_THEME_VARIANT(UTF8_STRING) =
WM_WINDOW_ROLE(STRING) = "browser"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_WM_ICON(CARDINAL) = Icon (32 x 32):
---SNIP ASCII GRAPHICS---
Icon (192 x 192):
(not shown)
_NET_WM_OPAQUE_REGION(CARDINAL) =
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 48234529, 48234530
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2e00020
WM_CLIENT_LEADER(WINDOW): window id # 0x2e00001
_NET_WM_PID(CARDINAL) = 4039
WM_LOCALE_NAME(STRING) = "en_GB.UTF-8"
WM_CLIENT_MACHINE(STRING) = "C0mputer"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 300 by 87
program specified maximum size: 32767 by 32767
program specified base size: 300 by 87
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "Navigator", "Firefox"
WM_ICON_NAME(STRING) = "Devilspie2 only detects Firefox windows on a restart; how can I fix this? - Unix & Linux Stack Exchange - Mozilla Firefox"
_NET_WM_ICON_NAME(UTF8_STRING) = "Devilspie2 only detects Firefox windows on a restart; how can I fix this? - Unix & Linux Stack Exchange - Mozilla Firefox"
WM_NAME(STRING) = "Devilspie2 only detects Firefox windows on a restart; how can I fix this? - Unix & Linux Stack Exchange - Mozilla Firefox"
_NET_WM_NAME(UTF8_STRING) = "Devilspie2 only detects Firefox windows on a restart; how can I fix this? - Unix & Linux Stack Exchange - Mozilla Firefox"