最強の端末環境を整えるべく、 #mlterm にマウススクロール機能を足すパッチを書いた
読了まで:約2分
と
最近、
んー、
[[開発環境]] の [[再開発]] でも するか
と
Terminal.app は
Sixel とか 表示できないし、 かと いって iTerm2 は 設定する 所が 結構 複雑だし、 もっと こう、 シンプルで いて、 かつ痒い ところに 手が 届きやすいターミナルエミュレーターは 無い ものか。
と
そう
言えば、 前に Macbook Air mid 2011 に Archlinux を 突っ込んでいた 時、 mlterm 使ってたよなー
と
を
が、
実際に
とか
あれ、
これ、 もしかして、 マウススクロール機能、 自分でも 実装出来るんじゃね?
と
自分で実装しますた!!1
と
$NetBSD$
--- xwindow/quartz/cocoa.m.orig 2016-05-08 06:47:04.000000000 +0000
+++ xwindow/quartz/cocoa.m
@@ -954,6 +954,47 @@ get_current_window(
x_window_receive_event( xwindow , (XEvent*)&mev) ;
}
+- (void)scrollWheel:(NSEvent *)event
+{
+ NSPoint loc = [[event locationInWindow]] ;
+ XButtonEvent bevPress;
+ XButtonEvent bevRelease;
+
+ bevPress.type = X_BUTTON_PRESS ;
+ bevRelease.type = X_BUTTON_RELEASE ;
+
+ bevPress.time = event.timestamp * 1000;
+ bevRelease.time = (event.timestamp * 1000) + 1;
+
+ bevPress.x = loc.x - self.frame.origin.x;
+ bevRelease.x = loc.x - self.frame.origin.x;
+
+ bevPress.y = ACTUAL_HEIGHT(xwindow->parent) - loc.y - /* self.frame.origin.y - */ 1 ;
+ bevRelease.y = ACTUAL_HEIGHT(xwindow->parent) - loc.y - /* self.frame.origin.y - */ 1 ;
+
+ bevPress.state = event.modifierFlags &
+ (NSShiftKeyMask|NSControlKeyMask|NSAlternateKeyMask) ;
+ bevRelease.state = event.modifierFlags &
+ (NSShiftKeyMask|NSControlKeyMask|NSAlternateKeyMask) ;
+
+ bevPress.click_count = 1;
+
+ if ( event.deltaY > 1 ) {
+ bevPress.button = 4;
+ bevRelease.button = 4;
+ }
+
+ if ( event.deltaY < -1 ) {
+ bevPress.button = 5;
+ bevRelease.button = 5;
+ }
+
+ if ( event.deltaY < -1 || event.deltaY > 1 ) {
+ x_window_receive_event( xwindow , (XEvent*)&bevPress );
+ x_window_receive_event( xwindow , (XEvent*)&bevRelease );
+ }
+}
+
- (void)keyDown:(NSEvent *)event
{
if( [[event type]] == NSFlagsChanged)
また、
- <https://github.com/nyarla/pkgsrc-nyarla/blob/master/mlterm/patches/patch-cocoa.m https://github.com/nyarla/pkgsrc-nyarla/blob/master/mlterm/patches/patch-cocoa.m>
でも
な
また、
その
あと、
これを
そのまま本家に パッチと して 投げるのは ちょっとなー
と
ただ、
mlterm の
Cocoa 向けビルドへ マウススクロールを 実装する
と
という扱いでお願いします。
と
まあ、
最強の
端末環境
は、