Dec 20, 2009

[Apple] プロジェクト毎に Mac OS X Terminal を初期化する方法

  • Terminal をプロジェクト専用に初期化したい
  • プロジェクト専用 Terminal を QuickSilver から簡単に起動したい
を実現する方法。 AppleScript を使って Terminal を起動するだけなので至極簡単。

AppleScript エディタに Terminal を登録

まず AppleScript エディタのライブラリに Terminal を登録する。 既に登録済の場合はこの作業は不要。

  1. AppleScript エディタを起動する

  2. ウィンドウ > ライブラリ を選択。
    [AppleScriptEditor01]

  3. ライブラリウィンドウ左上の "+" ボタンをクリック。Terminal を選択して "開く" ボタンをクリック。
    [AppleScriptEditor02]

  4. ライブラリに Terminal が登録されたことを確認。
    [AppleScriptEditor03]

  5. Terminal 初期化用 AppleScript

    下記の様な AppleScript で Terminal を起動してプロジェクト専用の初期化を行う。 初期化内容は適宜変更のこと。 AppleScript を書き終えたらファイルフォーマットを "アプリケーション" で /Applications に保存。 最後に QuickSilver で Rescan をかけて完了。

    on createTerminalWindow()
      tell application "System Events"
        tell process "Terminal"
          tell menu bar 1
            tell menu bar item "シェル"
              tell menu "シェル"
                tell menu item "新規ウインドウ"
                  tell menu "新規ウインドウ"
                    pick menu item "Mine"
                  end tell
                end tell
              end tell
            end tell
          end tell
        end tell
      end tell
    end createWindow
    
    tell application "Terminal"
      activate
      if not (exists front window) then do script ""
    
      my createTerminalWindow()
    
      do script "cd /Users/me/Projects/001-hogeproject" in front window of application "Terminal"
      do script "export PS1='\\W@\\u\\$'" in front window of application "Terminal"
      do script ". ./projectrc.sh" in front window of application "Terminal"
      do script "clear;pwd" in front window of application "Terminal"
    end tell
    

    Terminal でタブを利用したい場合

    Terminal のタブを作成したい場合は下記の関数を利用する。

    on createTerminalTab()
      tell application "System Events"
        tell process "Terminal"
          tell menu bar 1
            tell menu bar item "シェル"
              tell menu "シェル"
                tell menu item "新規タブ"
                  tell menu "新規タブ"
                    pick menu item "Mine"
                  end tell
                end tell
              end tell
            end tell
          end tell
        end tell
      end tell
    end createTab
    


    後はタブ毎に適宜初期化などを行う。 残念なことにタブ名の編集がうまく行かない。 何かテクニックが必要なのだろうか??
    my createTerminalTab()
    
    set custom title in tab 1 of front window of application "Terminal" to "hogeproject"
    do script "cd /Users/me/Projects/001-hogeproject" in tab 1 of front window of application "Terminal"
    do script "export PS1='\\W@\\u\\$'" in tab 1 of front window of application "Terminal"
    do script ". ./projectrc2.sh" in tab 1 of front window of application "Terminal"
    do script "clear;pwd" in tab 1 of front window of application "Terminal"
    

    Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |