About

  • Macintosh の自作ソフトウェアを公開しています。
  • 配布しているアプリケーションは、すべてフリーウェアかつソースコードを公開しています。
  • コメント、不具合の報告、ご要望を待っています。

Donation

このサイトで配布しているソフトを常用されている方は寄付をお願いします。

2014.09.18

19:12:45Permanent Link

iTunes を起動して、iPhone/iPod の同期を開始する AppleScript

表題の通り、「iTunes を起動してiPhone/iPod の同期を開始する AppleScript」を紹介します。

もしかして、皆さん、iPhone を Mac に接続したら、自動的に同期が開始するような設定にしています?僕は、勝手に同期が開始するようにはしていません。だって、充電の為だけに Mac に接続する事もあるから、勝手に同期を開始されるとうっとうしいからね。

でも、同期をしたいときは、iTunes を立ち上げてiPhone を選択して同期ボタンを押すという手順を踏まずに一発のアクションで終わらせたい。という訳で、AppleScript を書いてみました。

ところどころで delay が入っているけど、delay の時間はご自分の環境にあわせて適当に調整してね。

on run
try
main()
on error msg number errno
if errno is not -128 then
activate
display alert msg message "Error Number : " & errno
end if
end try
end run

on main()
set new_launch to false
if application "iTunes" is not running then
tell application "iTunes"
activate
end tell
set new_launch to true
end if
if new_launch then
delay 10
end if

set a_source to missing value
repeat 10 times
try
tell application "iTunes"
set a_source to some source whose kind is iPod
end tell
exit repeat
on error
delay 2
end try
end repeat

if a_source is not missing value then
tell application "iTunes"
tell a_source
update
end tell
end tell
end if
end main

2014.09.16

11:38:35Permanent Link

ターミナルウインドウのプロキシアイコンと日本語を含んだディレクトリ名

Mac OS X 10.7 Lion から、ターミナルウインドウにカレントディレクトリを表示するプロキシアイコンが導入されましたね。いまさらながら、名前に日本語を含んだディレクトリがカレントディレクトリの場合、正常に表示されないことに気づきました。

プロキシアイコンを設定する仕組みは、専用のエスケープシーケンスが用意されていて、そのエスケープシーケンスとカレントディレクトリのURLを標準出力に出力すると設定されます。これを実行するコマンドが、PROMPT_COMMANDというシェルのプロンプトが更新されるたびに評価される特殊な変数に設定されています。これらの設定は、/etc/bashrc で行われています。

カレントディレクトリの URL は、パスにURLとして使ってはいけない文字がある場合はパーセントエスケープしなければいけないのですが、/etc/bashrc の中では、スペースしかエスケープしてくれないのが問題です。日本語も、エスケープしてやれば、プロキシアイコンに日本語ディレクトリが表示されるようです。

次の、スクリプトを ~/.bashrc に加えて、PROMPT_COMMAND を上書きしてしまえば、幸せになれます。

if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
                update_terminal_cwd() {
                    local ESCAPED_PATH=`ruby -ruri -e 'print URI.escape(ARGV[0])' "$PWD"`
                    local PWD_URL="file://$HOSTNAME$ESCAPED_PATH"
                    printf '\e]7;%s\a' "$PWD_URL"
                }
                PROMPT_COMMAND="update_terminal_cwd"
fi

2014.09.15

20:32:15Permanent Link

ZipArchiver 1.1 : Finder で選択されている項目を Zip 圧縮

起動すると、Finder で選択されている項目の Zip 圧縮ファイルを作ります。

Spotlight メニュー、LaunchBar などのランチャー起動してください。コンテキストメニューを使わず、キーボード操作だけで Zip 圧縮ファイルを作れます。

圧縮が成功すると、通知センターに完了を通知します。通知センターの通知をクリックすると、アーカイブファイルをファインダーで表示します。

2014.09.12

21:25:31Permanent Link

FinderSelection 2.0.8 : Finder で選択されている物から条件にあったファイル/フォルダを取得

Finder で選択されている物から条件にあったファイル/フォルダを取得するモジュールです。

AppleScript をスクリプトメニューや何らかのランチャーから起動して、Finderで選択されている物を取得して処理を行う・・・よくある AppleScript だと思います。FinderSelection はエラー処理を含めて気の利いた処理をほんの数行で実現できます。

2014.09.09

02:47:33Permanent Link

Mac OS X をインストールした VMWare Fusion のディスクファイルを縮小する。

VMWare Fusion のディスクファイルは、使っていると仮想マシンでの実質的な使用量より大きくなってしまいがちだ。仮想マシン側で使用されていない領域を開放して、ホスト側のディスクの空き容量に返して欲しいよね。

仮想マシンの OS が Windows の場合では、その手順は簡単に見つかる。でも、仮想マシンの OS が Mac OS X の場合は見つけられなかった。試行錯誤の結果、成功したので、手順を紹介するぜ。

僕が実行した環境は、

  • VMWare Fusion 5.0.5
  • ホスト OS : Mac OS X 10.8.5
  • 仮想マシンの OS : Mac OS X 10.6.8

でした。まず、仮想マシンに VMWare Tools がインストールされているとします。その状況で、

  1. ディスクユーティリティーで「空き領域の消去」を実行する。
    • 空き領域の消去オプションは、「削除したファイルをゼロ消去」
  2. ターミナルで次のコマンドを実行。

    sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrinkonly

仮想マシンの中で、vmware-tools-cli を実行するのはなかなか気付かないね。

< Previous Topics