Chromeプロファイルを複数作成、起動をしAppleScriptでwindowの位置サイズ指定

macos10.14.5環境でChromeを複数起動を利用しています。


(以下を使用しプロファイルを複数作成し起動)

do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --user-data-dir=/Users/$USER/Library/Application\\ Support/Google/me01 > /dev/null 2>&1 &"


AppleScriptを利用し、サイズや位置を指定したいのですが、いくつか起動したChromeの指定する方法がわからず悩んでます。

これを解くことが出来る方いらっしゃりませんか?


色々と調べてみたんですがあまり詳しくないものでしてご教授頂けると助かります。

どうぞ宜しくお願い致します。


▼現状下記

tell application "System Events"

set app_name to name of first item of (every application process that (frontmost is true))

tell process "Google Chrome"

set win3 to (1st item of (every window that subrole is "AXStandardWindow"))

set position of win3 to {20, 60}

set size of win3 to {700, 800}

end tell

end tell


Mac Pro

投稿日 2019/06/25 23:11

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2019/06/26 01:02

こんな感じでどうでしょうか。なお、当方は Google Chrome を使ってないので Chromium でテストしました。


tell application "System Events"
    set ids to {}
    set win_size to {600, 800}
    set {p1, p2} to {0, 22}

    repeat with proc in processes
        if name of proc is "Google Chrome" then
            set end of ids to id of proc
        end if
    end repeat

    set n to length of ids
    repeat while n > 0
        tell process id (item n of ids as integer)
            set size of item 1 of (windows whose subrole is "AXStandardWindow") to win_size
            set position of item 1 of (windows whose subrole is "AXStandardWindow") to {p1, p2}
        end tell
        set {p1, p2} to {p1 + 20, p2 + 20}
        set n to n - 1
    end repeat
end tell


返信: 56

2019/06/26 23:59 mNeji への返信

ありがとうございます。

プロファイルを確認できるんですね。

私も是非どうなっているのかを知りたいです。

こちらどうやって確認できるか、もし可能でしたら教えて頂けると助かります。

ターミナルでの操作は今まで、ググってコードをそのまま貼って使うくらいしか知識があまりないもので。。


現状、Hiro.Sさんからのコードで、各ウインドウの配置は出来ることを確認出来ました。ですが、まだ複数のプロファイルの紐付け方法が課題として残っております。もし可能性があるようでしたら是非ご教授頂けると助かります。



2019/06/27 02:14 Piman への返信

Piman さんによる書き込み:(posted 2019/06/27 15:59)
プロファイルを確認できるんですね。
私も是非どうなっているのかを知りたいです。
こちらどうやって確認できるか、もし可能でしたら教えて頂けると助かります。

使ったのはシェルコマンドの「tree -L 2」です。この「-L 2」は起点のディレクトリから深さ2つまでを表示するためのオプション設定です。「tree」だけだと上下左右に広がった表示で驚きます。


この「tree」ですが、macに付属するシェル(bash,zsh,...)には残念ながら入っていません。それを入手する為に、unix系のソフトを公開・頒布してくれる「Homebrew」を導入する必要があります。


一度google検索で「mojave homebrew install」を見ると沢山の説明があります。その中でお勧めは;

MacOS MojaveにHomebrewをインストールするための覚書
http://blog.3streamer.net/iphone-app-dev/install-homebrew-for-macos-801/

もしも、Xcodeが導入済みで「command-line tools」がインストールされているならば、もっと短いのもありそうです。


ターミナルでの操作は今まで、ググってコードをそのまま貼って使うくらいしか知識があまりないもので。。


まさに使い始めの場合、これが正しいと思います。慣れてくるに連れて、

  • ターミナルの解説書: Macintosh Terminal Pocket Guide, Daniel J. Barrette, O'REILLY, ISBN:978-1-449-32834-4 は簡潔で、図が判りやすいです。。
  • コマンドのマニアル: lsコマンドについては、「man ls」で見ることができます。コンパクト過ぎて慣れるまで苦労しました。


