web-dev-qa-db-fra.com

Aide à la syntaxe et à la personnalisation des fichiers .desktop pour Unity

  1. J'ai essayé ci-dessous, et cela fonctionne comme prévu. Sandboxing Firefox dans un état volatile via Firejail.

    Exec=firejail --seccomp --private firefox
    
  2. À quoi ça sert? Et que fait-il?

    Actions=NewWindow;NewPrivateWindow;
    
  3. Ma Firefox.desktop code jusqu'à présent

    [Desktop Entry] Version=1.0
    Name=VOLATILE SANDBOX - Private Firefox 
    Comment=Browse the World Wide Web
    GenericName=Web Browser
    Keywords=Internet;WWW;Browser;Web;Explorer
    Exec=firejail --seccomp --private firefox
    Terminal=false
    X-MultipleArgs=false
    Type=Application
    Icon=firefox
    Categories=GNOME;GTK;Network;WebBrowser;
    MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
    StartupNotify=true
    Actions=NewWindow;NewPrivateWindow;
    
  4. Je veux ajouter des états de clic droit: Persistant et nsafe, afin que vous puissiez mettre à niveau les extensions. Comment ajouter un deuxième et un troisième état (dans mon code)?

    Exec=firejail firefox
    

    et

    Exec=firefox
    
2
Ubuntu_Chef

Limiter/changer un peu votre question en "Quelles sont les différentes sections d'un .desktop fichier pour? "

Explication des différentes sections d'un fichier .desktop

Dans ma réponse, je vais utiliser un simple .desktopfichier, puisque l'exemple de firefox a de nombreuses lignes distrayantes, ne rendant pas la réponse plus claire.

Le principe est cependant exactement le même pour tous .desktop fichiers, à utiliser dans Unity.

1. Le "corps" d'une base .desktop fichier

Supposons que vous ayez une application (gedit dans l'exemple), mais pas .desktop fichier. Vous pouvez simplement créer un fichier:

[Desktop Entry]
Name=Gedit
Exec=gedit
Type=Application

nommez-le par exemple gedit_starter.desktop. Pour l'utiliser depuis votre bureau (double-cliquez pour exécuter la commande gedit), rendez-le simplement exécutable. Pour le faire apparaître dans Dash, enregistrez-le dans /usr/share/applications (pour une utilisation globale) ou ~/.local/share/applications (pour un usage local et personnel).

Ajout d'options supplémentaires (touches de saisie)

L'exemple ci-dessus est un .desktop fichier dans sa forme la plus simple; une simple commande, une icône générique. Vous pouvez ajouter des lignes supplémentaires, pour donner le .desktop déposer une icône, ajouter des options supplémentaires ou des noms localisés, etc. Voir ce lien pour trouver des options pour ajouter des clés d'entrée, comme une icône personnalisée.

Notez que l'icône (éventuellement set-) et le nom du set (dans le Name= line) n'apparaîtra pas sur le fichier si vous le stockez sur votre bureau, sauf si vous le rendez exécutable. Voir ci-dessous l'exemple de Firefox:

non exécutable

enter image description here

exécutable

enter image description here

2. Ajout d'éléments de clic droit (à partir du lanceur Unity)

enter image description here

La section, comme mentionné dans [1.] contient la commande "principale" du fichier de lancement. Cela s'exécutera si vous cliquez dessus (Unity). Pour créer des éléments de clic droit, vous avez besoin de deux sections supplémentaires:

  • une ligne, répertoriant ces options de clic droit supplémentaires, séparées par un ";".
    Du "vrai" gedit``.desktopexemple de fichier:

    Actions=Window;Document;
    

    Chacun de ces éléments correspond à:

  • une section de raccourci, comme:

    [Desktop Action Window]
    Name=Open a New Window
    Exec=gedit --new-window
    OnlyShowIn=Unity;
    

    En regardant dans cette section:

    [Desktop Action Window]
    

    fait référence au nom, comme indiqué dans le Actions= ligne. Le nom peut contenir des espaces, par exemple .Recently used, comme je l'ai fait dans cette réponse .

    Name=Open a New Window
    

    fait référence au nom, tel qu'il apparaît dans votre interface

    Exec=gedit --new-window
    

    fait référence à la commande à exécuter sur un clic droit

    OnlyShowIn=Unity;
    

    fait référence aux environnements de bureau qui devraient afficher l'entrée de bureau

C'est essentiellement ainsi que cela fonctionne.

Votre exemple

Si je comprends bien votre question et que vous souhaitez ajouter à la fois Persistant et dangereux à votre liste rapide firefox (comme option de clic droit), vous devez changer la ligne:

Actions=NewWindow;NewPrivateWindow;

dans:

Actions=NewWindow;NewPrivateWindow;Persistant;unsafe;

et ajoutez au bas du fichier deux sections de raccourci:

    [Desktop Action Persistant]
    Name=Persistant
    Exec=<command>
    OnlyShowIn=Unity;


    [Desktop Action unsafe]
    Name=unsafe
    Exec=<command>
    OnlyShowIn=Unity;

où vous devez remplacer les deux <command> par les commandes que vous souhaitez exécuter.

Remarque

Si vous souhaitez modifier un .desktopfile, copiez toujours le fichier (global) par défaut à partir de /usr/share/applications à ~/.local/share/applications (pour un usage local et personnel) et modifiez celui local. Après la déconnexion/la connexion, la version locale annulera la valeur globale.

2
Jacob Vlijm

Soit dit en passant, si vous faites cela et que vous avez du mal à ouvrir des liens dans Firefox (ou tout autre programme) en tant qu '"application par défaut" pour un type de fichier, essayez d'ajouter% U à la ligne Exec, comme ceci:

Exec=firefox %U

Le% U est un espace réservé pour l'URL transmise au programme. Je pense que d'autres espaces réservés sont également disponibles, c'est exactement ce qui a fonctionné pour moi dans Firefox.

0
willbradley