特定のプロファイルでiTermの新しいウィンドウを起動するグローバルキーボードショートカットを割り当てようとしています。 (私はこれを実行して、AutomatorとAppleScriptで新しいChromeウィンドウを起動しましたが、これはより困難であることが証明されています)
これはiTermをアクティブにするのと同じで、トップメニューで[プロファイル]-> [マイプロファイル]を選択し、[alt]または[オプション]を押して、現在のウィンドウの新しいタブではなく、新しいウィンドウで開きます。 。
AutomatorまたはAppleScriptのいずれかでこれを行う方法について何かアイデアはありますか?
関連する場合は、Mac OS MountainLionを使用しています
(これが絶対的な初心者の質問である場合は申し訳ありませんが、私はWindowsからMacに移行したばかりで、常に行うことを最適化しようとしています)
ありがとうございました!
terminal
が廃止されたため、以前の回答はiTerm2(3)の最新バージョンでは機能しなくなりました。新しいアプローチは、create window with profile
を使用することです。
ただし、これは期待どおりに機能しません。iTermが実行されている場合、適切なプロファイルを使用して新しいウィンドウが開きます。ただし、iTermが実行されていない場合は、デフォルトのプロファイルを使用してウィンドウが開き、次に、指定された他のプロファイルを使用して2番目のウィンドウが開きます。これに対処するために、次のスクリプトを思いつきました。
-- this script will start/activate iTerm (close the default window if the app had been newly started), then open a new session with a desired profile
on is_running(appName)
tell application "System Events" to (name of processes) contains appName
end is_running
set iTermRunning to is_running("iTerm2")
tell application "iTerm"
activate
if not (iTermRunning) then
delay 0.5
close the current window
end if
create window with profile "xxxxxx"
end tell
もちろん、iTermがコマンドラインパラメータをサポートしていれば、それは本当に簡単だったでしょう。うまくいけば ある時点で 。
ITerm Webサイトの AppleScriptサンプルコードの11行目と58行目を組み合わせる...
tell application "iTerm"
activate
tell (make new terminal)
launch session "Your Profile Name"
end tell
end tell
osascript
コマンドに関する上記の回答およびその他の回答に基づく:
AppleScriptをosascript
でラップしてBASHコマンドラインから
osascript -e "tell application \"iTerm\"
create window with profile \"my-cool-profile\"
end tell"
または、プロファイル名を引数として取るBASH関数:
open-with () {
osascript -e "tell application \"iTerm\"
create window with profile \"$1\"
end tell"
}
open-with
のようなopen-with my-cool-profile
BASHスクリプトとして
#! /usr/bin/env bash
PROFILE="${1-Default}"
osascript -e $"tell application \"iTerm\"
create window with profile \"$PROFILE\"
end tell"
そして、開いたときにプログラム/コマンドを実行できるopen-run
BASHスクリプトとして:
#! /usr/bin/env bash
PROFILE="${1-Default}"
CMD="${2-echo "I, \$(whoami), am here at \$PWD"}"
osascript -e "tell application \"iTerm\"
set newWindow to (create window with profile \"$PROFILE\")
tell current session of newWindow
write text \"$CMD\"
end tell
end tell"
例:特定のプロファイルで開き、sshコマンドを実行します
open-run my-ssh-profile 'ssh [email protected]'
例:独自のウィンドウでhtop
を開き、ユーザーがhtop
を終了するとウィンドウを自動的に閉じます
open-run my-htop-profile 'htop && exit'
例:ssh経由のリモートサーバーでの上記のように
open-run my-htop-profile 'ssh -t [email protected] bash -c htop && exit'
エスケープと引用はかなりクレイジーになる可能性がありますが、それは私が必要なことをします