Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KeyRemac4MacBook.rb
Search
kei-q
February 17, 2016
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KeyRemac4MacBook.rb
tokyurubykaigi06発表資料
kei-q
February 17, 2016
More Decks by kei-q
See All by kei-q
春の鎌倉 Tech&Product Meet発表資料
keqh
0
53
Rubyistのみんなに 私の推しのDuckDBを 紹介させてください
keqh
0
99
Repro_Tech_Meetup__1_Docker.pdf
keqh
4
740
PSD.rbでiPhoneアプリ開発のギョームをカイゼンしたい(仮)
keqh
0
210
すごいErlang楽しく学んだ!
keqh
0
230
Other Decks in Programming
See All in Programming
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
110
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
140
Workers Cache を知る
syumai
0
360
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
200
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
0
250
APNsからLive Activityを開始する話
yumnumm
0
170
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
120
SREの越境 / SRE Collaboration
y0hgi
2
310
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Mind Mapping
helmedeiros
1
400
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Automating Front-end Workflow
addyosmani
1369
210k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
How to Talk to Developers About Accessibility
jct
2
580
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Technical Leadership for Architectural Decision Making
baasie
3
600
Transcript
KeyRemap4MacB ook.rb @kei_q 2013-06-29 TokyuRuby 会議06 #tqrk06
KR4MB とは? https://pqrs.org/macosx/keyremap4macbook/
None
うっかりでアプリ終了しちゃった Cmd + q を長押しに
US 配列でも簡単に入力切り替えし たい Cmd を英数/ かな兼用に
あのアプリでEmacs ぽくカー ソル 移動したい (cmd | opt | ctrl) +
npbf でカー ソル移動
Problem 設定がたいへん
None
設定画面
検索で絞り込み
設定数 1877
設定(XML) <?xml version="1.0" encoding="UTF-8"?> <root> <item> <name>sample</name> <identifier>private.sample</identifier> <autogen>__KeyToKey__ KeyCode::SEMICOLON,
KeyCode::RETURN</autogen> </item> </root>
"XML の視覚的なノイズは、 我慢の限界を超えてい ました。 人々 は, 山括弧が目に痛いと訴え始めたの です。" そこで、XML の問題点なしに、XML
の設定ファイル のメリットを享受したいという願望が出てきまし た。 ドメイン特化言語 - パター ンで学ぶDSL のベストプラクティス46 項目 IX ペー ジより
どうする
None
None
DSL を書こう!
Keyremac gem install keyremac
None
再掲: 設定(XML) <?xml version="1.0" encoding="UTF-8"?> <root> <item> <name>sample</name> <identifier>private.sample</identifier> <autogen>__KeyToKey__
KeyCode::SEMICOLON, KeyCode::RETURN</autogen> </item> </root>
Keyremac では require 'keyremac' ';' .to 'RETURN' 設定の確認 ruby private.rb
--dump 設定の読み込み ruby private.rb --reload
基本機能 キー を別のキー に ';' .to :RETURN キー に修飾キー の機能追加
:JIS_EISUU .overlaid :COMMAND_L 特定のアプリだけ設定を有効に app "APPNAME" do ... end 特定の入力ソー スだけ設定を有効に item inputsource: "APPNAME" do ... end
未対応のタグ タグ名 + '_' でそのまま出力 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
私の設定 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
None
semicolon とunderscore をswap ':' .to ':' ';' .to '_' '_'
.to ';'
F7-9 でitunes 操作 :F7 .to :MUSIC_PREV :F8 .to :MUSIC_PLAY :F9
.to :MUSIC_NEXT
F10-12 で音量調節 :F10 .to :VOLUME_MUTE :F11 .to :VOLUME_DOWN :F12 .to
:VOLUME_UP
SPACE の左右を再設定 :JIS_EISUU .overlaid :COMMAND_L :COMMAND_L .to :OPTION_L :JIS_KANA .to
:RETURN
'A' のとなりを単体で 英数 + ESC :CONTROL_L .overlaid :CONTROL_L, keys: [:JIS_EISUU,
:ESCAPE]
SandS :SPACE .overlaid :SHIFT_L, repeat: true
window 最小化を無効に :m.cmd .to :VK_NONE # disable_minimize
IME 切り替え :j.ctrl .to :JIS_KANA # "Google IME"
左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
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
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
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
タブの切替 ['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 }
Haskell 版Keyremac 製作中
None
getting started $ gem install keyremac $ touch > private.rb
require 'keyremac' ';' .to :RETURN $ ruby private.rb --reload