2007年10月のアーカイブ

UIM.framework with current uim trunk

10月 14, 2007

UIM.framework 向けの uim trunk に対する diff です。パスとキーの細かい設定と、Rosetta 向けの小さな変更だけです。

Index: scm/skk-custom.scm
===================================================================
--- scm/skk-custom.scm	(revision 5027)
+++ scm/skk-custom.scm	(working copy)
@@ -386,8 +386,7 @@
 	 (lambda ()
 	   skk-use-skkserv?))

-(define-custom 'skk-dic-file-name (string-append (sys-datadir)
-						 "/skk/SKK-JISYO.L")
+(define-custom 'skk-dic-file-name "/Library/Dictionaries/SKK/SKK-JISYO.L"
   '(skk-dict dict-files)
   '(pathname regular-file)
   (N_ "System dictionary file")
Index: scm/tutcode-key-custom.scm
===================================================================
--- scm/tutcode-key-custom.scm	(revision 5027)
+++ scm/tutcode-key-custom.scm	(working copy)
@@ -53,7 +53,7 @@
 	       (N_ "[TUT-Code] off")
 	       (N_ "long description will be here"))

-(define-custom 'tutcode-kana-toggle-key '("<IgnoreShift>'")
+(define-custom 'tutcode-kana-toggle-key '("<IgnoreShift>'" "Private2")
                '(tutcode-keys1 mode-transition)
 	       '(key)
 	       (N_ "[TUT-Code] toggle hiragana/katakana mode")
Index: scm/generic-key-custom.scm
===================================================================
--- scm/generic-key-custom.scm	(revision 5027)
+++ scm/generic-key-custom.scm	(working copy)
@@ -41,13 +41,13 @@
 		     (N_ "long description will be here."))

-(define-custom 'generic-on-key '("zenkaku-hankaku" "<Shift> ")
+(define-custom 'generic-on-key '("zenkaku-hankaku" "<Shift> " "Private2")
                '(global-keys1)
 	       '(key)
 	       (N_ "[Global] on")
 	       (N_ "long description will be here"))

-(define-custom 'generic-off-key '("zenkaku-hankaku" "<Shift> ")
+(define-custom 'generic-off-key '("zenkaku-hankaku" "<Shift> " "Private1")
                '(global-keys1)
 	       '(key)
 	       (N_ "[Global] off")
Index: uim/prime.c
===================================================================
--- uim/prime.c	(revision 5027)
+++ uim/prime.c	(working copy)
@@ -61,7 +61,7 @@
 static FILE *primer, *primew;
 static pid_t prime_pid = 0;

-static char *prime_command = "prime";
+static char *prime_command = "/Library/PRIME/bin/prime";

 static char *prime_ud_path;
 static int prime_fd = -1;
Index: uim/uim-helper.c
===================================================================
--- uim/uim-helper.c	(revision 5027)
+++ uim/uim-helper.c	(working copy)
@@ -48,6 +48,8 @@
 #include <errno.h>
 #include <sys/stat.h>

+#include <libkern/OSByteOrder.h>
+
 #include "uim-internal.h"
 #include "uim-helper.h"
 #include "uim-util.h"
@@ -205,6 +207,9 @@
     perror("getpeereid failed");
     return -1;
   }
+  if (euid > INT32_MAX)
+    euid = OSSwapInt32(euid);
+
   if ((euid != 0) && (euid != getuid())) {
     fprintf(stderr, "uid mismatch\n");
     return -1;
Index: uim.pc.in
===================================================================
--- uim.pc.in	(revision 5027)
+++ uim.pc.in	(working copy)
@@ -1,6 +1,6 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-includedir=@includedir@
+includedir=@prefix@/Headers
 libdir=@libdir@
 datarootdir=@datarootdir@
 datadir=@datadir@
@@ -10,5 +10,5 @@
 Name: uim
 Description: multilingual input method library
 Version: @VERSION@
-Cflags: -I${includedir}/uim
-Libs: -L${libdir} -luim-scm -luim @LIBINTL@ @LIBICONV@
+Cflags: -I${includedir}
+Libs: -framework UIM

次は、fwbuild スクリプトの diff です。ごちゃごちゃどうでもいい差分も含んでますが (すみません)、要点は新しく加わった、libuim-scm.la と libuim-bsdlook.la も UIM.framework に加えるということです。

diff -r fa605af03302 UIM/fwbuild
--- a/UIM/fwbuild	Mon Jan 29 19:54:53 2007 +0900
+++ b/UIM/fwbuild	Sun Oct 14 14:13:56 2007 +0900
@@ -19,9 +19,9 @@ cp -fv ../version.plist.in version.plist
 cp -fv ../version.plist.in version.plist

 export MACOSX_DEPLOYMENT_TARGET="10.3"
-PATH="${prefix}/bin:/Library/Anthy/bin:/Library/PRIME/bin:/Library/M17NLib/bin:/bin:/usr/bin"
+PATH="${prefix}/bin:/Library/Anthy/bin:/Library/PRIME/bin:/Library/M17NLib/bin:/sw/bin:/bin:/usr/bin:"

-#PATH="/opt/macuim/bin:$PATH" ./autogen.sh || exit 1
+PATH="/opt/macuim/bin:$PATH" ./autogen.sh || exit 1

 perl -pi -e "s|\@VERSION\@|${version}|" *.plist
 perl -pi -e "s|\@BUILD\@|${build}|" *.plist
@@ -34,13 +34,16 @@ CFLAGS="-I/opt/macuim/include -I/Library
 CFLAGS="-I/opt/macuim/include -I/Library/M17NLib/include -I/Library/Anthy/include -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" \
 PKG_CONFIG="/opt/macuim/bin/pkg-config" \
 PKG_CONFIG_PATH="/Library/PRIME/lib/pkgconfig:/Library/Anthy/lib/pkgconfig:/Library/M17NLib/lib/pkgconfig" \
-./configure --prefix=${prefix} --exec-prefix=${prefix} --enable-debug \
+./configure --prefix=${prefix} --exec-prefix=${prefix} \
   --without-gtk2 --disable-fep --disable-applet \
-  --with-x --disable-dependency-tracking || exit 1
+  --without-x --disable-dependency-tracking \
+  --enable-maintainer-mode --disable-backtrace \
+  --disable-strict-argcheck \
+  --with-anthy-utf8 || exit 1

 perl -pi -e 's|-Werror||' uim/Makefile

-#mkdir -p ${dest}${prefix}/lib
+mkdir -p ${dest}${prefix}/lib

 cd sigscheme
 ln -s src/config.h .
@@ -58,6 +61,8 @@ gcc -dynamiclib -undefined dynamic_looku
 gcc -dynamiclib -undefined dynamic_lookup \
 -o uim/.libs/UIM \
 uim/.libs/libuim_la*.o uim/.libs/libuim_custom_la*.o replace/.libs/libreplace.a \
+uim/.libs/libuim_scm_la*.o \
+uim/.libs/libuim_bsdlook_la*.o \
 sigscheme/libgcroots/.libs/*.o \
 -L/opt/macuim/lib -liconv -ldl -lintl \
 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc \
@@ -68,6 +73,8 @@ cd uim

 perl -pi -e "s|^library_names=.*$|library_names='UIM'|" libuim.la
 perl -pi -e "s|^library_names=.*$|library_names='UIM'|" libuim-custom.la
+perl -pi -e "s|^library_names=.*$|library_names='UIM'|" libuim-scm.la
+perl -pi -e "s|^library_names=.*$|library_names='UIM'|" libuim-bsdlook.la

 make -w pkglibdir=${prefix}/pkglib || exit 1

@@ -76,10 +83,10 @@ make -w DESTDIR=${dest} pkglibdir=${pref
 make -w DESTDIR=${dest} pkglibdir=${prefix}/pkglib \
   install || exit 1

-cd xim
-make -w CXX="g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" || exit 1
-make -w DESTDIR=${dest} install || exit 1
-cd ..
+#cd xim
+#make -w CXX="g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" || exit 1
+#make -w DESTDIR=${dest} install || exit 1
+#cd ..

 cd ${dest}/${prefix}
 mv include/uim Headers

ビルドの仕方ですが、MacUIM/UIM ディレクトリで、svn checkout http://uim.googlecode.com/svn/trunk/ uim して、その uim ディレクトリの中で、svn co http://uim.googlecode.com/svn/sigscheme-trunk/ sigscheme して、さらに sigscheme ディレクトリの中で、svn co http://uim.googlecode.com/svn/libgcroots-trunk/ libgcroots します。あとは autotools を用意して、それぞれのディレクトリで ./autogen.sh しておいてから、uim ディレクトリにおいて、パッチを当てた fwbuild スクリプトを ../fwbuild 1.5.0 1 とでも動かせばいいです。その前に、Anthy ディレクトリで anthy-9100c をビルドし、 /Library/Anthy にインストールしておけば anthy plugin も作られます。

ということで、dual screen パッチを適用して、 uim trunk とanthy-9100c で作った MacUIM-0.5.2-3を一応置いておきます。Tiger 用 の Universal Binary になってます (テストしてません)。

MacUIM other patch

10月 14, 2007

その他現在の自分が使っている MacUIM の diff です。

  • project.pbxproj の diff は必要ない部分まで変更している可能性大ですが、面倒なのでしらべてません
  • MUIM.c, MacUIMPrefPane.m は、uim 1.5.0 向けの変更です
  • UIMCallback.c は以前書いた、候補ウィンドウが開くタイミングの変更です
diff -r fa605af03302 MacUIM.xcodeproj/project.pbxproj
--- a/MacUIM.xcodeproj/project.pbxproj	Mon Jan 29 19:54:53 2007 +0900
+++ b/MacUIM.xcodeproj/project.pbxproj	Mon Sep 10 17:06:50 2007 +0900
@@ -975,7 +975,7 @@
 					"-framework",
 					AppKit,
 				);
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = CocoaWinController;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1007,7 +1007,7 @@
 					"-framework",
 					AppKit,
 				);
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = CocoaWinController;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1035,7 +1035,7 @@
 					"-framework",
 					AppKit,
 				);
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = CocoaWinController;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1060,7 +1060,7 @@
 					"-framework",
 					AppKit,
 				);
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = CocoaWinController;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1083,7 +1083,7 @@
 					"-framework",
 					AppKit,
 				);
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = CocoaWinController;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1298,7 +1298,7 @@
 				OPTIMIZATION_CFLAGS = "-O0";
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIMHelper;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1328,7 +1328,7 @@
 				OPTIMIZATION_CFLAGS = "-O0";
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIMHelper;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1354,7 +1354,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIMHelper;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1377,7 +1377,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIMHelper;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1398,7 +1398,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIMHelper;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1427,7 +1427,7 @@
 				OPTIMIZATION_CFLAGS = "-O0";
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIM;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1457,7 +1457,7 @@
 				OPTIMIZATION_CFLAGS = "-O0";
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIM;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1483,7 +1483,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIM;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1506,7 +1506,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIM;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1527,7 +1527,7 @@
 				LIBRARY_STYLE = BUNDLE;
 				OTHER_CFLAGS = "";
 				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 				PRODUCT_NAME = MacUIM;
 				SECTORDER_FLAGS = "";
 				WARNING_CFLAGS = "-Wmost";
@@ -1542,6 +1542,9 @@
 					ppc,
 					i386,
 				);
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 			};
 			name = Development;
 		};
@@ -1552,6 +1555,9 @@
 					ppc,
 					i386,
 				);
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 			};
 			name = "Development (MacUIM)";
 		};
@@ -1562,6 +1568,9 @@
 					ppc,
 					i386,
 				);
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 			};
 			name = Deployment;
 		};
@@ -1572,6 +1581,9 @@
 					ppc,
 					i386,
 				);
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 			};
 			name = "Deploy (MacUIM)";
 		};
@@ -1582,6 +1594,9 @@
 					ppc,
 					i386,
 				);
+				GCC_MODEL_TUNING = "";
+				GCC_OPTIMIZATION_LEVEL = 0;
+				OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386)";
 			};
 			name = Default;
 		};
diff -r fa605af03302 Sources/MUIM.c
--- a/Sources/MUIM.c	Mon Jan 29 19:54:53 2007 +0900
+++ b/Sources/MUIM.c	Mon Sep 10 11:13:42 2007 +0900
@@ -959,7 +959,7 @@ CreateUIMContext(MUIMSessionHandle inSes
   (*inSessionHandle)->fUC =
     uim_create_context(inSessionHandle,
                        "UTF-8", NULL, imName,
-                       uim_iconv, UIMCommitString);
+                       NULL, UIMCommitString);

   if (imVal)
     CFRelease(imVal);
diff -r fa605af03302 Sources/MacUIMPrefPane.m
--- a/Sources/MacUIMPrefPane.m	Mon Jan 29 19:54:53 2007 +0900
+++ b/Sources/MacUIMPrefPane.m	Mon Sep 10 11:13:49 2007 +0900
@@ -123,7 +123,7 @@ prefChanged(CFNotificationCenterRef inCe
   // load IM modules
   uim_init();
   uc = uim_create_context(NULL, "UTF-8",
-                          NULL, NULL, uim_iconv, NULL);
+                          NULL, NULL, NULL, NULL);
   if (uc) {
     numModules = uim_get_nr_im(uc);
     imModules = (IMModule **) malloc(sizeof(IMModule *) * numModules);
diff -r fa605af03302 Sources/UIMCallback.c
--- a/Sources/UIMCallback.c	Mon Jan 29 19:54:53 2007 +0900
+++ b/Sources/UIMCallback.c	Mon Sep 10 17:19:32 2007 +0900
@@ -208,9 +208,9 @@ UIMCandAcivate(void *inPtr, int inNR, in
   (*handle)->fDisplayLimit = inLimit;
   (*handle)->fLayoutBegin = 0;

+  (*handle)->fWindowOpened = true;
+
   LayoutCandidate(handle);
-
-  (*handle)->fWindowOpened = true;
 }

 /**

MacUIM dual screen

10月 14, 2007

ということで、dual screen でも候補ウィンドウが正しい位置に表示できました。

diff -r fa605af03302 Sources/CocoaWinController.m
--- a/Sources/CocoaWinController.m	Mon Jan 29 19:54:53 2007 +0900
+++ b/Sources/CocoaWinController.m	Sun Oct 14 13:37:53 2007 +0900
@@ -290,15 +290,11 @@ static CocoaWinController *sharedControl
- (void)replaceWindow:(int)replyX:(int)replyY
{
NSTableColumn *col;
-  NSSize mainSize;
NSRect rect;
float candWidth = 0.0;
float headWidth = 0.0;
-  int x, y, i;
+  int i;
NSMutableAttributedString *text;
-
-  mainSize = [[NSScreen mainScreen] frame].size;
-  rect = [panel frame];

for (i = 0; i < [candArray count]; i++) {
text = [[NSAttributedString alloc]
@@ -347,25 +343,49 @@ static CocoaWinController *sharedControl

[panel setFrame:rect display:NO];

-  x = replyX;
-  y = mainSize.height - replyY - rect.size.height;
-
-  if (x < 0)
-    x = 0;
-  if (x + rect.size.width > mainSize.width)
-    x = mainSize.width - rect.size.width;
-  if (mainSize.height - replyY - origSize.height < 0)
-    y = mainSize.height - replyY + lineHeight + 3;
-  if (y + rect.size.height > mainSize.height)
-    y = mainSize.height - rect.size.height;
+  // Get the height of screen with menubar
+  NSArray *screenArray = [NSScreen screens];
+  int nScreen = [screenArray count];
+  NSPoint point = NSMakePoint((float)replyX, (float)replyY);
+  if (nScreen > 0)
+    point.y = [[screenArray objectAtIndex:0] frame].size.height - point.y;
+
+
+  // Search a screen of the candidate window
+  NSRect f = [[NSScreen mainScreen] frame];
+  BOOL found = NO;
+  for (i = 0; i < nScreen; i++) {
+    NSRect sf = [[screenArray objectAtIndex:i] frame];
+    if (NSPointInRect(point, sf)) {
+      f = sf;
+      found = YES;
+      break;
+    }
+  }
+
+  if (found) {
+    point.y -= rect.size.height;
+    if (point.y > f.origin.y + f.size.height - rect.size.height)
+      point.y = f.origin.y + f.size.height - rect.size.height;
+    if (point.x > f.origin.x + f.size.width - rect.size.width)
+      point.x = f.origin.x + f.size.width - rect.size.width;
+    if (point.y < f.origin.y)
+      point.y =  [[screenArray objectAtIndex:0] frame].size.height - replyY + lineHeight + 3;
+    if (point.x < f.origin.x)
+      point.x = f.origin.x;
+  } else {
+    // Set candidate window position at the center of the screen
+    point.x = f.origin.x + (f.size.width - rect.size.width) / 2;
+    point.y = f.origin.y + (f.size.height - rect.size.height) / 2;
+  }

#if DEBUG_CANDIDATE_WINDOW
NSLog(@"CocoaWinController replaceWindow: x=%d y=%d origin.x=%d origin.y=%d\n",
-        x, y, (int) rect.size.width, (int) rect.size.height);
+        point.x, point.y, (int) rect.size.width, (int) rect.size.height);
#endif

-  if (x != (int) rect.origin.x || y != (int) rect.origin.y)
-    [panel setFrameOrigin:NSMakePoint(x, y)];
+  if (point.x != (int) rect.origin.x || point.y != (int) rect.origin.y)
+    [panel setFrameOrigin:point];
}

- (void)setFont:(NSString *)name size:(float)size
diff -r fa605af03302 Sources/ModeTipsController.m
--- a/Sources/ModeTipsController.m	Mon Jan 29 19:54:53 2007 +0900
+++ b/Sources/ModeTipsController.m	Sun Oct 14 13:44:44 2007 +0900
@@ -95,7 +95,8 @@ static ModeTipsController *sharedControl

[realModeTipsPanel showLabels:labels];

-  mainSize = [[NSScreen mainScreen] frame].size;
+  NSArray *screenArray = [NSScreen screens];
+  mainSize = [[screenArray objectAtIndex:0] frame].size;
rect = [realModeTipsPanel frame];

x = qdX;

ようは mainScreen を使うのではなく、メニューバーがあるスクリーンの高さによって変換すればいいみたいです。

IM飲み会

10月 10, 2007

恒例になった(?) OpenVanilla の lukhnos さんたちとの IM 飲み会に先日行ってきました。Parallels で動かしていた Windows 版 OpenVanilla がすばらしい出来です。eternal beta らしいですけど。

気がついたら、諏訪さんの AquaSKK 新バージョンが 飲み会の翌日にでてました。すばらしいです。

いくつか話題にしたことについてですが、MacUIM デュアルディスプレイ問題はなんとかなるような気がするのですが、ちょっと今は時間がないのでまた後でいじってみます (二つのディスプレイの高さが違うとちょっと面倒そうではあります)。原岡さんの MacBook Pro の JIS keyboard の 円キーを delete にしたいというのは、fKeys で何とかなりそうな気配です。現状の uim trunk での /Library/Frameworks/UIM.framework の作り方も、もう少しあとで時間ができたら記録しておきたいと思ってます。