元に戻りますと,Homebrewのインストールには「rubyの1行コマンド」から始まります。確実に「コピー&ペースト」してください。


メインの論議が片付いたら、導入するのをお勧めします。

2019/06/27 11:41 mNeji への返信

如何に解釈して良いのか分からなくなったので、真似っこをしてみました。


  1. 現在開いているプロフィルのChromeのところで「mkdir cr1 cr2」して、「chmod 700」
  2. 教えていたサイトに従い、上記cr1に対するAppleScriptとして「googlescript.app」を作り、
  3. それを/Applicationsに移動、「図1 Finderでの/Applications」参照。
  4. 「googlescript.app」をクリックすると以下にも空疎なChromeが立ち上がる。次に「Google Chrome.app」をクリックしても立ち上がれない。
  5. 逆に「googlescript.app」をクリックすればいつものChromeが立ち上がり、「googlescript.app」をクリックするとこれも立ち上がる。「図2 ActivityMonitorでのGoogleChrome関連」参照。
  6. このあと、プロフィルに戻り、cr1だけで無くcr2まで何か入っている。図3参照。


図1 Finderでの/Applications


図2 ActivityMonitorでのGoogleChrome関連


図3 プロファイルに戻り、treeを撮ると、空だったcr2にも何か入っている。


気になった点:

  • 何か判りませんが、「Google Chrome Helper」の役割を調べるのが必要そうですね。
  • ひょっとすると、プロファイル間の序列があるの?


今回はここまで。

2019/06/27 18:49 mNeji への返信

ありがとうございます。

真似っこの1.〜5.については私の所と状況は同じようです。

教えて頂いた、Homebrewを昨日から色々と試してるのですが下記状況でわからない事だらけでして、対応策を検索かけて試みたのですが、進展せず今も詰んだ状況です。

本来の質問から離れてしまいますが、もし私のプロファイルがないと解決しない様子でしたら、以下の対応をわかる範囲で教えて頂く事は可能でしょうか?

色糸と頼ってしまった感じですみません。。。


Warning: "config" scripts exist outside your system or Homebrew directories.

`./configure` scripts often look for *-config scripts to determine if

software packages are installed, and which additional flags to use when

compiling and linking.


Having additional scripts in your path can confuse software installed via

Homebrew if the config script overrides a system or Homebrew-provided

script of the same name. We found the following "config" scripts:

/opt/ImageMagick/bin/MagickCore-config

/opt/ImageMagick/bin/MagickWand-config

/opt/ImageMagick/bin/Magick++-config

/opt/ImageMagick/bin/Wand-config

/opt/ImageMagick/bin/Magick-config


Warning: Homebrew's sbin was not found in your PATH but you have installed

formulae that put executables in /usr/local/sbin.

Consider setting the PATH for example like so:

echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile


2019/06/27 19:51 Piman への返信

Piman さんによる書き込み:
真似っこの1.〜5.については私の所と状況は同じようです。

あ、これは助かります。ようやく同じスタート・ラインに付けたようですね。


えて頂いた、Homebrewを昨日から色々と試してるのですが下記状況でわからない事だらけでして、対応策を検索かけて試みたのですが、進展せず今も詰んだ状況です。

誰しも通る道なのでご安心を。


こういった場合、エディタの右下に「追加テキスト」にbashの問題そうな部分を入れてくださると、感じが掴みやすくなります。


で、問題の点はHomebrewのsbinへのパスが、pimanさんの~/.bash_profileに書かれていないので、追加してねということです。

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so:
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

で、~/.bash_profileが設定済みなら、上記の最後の行コマンド;

  • echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile


をターミナルにペーストして実行し、ターミナルを終了し、再度開けばHomebrewは動くはずです。


試しに、「brew list」、「brew doctor」を打ってみてください。



2019/06/28 00:36 Piman への返信

これで、Pimanさんも立派な酒蔵のオーナーですから美酒ならぬ美アプリ三昧です。


ついでのことに、 ~/.bash_profileの最後の行に;

  • export PATH="/usr/local/sbin:$PATH"


