上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

iBook Late 2001 (Mac OS X 10.4.6) で確認した Tips。

堅牢と言われる OS X ですが、メモリが不十分だったりアプリが不安定だったりすると稀にフリーズすることはあります。
操作しても反応しなくなり、通常のディスクアクセス音も聞こえず、内蔵ディスクが時折「ジー……カラン」といった音を立てるのみ、といった症状になったときは、慌てて強制終了する前に数分待ち、何も起こらなかったらディスプレイを閉じてみてください。
運が良ければディスプレイを開けたときに復帰します。(その数秒後にスリープに入りますが適当なキーを押せばよいです。)


スポンサーサイト
05/27|Macコメント(1)トラックバック(0)TOP↑

ログイン時に最前面の Finder ウインドウを「いつもの」カラム幅に直す AppleScript のつづき。

ついでなので前回の LSUIElement のやつをAppleScript にしてみました。

--Mac OS X 10.4.6 で動作確認。
--Finder 上でアプレット (ドロップレット) を一つだけ選択して実行

tell application "Finder"
activate
set curItem to (item 1 of (selection as list)) as alias
tell application "System Events"
set pkBool to package folder of curItem
set creatorType to creator type of curItem
end tell
if (pkBool is true) and ((creatorType is "aplt") or (creatorType is "dplt")) and (exists file "Info.plist" of folder "Contents" of curItem) then
set appName to (name of curItem)
set curPath to POSIX path of ((file "Info.plist" of folder "Contents" of curItem) as Unicode text) --as alias だと少し問題がある。(※1)
set infoPath to do shell script "echo " & quoted form of curPath & " | sed 's/\\.plist$//'"
try
set lsuielement to do shell script "defaults read " & quoted form of infoPath & " LSUIElement"
on error
set lsuielement to "0"
end try
if lsuielement is "0" then
display dialog appName & " が起動しているとき" & return & "Dock にアイコンが表示されないように" & return & "設定を変更します。"
do shell script "defaults write " & quoted form of infoPath & " LSUIElement 1"
display dialog "完了" buttons {"OK"} default button 1 giving up after 1
else
display dialog appName & " が起動しているとき" & return & "Dock にアイコンが表示されるように" & return & "設定を変更します。"
do shell script "defaults write " & quoted form of infoPath & " LSUIElement 0"
display dialog "完了" buttons {"OK"} default button 1 giving up after 1
end if
end if
end tell

(*
同一のドロップレットに対して繰り返し実行する場合、※1の行で "Info.plist" の HFS パスを as alias としようとすると Finder でエラーになる。いちど "Info.plist" に変更を加えた後にドロップレットを実行したり、パッケージの内容を表示したりなどしていた場合は as alias でもエラーにならない。また、アプレットでは問題ないっぽい。よくわからん。
*)

--==スクリプトここまで==

環境によってはスクリプト中の円マークを手作業でバックスラッシュに直す必要があります。

前回も書きましたが、Info.plist が書き換えられてもすぐには反映されません。
アプレットをべつの階層に移動してから一度起動するなどすると、変更を確認できると思います。


追記:
LSUIElement を 1 にしたアプレットはメニューバーも表示しないため、終了したいときは
"/アプリケーション/ユーティリティ" フォルダに入っているアクティビティモニタを使うか、または

tell application "アプレット名" to quit

のようなスクリプトを実行します。


05/10|AppleScriptコメント(0)トラックバック(0)TOP↑

Mac OS X で Finder ウインドウをカラム表示にしている場合、再起動したりログイン/ログアウトを行ったりすると、最前面ウインドウのみカラム幅が標準に戻ってしまいます。

いつものカラム幅自分で調節した「いつもの」カラム幅。

標準のカラム幅ログイン直後のカラム幅。せまーい!

あまりそういった話題を見かけないので不満を感じているのは少数派なのかもしれませんが、下記のようなスクリプトをアプリケーション形式で保存してログイン項目に入れておくと、ログイン時に最前面の Finder ウインドウを開き直すことによってカラム幅を「いつもの」に戻すことができます。(スクリプト中でとくにカラム幅を指定しているわけではないのに、なぜかこれでうまくいくようです。環境にもよるかも。)

--Mac OS X 10.4.6 で動作確認。
tell application "Finder"
set libraryFolder to (path to library folder from user domain)
if exists Finder window 1 then
activate
if exists folder "FruitMenu Items" of libraryFolder then
--FruitMenu がインストールされている場合
my fruit(libraryFolder)
else
my reopenWindow()
end if
end if
end tell

on fruit(lFolder)
tell application "Finder"
set theFolder to target of window 1
set theFruits to (every alias file of folder "FruitMenu Items" of lFolder)
set aBool to false
repeat with j in theFruits
try
if (original item of j) is theFolder then
close Finder window 1
open j
set aBool to true
exit repeat
end if
end try
end repeat
if not aBool then my reopenWindow()
end tell
end fruit

on reopenWindow()
tell application "Finder"
set theBounds to (bounds of Finder window 1)
set theFolder to (target of Finder window 1)
close Finder window 1
open theFolder
set bounds of Finder window 1 to theBounds
end tell
end reopenWindow

--==スクリプトここまで==

ちなみに、スクリプトをアプリケーションバンドル形式で保存した場合、ターミナルで

defaults write (アプレット内のInfo.plistのパスから".plist"を抜いたもの) LSUIElement 1

と入力してリターンキーを押すと、アプレットをバックグラウンドで動作させることができるようになります。
ちょっと判りにくいと思うので例を挙げると、「Startup.app」という名前のアプレットをアプリケーションフォルダに置いている場合はこんな書き方になります。

defaults write /Applications/Startup.app/Contents/Info LSUIElement 1

正しく入力したのにアプレットのアイコンが Dock に表示されてしまうときは、一時的にアプレットを別の階層に移動してみるとうまくいくようです。


追記: ちょい修正。
FruitMenu Items 内にオリジナルの見つからないエイリアスがあるとエラーになるため、該当する部分を try 文で囲みました。(FruitMenu を使っていない環境では関係ありません。)


05/09|AppleScriptコメント(0)トラックバック(0)TOP↑
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。