XDG-ASSIST(1)
okay so bestie, welcome to the manual page for xdg-assist π β it lives in the User Commands section, and it's all about startup-notification assist for window managers and clients.
β¨ NAME β¨
xdg-assist β startup-notification assist window managers and clients π«Ά
π¦ SYNOPSIS π¦
xdg-assist [OPTIONS]
π DESCRIPTION π
xdg-assist is a "C"-language daemon process that assists light-weight window managers and non-conforming clients with startup-notification and EWMH support. It is a background process that should be started before the window manager or any other client. π
π OPTIONS π
The options detailed below are recognized by xdg-assist. It uses getopt_long_only(3), so unambiguous abbreviations of long options and long options with a single dash are also supported. β¨
xdg-assist supports these options:
π COMMAND OPTIONS π
The default is to start xdg-assist and daemonize it (placing it in the background). π
-a,--assistβ (the original page shows this one bracketed as[-a, --assist]) Run as a startup notification assistant. This is the default if no other command option is specified. Only one instance ofxdg-assistcan run as a launch assistant. π-r,--replaceβ Restartxdg-assistby replacing the existing running launch assistant with the current one. π-q,--quitβ Asks a runningxdg-assistlaunch assistant process to stop. π-m,--monitorβ Normallyxdg-assistwill run a single instance as a launch assistant. This option requests thatxdg-assistprovide monitoring of startup notification only and that it not provide any assistance. This is useful for runningxdg-assistwith debugging and verbosity set high to observe and debug the startup notification process, so the debug and output levels are set to three (3). Any number of instances can be run at the same time. The--quitoption will not cause a monitor process to quit. π-h,--helpβ Prints usage information to standard output and exits. π-V,--versionβ Prints detailed version information and exits. β-C,--copyingβ Prints detailed copying permissions and exits. π
πΈ GENERAL OPTIONS πΈ
-g,--guard TIMEOUTβ Specifies the amount of time, TIMEOUT, in milliseconds, thatxdg-assistwill wait for a desktop application to launch. The default is15000milliseconds (15 seconds). β³-v,--verbose [LEVEL]β Print diagnostic information to standard error during operation. This option can be repeated to increase the verbosity of output. The default level is1. π£οΈ-D,--debug [LEVEL]β Prints debugging information to standard error during operation. This option can be repeated to increase the debugging level. The default level is0. π
π¦ USAGE π¦
The primary purpose of the xdg-assist program is to support window managers and clients for launchers other than xdg-launch(1). xdg-launch(1) can provide its own startup notification monitoring and completion in a superior fashion to xdg-assist. Why? Because xdg-launch(1) runs on the same host as the launched process, whereas xdg-assist may not be running on the same host that launched and is running the process. π
Nevertheless, it is advantageous to start xdg-assist(1) and run it as a background process before the window manager starts. An XDG autostart .desktop file is provided for this purpose. When xdg-assist detects a window manager that supports startup notification completion, it will exit with a zero exit status. β¨
A window manager that supports startup notification completion is one that supports NetWM/EWMH and lists _NET_STARTUP_ID, _NET_STARTUP_INFO_BEGIN and _NET_STARTUP_INFO in _NET_SUPPORTED. π
π§ BEHAVIOUR π§
Non-startup-notification aware clients and window managers are assisted when xdg-assist is running and it detects that the window manager does not support full startup notification. π«Ά
When running and when xdg-assist detects that the client or window manager does not support startup notification (or cannot decide one way or the other), xdg-assist will perform the following actions:
xdg-assistruns a launch assistant process. This process will run until killed, or stopped using the--quitor--replaceoptions on another invocation. πxdg-assistmonitors for startup notification messages and collects outstanding startup notification sequences. π¨xdg-assistmonitors for the appearance of a window manager and assesses the capabilities of the window manager. When the window manager supports startup notification completion,xdg-assistexits with a zero exit status. π
Window managers that support startup notification completion are NetWM/EWMH compliant window managers that list atoms _NET_STARTUP_ID, _NET_STARTUP_INFO_BEGIN and _NET_STARTUP_INFO in their supported atoms list, _NET_SUPPORTED.
xdg-assistmonitors for the appearance of new top-level and client windows. πͺ- For EWMH/NetWM compliant window managers, this can be determined using the
_NET_CLIENT_LISTproperty on the root window of the screen on which the client is launching. π₯οΈ - For WMH/WinWM compliant window managers, this can be determined using the
_WIN_CLIENT_LISTproperty on the root window. πͺ - For ICCCM compliant window managers, the appearance of a
WM_STATEproperty on a top-level window with a state other than"WithdrawnState"can be used. π
- For EWMH/NetWM compliant window managers, this can be determined using the
- When a definitive match can be made from the properties of the mapped window,
xdg-launchwill populate the following properties unless otherwise populated by the client or window manager:
okay so yes, bestie β the original page literally saysxdg-launchin this step, notxdg-assist; I'm keeping it exactly as printed. No cap. π
_NET_STARTUP_IDβ This property will be populated with the startup id of the launched desktop application when it is missing. (Very few applications in fact populate this property: not because their toolkits do not support it, but because the facility of the toolkit has not been invoked.) Note that the GTK2 toolkit always places this property on its leader window when theDESKTOP_STARTUP_IDenvironment variable is present at startup (this is part ofgtk_ini()). πͺͺ_NET_WM_USER_TIMEβ This property will be populated with the time stamp, unless it already exists. β±οΈ_NET_WM_PIDβ This property will be populated with the launched process id. π_NET_WM_DESKTOP,_WIN_WORKSPACE,_DT_WORKSPACE_PRESENCEβ These properties will be populated with the desktop for the launched application unless this property was set by the client (and not the window manager). If the property was not set by the client but was set by the window manager and it does not match the value requested during launch,xdg-launchwill send the appropriate client messages to effect the transfer. ποΈWM_NAME,_NET_WM_NAME,_NET_WM_VISIBLE_NAMEβ When none of these properties are present,xdg-launchwill populate them from the"NAME="field of the startup notification sequence. πWM_ICON,_NET_WM_ICON,_KDE_NET_WM_ICONβ When none of these properties are present,xdg-assistwill populate them from the"ICON="field of the startup notification sequence. πΌοΈ_NET_WM_FULLSCREEN_MONITORSβ This property will be populated with the monitor number on which the desktop application was to launch. If the client has already mapped, a client message to change the value will be sent to the root window when the window manager supports such things. π₯οΈWM_HINTSβ If the client window has mapped on the incorrect monitor, and the client has not specified the initial location usingWM_HINTS,xdg-launchwill unmap the window, set theWM_HINTSproperty for the appropriate monitor, and remap the window. πͺWM_COMMANDβ This property will be populated with the command and arguments of the launched process, unless otherwise populated. π§ΎWM_CLIENT_MACHINEβ This property will be populated with the fully qualified host name even when populated by the client. π₯οΈ
xdg-assistmonitors for the creation and removal of process ids (usinginotify(7)on the/procfile system). It performs startup notification completion on process ids that are removed or which perform anexecve(3)or related function that changes the current executable, and command arguments. π
xdg-assist can also monitor when process ids appear that have a specified DESKTOP_STARTUP_ID variable in their environment. (This is provided that the appearing process is run as the same user as was xdg-assist.) π―
π ENVIRONMENT π
The following environment variables are examined by xdg-assist, both in its own environment as well as in the environments of monitored processes:
DISPLAYβ Used byxdg-assistto determine the X display and default screen on which it has been invoked. π₯οΈDESKTOP_STARTUP_IDβ Used byxdg-assistat program startup to determine whether it itself has been launched with startup notification. TheDESKTOP_STARTUP_IDis removed from the environment in this case and a startup notification"remove:"message is issued to complete its own startup. π«§
xdg-assist also monitors for this environment variables in processes to which it has access to match appearing processes with startup notification. A client that properly supports desktop startup notification will remove this environment variable from its environment at startup. One that ignores the environment variable will not remove it. π
π BUGS π
xdg-assist has no known bugs. Please report bugs to the source code repository at https://github.com/bbidulock/xdg-launch/issues. π
π SEE ALSO π
xdg-show(1)xdg-launch(1)xdg-monitor(1)Startup Notification <http://standards.freedesktop.org/startup-notification-spec/startup-notification-0.1.txt>
π AUTHOR π
Brian Bidulock <mailto:bidulock@openss7.org> π
π that's the whole page, bestie β source/version xdg-launch 1.12, dated 2022-01-28, manual page XDG-ASSIST(1). π«Ά
π¦ where this page comes from
- nixos 26.05: xdg-launch 1.12
- nixpkgs unstable: xdg-launch 1.12
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms