このサイトはWebfile便で作成しました利用はこちら
KARABINER-ELEMENTS CONFIGURATION

極楽浄土
Typing Nirvana

指先が踊る、思考が加速する。
ホームポジションから離れることなく、全ての操作を完結させる究極のキーボード設定へようこそ。

Custom Keyboard Layout
Mode: Goku
SCROLL
Hardware Modification

Visual Comparison

標準状態と物理改造後の劇的な変化

Standard Apple Keyboard
Expand View

Before Normal

Qwety配列: 美しいが、標準の状態。極限の高速入力を目指す上では、わずかな連続打ちがボトルネックとなり得る。

Modded Goku Keyboard
Expand View

After Gokuraku Mod

カッターナイフによるキートップの張り替えをし、レイヤー操作との親和性を極限まで高めた形状。

Configuration File

~/.config/karabiner.edn


{
 ; 連続タップは犠牲になったがよしとしよう
 ; #define TAPPING_TERM 200
 ; #degfine IGNORE_MOD_TAP_INTERRUPT
 :profiles {:Default {;; 全体プロファイル設定
                      :default true ;; カラビナの「Default」を常用する
                      :sim 50       ;; 50ms以内を同時押しと判定
                      :delay 80     ;; 80ms待ってから出力を送る
                      :alone 200    ;; 150ms以内に離せば単押し扱い
                      :held 70      ;; 70ms超でホールド扱いに切り替え
                      }}

 :main [
        {:des "Tap-Holds"
         :rules [
                 [:spacebar :left_control [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :y}],
                 [:right_command :right_control [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :n}],
                 [:g :left_shift [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :f}],
                 [:k :right_shift [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :h}],
                 [:s :left_command [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :i}],
                 [:quote :right_command [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :l}],
                 [:a :left_option [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :e}],
                 [:backslash :right_option [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:alone :spacebar}],
                 ;; レイヤ起動キーは変数を立てる旧レイヤ方式に変更
                 [{:key :d :modi {:optional [:any]}} ["layer-two-l" 1] [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-r" 0]] {:afterup ["layer-two-l" 0] :alone :a}],
                 [{:key :f :modi {:optional [:any]}} ["layer-one-l" 1] [["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:afterup ["layer-one-l" 0] :alone :o}],
                 [{:key :l :modi {:optional [:any]}} ["layer-one-r" 1] [["layer-one-l" 0] ["layer-two-l" 0] ["layer-two-r" 0]] {:afterup ["layer-one-r" 0] :alone :j}],
                 [{:key :semicolon :modi {:optional [:any]}} ["layer-two-r" 1] [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0]] {:afterup ["layer-two-r" 0] :alone :k}],
                 ]}
        {:des "layer-one-r"
         :rules [;; 左側1段
                 [:##w :!S8 ["layer-one-r" 1]]
                 [:##e :!S3 ["layer-one-r" 1]]
                 [:##r :!S4 ["layer-one-r" 1]]
                 [:##t :!Scomma ["layer-one-r" 1]]
                 ;; 左側2段
                 [:##left_control :!Sslash ["layer-one-r" 1]]
                 [:##a :!S1 ["layer-one-r" 1]]
                 ; [:##s :comma]
                 [:##s [:comma] ["layer-one-r" 1]]

                 [:##d :period ["layer-one-r" 1]]
                 ;; [:##f :japanese_eisuu]
                 [:##f :!Tsemicolon ["layer-one-r" 1]]
                 [:##g :equal_sign ["layer-one-r" 1]]
                 ;; 左側3段
                 [:##x :!S5 ["layer-one-r" 1]]
                 [:##c :!S7 ["layer-one-r" 1]]
                 [:##v :international1 ["layer-one-r" 1]]
                 [:##z :!Scomma ["layer-one-r" 1]]
                 ;; 左側4段
                 [:##japanese_eisuu :!Shyphen ["layer-one-r" 1]]
                 [:##spacebar [:semicolon] ["layer-one-r" 1]]
                 ]}
        {:des "layer-one-l"
         :rules [;; 右側1段
                 [:##i :!Speriod ["layer-one-l" 1]]
                 [:##o :backslash ["layer-one-l" 1]]
                 [:##p :!S9 ["layer-one-l" 1]]
                 [:##open_bracket :!S0 ["layer-one-l" 1]]
                 ;; 右側2段
                 [:##k :!Sequal_sign ["layer-one-l" 1]]
                 ; [:##l :japanese_kana]
                 [:##l :!Tsemicolon ["layer-one-l" 1]]
                 [:##semicolon :!Sopen_bracket ["layer-one-l" 1]]
                 [:##quote :!Sclose_bracket ["layer-one-l" 1]]
                 [:##backslash :!Ssemicolon ["layer-one-l" 1]]
                 [:##return_or_enter :semicolon ["layer-one-l" 1]]
                 ;; 右側3段

                 [:##period :!Sbackslash ["layer-one-l" 1]]
                 [:##slash :open_bracket ["layer-one-l" 1]]
                 [:##international1 :close_bracket ["layer-one-l" 1]]
                 [:##right_shift :!Speriod ["layer-one-l" 1]]
                 ;; 右側4段
                 [:##right_command :hyphen ["layer-one-l" 1]]
                 [:##fn :!Sbackslash ["layer-one-l" 1]]
                 ]}
        {:des "layer-two-r"
         :rules [;; 左側1段
                 [:##w :1 ["layer-two-r" 1]]
                 [:##e :2 ["layer-two-r" 1]]
                 [:##r :3 ["layer-two-r" 1]]
                 [:##t :!Squote ["layer-two-r" 1]]
                 ;; 左側2段
                 [:##left_control :tab ["layer-two-r" 1]]
                 [:##a :0 ["layer-two-r" 1]]
                 [:##s :4 ["layer-two-r" 1]]
                 [:##d :5 ["layer-two-r" 1]]
                 [:##f :6 ["layer-two-r" 1]]
                 [:##g :grave_accent_and_tilde ["layer-two-r" 1]]
                 ;; 左側3段
                 [:##x :7 ["layer-two-r" 1]]
                 [:##c :8 ["layer-two-r" 1]]
                 [:##v :9 ["layer-two-r" 1]]
                 ;; 左側4段
                 [:##japanese_eisuu :9 ["layer-two-r" 1]]
                 [:##spacebar :!S2 ["layer-two-r" 1]]
                 ]}
        {:des "layer-two-l"
         :rules [;; 右側1段
                 [:##i :quote ["layer-two-l" 1]]
                 [:##o :!TStab ["layer-two-l" 1]]
                 [:##p :!Ttab ["layer-two-l" 1]]
                 [:##open_bracket :!Cequal_sign ["layer-two-l" 1]]
                 ;; 右側2段
                 [:##k :left_arrow ["layer-two-l" 1]]
                 [:##l :down_arrow ["layer-two-l" 1]]
                 [:##semicolon :up_arrow ["layer-two-l" 1]]
                 [:##quote :right_arrow ["layer-two-l" 1]]
                 [:##backslash :escape ["layer-two-l" 1]]
                 [:##return_or_enter :slash ["layer-two-l" 1]]
                 ;; 右側3段
                 [:##period [:spacebar :t :p] ["layer-two-l" 1]]
                 [:##slash [:spacebar :t :n] ["layer-two-l" 1]]
                 [:##international1 :!Chyphen ["layer-two-l" 1]]
                 ;; 
                 ;; 右側4段
                 [:##right_command :!Sgrave_accent_and_tilde ["layer-two-l" 1]] ;;~
                 [:##fn [:spacebar :t :p] ["layer-two-l" 1]]
                 ]}
        {:des "DEFAULT"
         :rules [
                 ;; 左側1段
                 [:##tab :!TSC4 [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]];;スクショ(クリップボード)
                 [:##q :q [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##w :w [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##e :u [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##r :p [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##t :v [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 左側2段
                 [:##left_control :q [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##a :e [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##s :i [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; レイヤ用キーの単押しはTap-Holds側で定義
                 [:##g :f [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 左側3段
                 ; [:##left_shift :vk_none]
                 [:##z :vk_none [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##x :z [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##c :c [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##v :semicolon [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##b :up_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 左側4段
                 [:##caps_lock :left_control [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##left_option :vk_none [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ; [:##left_command :vk_none]
                 [:##japanese_eisuu :return_or_enter [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##spacebar :y [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]

                 ;; 右側1段
                 [:##y :!COopen_bracket [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##u :!COclose_bracket [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##i :x [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##o :t [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##p :d [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##open_bracket  :s [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##close_bracket :r [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 右側2段
                 [:##h :!Tleft_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]];;左のデスクトップへ
                 [:##j :!Tright_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]];;右のデスクトップへ
                 [:##k :h [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 右側レイヤキーの単押しはTap-Holds側で定義
                 [:##quote :l [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##backslash :spacebar [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##return_or_enter :r [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 右側3段
                 [:##n :!SOleft_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##m :!SOright_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##comma :n [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##period :m [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##slash :g [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##international1 :b [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##right_shift :x [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ;; 右側4段
                 [:##japanese_kana :down_arrow [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##right_command :n [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 [:##fn :escape [["layer-one-l" 0] ["layer-one-r" 0] ["layer-two-l" 0] ["layer-two-r" 0]]]
                 ]}
        ]}
                    

Setup Roadmap

環境構築への5ステップ

01

Install Goku

DSL Manager Installation

Homebrewを使用してGokuをインストールします。

brew install yqrashawn/goku/goku
02

Create Config

Define your eden

設定ファイルを作成し、上記のコードを貼り付けます。

touch ~/.config/karabiner.edn
03

Install Karabiner

Add Default Profile

Karabinerをインストールして、アプリのProfileからDefaultを追加します。

04

Execute Goku Command

Sync your config

CLIでgokuコマンドを実行し、設定を同期します。

goku
05

Hardware Mod

Physical Optimization

Keyboard Mod

Keycap Removal

カッター等を使用しキートップの張り替えをします。

Video Tutorial

参考情報