Forum Linux.debian/ubuntu lister les boîtes de dialogue ouvertes

Posté par . Licence CC by-sa
Tags : aucun
0
24
mar.
2016

bonjour,

Je travaille sous Ubuntu 14.04 LTS.

Lors d'une session,une fenêtre ou boîte de dialogue est apparue après je ne sais quelle maneuvre(ligne de commande,lancement d'une application).
Etant donné que je ne me rappelle plus à quoi est attribué cette boîte de dialogue et que je voudrais y modifier une entrée,je souhaiterais la retrouver mais je ne sais comment…

merci de votre aide

  • # Réponse

    Posté par . Évalué à 1.

    Bonjour,

    Il faudrait un peu plus d'informations sur la fenêtre en question.
    Tu dis ne plus te souvenir à quoi elle est attribuée, mais tu veux y modifier une entrée..
    Dis nous quelle type d'entrée tu veux modifier dans ce cas.
    Tu pourrais aussi dire dans quel environement tu travaille (unity, gnome, kde,etc..)

  • # un script

    Posté par . Évalué à 5.

    Je pense que si j'avais besoin de faire ça, je modifierais ce script pour qu'au lieu qu'il tue la fenêtre ayant le focus, il affiche le pid. À partir de la, j'utiliserai pstree pour savoir à qui est le pid ainsi que qui sont ses parents (au cas ou le dialogue ne serait pas dans le même processus que l'application qui en a besoin).
    Bien sûr, soit il faut lier le script qui en résulterait à un raccourcis clavier, soit il faut ajouter un délai avant de l'exécuter, le temps d'aller donner le focus à la cible.

    Je pensais qu'il serait possible d'utiliser xkill pour retrouver le pid du processus ciblé, mais non. Peut-être avec un autre outil X… Dommage, ça aurait été plus simple.

    Bon, en gros, le script devrais ressembler a (je viens de tester, chez moi, ça marche):

    #!/bin/sh
    sleep 2
    windowFocus=$(xdotool getwindowfocus);
    pid=$(xprop -id $windowFocus | grep PID | sed 's/^.*= \([0-9]*\)$/\1/g' );
    pstree -p | grep -E --color "$pid|\$"

    C'est sûrement améliorable, par exemple man pstree signale une option -H pour remplacer le bordel après pstree, mais chez moi, ça marche pas.
    À noter que ce code est fait pour être lancé à partir d'un script dans un terminal, pas à partir d'un raccourcis clavier, parce que je ne stocke rien, j'affiche directement. Pour modifier le temps d'attente, c'est la ligne "sleep 2", il faut modifier le 2: ce sont des secondes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.