が追加されたことを確認してください。PATHは環境変数で、exportはコマンドです。実行内容としては;

  • これまでのパスを入れていた$PATHに、"/usr/local/sbin"を追加して、環境変数PATHに追加するコマンドを、
  • ~/.bash_profileに追記する



「追加テキスト」はその通りです。Appleの管理者(she/he)さんが、文字のトラフィックが低減するとお喜びになるようです。


短い時(5000文字以下)のときは、「コードの挿入」の方が見易いです。








2019/06/28 16:01 mNeji への返信

前回報告したpidは「Activity Monitor」で出てくる「Google Chrome」のpidとは異なるようです。


恐らく、Hiro.SさんのAppleScriptが抽出するのは、「Activity Monitor」由来のpidだろうと推察されます。なお、このpidを出すコマンドは;

  • ps -axc | grep 'Google Chrome' 


すると、Pimanさんが複数のchromeをどのようにして立ち上げていらっしゃるかが、大事かなと思うようになりました。

2019/06/28 17:55 mNeji への返信

色々ありがとうございます。

助かります。

私も昨日は中々難航し、進展しておらず

ターミナルでどう入力すればいいのか混乱気味です。


ps -U ★ | grep '/Application Support/Google/cr1' | head -1 | awk '{print $1}'

★に自分のアカウントを差し替え入力


も試しましたが5桁の数字が帰ってくるだけでした。


echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

の入力も、変化がなく、brew doctorをその後入力してもWarning: 〜が表示されるのみでした。


まずtreeを見る場合にターミナルに何を入力すればいいですか?


2019/06/28 22:50 mNeji への返信

ちょっと気になったので、コメントします。


> echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

> の入力も、変化がなく、brew doctorをその後入力してもWarning: 〜が表示されるのみでした。


bashは使わなくなって数年は経っていて疎いのですが...。


ターミナルで;

  • cdリターン
  • ls -AFdl .* リターン

とした時、

「.bash_profile」はありますか? あれば;

  • tail .bash_profile リターン

をして、それを表示してください。


または「.bashrc」だけあるなら上級者さん達の助言をお待ちください。


2019/06/28 23:35 mNeji への返信

早速試しました!いかがでしょう。


tail .bash_profile

export PATH="/usr/local/sbin:$PATH"

export PATH="/usr/local/sbin:$PATH"

export PATH="/usr/local/sbin:$PATH"

alias brew="env PATH=${PATH/\/Library\/Frameworks\/Python\.framework\/Versions/3\.6/bin:/} brew"

alias brew="env PATH=${PATH/\/Users\/★\/\.pyenv\/shims:/} brew"

export PATH="/usr/local/sbin:$PATH"

export PATH="/usr/local/sbin:$PATH"

2019/06/29 03:08 Piman への返信

引用すると青丸が回りっぱなしになるので、文章だけの投稿としてみます。



bashの場合、PATHの設定が重複した場合どうするか忘れてしまったのですが、やや気持ちが悪いかも。


Python関係の設定;

  • alias brew="env PATH=${PATH/\/Library\/Frameworks\/Python\.framework\/Versions/3\.6/bin:/} brew"
  • alias brew="env PATH=${PATH/\/Users\/★\/\.pyenv\/shims:/} brew"

は当方(zsh)にはありませんでした。


ここら辺の事情に関しては,bashユーザでHomebrewに詳しい方からの助言をお持ちください。


2019/07/01 09:04 Hiro__S への返信

ありがとうございます。


user/Library/Scripts/Applications/Google Chrome

にて試してみました。

ApplicationsとGoogle Chromeは新規にフォルダを作りscriptファイル(.app)を試して実行してみました。

ですが状況は変わらず。

別の階層かとも思い

user/Library/Application support/Google

に移し行ってみました。

(Googleのプロファイルを置いてある箇所になります。)

ですがやはり状況は変わらず。。。


一度だけ可動し、上から3番目の数値をクリックし手前のChrome2が作動致しました。

