I3-DMENU-DESKTOP(1)

πŸ’– i3-dmenu-desktop πŸ’–

okay bestie, welcome to i3-dmenu-desktop(1), a lil slice of the User Contributed Perl Documentation corner of the manual-verse πŸŽ€ she's a script, she's iconic, and she's about to make launching apps feel like a whole vibe. sit down, grab a strawberry πŸ“, let's go.


✨ NAME ✨

i3-dmenu-desktop β€” run .desktop files with dmenu πŸ¦‹


✨ SYNOPSIS ✨

i3-dmenu-desktop [--dmenu='dmenu -i'] [--entry-type=name] [--show-duplicates]

like. that's it. that's the whole summoning ritual πŸ’…


✨ DESCRIPTION ✨

so i3-dmenu-desktop is this script that extracts the (localized) name out of your application .desktop files, hands the user a cute lil menu via dmenu(1), and then launches whichever app they picked via i3 (this is the part that gives you startup notification support, no cap πŸ‘‘).

the whole reason you'd use this instead of dmenu_run(1)? okay so dmenu_run just offers up every single binary in your $PATH, which lowkey means it's also offering you non-interactive utilities like sed 😭 not the serve. meanwhile .desktop files come with a proper name, plus info about whether the app runs in a terminal and whether it supports startup notifications. it's giving curated, it's giving taste ✨

the .desktop files get searched in $XDG_DATA_HOME/applications (by default $HOME/.local/share/applications) and in the applications subdirectory of each entry of $XDG_DATA_DIRS (by default /usr/local/share/:/usr/share/). she knows where to look, she's organized πŸ’–

files with the same name in $XDG_DATA_HOME/applications take precedence over files in $XDG_DATA_DIRS, so you can overwrite parts of the system-wide .desktop files by copying them to your local directory and making changes. main character energy: local always wins πŸ’…

i3-dmenu-desktop displays the "Name" value in the localized version, depending on LC_MESSAGES as specified in the Desktop Entry Specification. yes bestie, she reads the spec πŸ“–

you can pass a filename or URL (%f/%F and %u/%U field codes in the .desktop file respectively) by appending it to the name of the application. E.g., if you want to launch "GNU Emacs 24" with the path /tmp/foobar.txt, you would type "emacs", press TAB, type "/tmp/foobar.txt" and press ENTER. that's the flow, that's the ritual, iykyk 🌸

.desktop files with Terminal=true are started using i3-sensible-terminal(1). πŸ–₯️

.desktop files with NoDisplay=true or Hidden=true are skipped. not invited to the party, sorry not sorry πŸ™ˆ

UTF-8 is supported, of course, but heads up: dmenu does not support displaying all glyphs. E.g., xfce4-terminal.desktop's Name[fi]=PÀÀte will be displayed just fine, but not its Name[ru]=Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π». so like, some glyphs just don't make it to the group chat πŸ’€


✨ OPTIONS ✨

  • --dmenu=command β€” Execute command instead of 'dmenu -i'. this one's for when you wanna pass custom parameters to dmenu, or make i3-dmenu-desktop start a custom (patched?) version of dmenu. go off, customise ur life πŸŽ€
  • --entry-type=type β€” Display the (localized) "Name" (type = name), the command (type = command) or the (.desktop) filename (type = filename) in dmenu. this option can be specified multiple times. duplicates will be removed, see '--show-duplicates'.

examples are "GNU Image Manipulation Program" (type = name), "gimp" (type = command), and "libreoffice-writer" (type = filename). pick ur fighter, or honestly, pick all three 🌈

  • --show-duplicates β€” Show duplicates if '--entry-type' is specified multiple times. no deduping, no filtering, just everything, exactly as requested πŸ’œ

✨ VERSION ✨

Version 1.5 ⭐


✨ AUTHOR ✨

Michael Stapelberg, "<michael at i3wm.org>" β€” ty king 🫢


Copyright 2012 Michael Stapelberg.

This program is free software; you can redistribute it and/or modify it under the terms of the BSD license. periodt πŸ’…


fr fr, that's the whole page. now go forth and launch things cutely πŸ¦‹

okay and the lil sign-off at the very bottom, the boring footer stuff but make it cute: this is perl v5.40.0, dated 1980-01-01, and yes the manual name is I3-DMENU-DESKTOP(1) πŸ’– bye bestie, slay ur desktop entries 😭✨

πŸ“¦ where this page comes from