GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment actualiser le menu de l'application de l'icône du lanceur dans Ubuntu 12.04 ?

Après avoir modifié un fichier de bureau dans /usr/share/applications , je dois rafraîchir le menu de l'application de l'icône du lanceur pour que ma modification apparaisse.
Par souci de clarté, le menu qui doit être modifié est celui qui apparaît avec un clic droit lorsque le pointeur est sur une icône de le lanceur (la grande barre pleine d'icônes sur le côté gauche de l'écran).

La meilleure réponse serait une simple ligne de commande.

Je n'utilise pas ubuntu-2d et je ne veux pas me déconnecter/ me connecter.

Je connais une solution partielle :

  • unity --replace recharge tout (décoration des fenêtres, zone de notification, …)
  • killall ubuntu-2d-launcher est ubuntu-2d uniquement, mais si une commande similaire sur une ligne existe pour l'unité, ce serait une bonne solution.
  • La déconnexion puis la reconnexion fonctionnent également, mais je ne peux pas me permettre de perdre toute ma session juste pour mettre à jour le menu.
  • sur Ubuntu 14.04, je n'ai pas ce problème :toute modification apportée aux fichiers "*.desktop" semble être répercutée en direct.

Aucune suggestion ? Existe-t-il un moyen grâce à ccsm ?

Réponse acceptée :

La manière la plus élégante est de "redémarrer" l'icône ; pour retirer l'icône de sa position dans le lanceur et la replacer à la même position. Le script ci-dessous fait le travail. C'est en python2, puisque 12.04 n'est pas livré avec python3 par défaut. Cependant, il peut également être utilisé dans python3, ne changez que le shebang dans ce cas. Le script peut également être utile (sur les versions ultérieures d'Ubuntu également) pour appliquer immédiatement une icône modifiée, par exemple.

Vous pouvez simplement l'utiliser en appelant le script, avec le fichier de bureau modifié comme argument (voir ci-dessous).

Remarque  :en 12.04, si une icône actualisée représente un élément en cours d'exécution application, l'application en question plantera, comme décrit dans cette question, donc si vous l'utilisez, assurez-vous que l'application n'est pas en cours d'exécution. Dans 14.04, l'icône ne sera tout simplement pas actualisée en cas d'exécution d'une application.

Le scénario

#!/usr/bin/env python

import subprocess
import time
import sys

desktopfile = sys.argv[-1]

def read_currentlauncher():
    # reads the current launcher contents
    get_launcheritems = subprocess.Popen([
        "gsettings", "get", "com.canonical.Unity.Launcher", "favorites"
        ], stdout=subprocess.PIPE)
    return get_launcheritems.communicate()[0].decode("utf-8")

def set_launcher(llist):
    # sets a defined unity launcher list
    current_launcher = str(llist).replace(", ", ",")
    subprocess.Popen([
        "gsettings", "set", "com.canonical.Unity.Launcher", "favorites",
        current_launcher,
        ])

def refresh_icon(desktopfile):
    current_launcher = read_currentlauncher()
    current_launcher_temp = eval(current_launcher)
    item = [item for item in current_launcher_temp if desktopfile in item][0]
    index = current_launcher_temp.index(item)
    current_launcher_temp.pop(index)
    set_launcher(current_launcher_temp)
    time.sleep(2)
    set_launcher(current_launcher)

refresh_icon(desktopfile)

Comment l'utiliser

  • Copiez le script ci-dessus dans un fichier vide et sauvegardez-le sous refresh.py
  • Pour des raisons de commodité, rendez-le exécutable
  • Actualisez l'icône par la commande :

    /path/to/script/refresh.py name_of_edited_desktopfile (e.g. 'firefox.desktop')
    

Si vous voulez vraiment que ce soit fluide

  • Rendez le script exécutable, supprimez le .py extension, enregistrez-la dans ~/bin . Après vous être déconnecté/connecté, vous pouvez l'exécuter avec la commande :

    refresh firefox.desktop (as an example)
    

Ubuntu
  1. Ajouter le menu Application sur Ubuntu 20.04 GNOME Desktop

  2. Comment créer un lanceur d'applications intégré pour un fichier Appimage dans Ubuntu

  3. Comment masquer le menu Grub dans Ubuntu 14.04 ?

  4. Comment changer la taille de l'icône du bureau dans Ubuntu 16.10 ?

  5. Problèmes d'icône du lanceur Eclipse Ubuntu 16.04?

Comment résoudre:aucune icône Dropbox dans Ubuntu 14.10 et 14.04

Comment installer ReactJS sur Ubuntu 21.04

Comment changer de noyau au démarrage ?

Comment ajouter une application au menu de l'application de démarrage ?

Icône sans icône en double du lanceur ?

Comment installer le thème d'icônes Papirus sur Ubuntu 22.04