Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kernel/VM Kansai #9
Search
orumin
September 22, 2018
Programming
0
920
Kernel/VM Kansai #9
Kernel/VM 関西 9 回目の発表資料です。
orumin
September 22, 2018
Tweet
Share
More Decks by orumin
See All by orumin
ヴィンテージマシンと付き合う - kernel/vm online 5
orumin
0
1.1k
むかしの RISC、むかしの Unix
orumin
7
3.5k
Fundamental of architecture to implementing OS on AArch64
orumin
3
4.8k
Kernel/VM #14 発表資料
orumin
1
570
Unikernels report
orumin
2
450
第13回Kernel/VM勉強会発表資料
orumin
1
1.6k
第12回カーネル/VM探検隊
orumin
0
360
第11回 Kernel/VM探検隊 発表資料
orumin
1
560
KernelVM night! LT
orumin
0
450
Other Decks in Programming
See All in Programming
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
220
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
Porting a visionOS App to Android XR
akkeylab
0
690
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
470
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
1.1k
マッチングアプリにおけるフリックUIで苦労したこと
yuheiito
0
190
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
12k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.1k
型で語るカタ
irof
0
710
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
15
5.8k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
What's in a price? How to price your products and services
michaelherold
246
12k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Site-Speed That Sticks
csswizardry
10
700
A Tale of Four Properties
chriscoyier
160
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Building Applications with DynamoDB
mza
95
6.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Into the Great Unknown - MozCon
thekraken
40
1.9k
Writing Fast Ruby
sferik
628
62k
Transcript
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 1/18 Kernel/VM 関⻄ 9
回⽬ Kernel/VM 関⻄ 9 回⽬ orumin 1
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 2/18 ごきげんようみなさん ごきげんようみなさん おはよう
こんにちは こんばんわ みなさんお元気です か? orumin といいます 2
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 3/18 突然ですが 突然ですが 私は元気ではないです
突如襲いくる⼩指の痛 み! 若⼲調⼦の悪い喉! とりあえずかかった病 院! 3
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 4/18 レントゲンです レントゲンです 4
. 1
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 5/18 指が痛い場合は 指が痛い場合は 腱鞘炎
痛⾵ 膠原病(リウマチ) ヘバーデン結節(ブシャール結 節) 4 . 2
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 6/18 関節炎でした 関節炎でした 腱鞘炎とかかと思ったら⽯灰沈着性関節炎だそうです
どうすんだこれ…… 普通は中年くらいの⼥性が肩とかでよく起こすそうで す :thinking_face: 4 . 3
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 7/18 問題点 問題点 Vim
と tmux と SKK のヘヴィーユーザー 左⼿⼩指が使えなくなった そもそも LT とかこれからネタ作る予定だったんだけ ど…… 5
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 8/18 今回の話題 今回の話題 ⼩指がもしもどうにかなったときにするべきカーネルハック
6
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 9/18 ⼩指を使わないタイピング ⼩指を使わないタイピング 他の指(薬指とか)を使う
無変換などのスペースまわりのキーを他のキーへアサインす る SandS 7
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 10/18 SandS (Space and
Shi ) SandS (Space and Shi ) スペースキーを⻑押し中に他のキーを⼊⼒したとき Shi として振 る舞う SKK ユーザーと親和性が⾼い 8
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 11/18 既存実装 既存実装 xf86-input-keyboard
や xf86-input-evdev へのパッ チ Wayland で使えない 9
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 12/18 他の解決⽅法 他の解決⽅法 (GNOME
ユーザーなので)これで動くデーモンかなにか作 る あるいは GTK をパッチ ここは Kernel/VM である 10
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 13/18 やることはカーネルハック やることはカーネルハック このラップトップのキーボードのモジュールを
lsmod で確 認 USB HID ではなく AT キーボードとして認識されていた drivers/input/keyboard/atkbd.c を⾒ればよさそう 11
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 14/18 ということでドライバにパッチしました! ということでドライバにパッチしました! 状態の記録変
数 diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index 7e75835e220f..9a5f267a03e9 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c @@ -378,6 +378,8 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigne int scroll = 0, hscroll = 0, click = -1; int value; unsigned short keycode; + static bool is_space = false; + static bool is_sands = false; 12
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 15/18 ということでドライバにパッチしました! ということでドライバにパッチしました! スペースが押されたらフラグ変
更 フラグ次第でキーコードを変更 @@ -508,7 +520,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsign atkbd->time = jiffies + msecs_to_jiffies(dev->rep[REP_DELAY } - input_event(dev, EV_KEY, keycode, value); + if (keycode==0x20) is_space = true; + + if (is_space && keycode!=0x20) { + is_sands = true; + keycode -= 32; + } + + if (!is_space) + input_event(dev, EV_KEY, keycode, value); input_sync(dev); 13
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 16/18 ということでドライバにパッチしました! ということでドライバにパッチしました! キーを離したときキーコードがスペースなら状態フラグを戻
す @@ -497,6 +499,16 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsign break; default: if (atkbd->release) { + if (keycode == 0x20) { + if (is_sands) { + is_space = false; + is_sands = false; + } + if (!is_sands && is_space) { + input_event(dev, EV_KEY, 0x20, value); + is_space = false; + } + } value = 0; 14
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 17/18 結果 結果 なぜか
d のキーが効かない,また,⼀度スペースを押すと何も⼊ ⼒できなくなる AT キーボードが爆誕 なんで atkbd_interrupt() を書き換えたの コードを眺めたときの野⽣のカン 本当は⼀時間でこれくらいの遊びのカーネルハックはできる!と ⾔いたかったね…… 15
9/22/2018 Kernel/VM 関⻄ 9 回⽬ file:///home/orumin/Nextcloud/slides/kernelvm/kansai-9/slides.html?print-pdf 18/18 まとめ まとめ 結局修飾キーは薬指でやってます(ブチギレ)
なんだかんだスライド作ったらこの⼊⼒で慣れてきたのでもう薬 指使うってことでいい気がしてきた ⼩指の恢復を祈って安静にしつつコードやドキュメント書きます 状態を持つコードは混乱して⼤変なので⽌めたほうがいいですね 良い⼦は libinput のパッチを書こう 16