Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KeyRemac4MacBook.rb

 KeyRemac4MacBook.rb

tokyurubykaigi06発表資料

Tatsuya Touma

February 17, 2016
Tweet

More Decks by Tatsuya Touma

Other Decks in Programming

Transcript

  1. "XML の視覚的なノイズは、 我慢の限界を超えてい ました。 人々 は, 山括弧が目に痛いと訴え始めたの です。" そこで、XML の問題点なしに、XML

    の設定ファイル のメリットを享受したいという願望が出てきまし た。 ドメイン特化言語 - パター ンで学ぶDSL のベストプラクティス46 項目 IX ペー ジより
  2. Keyremac では require 'keyremac' ';' .to 'RETURN' 設定の確認 ruby private.rb

    --dump 設定の読み込み ruby private.rb --reload
  3. 基本機能 キー を別のキー に ';' .to :RETURN キー に修飾キー の機能追加

    :JIS_EISUU .overlaid :COMMAND_L 特定のアプリだけ設定を有効に app "APPNAME" do ... end 特定の入力ソー スだけ設定を有効に item inputsource: "APPNAME" do ... end
  4. 未対応のタグ タグ名 + '_' でそのまま出力 before item_ do name_ 'jis_to_us'

    identifier_ 'private.jis_to_us' autogen_ "__SetKeyboardType__ KeyboardType::MACBOOK" :JIS_YEN .to :BACKQUOTE :JIS_UNDERSCORE .to :BACKQUOTE end
  5. 私の設定 JIS をUS に item_ do name_ 'jis_to_us' identifier_ 'private.jis_to_us'

    autogen_ "__SetKeyboardType__ KeyboardType::MACBOOK" :JIS_YEN .to :BACKQUOTE :JIS_UNDERSCORE .to :BACKQUOTE end
  6. 左SHIFT を修飾キー に # extra1 :SHIFT_L.cmd .to :SHIFT_L.cmd :SHIFT_L.opt .to

    :SHIFT_L.opt :SHIFT_L.ctrl .to :SHIFT_L.ctrl :CONTROL_L.extra1 .to :CONTROL_L.shift :SHIFT_L .to :VK_MODIFIER_EXTRA1
  7. ctrl+npfb をemacs っぽく # ctrl-npを強制的に↑↓に :p.ctrl.none .to :CURSOR_UP :n.ctrl.none .to

    :CURSOR_DOWN :b.ctrl.none .to :CURSOR_LEFT :f.ctrl.none .to :CURSOR_RIGHT
  8. TMUX を1 ストロー クで操作 app 'TERMINAL' do "pnco".chars { |c|

    c.extra1 .to :JIS_EISUU, :t.ctrl, c } "jkl" .chars { |c| c.extra1 .to :JIS_EISUU, :t.ctrl, c } "du" .chars { |c| c.extra1 .to :t.ctrl, '['.ctrl, c.ctrl } end
  9. Sublime Text でGoogle IME の予 測変換 appdef_ do appname_ "SUBLIME"

    equal_ "com.sublimetext.3" equal_ "com.sublimetext.2" end app 'SUBLIME', inputsource: 'JAPANESE' do :TAB .to :i.ctrl end
  10. タブの切替 ['SUBLIME', 'GOOGLE_CHROME'].each { |app_name| app app_name do :p.extra1 .to

    :JIS_EISUU, '['.cmd.shift :n.extra1 .to :JIS_EISUU, ']'.cmd.shift end }
  11. getting started $ gem install keyremac $ touch > private.rb

    require 'keyremac' ';' .to :RETURN $ ruby private.rb --reload