¿Cómo puedo usar comandos de terminal para acceder a los elementos del menú de Ubuntu?

1

Necesito ejecutar un script bash que recupere todos los archivos de escritorio ubicados en un elemento de menú específico (como accesorios / utilidades o educación, etc.) y luego ejecutar uno específico de ellos. ¿Qué comandos de terminal puedo usar para hacer esto?

tristo
fuente

Respuestas:

0

Los .desktoparchivos se encuentran en /usr/share/applications/(todo el sistema) o ~/.local/share/applications(por usuario). La categorización se realiza mediante la configuración de la propiedad "Categorías" en el archivo y esto puede no ser exactamente el mismo que se muestra en el menú, por lo que primero debe encontrar el nombre de categoría correcto. En mi menú hay una categoría llamada "Büro", que es el término alemán para "Office", y contiene un iniciador para qpdfview. Para revisar la .desktoplínea "Categorías" del archivo que ejecuto:

$ grep Categories /usr/share/applications/qpdfview.desktop 
Categories=Viewer;Office;

Eso muestra las dos categorías para el programa, por lo que se llama "Office" en los .desktoparchivos. Para obtener una lista de cada .desktoparchivo categorizado con "Office", lo uso grepnuevamente, con la -lbandera para mostrar solo los nombres de archivo sin coincidencias:

$ grep -l Categories.*Office /usr/share/applications/*
/usr/share/applications/evince.desktop
/usr/share/applications/evince-previewer.desktop
/usr/share/applications/gnucash.desktop
/usr/share/applications/libreoffice-base.desktop
/usr/share/applications/libreoffice-calc.desktop
/usr/share/applications/libreoffice-draw.desktop
/usr/share/applications/libreoffice-impress.desktop
/usr/share/applications/libreoffice-math.desktop
/usr/share/applications/libreoffice-startcenter.desktop
/usr/share/applications/libreoffice-writer.desktop
/usr/share/applications/qpdfview.desktop

Esa es nuestra lista de programas de oficina, ahora para ejecutarlos simplemente usaría xdg-open, por ejemplo:

xdg-open /usr/share/applications/qpdfview.desktop

Si xdg-openno funciona en su sistema, también puede extraer el comando de inicio del archivo y ejecutarlo directamente, por ejemplo:

exec $(grep -Po 'Exec=\K[^ ]*' /usr/share/applications/qpdfview.desktop)

No proporcionó información sobre cómo usted o el usuario del script deberían elegir el programa para ejecutar, por lo que aquí hay algunos enlaces que pueden ayudarlo con eso:

Guardar los nombres de archivo en una matriz para facilitar el procesamiento en un script es tan fácil como eso:

options=("$(grep -l Categories.*Office /usr/share/applications/*)")
postre
fuente