Archive for the 'DragThing' Category

10/02 DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す

DragThingで、最前面のDockのうち現在選択されているレイヤーの名称を取得するAppleScriptです。

現在選択中のDockの名称……の部分の記法が一番難しかった部分で、AppleScriptの世界では各アプリケーションの最前面のドキュメントに対する指定方法があったりなかったり(まさに、アプリケーション側の対応次第)するわけで、だいたいは「Window 1」にアクセスしてみると大丈夫な場合が多いのですが、これを明示的にfront windowとかfront documentといったアクセス方法が提供されているケースもあり、なかなか悩まされるポイントです。

アプリケーションによっては、Window 1にアクセスできたとしても、Window 1がどのドキュメント(ファイル名)に該当するものなのか、情報を取得できない場合があったり……また、windowではなくdocumentオブジェクト経由でアクセスしてdocument 1で最前面の書類にアクセスできることもあります(これは例外中の例外であり、だいたいdocumentはオープンした順に番号がつきます)。

結局、このScriptを試作できた結果、「選択中のレイヤーで起動回数ランキングを表示」という大物Scriptを作ることができました。

スクリプト名:DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す
tell application DragThing
  最前面のDockの名称を取得
  
tell window 1
    set curDock to name
  end tell
  
  
最前面のDock上で現在選択されているレイヤーの名称を返す
  
tell dock curDock
    set curLayer to current layer
    
tell layer curLayer
      set curLayerName to name
    end tell
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

10/02 DragThingの特定のDock中で現在選択中のレイヤーを求める

DragThingの特定のDock中で、現在選択中のレイヤー名を求めるAppleScriptです。DragThing上で現在選択中のDockの中の現在選択中のレイヤーを求めるための試作品です。

スクリプト名:DragThingの特定のDock中で現在選択中のレイヤーを求める
tell application "DragThing"
  tell dock "AppDock" 任意のDock名称。各ユーザーごとに違う
    set curLayer to current layer
    
tell layer curLayer
      set aName to name
    end tell
  end tell
end tell

aName
> "環境設定"

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

10/02 DragThingで表示しているDock名称を取得する

アプリケーションランチャーといえばDragThing、というのが一昔前(1999年ごろ)の定番だったのですが、Mac OS XにDockが標準搭載され、ライトユーザーとかビギナーはこれしか(Dock)しか知らないというのが昨今の状況。しかし、手になじんだDragThingはいまだに手放せないアプリケーションのうちのひとつです。

DragThingは昔から(Classic Mac OSの時代から)AppleScriptに対応していたのですが、DragThingをAppleScriptからコントロールする「意義」については疑問視していました。

それが……起動回数のランキングを表示したり、DragThingのDockの中をキーワード検索したりといったAppleScriptを組んでみたら、これが予想外に便利で……最近ではDragThing向けのAppleScriptも書くようになりました。とりあえず、本Scriptはオープン中のDragThingのDockの名称について取得するものです。name of every dock……でも名称一覧を取得できるような気もしますが、次のプログラムのための試作品としての性格が強いものであり、あえてこう書いています。

スクリプト名:DragThingで表示しているDock名称を取得する
tell application DragThing
  set a to count every dock
  
set nameList to {}
  
repeat with i from 1 to a
    tell dock i
      set the end of nameList to name
    end tell
  end repeat
end tell

nameList
> {”URLどっく”, “AppDock”}

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に