dmenu (Español)
dmenu es un lanzador de menú rápido, dinámico y ligero para X. Lee texto arbitrario desde stdin, y crea un menú con un ítem por cada línea. El usuario puede entonces seleccionar un ítem, a través de las flechas de teclado o escribiendo parte del nombre, y la línea es escrita a stdout. dmenu_run es un wrapper que viene con la distribución de dmenu que permite su uso como lanzador de aplicaciones.
Instalación
Existen varias variantes parcheadas que extienden la funcionalidad por defecto de dmenu.
Puede ejecutar dmenu con:
$ dmenu_run
Configuración
Ahora, querrá anclar el comando dmenu_run a una combinación de teclas. Esto puede hacerse vía su gestor de ventanas o la configuración de su entorno de escritorio, o con un programa como xbindkeys. Vea el artículo Hotkeys para obtener más información.
Mostrar ítems personalizados
Los ítems personalizados serán mostrados al separarlos con una nueva línea (\n) y canalizándolos hacia dmenu. Por ejemplo:
$ echo -e "primero\nsegundo\ntercero" | dmenu
Añadiendo ítems manualmente
dmenu buscará ejecutables en los directorios definidos en su $PATH. Para información acerca de modificar su $PATH vea Variables de entorno.
Fuentes
dmenu puede mostrar fuentes usando XFT. Este ejemplo ejecutará dmenu usando ttf-droid:
$ dmenu_run -fn 'Droid Sans Mono-9'
Soporte para alias de shell
dmenu no soporta alias de shell. Para que dmenu reconozca sus alias, instale el paquete dmenu-recent-aliases-gitAUR y ejecute dmenu-recent-aliases. Sus alias deben estar en ~/.bash_aliases para ser reconocidos por dmenu-recent-aliases.
Soporte para historial
Para ordenar los comandos por recencia, descargue dmenu_run_history a su $PATH y use dmenu_run_history en vez de dmenu_run.
Consejos y trucos
Obtener entrada del usuario con dmenu
Dentro de un script (por ejemplo, lanzado desde un atajo de teclado), a veces es necesario obtener una entrada del usuario. Se puede usar dmenu para esto pasándole un EOF: el campo de selección quedará vacío y dmenu podrá recibir la entrada del usuario.
Como leer /dev/null devuelve un EOF, esto se puede hacer simplemente con el siguiente comando:
$ dmenu < /dev/null
Incrustar en la terminal actual
dmenu puede incrustarse dentro de cualquier ventana usando la opción -w id.
Para incrustarlo dentro de la ventana activa (por ejemplo, la terminal desde la que se ejecuta), use xdo para obtener su id:
$ echo hello | dmenu -w $(xdo id)
Resolución de problemas
Sin soporte de locale
Ejecutando dmenu_run resulta en el siguiente mensaje de error:
$ dmenu_run
no locale support
Asegúrese de que la variable de entorno LANG está definida correctamente. Vea lo siguiente para más información: Locale (Español)#Solución de problemas.
Entradas del menú faltantes
Si ciertas entradas del menú faltan en dmenu, el cache podría estar malformado. Elimínelo y reinicie dmenu.
$ rm ~/.dmenu_cache $ rm ~/.cache/dmenu_run
Tome en cuenta que lo más común es que solo haya un archivo de cache, dependiendo si $XDG_CACHE_HOME está definido. Vea los contenidos de /usr/bin/dmenu_run para más información.
Variables de entorno
Las variables de entorno requeridas por las aplicaciones deberían ser agregadas en su lugar a /etc/environment.
Véase también
- dmenu – Sitio oficial de dmenu
- Dmenu Hacking thread – Hilo de hackeo de dmenu en el foro de Arch Linux. Un conjunto de scripts es proveído en dmenu_scripts collection.