キーボード入力モードを確認するAppleScript

選択されてる入力モードが英語のときにだけ実行してほしい処理があれば、こういうスクリプトでテストできる。

例えば Typinator でブラケット [] の auto-pairing を普通に設定すると、日本語モードでカギ括弧を打ってるときにまで自動補完してきて困る。そういうときに入力モードの判定スクリプトを挟むと、英語モードのときだけ自動補完してくれるように設定可能。

property true_if_input : "U.S." -- input mode name to test for

tell application "System Events"
	tell process "SystemUIServer"
		set current_input to value of first menu bar item of menu bar 1 whose description is "text input"
	end tell
end tell

if current_input is true_if_input then
	return true
else
	return false
end if

※ GUIスクリプティングなので、システム環境設定 > ユニバーサルアクセス > 補助装置にアクセスできるようにする がオンになっている必要がある

iTunesを自動フェードイン/アウト

iTunes を play/pause すると同時に音量をフェードイン/フェードアウトする AppleScript。

property resolution : 10 (* Increase for smoother fades. Default: 10 *)
property delayIncr : 0.2 (* Decrease for faster fades. Default: 0.2 *)

tell application "iTunes"
	set originalVol to sound volume
	set volIncr to originalVol div resolution

	if player state is not playing then
		set sound volume to 0
		play

		-- Fade in
		repeat while (sound volume ≤ (originalVol - volIncr))
			set sound volume to (sound volume + volIncr)
			delay delayIncr
		end repeat

	else
		-- Fade out
		repeat while (sound volume > 0)
			set sound volume to (sound volume - volIncr)
			delay delayIncr
		end repeat

		pause

	end if

	set sound volume to originalVol

end tell

AirPlay 時代のエチケット。ステレオコンポのときから、ボリュームつまみをゆっくり絞ったあとに停止ボタンを押してたタイプの人用。

使い方

SparkQuicksilver のようなツールにスクリプトを登録しておいて、ホットキーで呼び出す。たとえば F8 に設定しておくと、 F8 がフェード付きの iTunes 再生/停止キーになる。