タグ

ブックマーク / d.hatena.ne.jp/hetima (10)

  • Safari 5.1 WebKit2 WKView の Client 関数を置き換える - d.hetima

    WebView にあった各種 delegate は Cocoa の流儀で実装されていたのでやりやすかったのだけど WKView ではそれがなくなってしまい、泣いてました。これができるかどうかが SafariStand にとって死活問題。 WebKit2 では delegate ではなく WKPageXxxClient という呼び方になっている。Objective-C クラスではなく関数をまとめた構造体。setter はあるが getter がないため元の値を取っておくのが難しい。WebKit2 側の保存場所をつきとめるか、Safari 側の呼び出しを捉えるか。で、前者が見つかったので対応してみる。 WKView → WKViewData → webPageProxy と辿ると、Client の構造体を捕まえられる。この関数ポインタを自前のものと置き換えればOKのようだった。Objectiv

  • 終了時の状態を復元するSafari機能拡張 HsRestoreSession 公開 - d.hetima

    終了時の状態を復元するSafari機能拡張、HsRestoreSession を公開しました。SafariStandのRestore Last Workspaceと似たような機能です。問答無用で復元するのではなく、どのタブを復元するか選択できるページを表示します。 できないこと: ・履歴の復元 ・fileプロトコルを表示しているページの復元 この辺はSafari機能拡張からアクセスすることができません。セキュリティはかなり厳しい。 ・ページのサムネイルを表示 表示しているページのサムネイルを取得することはできるんだけどかなり大きなpngをbase64エンコードした文字列のみ。開いているタブ全部を記録するのは厳しいので見送りました。ローカルにあるキャッシュを使う手もあるけれど、ファイル参照やfileプロトコルを扱えないので駄目。websnapr 系のサービスを使うのは検討中。 ・ウィンドウの

    終了時の状態を復元するSafari機能拡張 HsRestoreSession 公開 - d.hetima
  • Safari Extension のクラスリファレンスのようなもの - d.hetima

    Safari Extensions Reference を参考に一瞥しやすいようにまとめました。言語仕様を無視したオレオレ表記方法ですみません。 global.html 終了時に body onunload で処理可能(アンインストール時にも呼ばれる)。 SafariExtensionSettings の値は Safari の初期設定ファイルに保存される(com.apple.Safari.plist に ExtensionSettings-extension.bundle.id-DEVELOPERID として)。 safari.application == SafariApplication safari.extension == SafariExtension safari.self == SafariExtensionGlobalPage class SafariExtension{

  • iTunes StoreにユーザーCSSを適用して表示をカスタマイズする - d.hetima

    すげーひさしぶりに blog 書くよ! iTunes 9.0.1 - soundscape out より。 iTunes Store が、WebKit を使用する様になり、フォント指定の先頭に「MS Pゴシック」が指定してあるっぽい。 とのこと。WebKit ということはユーザー定義の CSS が使える可能性があるので試してみる。 *{ font-family:"Lucida Grande" !important; } とりあえずこんな感じのCSSを書いてファイル保存。 com.apple.iTunes.plist に WebKitUserStyleSheetEnabledPreferenceKey と WebKitUserStyleSheetLocationPreferenceKey を設定。 defaults write com.apple.iTunes WebKitUserStyle

    iTunes StoreにユーザーCSSを適用して表示をカスタマイズする - d.hetima
    Watson
    Watson 2010/01/01
    defaults
  • Mac OS X のメニューに好きなキーボードショートカットを付ける - d.hetima

    メニューのキーボードショートカットを自由にカスタマイズする方法。わりと有名、というか定番の方法なのであちこちで言及されていますが、うちでも書いておきます。 たしか Mac OS X 10.4 以降からアプリケーションのキーボードショートカットをカスタマイズできるようになっています。 設定場所は「システム環境設定」です。「キーボードとマウス」を開き「キーボードショートカット」タブを選択。リスト左下の+ボタンで追加します。シートが出てくるのでアプリケーションを選び、追加したいメニューのタイトルを正確に入力し、好きなショートカットを設定します。 Safari に対して設定すれば、SafariStand のメニュー項目もカスタマイズできます。「History Flow」メニューにはショートカットを付けていないし、独自に設定する方法も提供していません。カスタマイズしたければシステム環境設定で自由にし

    Mac OS X のメニューに好きなキーボードショートカットを付ける - d.hetima
    Watson
    Watson 2008/03/17
  • d.hetima

  • Leopard の Dock に仕切りスペースを追加する - d.hetima

    tile-type=spacer-tile というアイテムを追加すると何もないスペースが Dock に追加される。初期設定ファイルを直接操作するしか追加方法が分からないので、defaults コマンドで追加する。 defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' これを、追加したい数だけ ターミナル.app で打ち込めば良い。 打ち込み終わったらすぐに Dock を再起動させる。ターミナル.app で killall Dock と打ち込むか、アクティビティモニタ.app で Dock を探し終了。すると何もないスペースが追加されている。ドラッグで好きな場所に移動できる。いらなくなったらコンテクストメニューから「Dock から取り除く」を選ぶか、Dock の外にドラッ

    Leopard の Dock に仕切りスペースを追加する - d.hetima
    Watson
    Watson 2008/01/05
  • Quick Look プラグインを作る - d.hetima

    Leopard 導入前は Cover Flow と Quick Look はほとんど使わないだろうと思っていたが、いざ使ってみるとかなり楽しい。対応していないファイル形式はプラグインを作れば良いのだけれど、これがまた楽しい。基的に画像データを返すだけで良いので作るのが簡単なのだ。Quick Look プラグインは、Cover Flow のサムネイルと Quick Look のプレビュー両方を提供する。 とりあえず日で最初の Quick Look プラグイン HetimaZip.qlgenerator を作った。次は、Safari のブックマークと履歴用のプラグインを作成中。こんな感じ↓。 URL から画像を生成するためにはキャプチャしなければならないが、毎回 web から取ってくるのは現実的ではないのでキャッシュしておく必要がある。SafariStand で表示したページのサムネイルを

    Quick Look プラグインを作る - d.hetima
  • 文字列操作の比較表 - Ruby, PHP, Objective-C - d.hetima

    いやなブログ: 文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++PHP がなかったので作ってみました。文字列検索置き換え系がわけ分からん。適当に preg 系でお茶を濁す。PHP はもっとちゃんとしたものを誰か作っていることでしょう。Objective-C もやらないわけにはいかないのでやってみました。 空白の部分は、該当する機能が無い、どんな機能かよく分からなかった、調べる気力が残っていなかった、のいずれかです。PHP はたぶん4.3以降〜5.xくらい。Objective-C 中の「ms」は NSMutableString です。 htmlなどのエスケープ関連も欲しいところですね。あと NSString が真価を発揮するファイルパス関連も。 Ruby (String) PHP (String 非オブジェクト) Objective-C (N

    Watson
    Watson 2006/10/26
  • d.hetima - iTunes のライブラリからファイルが存在しない曲を効率良く取り除く方法

    question:1160789497 を見て、iTunes で!マークが付いた曲を削除する方法を考えたので書いておきます。全削除→再登録でもOKなのですが、再生回数などを引き継ぐことができないので出来れば避けたいわけです。 まず空のプレイリストを作成します。 ライブラリのミュージックを表示して、すべての曲を選択します。 作成したプレイリストにすべての曲をドラッグ&ドロップして追加します。 Podcast、ムービーなどにもデータが入っていれば同様に追加します。 この動作では!マークの付いた曲は追加されません。←ここがポイント 今度は新規スマートプレイリストを作成します。 スマートプレイリストの条件を「プレイリストが」「先ほど作成したリスト」「ではない」とします。 するとこのスマートプレイリストに!マークの付いた曲がリストアップされます。 すべてを選択し option キーを押しながら de

  • 1