hdrop(1)
π hdrop(1) β the Hyprland show/hide bestie
ok so picture this: it's hdrop(1), from the General Commands Manual, and it's literally here to run, show and hide your programs on Hyprland. iconic behavior only. π¦
β¨ NAME β¨
hdrop β run, show and hide programs on Hyprland. that's it, that's the whole vibe. π
πΈ SYNOPSIS πΈ
hdrop [OPTIONS] [COMMAND]
π COMMAND π
COMMANDβ the usual command you would run to start the desired program. like, the plain normal one you'd type anyway. no extra steps, bestie π«Ά
β¨ OPTIONS β¨
-b,--backgroundβ flips the default behaviour: if the specified program is not running, launch it in the background instead of foreground. after that,hdrop -bworks the same as without this flag. so it's a one-time nudge, not a permanent lifestyle π-c,--classβ set the classname of the program to be run. use this if the classname is different from the name of the[COMMAND]and hdrop has not yet a hardcoded replacement. the "i know her by a different name" flag π-f,--floatingβ spawn as a floating window. standard is top half, full width, no gap. can be adjusted with-g,-h,-pand-w. cute little floater πΈ-F,--focusβ flips the default behaviour: focus the specified program's window and switch to its present workspace if necessary. do not hide it, if it's already on the current workspace. main character energy, no hiding π₯-g,--gapβ if using--floating: specify gap to the screen edge in pixels.-h,--heightβ if using--floating: set the height of the window. enter percentage value without%sign, e.g.'30'.-H,--helpβ print help message. the classic π«Ά-i,--insensitiveβ case insensitive partial matching of class names. can work as a stopgap if a running program is not recognized and a new instance is launched instead. note: incorrect matches may occur, adding a special handling of the program to hdrop (hardcoded or via-c,--class) is preferable. it's giving "good enough for now" π-o,--onlineβ delay initial launch for up to 20 seconds until internet connectivity is established. patiently waiting for the wifi to wake up π-p,--positionβ if using--floating: set the position of the window. one of:'[t]op''[b]ottom''[l]eft''[r]ight'.-v,--verboseβ show notifications regarding the matching process. try this to figure out why running programs are not matched. detective mode π-V,--versionβ print version.-w,--widthβ if using--floating: set the width of the window. enter percentage value without%sign, e.g.'30'.
π Description π
this script emulates the main features of [tdrop](https://github.com/noctuid/tdrop) in Hyprland. here's the whole plot:
- if the specified program is not running: launch it and bring it to the foreground.
- if the specified program is already running on another workspace: bring it to the current workspace and focus it.
- if the specified program is already on the current workspace: move it to workspace
special:hdrop, thereby hiding it until called up again by hdrop.
so it's like a little drawer for your apps. open, close, open, close. obsessed. π§
π¦ Multiple instances:
multiple instances of the same program can be run concurrently, if different class names are assigned to each instance. presently there is support for the following flags in the [COMMAND] string:
-a('foot'terminal emulator)--class(all other programs).
(also the original really did end that list with a period, no notes π)
π Example bindings in Hyprland config:
bind = $mainMod, b, exec, hdrop librewolf
bind = $mainMod, x, exec, hdrop kitty --class kitty_1
bind = $mainMod CTRL, x, exec, hdrop kitty --class kitty_2
bind = $mainMod, c, exec, hdrop foot -a foot_1
bind = $mainMod CTRL, c, exec, hdrop foot -a foot_2
note: defining a class name is only necessary when running several instances of the same program. no cap β¨
if you want to run a program on boot and have it wait in the background until called up by hdrop you can use this:
exec-once = hdrop -b librewolf
πΈ Troubleshooting πΈ
π Cursor jumps to newly focused windows
set no_cursor_warps = true in hyprland.conf section general. that's the fix, you're welcome π
π Further instances of programs are started instead of hiding/unhiding a running instance
if hdrop can't match an already running program and starts a new instance instead, then its class name is most likely different from its command name. for example, the class name of telegram-desktop is org.telegram.desktop and the class name of logseq is Logseq. like, they're lying about their names smh π
run hdrop -v [COMMAND] in the terminal to see maximum output for troubleshooting and find out the actual class name. then use hdrop -c CLASSNAME to make it work. hdrop -i [COMMAND] might be sufficient, as long as a case insensitive (partial) match is sufficient. fr fr π«Ά
please report instances of programs with differing class names, so that they can be added to hdrop. community service king behavior π
π Floating windows don't react to changed arguments
close the program (don't just hide it with hdrop). the changed arguments are only applied when the program is restarted. like, it's not ignoring you on purpose, it just needs a fresh start π
β License β
- Dependencies:
bashjqhyprland - Part of: [https://github.com/hyprwm/contrib](https://github.com/hyprwm/contrib)
- Author: Schweber ([https://github.com/Schweber/hdrop](https://github.com/Schweber/hdrop))
- License: AGPL3
k that's the whole page bestie π it's hdrop(1), dated 1980-01-01 (yes literally, the source/version line said so, i don't make the rules), and that's the sign-off β go hide a window, go slay πβ¨
π¦ where this page comes from
- nixos 26.05: hdrop 0.7.9
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms