A Day in the Life

2008-02-07

会社の謎

何故かワイヤレスエクボコントローラが二個ある…。さてはこれでエアエクボ(エクボコントローラを持って脳内でプレイ。極めると実績250ぐらいは手に入る。)対戦でもしてろということだな。

KeyRemap4MacBook で右Option で IME をトグルできるようにする patch

win だといつも右ALTでIMEトグルするのに慣れていて、VMWare Fusion の ATOK は右ALTでトグルするようにしたら Cmd + Space トグルだと混乱しまくるようになってしまったので KeyRemap4MacBook に追加コードを書いてみた。3.0.4 がドキュメントページのコメント欄にあったので、そのソースをもとにだいたいコピペで。pkg をインストールしても一度システム環境設定を閉じないと設定画面が更新されなくてちょっとはまった><。

で、OSX 上できるようになってやった!と思いきや VMWare Fusion に右ALT(右OptionがWinでは右ALTになる)で渡ってくるキーコードがたぶんOSXのkana/eisuuに変わって本末転倒的な展開に。こっちは mayu 側で対処。

mayu の設定はこんな。

def key ROPT1 = 0x3a
def key ROPT2 = 0x70

keymap Global
  key C-H = BackSpace
  mod alt -= RAlt
  key RAlt = $ToggleIME
  key ROPT1 = $ToggleIME
  key ROPT2 = $ToggleIME

KeyRemap4MacBook 3.0.4 での patch。

Only in KeyRemap4MacBook-3.0.4: .DS_Store
diff -cr KeyRemap4MacBook-3.0.4.orig/files/prefpane/sysctl.xml KeyRemap4MacBook-3.0.4/files/prefpane/sysctl.xml
*** KeyRemap4MacBook-3.0.4.orig/files/prefpane/sysctl.xml   2008-02-06 22:32:35.000000000 +0900
--- KeyRemap4MacBook-3.0.4/files/prefpane/sysctl.xml    2008-02-07 01:22:57.000000000 +0900
***************
*** 459,464 ****
--- 459,468 ----
                Use Command_L as KANA/EISUU (toggle)
                keyremap4macbook.remap.jis_unify_kana_eisuu_to_commandL
              
+             
+               Use Option_R as KANA/EISUU (toggle)
+               keyremap4macbook.remap.jis_unify_kana_eisuu_to_optionR
+             
            
          
        
diff -cr KeyRemap4MacBook-3.0.4.orig/pkginfo/Info.plist KeyRemap4MacBook-3.0.4/pkginfo/Info.plist
*** KeyRemap4MacBook-3.0.4.orig/pkginfo/Info.plist  2008-02-06 22:36:35.000000000 +0900
--- KeyRemap4MacBook-3.0.4/pkginfo/Info.plist   2008-02-07 01:48:57.000000000 +0900
***************
*** 9,15 ****
      org.pqrs.driver.KeyRemap4MacBook
  
      CFBundleShortVersionString
!     3.0.4
  
      IFPkgFlagAllowBackRev
      
--- 9,15 ----
      org.pqrs.driver.KeyRemap4MacBook
  
      CFBundleShortVersionString
!     3.0.4_1
  
      IFPkgFlagAllowBackRev
      
diff -cr KeyRemap4MacBook-3.0.4.orig/src/kext/config.cpp KeyRemap4MacBook-3.0.4/src/kext/config.cpp
*** KeyRemap4MacBook-3.0.4.orig/src/kext/config.cpp 2008-02-06 22:18:02.000000000 +0900
--- KeyRemap4MacBook-3.0.4/src/kext/config.cpp  2008-02-07 01:39:01.000000000 +0900
***************
*** 289,294 ****
--- 289,295 ----
    SYSCTL_INT(_keyremap4macbook_remap, OID_AUTO, jis_optionR2kana, CTLTYPE_INT|CTLFLAG_RW,
               &(config.remap_jis_optionR2kana), 0, "");
  
+   //
    // ----------------------------------------
    SYSCTL_INT(_keyremap4macbook_remap, OID_AUTO, jis_shiftKana2eisuu, CTLTYPE_INT|CTLFLAG_RW,
               &(config.remap_jis_shiftKana2eisuu), 0, "");
***************
*** 302,307 ****
--- 303,311 ----
    SYSCTL_INT(_keyremap4macbook_remap, OID_AUTO, jis_unify_kana_eisuu_to_commandL, CTLTYPE_INT|CTLFLAG_RW,
               &(config.remap_jis_unify_kana_eisuu_to_commandL), 0, "");
  
