---
name: "i3-dmenu-desktop"
section: "1"
platform: "linux"
package: "i3-wm"
version: "4.25.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/i3-dmenu-desktop"
---

# i3-dmenu-desktop(1)

## NAME

```
    i3-dmenu-desktop - run .desktop files with dmenu
```

## SYNOPSIS

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

## DESCRIPTION

i3-dmenu-desktop is a script which extracts the (localized) name from application .desktop files, offers the user a choice via [**dmenu**(1)](/dmenu/1.md) and then starts the chosen application via i3 (for startup notification support). The advantage of using .desktop files instead of [**dmenu\_run**(1)](/dmenu_run/1.md) is that dmenu\_run offers **all** binaries in your `$PATH`, including non-interactive utilities like "sed". Also, .desktop files contain a proper name, information about whether the application runs in a terminal and whether it supports startup notifications.

The .desktop files are 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/).

Files with the same name in `$XDG_DATA_HOME`/applications take precedence over files in `$XDG_DATA_DIRS`, so that you can overwrite parts of the system-wide .desktop files by copying them to your local directory and making changes.

i3-dmenu-desktop displays the "Name" value in the localized version depending on LC\_MESSAGES as specified in the Desktop Entry Specification.

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 patch /tmp/foobar.txt, you would type "emacs", press TAB, type " /tmp/foobar.txt" and press ENTER.

.desktop files with Terminal=true are started using [**i3-sensible-terminal**(1)](/i3-sensible-terminal/1.md).

.desktop files with NoDisplay=true or Hidden=true are skipped.

UTF-8 is supported, of course, but 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\]=Терминал.

## OPTIONS

- **--dmenu=command**

  Execute command instead of 'dmenu -i'. This option can be used to pass custom parameters to dmenu, or to make i3-dmenu-desktop start a custom (patched?) version of dmenu.

- **--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).

- **--show-duplicates**

  Show duplicates if '--entry-type' is specified multiple times.

## VERSION

Version 1.5

## AUTHOR

Michael Stapelberg, `"<michael at i3wm.org>"`

## LICENSE AND COPYRIGHT

Copyright 2012 Michael Stapelberg.

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