4 votes

Comment basculer le focus sur l'application en fonction de son PID à partir du CLI ?

J'ai commencé à utiliser Firefox avec plusieurs profils, mais parfois je suis perdu et je ne trouve pas la bonne fenêtre.

Par exemple, j'ai le processus avec le PID 1234 comme suit :

$ ps wuax | grep -w Foo
kenorb           1234  /Applications/Firefox.app/Contents/MacOS/firefox -P Foo

Comment puis-je changer la focalisation actuelle en fonction de son PID ?

1 votes

Eh bien, vous pourriez kill -STOP 1234 Regardez si Firefox ne répond plus, puis utilisez la fonction kill -CONT 1234 de procéder. Mais j'espère que quelqu'un aura une meilleure idée :-)

3voto

user3439894 Points 52496

Voici un exemple AppleScript code qui fera apparaître les fenêtres de l'application unix id (PID) pour le processus montrant Foo dans son commande à l'avant :

set thisUnixID to (do shell script "ps wx | awk '/[F]oo/{print $1}'") as integer

tell application "System Events"
    set frontmost of every process whose unix id is thisUnixID to true
end tell

Notez que cet exemple de code peut être retravaillé pour demander un nom de profil et partir de là et peut être fait soit comme une application AppleScript ou un bash script selon vos besoins.

Notez également que le croisillons carrés autour du premier caractère de "Foo" sont là, donc il ne retourne que le PID pour la cible appropriée, et non pas, par exemple, la PID de awk en cherchant "Foo" sans les accolades.


Voici la version légèrement modifiée qui trouve la fenêtre Firefox avec un nom de profil spécifique :

#!/usr/bin/env osascript
set PID to (do shell script "pgrep -f -- 'firefox -P Foo'") as integer

tell application "System Events"
  set frontmost of every process whose unix id is PID to true
end tell

0 votes

Juste un petit avertissement pour ceux qui ne sont pas au courant : 1. si vos résultats awk retournent plus d'un seul PID, le script ci-dessus échouera. 2. Si votre commande awk peut être trouvée par elle-même, elle peut renvoyer le mauvais PID. J'ai donc utilisé la commande suivante : ps wx | awk '/awk/{next} /Brave/{print $1}' | head -n1

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X