2009年 04月 06日

躊躇

ああ、タワレコ行こうと思ってたのに忘れた…… 来週かタイミングがよければいこう

GDHM の CD、アマゾンで在庫切れ

他の人が頭の中でどういう風にモノを考えているのかってよくわからないのだけど、すくなくとも僕の場合は、いつも誰かに何かを語りかけるような感じになっていて、それは日記とほとんど同じ口調になってる。なので、頭の中で考えてることはそのまま書きくだせることが多い (一方で、書きくだそうとすると非論理的すぎて破綻するようなことも多い)

夢がひどかった。学校に遅刻する夢 (12時ぐらいに起きて「え?」って思う夢) を見て、飛びおきたら7時だった。遅刻しなくてよかったけどひどい夢だった……

Leopard, dns-sd, mt-daap

なんか ssh tunneling してリモートの mt-daap (Firefly) サーバに繋げなかったのがやっと解決した。TXT レコード (?) を指定しないとダメらしい。@ iTunes 8

ssh -L3689:localhost:3689 remote

しているとして (locahost:3689 を listen して remote:3689 に転送)

dns-sd -P Test _daap._tcp local 3689 localhost 127.0.0.1 Test

みたいにすると iTunes から見れるようになった。(最後の Test が必要)

iTerm Cmd+で Window 切り替え、あるいは tab sucks

iTerm で Cmd-[0-9] 押したときに (sendEvent を監視してキーイベントをとっているせいで)、ベルが鳴ってしまうんだけど、どうやったら消せるんだろう…… なんかもっとセオリーがあるんだろうか

http://subtech.g.hatena.ne.jp/cho45/20080703/1215016330 このパッチの変わりに

diff --git a/iTermApplicationDelegate.m b/iTermApplicationDelegate.m
index 5bb6f4c..14fda77 100644
--- a/iTermApplicationDelegate.m
+++ b/iTermApplicationDelegate.m
@@ -247,6 +247,23 @@ static BOOL usingAutoLaunchScript = NO;
     [super dealloc];
 }
 
+- (void) setWindowMenuKeyBind
+{
+    NSMenu *windowMenu = [[[NSApp menu] itemWithTitle: @"Window"] submenu];
+    // NSLog(@"windowmenu: %@", [windowMenu title]);
+
+    // XXX
+    int MAGIC_WINDOW_MENU_POSITION = 15;
+
+    int i, c;
+    for (i = 0, c = [windowMenu numberOfItems]; i < c; i++) {
+        if (i < MAGIC_WINDOW_MENU_POSITION) continue; // XXX: magic number
+        // NSLog(@"window menu: %d: %@", i, [[windowMenu itemAtIndex: i] title]);
+        [[windowMenu itemAtIndex: i] setKeyEquivalent: [NSString stringWithFormat: @"%d", i - MAGIC_WINDOW_MENU_POSITION + 1]];
+    }
+}
+
+
 // Action methods
 - (IBAction)newWindow:(id)sender
 {
@@ -255,6 +272,9 @@ static BOOL usingAutoLaunchScript = NO;
 		[[[iTermController sharedInstance] fullScreenTerminal] toggleFullScreen:nil];
 	
     [[iTermController sharedInstance] newWindow:sender];
+    // NSLog(@"newWindow");
+
+   [self setWindowMenuKeyBind]; 
 }
 
 - (IBAction)newSession:(id)sender

で、とりあえず Cmd-[0-9] 切り替えがいい感じにできるように

うーん。これだと不十分だ。閉じたり開いたりするとズレてしまう。

でもいい方法がおもいつかない。単に Terminal.app と同じ挙動にしたいだけなんだけど……

なんで Cocoa の Window Menu に関するドキュメントが全然ないんだろうか…… このメニューって誰が、いつ自動生成してるんだろう? なんのコードも書かずに実装されているから全く意味がわからないことになってる。クソだ

リサイズとかでこの Window Menu のリストの並びが変わってしまうので、このコードは全くダメだ。つかえない

というか、当初の目的の「音をならさない」は、もっと簡単に解決できた。

diff --git a/PTYWindow.m b/PTYWindow.m
index 8207d01..1dc45c3 100644
--- a/PTYWindow.m
+++ b/PTYWindow.m
@@ -130,7 +130,7 @@
                                {
                                        // [[iTermController sharedInstance] terminalWindows]
                                        [[[windows objectAtIndex: i - 1] window] makeKeyAndOrderFront: self];
-                                       break;
+                                       return;
                                }
                        }
                }

というふうにして、このあとにひかえている

if (super) [super sendEvent:event];

を呼ばないようにすればよかった