1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

QMK薙刀式 Remapで配列の変更案

Last updated at Posted at 2022-03-15

この記事は後日まとめ直しする予定です
現状時点では、この案の成果物は何もありません。

暫定的な何か

薙刀式    1 薙刀式の入力中はレイヤー1のまま
単打     6
シフト単打  7
編集モード縦 8 縦の編集モードのみで使用する
編集モード横 9 横の編集モードのみで使用する

6789のレイヤーを変更レイヤーと呼ぶとしよう。
変更レイヤーは出力文字を変更用データ配列として利用する
変更レイヤーはRemap(外部操作)を利用することで容易に
変更可能なメモリ配列として扱うプログラムの一案

従来のプログラム修正とファームウェア作成し
マイコンに書き込む作業が無くなり、
1つや2つキーの変更を何度でも気軽に行える

初めは変更レイヤーのキー全てKC_NOで設定しておく。
プログラムの0リセットにあたる

KC_NOのキーは変更データ無し扱いとして
この場合はプログラム側の文字出力になる

変更レイヤーに設定するカスタムキーのデータ規則の
ついて書く前に変更レイヤーの有効、無効機能について
まとめておく。

一時的に変更前の状態に戻したい場合に
仮にESCキーの位置と決める
その位置に
1のキー カスタムキーコードで変更する 
0のキー 全てしないプログラム側で文字出力する
を設定することで変更レイヤーの動作を切り替える。 

プログラム的には1キーで変更レイヤーを使い
それ以外の全てのキーがプログラム側を使うように
プログミングする。

カスタムキーのデータ規則

単打とシフト単打

編集モード縦 横

ここまでまとめた

この下 メモ書きのまま

QMK薙刀式をRemap対応する方法に書いていたのが
長くなりすぎたので別記事に分けました

Remapの物理キーの配列を変える 入力キー側
論理配列 文字出力側 にも Remapの
カスタムキー機能を使って変更可能にする案に
なります

2022/03/15 アイディアのメモ追加

Remapのさらなる活用方法の提案

配列の出力文字を変えたいと思っても
現状はプログラムを変更してファームウェアを
入れ直す工程が必要となる

単打とシフト+単打の出力文字を仮にレイヤー8,9に
定義する方法はどうだろう
キー定義を文字変換テーブルとして利用する

keyboard_quantizer rev4は10レイヤー分
あるので薙刀式に3レイヤー分を使っても
まだ余るはず。

Aのキーを レイヤーを分けて定義すると
1 NG_A 0x5F5A
8 ろ 0x308D または ro 0x726F
9 せ 0x305B または se 0x7364

ユニコードの先頭0x30が0のキャラコードとかぶるが
2バイトと1バイトで判別が付くので問題無し
0は0x0030となり0x00は出力無しのスルー動作させる
ユニコードはひらがなの範囲のみを想定している
それ以外は無効かASCIIとして扱う。

ユニコードで文字を直接出力か
ASCIIコードのローマ字の出力を想定している
この仕組みなら配列を変更するたびに
プログラム修正とコンパイルなどをしないで済む

変更したい文字があってもRemapの
カスタムキーの書き換えだけで出力文字が
変更できるので便利になる

編集モードはマクロ利用で変更できるのかな
レイヤー移動無しのマクロキーを押すような
プログラムを想定している
M0からM15の16個分 30キー分には足りないが
BSとかはそのまま定義すればなんとかなるかも

薙刀式   1 薙刀式の入力中はレイヤー1のまま
単打    7 出力文字変換テーブルとして利用のみ
シフト単打 8 出力文字変換テーブルとして利用のみ
編集モード 9 マクロキーを含むテーブルとして利用

789のレイヤーには移動はしない
789はデータ参照して文字出力を行う
実験的にやってみようかな

スルー動作をする

31 3レイヤー分をRemapで全て設定するのも
大変だから変更箇所だけにしよう
789のレイヤーの変換キーテーブルに
KC_NOが設定されて箇所は元のままの
出力文字を出すとしよう 

変換テーブルごとの有効 無効の設定

全て元のままに戻したい場合は
仮にESCキーに割り当てるとして
変換テーブルの有効、無効を設定機能を取り入れる

例えば 有効はoキー 無効はfキーで切り替えする
のは分かりづらいかな

やっぱり1,0キーでいいか
ファンクションキーに分かりやすくなる表示として
“1:on 0:off”と1キーづつ並べておけば分かるかな
誤入力の防止のために薙刀の31キー以外は無効にして
6789レイヤーはキー入力をさせないようにする。

もちろん、これらもプログラムをする
編集モード 縦横を別にした方が良さそう

薙刀式    1 薙刀式の入力中はレイヤー1のまま
単打     6
シフト単打  7
編集モード縦 8 縦 編集モードのみで使用する
編集モード横 9 横 編集モードのみで使用する

6789のそれぞれのESCキーに有効 無効を設定
暫定としてこれで進める。
他にいい方法があったら変更する

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?