投稿

10月, 2023の投稿を表示しています

親指シフト新下駄配列の可能性

Google日本語入力の「シフトキーでの入力切り替え」をオフにして、ローマ字テーブルに大文字で登録すると、登録されたとおりに出力されます。当たり前ですが。これで「L」に「l」とは別に「じ」や「しかし、」や「𝕏」を割り当てることができます。 NICOLAなどの親指シフトとは違って、たんに大文字かどうかを見ているだけなのでシフトキーの左右を区別はできませんが、いろいろな使い方が考えられそうです。例えば、「X」に「𝕏」を割り当てるとか、「A」に「∀」とか。「L」に「しかし、」とかの接続詞を割り当てて入力時間の短縮もできるかもしれません。「L」に「じ」を割り当てて、「じ」に割り当てられている場所に別の文字なども考えられそうです。左右を混ぜて、シフトキーを押している間だけ全く別のマップでアルペジオとかも考えられます。覚えるのが大変ですけど。数字キーに割り当てられている文字をアルファベットに割り当てれば40%キーボードでも3点押しなしに入力することもできます。 このように、いろいろな可能性がありますが、実はまだ使っていません。まだ新下駄配列に慣れていないので、それどころじゃないんですよね。まずは新下駄配列に慣れて、その中で困ったことが起きたら解決に使う感じかな?

ErgoDox EZと新下駄配列

ErgoDox EZと新下駄配列は一部相性が悪いです。まず「げ」に割り振られているキーがありません。本当は無くはないのですが、制御キーとして使ってしまっているので使えません。拾ってきた config1.db では o+p に割り振られていましたが、押しにくいので変えたいです。 あと、頻出の「て」がちょっと遠いんです。なぜなら 新下駄配列作成記 目次 からたどれる 押しやすいキーはどれか? にあるように、新下駄配列は格子型キーボードを前提にしていません。なので、yはとても押しにくいけど、nは押しやすいキーの扱いです。ErgoDoxだとyの列はuの列よりも若干下がっているので、nとbがyよりも押しにくかったりします。 新下駄配列の作成に使用したかな出現数・連なりデータ の【かな出現数データ】によると、「て」は12位です。【かな連なりデータ】によると「てい」が2位、「して」が6位です。つまり、「て」は押しやすく、かつ「し」「い」とアルペジオ可能な位置にしないと使い物になりません。しかたがないのでキーマップを変更してしまいましょう。さいわいキーマップの変更はGoogle日本語入力のローマ字テーブルを変更するだけです。 合理的なキーマップにしていくために新下駄配列作成記を読んで考えていくわけですが、格子型キーボードであろうとなかろうと各指の守備範囲は同じですから、結論はほとんど同じになります。しかし、「て」が n の位置にあるのは許容できませんから、これだけ動かすことを考えます。 アルペジオのことが考えられているので、左手に移すのは気がひけます。 y は遠いし、「い」「し」との連携を考えると k と l の列はありません。「く」「た」「な」は理由があっての配置なので動かしたくありません。そうなると u p / のどれかです。この中で一番ホームポジションがくずれないのが / です。ということで、 n と / を入れ替えることにしましょう。同じキーに配置されているシフト側も一緒に移動します。 n よりも / のほうが押しやすいという判断ですから。「げ」はそこそこいい位置に移動してきた「ちぇ」と変わってもらいましょう。 これで必要最低限の変更ができました。他にも不遇の扱いを受けている n y u を有効活用するとか、認知負荷を下げるべく「ぱ行」を右下に固めるとか、いろいろ

USキーボードではWSLに変換・無変換キーは通らないのであきらめた話