プログラムは便利な反面、中々すんなりと行かないともどかしいですね。

もし、心当たりの対処法ありましたらご教授の程宜しくお願い致します。

ただ、長らくお付合いさせてしまっている分恐縮にも感じますので、ご無理ないよう頂ければと思います。

2019/07/01 15:49 Hiro__S への返信

おはようございます。

ありがとうございます。

早速試してみました。何回か試してみた所、以下がわかってきました。


・(.scpt)形式に変換

・Library/Scripts/Applications/Google Chrom

Library/Scripts/

 の2ヶ所に念のため設置したものをメニューバーよりそれぞれ実行。

 「Chromeウインドウをあらかじめ前面になるようクリックしてからのスクリプト実行」で完全に表示される事が確認出来ました。

 (設置した2ヶ所のファイルそれぞれ、表示されてます。また、Chrome以外のアプリ、FINDERが前面ですと表示はされない状況でした。)

ただその後の移動リサイズ動作は、確認が出来ない状態でした。

・上記の具合で気になった事があり、(.app)をクリックした後すぐにChromeをクリックした所、早いタイミングだった場合のみサイズ表記のウインドウが表示される事を確認出来ました。早速数値のどれかをクリックした所、動作しChromeウインドウが移動リサイズしました。(ただ本当に間髪入れずマウスを瞬時に動かしてクリックしないとウインドウの表示はしてくれないみたいです。。)


現状試した結果は以上です。こちらを踏まえて何かわかる事はありますか?

ご都合の時で結構です。急いではおりませんので対処等ありましたらよろしくお願い致します。

2019/07/02 00:03 Hiro__S への返信

ありがとうございます。

以下にそれぞれレスさせて頂きます。


●わからない部分の説明をし直します。

早いタイミングだった場合のみサイズ表記のダイアログが表示される事を確認出来ました。

(※説明しなおします。)

そもそも.appはメニューバーから選択してもダイアログが表示されませんでした。

また.appをクリックする事で前面にあるウインドウがFINDERになってしまいChromeが認識されないので、.appをクリックしてからダイアログ表示処理が始まる前にChromeを選択する必要があるのです。1秒未満くらいですかね。間に合えばダイアログが表示されリサイズも無事処理されました。


●状況まとめ

.scpt メニューバー選択からダイアログが必ず表示される

.app メニューバー選択からダイアログ表示されない


.scpt 移動リサイズ可動しない

.app 移動リサイズ可動する


夜にでもなにか原因があるのかもしれないですので、もう少し私の方で探ってみたいとも思います。


●Chromeを複数起動する理由

個人的な事情になるのですが、Chromeで出来る処理がありまして、その処理がChrome1つに対して負担が大きくその負担によってデータもリセットされる事もたまにあるので、リスク分配して軽減する為ですね。

こんな使い方している人はまず居ないかとは思います。


2019/07/03 04:57 Piman への返信

Pimanさん、


このトピックはAppleScriptメインで話が進んでいますので、シェル・スクリプトの話は別に建てた方がシンプルでいい様に思います。


でも、僕は現在zshユーザなので、bashとの違いが全然意識に登りません。ですのでなるべく多くの方々の意見をいただく様に、質問の概略を提示するといいかも知れません。


なお、当方の部屋に工事が入ることになり、来週の中までアクセスが低下しそうです、悪しからず。



追伸:

  • Chromeの移動・サイスの変更は難しく、Safariを相手にzshで弄んでいます。これまで、アプリを呼び出しには、色々ろとエイリアスを作っていたのですが、移動・サイスをつけるとマウスではイラつきなが移動していたのが気持ちいいですね...。
  • 次は、左右2台のディスプレイに「Desktop1~6」、「Desktop7~9」に配置して、アプリごとにデスクトップを指定したいのが駄目...。いっそのこと、Swiftで力尽くで固定Desktopに押し留めたくなりました。
  • なんで「Mission Control」が進化しないのか不思議ですねぇ。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Chromeプロファイルを複数作成、起動をしAppleScriptでwindowの位置サイズ指定

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。