Wie kann der Fokus auf die App basierend auf der PID von CLI umgestellt werden?

3

Ich habe angefangen, Firefox mit mehreren Profilen zu verwenden, aber manchmal bin ich verloren und ich kann das richtige Fenster nicht finden.

Zum Beispiel habe ich den Prozess mit PID 1234 gegeben wie:

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

Wie kann ich den aktuellen Fokus basierend auf seiner PID darauf umstellen?

kenorb
quelle
1
Nun, das könntest du kill -STOP 1234, schauen Sie, welcher Firefox nicht mehr reagiert und verwenden Sie dann kill -CONT 1234 fortfahren. Aber ich hoffe jemand hat eine bessere Idee :-)
nohillside

Antworten:

2

Hier ist ein Beispiel AppleScript Code Schnipsel, die die Fenster der unix id (PID) für Prozessanzeige Foo in seinem Befehl Nach vorne:

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

Beachten Sie, dass dieser Beispielcode überarbeitet werden kann, um nach einem Profilnamen zu fragen und von dort aus weiterzugehen. Er kann je nach Ihren Anforderungen als AppleScript-Anwendung oder als Bash-Skript ausgeführt werden.

Beachten Sie auch, dass die eckige Klammern Um das erste Zeichen von "Foo" herum gibt es nur das PID für das geeignete Ziel, nicht z.B. das PID von awk Suche nach "Foo" ohne die eckigen Klammern.


Hier ist die leicht modifizierte Version, die das Firefox-Fenster mit einem bestimmten Profilnamen findet:

#!/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
user3439894
quelle