mayu

 前回、XKeymacsで色々と変更してましたけど、窓使いの憂鬱に乗り換えてみる。
 面白くて色々と付加機能を付けた.mayuを放置。

# .mayu -- setting file for mayu
#
# Copyright (C) 2005 Kuonn Witchcraft Museum
#
# Author: Dear Periwinkle
# Time-stamp: <2006-01-06 10:13:43 DeaR>
# Keywords: for Happy Hacking Keyboard Proffesional. DipSwitch is 101010.


# 104 Keyboard
include "104.mayu"
keymap Global


# Dvorak
if(DVORAK)
  def subst *Minus        = *OpenBracket
  def subst *Equal        = *CloseBracket
  def subst *Q            = *Quote
  def subst *W            = *Comma
  def subst *E            = *Period
  def subst *R            = *P
  def subst *T            = *Y
  def subst *Y            = *F
  def subst *U            = *G
  def subst *I            = *C
  def subst *O            = *R
  def subst *P            = *L
  def subst *OpenBracket  = *Slash
  def subst *CloseBracket = *Equal
  # def subst *BackSlash    = *BackSlash
  # def subst *A            = *A
  def subst *S            = *O
  def subst *D            = *E
  def subst *F            = *U
  def subst *G            = *I
  def subst *H            = *D
  def subst *J            = *H
  def subst *K            = *T
  def subst *L            = *N
  def subst *SemiColon    = *S
  def subst *Quote        = *Minus
  def subst *Z            = *SemiColon
  def subst *X            = *Q
  def subst *C            = *J
  def subst *V            = *K
  def subst *B            = *X
  def subst *N            = *B
  # def subst *M            = *M
  def subst *Comma        = *W
  def subst *Period       = *V
  def subst *Slash        = *Z

  keymap Dvorak : Global
  key *Quote     => *y *a
  key *Comma     => *y *o
  key *Period    => *y *e
  key *P         => *y *u
  key *Y         => *y *i
  # key *A         => *a
  # key *O         => *o
  # key *E         => *e
  # key *U         => *u
  # key *I         => *i
  key *SemiColon => *a *n *n
  key *Q         => *o *n *n
  key *J         => *e *n *n
  key *K         => *u *n *n
  key *X         => *i *n *n

  keymap Global
  # key IL-*A => *A &Prefix(Dvorak)
  key IL-*B => *B &Prefix(Dvorak)
  key IL-*C => *K &Prefix(Dvorak)
  # key IL-*C => *C &Prefix(Dvorak)
  key IL-*D => *D &Prefix(Dvorak)
  # key IL-*E => *E &Prefix(Dvorak)
  key IL-*F => *F &Prefix(Dvorak)
  key IL-*G => *G &Prefix(Dvorak)
  key IL-*H => *H &Prefix(Dvorak)
  # key IL-*I => *I &Prefix(Dvorak)
  key IL-*J => *J &Prefix(Dvorak)
  key IL-*K => *K &Prefix(Dvorak)
  key IL-*L => *L &Prefix(Dvorak)
  key IL-*M => *M &Prefix(Dvorak)
  key IL-*N => *N &Prefix(Dvorak)
  # key IL-*O => *O &Prefix(Dvorak)
  key IL-*P => *P &Prefix(Dvorak)
  key IL-*Q => *Q &Prefix(Dvorak)
  key IL-*R => *R &Prefix(Dvorak)
  key IL-*S => *S &Prefix(Dvorak)
  key IL-*T => *T &Prefix(Dvorak)
  # key IL-*U => *U &Prefix(Dvorak)
  key IL-*V => *V &Prefix(Dvorak)
  key IL-*W => *W &Prefix(Dvorak)
  key IL-*X => *X &Prefix(Dvorak)
  key IL-*Y => *Y &Prefix(Dvorak)
  key IL-*Z => *Z &Prefix(Dvorak)
endif
if(OEA)
  def subst *Minus        = *Equal
  def subst *Equal        = *BackSlash
  def subst *Q            = *X
  def subst *W            = *Minus
  def subst *E            = *Q
  def subst *R            = *SemiColon
  def subst *T            = *F
  def subst *Y            = *J
  def subst *U            = *M
  def subst *I            = *R
  def subst *O            = *W
  # def subst *P            = *P
  def subst *OpenBracket  = *Z
  def subst *CloseBracket = *OpenBracket
  def subst *BackSlash    = *CloseBracket
  def subst *A            = *O
  def subst *S            = *E
  def subst *D            = *A
  def subst *F            = *I
  def subst *G            = *U
  def subst *H            = *G
  def subst *J            = *H
  def subst *K            = *T
  def subst *L            = *S
  def subst *SemiColon    = *N
  def subst *Quote        = *Quote
  def subst *Z            = *Comma
  def subst *X            = *Period
  def subst *C            = *V
  def subst *V            = *Y
  def subst *B            = *K
  def subst *N            = *D
  def subst *M            = *C
  def subst *Comma        = *L
  def subst *Period       = *B
  # def subst *Slash        = *Slash

  keymap OEA : Global
  key *X         => *y *o
  key *Minus     => *y *e
  key *Q         => *y *a
  key *SemiColon => *y *i
  key *F         => *y *u
  # key *O         => *o
  # key *E         => *e
  # key *A         => *a
  # key *I         => *i
  # key *U         => *u
  key *Comma     => *o *n *n
  key *Period    => *e *n *n
  key *V         => *a *n *n
  key *Y         => *i *n *n
  key *K         => *u *n *n

  keymap Global
  # key IL-*A => *A &Prefix(OEA)
  key IL-*B => *B &Prefix(OEA)
  key IL-*C => *K &Prefix(OEA)
  # key IL-*C => *C &Prefix(OEA)
  key IL-*D => *D &Prefix(OEA)
  # key IL-*E => *E &Prefix(OEA)
  key IL-*F => *F &Prefix(OEA)
  key IL-*G => *G &Prefix(OEA)
  key IL-*H => *H &Prefix(OEA)
  # key IL-*I => *I &Prefix(OEA)
  key IL-*J => *J &Prefix(OEA)
  key IL-*K => *K &Prefix(OEA)
  key IL-*L => *L &Prefix(OEA)
  key IL-*M => *M &Prefix(OEA)
  key IL-*N => *N &Prefix(OEA)
  # key IL-*O => *O &Prefix(OEA)
  key IL-*P => *P &Prefix(OEA)
  key IL-*Q => *Q &Prefix(OEA)
  key IL-*R => *R &Prefix(OEA)
  key IL-*S => *S &Prefix(OEA)
  key IL-*T => *T &Prefix(OEA)
  # key IL-*U => *U &Prefix(OEA)
  key IL-*V => *V &Prefix(OEA)
  key IL-*W => *W &Prefix(OEA)
  key IL-*X => *X &Prefix(OEA)
  key IL-*Y => *Y &Prefix(OEA)
  key IL-*Z => *Z &Prefix(OEA)
