web-dev-qa-db-fra.com

Conserver Python IDLE dans le lanceur

Je voudrais avoir une icône pour Python I intégré D eve L opment E nvironement (INACTIF) dans mon lanceur. Lorsque j'ai démarré IDLE via le tiret, je peux cliquer avec le bouton droit de la souris sur l'icône et choisir l'option "Verrouiller pour lancer". Après avoir cliqué dessus, cependant, l'option est toujours là, alors qu'elle aurait dû être remplacée par l'option 'remove from Launcher'. Donc, apparemment, cela ne fonctionne pas de cette façon. Puis-je en quelque sorte créer un fichier personnalisé faisant apparaître une icône de lanceur pour IDLE? Les commandes qui se produisent lorsque je démarre IDLE sont

stefan@stefan-HP-Pavilion-13-x360-PC:~$ ps ax -f | grep python
stefan    2087  1922  0 12:30 ?        Sl     0:00 /usr/bin/python /usr/bin/glipper
stefan    3318  1751  0 13:14 ?        Sl     0:02 /usr/bin/python3 /usr/bin/idle3
stefan    3325  3318  0 13:14 ?        Sl     0:03 /usr/bin/python3 -c __import__('idlelib.run').run.main(True) 35780
stefan    3348  3124  0 13:19 pts/0    S+     0:00 grep --color=auto python

donc je devrais en quelque sorte réaliser les deux commandes impliquant inactif avec un script.

Edit: Quand je tape /usr/bin/idle3 dans mon terminal, l'autre commande /usr/bin/python3 -c __import__('idlelib.run').run.main(True) s'exécute automatiquement, il n'est donc pas nécessaire de mettre cela dans un script "starter". Tout ce que le démarreur fait est d’exécuter /usr/bin/idle.

Faire glisser l'icône du tiret directement sur le lanceur ( comme suggéré par Jacob ) le garde dans le lanceur. Cependant, après avoir cliqué dessus, une autre icône apparaît, différente de l'icône de démarrage et présentant le défaut que je décris ici. Peut-être que ce problème peut également être résolu?

4
Stefan Hamcke

La solution la plus simple

Voici ce que vous pouvez faire (plus simplement que vous ne le craigniez :)):

  • Ouvrir Dash
  • Tapez Idle (ou Idle3, selon la version)
  • Faites glisser l'icône de Dash vers le lanceur d'unité:

    enter image description here

    Ensuite, le texte du clic droit saisit:

    enter image description here

    (Quel est le néerlandais pour: "Supprimer du lanceur")

La commande pour exécuter Idle

Pour compléter la réponse: la commande à exécuter Idle est:

/usr/bin/idle

ou pour des versions spécifiques, par exemple: /usr/bin/idle3, ou: /usr/bin/idle-python3.4

Il suffit de regarder à l'intérieur du fichier .desktop dans /usr/share/applications dans la ligne, en commençant par Exec= pour la bonne commande.

Empêcher une icône supplémentaire d'être en veille lors de son lancement

Idle produit les fenêtres du WM_CLASS "Toplevel". Pour que ces fenêtres apparaissent sous la même icône que celle que vous venez de placer dans le lanceur, procédez comme suit:

  • Copiez le fichier global idle.desktop de /usr/share/applications vers ~/.local/share/applications.

    cp /usr/share/applications/idle.desktop ~/.local/share/applications
    
  • Ouvrez le fichier (faites-le glisser sur une fenêtre gedit ouverte).

  • Ajoutez au bas du fichier la ligne:
    StartupWMClass=Toplevel
  • Déconnectez-vous et reconnectez-vous. À partir de ce moment, toutes les fenêtres Idle apparaîtront sous une seule icône:

    enter image description here

C'est ça...


MODIFIER

En raison du fait que les fenêtres d'un WM_CLASS n'apparaissent en principe que sous une seule icône Lanceur (à la fois) dans Unity, veuillez noter que

Bien que les chances soient pratiquement nulles, le regroupement de fenêtres Toplevel sous l'icône Idle pourrait présenter un inconvénient dans de rares cas:

  1. Si vous exécutez différentes versions de Idle en même temps (par exemple, l'édition du code de deux versions python simultanément) , toutes les fenêtres sont regroupées sous l’icône de la version qui a commencé en premier:

    enter image description here

  2. Si vous exécutez des applications python en utilisant tkinter comme interface graphique (ce qui est assez inhabituel de nos jours), les fenêtres secondaires sont généralement définies comme "enfant" de la fenêtre principale à l'aide de wm_transient().

    Dans les applications "non polies" (comme Idle), cela pourrait ne pas être le cas. Dans ce cas, la fenêtre secondaire (fenêtres "Niveaux" dans tkinter) apparaîtra également sous l'icône Idle, Si Le ralenti a fonctionné en premier.

Mais encore une fois, normalement cela n'arrivera probablement jamais, et si c'est le cas, cela ne nuit pas à ce que j'ai décrit.

7
Jacob Vlijm