WindowsではUSキーボードでもAutoHotKeyを使って変換・無変換が通っているのですよ。ErgoDox EZの Configure は変換・無変換キーはデフォルトでは無いので、F23とF24キーを用意して、 ``` end: ``` lang: filename: option: F23:: Send {vk1D} Return F24:: Send {vk1Csc079} Return +F24:: Send {blind}{vkF0sc03A} Return と書いておくとF23で無変換、F24で変換キー、シフトキー+F24で英数キーのあつかいになります。送っているキーの作法がまちまちなのは、いろいろ試した名残で意味はありません。WindowsでIMEのオンオフをトグル以外でやるにはこの設定が簡単です。AutoHotKeyでIMEをオンオフするという手もありますが。これでGoogle日本語入力の「キー設定の選択」でちゃんと認識します。 しかし、これだとWSLのMozcで同じ様に「キー設定の選択」で入力しようとしても反応しません。 setxkbmap jp とかいろいろ試したのですが、だめでした。 いったんあきらめていたのですが、あるときErgoDox EZのConfigureのAdvanced Configuration SettingsにJapanese keycodesというオプションがあるのを発見しました。これをオンにするとConfigureで変換・無変換などのキーが選べるようになりました。さっそく設定して試してみるも全然効きません。ほとんど何も起きないのですが、一部のキーでバッククォートが出るようです。USキーボードでIMEのオンオフにalt+バッククォートに関係するやつかなと思いまして、Windowsのキーボードの設定を日本語にしたら通りました。 しかし、日本語キーボードにしてしまうと記号がずれてしまいます。でもErgoDox EZなので、いままでの位置に設定するだけでいいのです……と思ったのですが、コロンとセミコロンだけがどうにもなりませんでした。USキーボードだとセミコロンをシフトキーとともに押すとコロンが出てくるのですが、日本語キーボードだと別のキーになってしまうんです。Configureでも

おれおれマークダウンで$\LaTeX$とRubyで数列

$\LaTeX$で数列を表示するのはけっこうめんどうなのでRubyを使って簡単に書ける方法を考えてみます。 まず普通に$LaTeX$でやると、 ```math {disp} end: ``` lang: math filename: {disp} option: disp 1,\;2,\;3,\;\cdots 実行結果 $$1,\;2,\;3,\;\cdots $$ 埋め込みのRubyで素直に書くと、 ```ruby {exec} end: ``` lang: ruby filename: {exec} option: exec print "$$" print "1,\\;2,\\;3,\\;\\cdots" print "$$" 実行結果 $$1,\;2,\;3,\;\cdots$$ もうちょっと汎用的に書くと、 ```ruby {exec} end: ``` lang: ruby filename: {exec} option: exec class Sequence def getTerm(n) n end end print "$$" s = Sequence.new (1..3).each do |i| print ",\\;" if i > 1 print s.getTerm(i) end print ",\\;\\cdots" print "$$" 実行結果 $$1,\;2,\;3,\;\cdots$$ これなら3乗とかでも、 ```ruby {exec} end: ``` lang: ruby filename: {exec} option: exec class Sequence def getTerm(n) n ** 3 end end print "$$" s = Sequence.new (1..3).each do |i| print ",\\;" if i > 1 print s.getTerm(i) end print ",\\;\\cdots&qu

WindowsとWSLでの新下駄配列の設定

WindowsでもWSLでも日本語入力を新下駄配列に切り替えました。これはその導入のメモです。 WindowsではGoogle日本語入力を使って実現するのが簡単です。最新のGoogle日本語入力なら同時押し入力に対応しているのでローマ字テーブルとタイムアウトの設定だけが必要です。ローマ字テーブルは設定のダイアログから変えられるのですが、現状ではタイムアウトの設定は直接 config1.db に書く必要があります。Protocol Buffersで書かれているのでちょっとやっかいですが、 Enable_Simultaneous_GoogleIME_config.ipynb からどちらも変更できます。キー設定が変わってもよければ 22 - mozc-Shingeta Einstellungen -- 新下駄配列を mozc にて使用する方法 から持ってきて置き換えるだけでも大丈夫です。変更後に再起動で入力できるようになっているはずです。これだけ。 WSLのほうは少しやっかいです。Google日本語入力のオープンソース版のMozcを使うのですが、自分が試した段階ではWSLのUbuntuのMozcではバージョンが低くて同時押しに対応していないようでした。きちんと確認はしていませんが、バージョン4450以上で動くようです。バージョンは「ばーじょん」を変換すると「Mozc-2.29.5220.102+24.11.oss」のような感じで出てくるのですが、なんで3つ目の数字を使うのでしょうか?なんで2.29以上みたいな書き方をしないのでしょうか? 2022 年10月以降の Mozc に対する主な変更 によれば 3 つめの数字 (5250) はバージョン番号をつけ始めてからの経過日数 とのことです。 対応しているバージョンならばWindowsと同様に config1.db の変更だけで動くはずです。対応していないならばソースのダウンロードとコンパイルが必要です。 How to build Mozc in Docker のとおりにやればコンパイルできました。インストールは DockerでビルドしたMozcをUbuntu 22.04 LTSにインストールする のやり方でできました。 /usr/local/ に入れないで /usr/ に直接入れるんですね。心配ならWSLごとバック