endif


# ~/Esc
key S-*Esc = S-*BackQuote


# Position Change
mod win        -= LWin
key *BackQuote = *Del
key *Caps      = *Tab
key *LWin      = *Caps
if(OEA)
  key *CloseBracket = *BS
  key *BS           = *CloseBracket
else
  key *BackSlash = *BS
  key *BS        = *BackSlash
endif


# AX like
mod meta -= RAlt
key RAlt = $ToggleIME


# S and S
mod shift += !!!Space


# for CraftLaunch
mod win   -= RWin
key *RWin = Pause


# FuncLock
keymap FuncLock : Global
# key U-LShift => &Toggle(Lock0)
key U-L0-L1-LShift   => &Toggle(Lock0 off) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\ton")
key U-L0-~L1-LShift  => &Toggle(Lock0 off) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\toff")
key U-~L0-L1-LShift  => &Toggle(Lock0 on)  &HelpMessage("mayu", "FuncLock\ton\nArrowLock\ton")
key U-~L0-~L1-LShift => &Toggle(Lock0 on)  &HelpMessage("mayu", "FuncLock\ton\nArrowLock\toff")

keymap Global
key U-LShift => &Prefix(FuncLock, false)
# key U-L0-L1-LShift   => &Prefix(FuncLock, false) &HelpMessage("mayu", "FuncLock\ton\nArrowLock\ton")
# key U-L0-~L1-LShift  => &Prefix(FuncLock, false) &HelpMessage("mayu", "FuncLock\ton\nArrowLock\toff")
# key U-~L0-L1-LShift  => &Prefix(FuncLock, false) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\ton")
# key U-~L0-~L1-LShift => &Prefix(FuncLock, false) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\toff")

key L0-*_1 = *F1
key L0-*_2 = *F2
key L0-*_3 = *F3
key L0-*_4 = *F4
key L0-*_5 = *F5
key L0-*_6 = *F6
key L0-*_7 = *F7
key L0-*_8 = *F8
key L0-*_9 = *F9
key L0-*_0 = *F10
if(DVORAK)
  key L0-*OpenBracket  = *F11
  key L0-*CloseBracket = *F12
else
  if(OEA)
    key L0-*Equal     = *F11
    key L0-*BackSlash = *F12
  else
    key L0-*Minus = *F11
    key L0-*Equal = *F12
  endif
endif


# ArrowLock
keymap ArrowLock : Global
# key U-RShift => &Toggle(Lock1)
key U-L0-L1-RShift   => &Toggle(Lock1 off) &HelpMessage("mayu", "FuncLock\ton\nArrowLock\toff")
key U-~L0-L1-RShift  => &Toggle(Lock1 off) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\toff")
key U-L0-~L1-RShift  => &Toggle(Lock1 on)  &HelpMessage("mayu", "FuncLock\ton\nArrowLock\ton")
key U-~L0-~L1-RShift => &Toggle(Lock1 on)  &HelpMessage("mayu", "FuncLock\toff\nArrowLock\ton")

keymap Global
key U-RShift => &Prefix(ArrowLock, false)
# key U-L0-L1-RShift   => &Prefix(ArrowLock, false) &HelpMessage("mayu", "FuncLock\ton\nArrowLock\ton")
# key U-~L0-L1-RShift  => &Prefix(ArrowLock, false) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\ton")
# key U-L0-~L1-RShift  => &Prefix(ArrowLock, false) &HelpMessage("mayu", "FuncLock\ton\nArrowLock\toff")
# key U-~L0-~L1-RShift => &Prefix(ArrowLock, false) &HelpMessage("mayu", "FuncLock\toff\nArrowLock\toff")

if(DVORAK)
  key L1-*Slash = *Up
  key L1-*S     = *Left
  key L1-*Minus = *Right
  key L1-*Z     = *Down
else
  if(OEA)
    key L1-*Z     = *Up
    key L1-*N     = *Left
    key L1-*Quote = *Right
    key L1-*Slash = *Down
  else
    key L1-*OpenBracket = *Up
    key L1-*SemiColon   = *Left
    key L1-*Quote       = *Right
    key L1-*Slash       = *Down
  endif
endif

 引数にDVORAKを渡すとDvorakに、OEAを渡すとOEA配列に。
 HHKBCHGの様な感じでLShift,RShift2回で常時アローキーになったりF1〜F12になったり。Gameの時に使用(、、