iTerm つかう!!!
なんか、すでに理由を忘れたんだけど Terminal.app に辟易したので iTerm つかう。今までなんで iTerm を使っていなかったかっていうと
- タブうざイ☆ (screen のほうがスクリプタブルなのでいい)
- Cmd+Num は window 切り替えにしたい
- window サイズをかえていくつか重ねてつかいたいので
ambi-width がどうとかのパッチはさておき、Cmd+Num をタブきりかえじゃなくて window きりかえにするパッチをかいた
diff --git a/PTYWindow.m b/PTYWindow.m
index ce2676f..8207d01 100644
--- a/PTYWindow.m
+++ b/PTYWindow.m
@@ -109,14 +109,33 @@
- (void)sendEvent:(NSEvent *)event
{
// NSLog(@"%s: 0x%x", __PRETTY_FUNCTION__, self);
-
+
if([event type] == NSMouseEntered)
- {
+ {
//NSLog(@"window mouse entered");
if([[PreferencePanel sharedInstance] focusFollowsMouse])
[self makeKeyWindow];
}
-
+ if([event type] == NSKeyDown)
+ {
+ if ([event modifierFlags] & NSCommandKeyMask)
+ {
+ NSString* c = [event charactersIgnoringModifiers];
+ NSArray* windows = [[iTermController sharedInstance] terminals];
+
+ NSLog(@"pressed: Command+%s", c);
+ for (int i = 1, len = [windows count]; i <= len; i++)
+ {
+ if ([c isEqualToString: [NSString stringWithFormat: @"%d", i]])
+ {
+ // [[iTermController sharedInstance] terminalWindows]
+ [[[windows objectAtIndex: i - 1] window] makeKeyAndOrderFront: self];
+ break;
+ }
+ }
+ }
+ }
+
if (super) [super sendEvent:event];
}
diff --git a/iTermApplicationDelegate.m b/iTermApplicationDelegate.m
index 648f46a..5bb6f4c 100644
--- a/iTermApplicationDelegate.m
+++ b/iTermApplicationDelegate.m
@@ -558,15 +558,16 @@ static BOOL usingAutoLaunchScript = NO;
while ((aTabViewItem = [enumerator nextObject])) {
aSession = [aTabViewItem identifier];
NSMenuItem *aMenuItem;
-
- if(i < 10)
- {
- aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: [NSString stringWithFormat: @"%d", i]];
- [aMenuItem setTag: i-1];
-
- [aMenu addItem: aMenuItem];
- [aMenuItem release];
- }
+
+ if(i < 10)
+ {
+ // aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: [NSString stringWithFormat: @"%d", i]];
+ aMenuItem = [[NSMenuItem alloc] initWithTitle: [aSession name] action: @selector(selectSessionAtIndexAction:) keyEquivalent: @""];
+ [aMenuItem setTag: i-1];
+
+ [aMenu addItem: aMenuItem];
+ [aMenuItem release];
+ }
i++;
}
設定は http://f.hatena.ne.jp/cho45/iTerm/ においてみた。一枚ずつのページをすすめながら設定するとべんりっぽい。ふつうに ~/Library/Preferences/net.sourceforge.iTerm.plist (ソースからコンパイルすると iTerm.plist じゃなくなるっぽい) でもいい気がするけど
あと、そもそも cvs head は Xcode 2.5 + Mac OS X 10.4.11 ではビルドできなくて、 iTermSecurityMgr.{m,h} と Shells.{m,h} を iTerm.framework に追加しないとだめだった。
なんか iTerm の window 順がいつのまにか変わることがあって Cmd+num がズレる……
フルスクリーンにするとズレるみたいだ。フルスクリーンにするなら新しいウィンドウつくろう