xpop
Toggle an X11 application's pull-down visibility over D-Bus.
xpop leaves the target application as a normal top-level X11 window. It applies
the requested geometry once when the application is discovered, then uses
direct UnmapWindow / MapWindow calls to hide and restore it. To emulate
Guake-style pull-down behavior, xpop follows the GTK3 approach of requesting
that the window manager leave the target window unmanaged. These are only X11
hints, and individual window managers may disregard them.
xpop works only with Xorg. It definitely does not work on Wayland; use window-manager-specific mechanisms instead, such as i3 scratchpads. XWayland has not been tested.
xpop is an alternative to tdrop that uses the same X11 window-management machinery with addition of WM hints following the GTK3 approach. Keeping its daemon connected to an active Xorg session, rather than repeatedly invoking shell binaries, appears to reduce window flicker.
Successor to https://crates.io/crates/zoha for hosting a pull-down terminal in Xorg. Happily working with Wezterm.
Build
Requires pkg-config, and D-Bus development libraries. Running xpop requires an
X11 session and a D-Bus connection.
Usage
# Start the daemon. It may be abbreviated as `d`.
# Toggle a matching window. `signal` may be abbreviated as `s`.
# Hide a matching window.
# `list` may be abbreviated as `l`. Repeating -l selects properties.
CLI Usage
;
Catch
xpop cannot prevent a newly launched application from being shown briefly. Xorg does not offer a way for another process to launch a client window hidden: the application creates and maps its own window, and its window manager may show it before xpop can discover it and apply its hints.
To avoid this launch flicker, use an application-specific hidden/minimized startup option, or configure a window-manager rule matching the application's class or title to hide, minimize, or otherwise place the window before it is shown. If you control the application, create its window unmapped and only map it after your controller signals it.