+   SYSCTL_INT(_keyremap4macbook_remap, OID_AUTO, jis_unify_kana_eisuu_to_optionR, CTLTYPE_INT|CTLFLAG_RW,
+              &(config.remap_jis_unify_kana_eisuu_to_optionR), 0, "");
+   
    // ----------------------------------------
    SYSCTL_INT(_keyremap4macbook, OID_AUTO, debug, CTLTYPE_INT|CTLFLAG_RW,
               &(config.debug), 0, "");
***************
*** 436,441 ****
--- 440,446 ----
      sysctl_register_oid(&sysctl__keyremap4macbook_remap_jis_unify_eisuu_to_kana);
      sysctl_register_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_to_eisuu);
      sysctl_register_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_eisuu_to_commandL);
+     sysctl_register_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_eisuu_to_optionR);
  
      // ----------------------------------------
      sysctl_register_oid(&sysctl__keyremap4macbook_debug);
***************
*** 568,573 ****
--- 573,579 ----
      sysctl_unregister_oid(&sysctl__keyremap4macbook_remap_jis_unify_eisuu_to_kana);
      sysctl_unregister_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_to_eisuu);
      sysctl_unregister_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_eisuu_to_commandL);
+     sysctl_unregister_oid(&sysctl__keyremap4macbook_remap_jis_unify_kana_eisuu_to_optionR);
  
      // ----------------------------------------
      sysctl_unregister_oid(&sysctl__keyremap4macbook_debug);
diff -cr KeyRemap4MacBook-3.0.4.orig/src/kext/config.hpp KeyRemap4MacBook-3.0.4/src/kext/config.hpp
*** KeyRemap4MacBook-3.0.4.orig/src/kext/config.hpp 2008-02-06 22:12:53.000000000 +0900
--- KeyRemap4MacBook-3.0.4/src/kext/config.hpp  2008-02-07 01:16:19.000000000 +0900
***************
*** 124,129 ****
--- 124,130 ----
      int remap_jis_unify_eisuu_to_kana;
      int remap_jis_unify_kana_to_eisuu;
      int remap_jis_unify_kana_eisuu_to_commandL;
+     int remap_jis_unify_kana_eisuu_to_optionR;
  
      // ----------------------------------------
      int debug;
diff -cr KeyRemap4MacBook-3.0.4.orig/src/kext/remap.cpp KeyRemap4MacBook-3.0.4/src/kext/remap.cpp
*** KeyRemap4MacBook-3.0.4.orig/src/kext/remap.cpp  2008-02-06 22:24:14.000000000 +0900
--- KeyRemap4MacBook-3.0.4/src/kext/remap.cpp   2008-02-07 01:48:42.000000000 +0900
***************
*** 971,976 ****
--- 971,995 ----
        isKana = ! isKana;
      }
    }
+ 
+   void
+   remap_jis_unify_kana_eisuu_to_optionR(const RemapParams ¶ms)
+   {
+     if (! config.remap_jis_unify_kana_eisuu_to_optionR) return;
+ 
+     if (params.ex_origKey != KeyCode::OPTION_R) return;
+ 
+     static bool isKana = true;
+ 
+     if (isKana) {
+       RemapUtil::modifierToKey(params, ModifierFlag::OPTION_R, KeyCode::JIS_EISUU);
+     } else {
+       RemapUtil::modifierToKey(params, ModifierFlag::OPTION_R, KeyCode::JIS_KANA);
+     }
+     if (*(params.eventType) == KeyEvent::UP) {
+       isKana = ! isKana;
+     }
+   }
  }
  
  // ----------------------------------------------------------------------
***************
*** 1076,1081 ****
--- 1095,1101 ----
    remap_jis_unify_eisuu_to_kana(params);
    remap_jis_unify_kana_to_eisuu(params);
    remap_jis_unify_kana_eisuu_to_commandL(params);
+   remap_jis_unify_kana_eisuu_to_optionR(params);
  
    // ------------------------------------------------------------
    // *** Note: we need to call remap_emacsmode as possible late. ***
diff -cr KeyRemap4MacBook-3.0.4.orig/src/kext/version.hpp KeyRemap4MacBook-3.0.4/src/kext/version.hpp
*** KeyRemap4MacBook-3.0.4.orig/src/kext/version.hpp    2008-02-06 22:36:31.000000000 +0900
--- KeyRemap4MacBook-3.0.4/src/kext/version.hpp 2008-02-07 01:48:45.000000000 +0900
***************
*** 1 ****
! char * const config_version = "3.0.4";
--- 1 ----
! char * const config_version = "3.0.4_1";
diff -cr KeyRemap4MacBook-3.0.4.orig/version KeyRemap4MacBook-3.0.4/version
*** KeyRemap4MacBook-3.0.4.orig/version 2008-02-06 22:29:39.000000000 +0900
--- KeyRemap4MacBook-3.0.4/version  2008-02-07 01:32:42.000000000 +0900
***************
*** 1 ****
! 3.0.4
--- 1 ----
! 3.0.4_1