2002-12-06(金) [長年日記]
■ 左利きカーソル(4)
なんか、成功事例の報告とか、メールでわざわざツールを送って下さる方とか、ありがたいことです。今夜にでも時間を取ってチャレンジしてみるつもり。
やっぱねぇ、仕事終わって帰宅すると、たいして時間ないんだよね。IRCに入るのがいけない気もするけど(笑)。職場のLinux環境はサーバ専用だしなぁ。
■ CSS: em単位指定
ほほぅ、そんな問題があったのか。どれどれ。
- これは通常(無指定)の文字サイズ。ようは100%状態。
- これはfont-size: 90%;を指定。まぁ、そんな感じはする。
- そしてこれはfont-size: 75%;を指定。
- そしてこれはfont-size: 0.9em;を指定。
最後のヤツは、IEで見ると「どこが0.9やねんっ」とツッコミを入れざるを得ないほどひどく小さい。見た目の大きさは75%のとほぼ同じである。なるほど、一部のテーマでツッコミの文字サイズが妙に小さかったのはこのせいか。これはひどいなぁ。おれはたいてい「%」で指定してるんだけど、「em」で指定してる人も少なくないよねぇ。
■ ↑の実験はIEのフォントサイズを「小」にした場合の話。「最小」にするとさらに小さくなるし、逆に「最大」にすると120%くらいのサイズになる。下のツッコミに書いたように、font-sizeをemで指定すると特別ルールが適用されるようなので(原本と和訳)、単に文字サイズを指定したいのなら(IEの実装が正しいかどうかは別にしても)パーセント指定が無難という気はする。
ちなみに、font-sizeにemを使っているテーマは……121個もありました。うげ、多数派じゃん。つーか、自分でも使ってるじゃん!(笑)
■ 左利きカーソル(5)
さて、じゃあいってみよう。いろいろトライしたけど、成功事例かつ一番楽な方法を書いておく。実はかずひこさんにデータやツールをメールでもらったりしているんだけど、のちのちのためにそれ抜きでできる方法としてまとめる。
■ まずは元ネタになるcursor.bdfを取得する。これはftp://ftp.x.org/pub/R6.4/xc/fonts/bdf/misc/cursor.bdfから取ってきた。
コイツの左向き(右利き用)矢印を、右向き(左利き用)に変換するのだが、どこにどんなカーソルがあるのか見やすくするために、16進のデータを2進にする。東雲フォントに付属のbdf2bitコマンドをmakeしてもいいんだけど、見るためだけならこんなRubyスクリプトでいい。
# bdf2bit.rb
while l = gets
if /^[0-9a-f]+$/ =~ l then
l = ('%016b' % eval( "0x#{l.chomp}" )).gsub( /0/, '.' )
end
puts l
end
これを通して見たフォントデータから、left_ptrがそれだとわかる(top_left_arrowというのもあるが、少なくともKDEでは使われていないようだ)。
% ruby bdf2bit.rb cursor.bdf (中略) STARTCHAR left_ptr ENCODING -1 68 SWIDTH 548 0 DWIDTH 17 0 BBX 8 14 0 -14 BITMAP ........1....... ........11...... ........111..... ........1111.... ........11111... ........111111.. ........1111111. ........11111111 ........11111... ........11.11... ........1...11.. ............11.. .............11. .............11. ENDCHAR (後略)
で、かずひこさん情報によれば、「BBX」のところがサイズとホットスポットの情報とのこと。8x14のサイズで、(0,-14)がホットスポットということだ(変な座標系だ)。イメージを左右反転して、ホットスポットを再計算すれば左利き用カーソルができる……わけだが、実はもっと楽な方法がある。少し下に「right_ptr」というのがあるのだ(笑)。
コイツのBBXからENDCHARまでをそっくりコピーしてくれば、すべて揃ったデータが作れる。労力最小限。さらに、マスク用画像である「left_ptr_mask」も「right_ptr_mask」で置き換える。
■ あとはできたcursor.bdfを、pcfに変換し、使えるようにするだけである。bdftopcfコマンドやmkfontdirコマンドはすでにインストールされていたので、そのまま使う。
% mkdir ~/.xfonts % bdftopcf cursor.bdf > ~/.xfonts/cursor.pcf % mkfontdir ~/.xfonts
さらに、~/.xinit.d/hookに以下の2行を入れておく。
xset +fp $HOME/.xfonts xsetroot -cursor_name X_cursor
あとはいったんlogoutして、Xを再起動するだけである。
もうね、カーソルが右向いてるのを見たときは、ちょっと涙が出てきたよ。いつもWindowsではこんな感じなんだけどね。いつもLinux使ってる時に感じる微妙なストレスの原因がこれだと、いまさらながら気づいたよ。もう戻れません。
2002-12-05(木) [長年日記]
「たださん、珍しくマックですかぁ」
「マクドと言え」
といった会話が繰り返されるのだが、とにかく、グラコロだけは別なのである。
■ 左利きカーソル(3)
座して待っているだけで情報が寄せられるようになると、「教えて君」になってしまうので、あまり甘やかしてはいけません。なんて。うそです。いつもありがとう(汗)。
ホットスポットがあるという情報は助かります。でも反転するっつっても、そんなに単純な話ではないような。たとえば昨日のフォントを反転すると(「@」がホットスポット):
% cat arrow 11............11 @111............ .11111.......... .1111111........ ..11111111...... ..1111111111.... ...11111........ ...11111........ ....11..1....... ....11...1...... .....1....1..... .....1.....1.... ............1... .............1.. % ruby -pe '$_.reverse!' arrow 11............11 ............111@ ..........11111. ........1111111. ......11111111.. ....1111111111.. ........11111... ........11111... .......1..11.... ......1...11.... .....1....1..... ....1.....1..... ...1............ ..1.............
このようホットスポットを(15,-1)に移動できるのか、それとも(0,-1)固定なのか。前者ならいいけど、後者なら使い物にならない。はてさて。
……と言うわけで、あとは実験するだけやな。時間見つけて取り組もう。全世界6億人(推定)の左利きのために!!(おおげさ)
2002-12-04(水) [長年日記]
■ 左利きカーソル(1)
だいたい、マウスの左右のボタンの役割を入れ替えられるようにしているくせに、カーソルの形状は右利き仕様のままで変更できないっつーのはマヌケすぎるんじゃないのか。Microsoftがこれを実装していれば、GnomeやKDEは間違いなく追従していただろう(笑)。ボタンを入れ替える必要のないMacではどうなっているのか、興味のあるところである。
それはさておき、kjanaさんの情報を試してみた。夕べの話だけど今日の日記に書いておこう。
% cat ~/.Xdefaults KTerm**pointerShape: top_left_arrow % xrdb ~/.Xdefaults % kterm
なるほど。Iビームが矢印に変わった。しかし、当然のように「top_right_arrow」なんてのはないのだ。カーソル形状を変えないと意味がない。
■ 左利きカーソル(2)
続いてかずひこさん情報。なるほど、フォントが使われているというのは聞いていたけど、こうやって入れ替えられるのか。関連情報がないかと思ってGoogleしたら、見覚えがある人のサイトが引っかかってなんか笑えた。
このcursor.bdf、拾ってきて中身を見たら、なんとなく雰囲気はわかる。top_left_arrowのデータは、2進数に変換するとこんな感じだ。
11............11 1111............ .11111.......... .1111111........ ..11111111...... ..1111111111.... ...11111........ ...11111........ ....11..1....... ....11...1...... .....1....1..... .....1.....1.... ............1... .............1..
これの左右を反転すれば、望みのカーソルが手に入るのだろう……が、いわゆるホットスポットはどこで設定するんだ? このまま反転したら、ポイントする場所と矢印の先っぽがずれてしまう。Windowsのマウスカーソル(*.cur)にはその手の情報があるんだけどな。
もうちょっと調査しないとあかんのだが、夜はなかなか時間が取れない。それにしても、「X」というキーワードは検索エンジンに対して無効すぎるのが痛い……。というわけで続編はまたこんど。
■ tDiary: 長年日記
越年日記の方がいいとな。うーん。どっこいどっこい、かなぁ。本当なら元ネタの「10年日記」がいちばん意味が通じやすいんだけど、10年と決まったわけでなし、だからといってhns由来の「n年日記」では理系臭すぎる。ラベルだけなら動的に「2年日記」とか「3年日記」と表示することはできるけど、「マニュアルに書ける機能名」にはならない。
けっきょく「長年」にしようと決めたのは、「長年日記つけててスンマソン」という、日本人らしい奥ゆかしさを感じることができるからなのであった(ちょっと嘘)。
■ りんかい線
大井町に出張だったので、帰りは新しく開通したりんかい線に乗ってみた。これで新宿まで出れば乗り換えは1回で済むし、始発で座って帰れるし、駅はピカピカだし、なんだかSuicaが使えなさそうな雰囲気だし(使えるけど)、架線はまだ銅の色そのままだし、新しいってのはいいもんですな!
しかし、埼京線に接続するのは1時間に2、3本しかない罠。ちょうど大宮行きに乗れたけど、逃したら泣けるぞ、これは。しかも、新宿のホームはかなり遠いところだし、夕方の小田急はメチャ混みだし、横浜線経由で帰ったのとたいして変わらぬ所要時間であった。もくろみ通りにはいかないものだ。
Before...
◆ ただただし [高さを90%にした場合と幅を0.9にした場合で、違いがあったら困るような……。 あ、仕様書に「font-sizeにe..]
◆ しめりぃ [お気づきの通りemの場合は親要素を参照するので、入れ子式になった場合は非常に小さくなってしまうようです。そしてそれに..]
◆ えぐぞせ [参考になるかどうか…。 http://a10.s21.xrea.com/css/csstest2_1.html ex..]
◆ かずひこ [あー、たださんずるいー。全部反転しましょうよぉ (T T) もし MacOS みたいに時計カーソルが回るのなら、時計..]
◆ ただただし [よくできてるけど、パーセントがないのがちょっと >エグゾゼ しかし、exってemの半分ってことになってるんですかね…..]
◆ えぐぞせ [む、パーセントか。なるほど、後で補完しておきましょう。]