GNU/Linux >> Tutoriels Linux >  >> Linux

Limiter un programme graphique sous Linux à une seule instance

Je recommanderais de remplacer le lien vers le programme par un lien vers un script shell qui vérifie si le programme est en cours d'exécution, et si c'est le cas, il utilise la fonction du gestionnaire de fenêtres pour mettre le programme en premier, et si ce n'est pas le cas, le démarre .


J'ai trouvé ce fil et l'ai implémenté, en partageant ma version.

J'ai créé un fichier exécutable /usr/local/bin/run_once.sh contenant

#! /bin/bash
application=$1
if wmctrl -xl | grep "${application}" > /dev/null ; then
    # Already running, raising to front
    wmctrl -x -R "$application"
else
    # Not running: starting
    [email protected]
fi

Cela vérifie en utilisant wmctrl si l'application que vous essayez de démarrer a déjà une fenêtre ouverte (certains programmes d'interface graphique maintiennent les travailleurs sans interface graphique en cours d'exécution) au lieu d'utiliser ps , en utilisant -x pour utiliser le WM_CLASS au lieu du nom de la barre de titre.

Pour chaque programme dont je ne veux qu'une seule fenêtre j'ai copié le système .desktop fichier en ~/.local/share/applications et changé le exec champ de exec=program --arguments à exec=/usr/local/bin/run_once.sh program --arguments


Généralement, le code source de l'application doit être modifié. Ce n'est pas quelque chose fait par le système d'exploitation.


Linux
  1. Linux - Obtenir un véritable système d'exploitation open source uniquement fonctionnant sur un téléphone ? Android?

  2. Comment redémarrer (ou réinitialiser) un processus en cours d'exécution sous Linux ?

  3. Linux - Redémarrer uniquement l'espace utilisateur ?

  4. Vérifier les services en cours d'exécution sous Linux

  5. Comment puis-je m'assurer qu'une seule instance d'un script Ruby s'exécute à la fois ?

Quelle version de Linux est-ce que j'utilise ?

5 conseils pour maîtriser Linux

Comment installer un programme Gui sur Ubuntu Server ?

Comment tuer les processus en cours d'exécution sous Linux

Un guide pour exécuter Traceroute sous Linux

Avoir du mal à faire fonctionner Steam Terraria sous Linux