2010-01-24 7 views
3

Je veux écrire un programme qui imprime le nom de la fenêtre focalisée actuelle et s'il s'agit d'un terminal gnome, imprime le programme en cours dans l'onglet gnome-terminal actuel (pour exemple vim, si une session vim est en cours d'exécution).Comment vérifier quel programme s'exécute dans gnome-terminal

Pour obtenir le nom de la fenêtre le focus, je:

xprop -root | grep "_NET_ACTIVE_WINDOW (FENETRE)"

xprop -id 0x220ad5a | grep "WM_CLASS (STRING)"

Si la fenêtre actuelle est un gnome-terminal, ce sera de retour «gnome-terminal. Mais comment puis-je connaître le programme exécuté dans gnome-terminal (plus précisément: à l'intérieur de l'onglet gnome-terminal actuel)? J'ai pensé utiliser dbus mais gnome-terminal ne semble pas le supporter.

Répondre

0

Obtient le PID du terminal Gnome et vérifie quels processus ont ce numéro comme PPID.

J'ai answered a very similar question il y a quelques jours, voir ce lien pour plus de détails.

+0

Cela peut être plusieurs processus si le terminal gnome exécute plusieurs onglets. – dseifert

+0

Je crois que chaque onglet aura son propre PID, car il exécute un shell séparé. –

0

Merci Adam! Je suis presque là. Avec xprop, je peux obtenir le PID du terminal gnome (6736). Mais malheureusement, il n'y a qu'un seul processus pour toutes les fenêtres et onglets de gnome-terminal. Voir cette sortie pstree avec deux fenêtres ouvertes gnome-terminal:

-gnome-terminal(6736)-+-bash(6738)---vim(6780) 

    |     |-bash(7026)---pstree(7045) 

    |     | `-{gnome-terminal}(6740) 

est-il un moyen de trouver le pid bash de l'onglet gnome-terminal actuellement ouvert?

+0

Pas via la sortie ps. Vous auriez besoin d'interroger l'application gnome-terminal pour des infos, mais je ne sais pas comment vous le feriez. Peut-être vérifier le code source? P.S .: Pour demander plus de détails sur une réponse, postez un commentaire à cette réponse ou éditez votre question. L'ajout d'une nouvelle réponse rendra la lecture difficile car l'ordre des réponses n'est pas nécessairement au fil du temps. – dseifert

+0

Oui. C'est celui qui exécute la commande 'ps'. –

+0

@adam: :) @dseifert: merci et vérifiez le sourcode gnome-terminal cette semaine. – Funsi

Questions connexes