Hatena::ブログ(Diary)

(ひ)メモ このページをアンテナに追加 RSSフィード

2010-10-20 (Wed)

Plack::Middleware::Pictogram::MobileJp - 3キャリア対応の絵文字に変換するPlack::Middleware

id:tokuhiromHTML::Pictogram::MobileJpというモジュールをリリースしていたので、これを使ったPlack::Middlewareを作ってみました。

「モバイル用のHTMLのチェックを実機やFireMobileSimulatorでやりたいのだけど、&#xXXXX;で絵文字を指定するとドコモ以外のクライアントで絵文字が表示されないのでチェックにならない」

というような場合に、このMiddlewareを介して表示すれば、クライアントのUser-Agentをみてキャリアに応じた絵文字のコードポイントに変換してコンテンツを返してくれるので便利なんじゃないかと思います。

ごくシンプルですが、こんな感じで使えます。

# psgi
use Plack::App::Directory;

my $app = Plack::App::Directory->new({ root => '.' })->to_app;

use Plack::Builder;
builder {
    enable "Pictogram::MobileJp",
        notation => 'Unicode';
    $app;
}

もう少し凝った使用例は example/emoji-filter.psgi にありますのであわせて見てみるといいと思います。

2010-10-07 (Thu)

ウィンドウをキッチリカッチリ配置したい

XではXdefaultsやfvwm2rcで、Virtual Desktopごとにgeometryをビシっと指定して常にきもちよくmltermとかのウィンドウが並ぶようにしているhirose31です。

Macでは基本的に終了時の位置を覚えててくれるんで、いちいち位置指定しなくてもいいんですが、MacBookを持ち歩いていて、オフィスでは外部モニタあり、自宅ではなしな生活だと、モニタをつなげる/外すたびに各ウィンドウがあっちゃいったりこっちゃいったりで大変落ち着きません。


調べたところ、AppleScriptを使えばウィンドウの位置、大きさを変えることができるとわかったので、

立ちくらみがするぐらいベタなコードですがこんなAppleScriptを書いて、

モニタを繋ぎ変えるたびにこのスクリプトを実行しています。実行には、QuickSilverを愛用しているので、option-c(QS呼び出し) res(これでresize.scptが候補になるので) RET(実行) なキーシーケンスでやってます。指が覚えちゃったしそう頻度高くないんでまいっかーとTriggerには登録してません。

あと、自分の場合、作業内容に応じてブラウザのウィンドウを画面いっぱい(集中モード)と、下の方ちょっと空けた大きさ(空いたところ5,6行にLimeChatのログが見えるように)の2つで切り替えてます。

これもAppleScriptでできると思うんですが、なぜかJavaScriptでやってます。

Firefoxでは、

javascript:(function(){window.moveTo(0,0);window.resizeTo(window.screen.availWidth,window.screen.availHeight)})()

javascript:(function(){window.moveTo(0,0);window.resizeTo(window.screen.availWidth,window.screen.availHeight-84)})()

をブックマークして、keywordに「max」や「no」と入れておきます。

これで、⌘L max RET で画面いっぱいにしたり、⌘L no RET でちら見サイズにしたりできます。

Safariの場合は、Keywurl (Safari 5で動かす方法)を使って、同じようにキーワードで位置調整のjsを呼び出せるようにしています。

蛇足ですが、X11.appではxinitrcでビシっとgeometry指定してmltermなどを起動してます。

2016/04 追記

現在は↓です。

ショートカットキーを無効化したい

Mac OS Xではデフォルトで⌘MがMinimize (しまう)に割り当てられてるんですが、うっかり⌘Mを押してしまうとウィンドウがドックにしゅるるるっと入ってムキー!っとなります。よくムキキー!!となるので嫌になってきました。

なので、システム環境設定→キーボードとマウス→キーボードショートカットの「全プアリケーション」で、存在しない名前「currydaisuki」を登録してそのショートカットとして⌘Mを登録してみました。これで⌘Mは存在しないメニュータイトル「currydaisuki」を発動しようとして、何も起こらず終わるんじゃないかと思ったんですがさにあらず。Minimizeが発動してしまいました。該当するメニュータイトルが存在しない場合は、キーイベントはより下層(環境設定→アプリ)にそのまま渡される構造なんですかね。

いい方法がないかなーと聞いてみたところ、

@ さんに教えてもらいました。

ショートカットキー(⌘M)を上書きすることばかり考えてたんですが、Minimizeに別なショートカットキーを割り当ててもぼくのやりたいことは達せられる、と。なるほど。。

というわけで、こんな感じで「あぁ、これはまちがっても押さないだろうなぁ」というショートカットを「Minimize」と「しまう」に割り当てました。

f:id:hirose31:20101007003945p:image

ただ、Firefoxはメニュー上はショートカットが変更されているように見えるのですが、実際は効いてしまったので、keyconfigでMinimizeのshortcutを削除しました。あと、OpenOfficeも⌘Mでしまわれてしまうようです。 (ご指摘ありがとうござましたー @)


これでもう指がすべってムッキッキーとならずにすみそうです。@さんはじめ、お返事いただいた方々ありがとうございました!

2003 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 05 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 12 |
2012 | 01 | 02 | 03 | 06 | 08 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2015 | 01 | 02 | 07 | 10 |
2016 | 01 | 05 | 10 | 12 |
2017 | 07 |
2018 | 05 |