投稿

3月, 2022の投稿を表示しています

Weblioでキーボードでのスクロール

 ErgoDox EZを買って「日本語入力どうしよう?」からの親指シフトの設定で時間を使ってしまい、その他の設定がおろそかになっていたので、1つづつ考えていきたいと思います。キーマップをどうしようと漠然と考えても決まるわけはなく、個別具体的な要請に従って決めていくべきだったんですよね。 まずはよく使うChromeから考えていきます。ChromeではVimiumというプラグインでキーボードでブラウズできるようにしています。検索とかでキーボードとタッチパッドの往復はめんどくさいし手首に負担がかかりますからね。 Google検索だとoかCtrl-eで検索ワードを入れてリターンキーで検索、スペースかd, uキーでスクロールしつつ、気になるものがあったらfで飛ぶという手順です。読み終わったらHキーで戻るか、Ctrl-wでタブごと消して終わりです。これらは特に問題はないです。 最近「ちょっとうざいなあ」と思っていることはWeblioというサイトで英単語を調べるときです。検索ワードを入力してリターンキーで検索までは一緒ですが、このときに検索窓で入力したワードが選択されている状態なので、スクロールしようとスペースキーやd, uなどを押すと普通に入力されてしまってスクロールしてくれません。タブを1回押すと次の項目に移動するのですが、これがドロップダウンリストになっていて、やはりキー入力を取られてしまいます。なのでタブを2回押すとVimiumのスクロールキーを受け付けてくれるようになるのですが、辞書なので何度も検索することが多く、不便でなりません。ページダウンとページアップキーなら機能するのですが、あまり押しやすい位置に置いていなかったので大変でした。ということで押しやすい位置に持ってくるべきだという結論になりました。これはVimiumと関係なく動作するので他のアプリのときでも動作するという点がモアベターです。 しかし便利な半分スクロールはできません。なんとかこれを実現できないでしょうか?考えられるのはマウスのスクロールイベントをErgoDoxの設定か、AutoHotKeyで送ることです。スクロール1回ではあまり動かないので、同じキーを2回以上送る必要があります。低位のレイヤーでできることはそっちでやるという方針だとErgoDoxのほうでやったほうがいいことになります。 ErgoDox

Alt-Tabとおさらばする方法

 トグルって本当にうっとうしい仕組みですよね。Windowsだと避けられないものもありますが、なんとかなるものも多いです。キーボードのマップをいじることでそれらをさらに使いやすくもできます。 まずはアプリの選択。Ctrl-Tabを何回も押してませんか?実はWindowsキーと数字で選択できます。ただし条件があって、タスクバーで同じアプリをまとめて表示にしておく必要があります。たぶん。よく使うアプリはタスクバーにピン留めしておけば番号も変わらないのでChromeなら1、Cygwinなら2と覚えておけばタスクバーを見る必要もありません。すでに立ち上がっていればそのウィンドウにフォーカス、立ち上がっていなければ新規に起動するので、立ち上げたかどうかの確認も必要ありません。 目的のアプリがタスクバーの何番目かはパッと目ではわかりづらいかもしれません。そんなときは7+ Taskbar Numbererが便利です。タスクバーに番号付きで表示してくれるようになります。 この方法だとWindowsキーを押しまくりですが、押しやすい便利な位置にこのためだけに持ってくるのはもったいないです。なので英数入力モード時に親指シフトキーであるF23かF24と数字が押されたときにはWindowsキーと数字を送ることにしています。これでCtrl-Tabとおさらばです。 ただし9番までしか選択できないのであまりアプリを立ち上げすぎないようにしないといけません。そんなときはデスクトップを複数作って、目的別に切り替えましょう。デスクトップの切り替えはWindowsキー+Ctrl+左右の矢印キーです。押しにくいですよね。なので、ErgoDox EZのマップの書き換えでボタン1つで移動できるようにしています。このデスクトップの切り替えはトグルになってしまうんですよね。5番のデスクトップに移動とかできればいいのに。あと目的別にデスクトップを使うのでタスクバーをデスクトップごとに定義できれば便利なんですが、Windowsにその機能は無さそうです。 デスクトップは一度作れば再起動とかしても消えないようです。自分は5つ作って、メインは3番目にしています。そうするとメインから左に1回、2回という動作が可能になります。1番目で作業してしまうと左に移動できないですからね。 なのでAutoHotKeyの定義ファイルに If

親指シフト実現のためのAutoHotKeyの設定

ErgoDox EZでNICOLA配列の親指シフトで日本語を入力する環境をAutoHotKeyで実装することまで決まりました。ではその環境をどうやって実現するのでしょうか?答えはAutoHotKeyの書式に従ってべたべたに書くです。現在はこんな感じです。 a::   InputLocaleID:=GetInputLocaleID()   if (IME_GET() && (InputLocaleID == "0x4110411")) {     Send u   } else {     Send {Blind}a   }   Return F23 & a::   InputLocaleID:=GetInputLocaleID()   if (IME_GET() && (InputLocaleID == "0x4110411")) {     Send wo   } else {     Send {Blind}a   }   Return F24 & a::   InputLocaleID:=GetInputLocaleID()   if (IME_GET() && (InputLocaleID == "0x4110411")) {     Send vu   } else {     Send ^!a   }   Return 基本的に拾ってきたIME.ahkのIME_GET関数で現在のIMEの状態を確認して、その状態で適切なキーを送出しておしまいです。GetInputLocaleIDは自分で定義した関数で名前のまんまです。IMEがオンでも中国語のときに日本語用の親指シフトマップに従って変換してはだめなので、日本語のロケールである"0x4110411"かどうか確認しています。 例えばaのキーはIMEがオンで日本語のときに単体で押せば「う」なので"u"をSend、左の親指シフトキーと押せば「を」なので"wo"をSend、右の親指シフトキーと押せば「ゔ」なので"vu"をSendです。 最初は普段かな打ちモードだったので、そのモードでマップしていたのですが、"

どうやって親指シフト環境を作るのか?

ErgoDox EZでNICOLA配列の親指シフトで日本語を入力することは決まりましたが、ではその環境をどうやって実現するのでしょうか?答えは「AutoHotKeyを使って実装する」です。ぐぐった感じだと、Windowsで通常のキーボードを使って実装する場合にはほぼこれだと思います。 みなさんWindowsを使っているならAutoHotKeyを使ってますよね?alt-ime-ahkを使わないと日本語と英語の入力の切り替えをトグルでやらなきゃならないんですから当然使っているはずです。トグルというのは記憶するか、確認するかで現状を把握して、必要ならトグルさせて、必要でないならそのままという作業が必要な最悪なユーザインタフェースです。この世から無くしましょう。 そんな最悪のUIであるトグルを使わなくても入力モードを切り替えられるようにしてくれるのがalt-ime-ahkです。これは右のaltキーの空打ちで日本語入力、左で英数入力モードにしてくれるAutoHotKeyの定義ファイルです。親指シフトだろうがなかろうが、当然この便利なシステムは維持します。 では「どうやってAutoHotKeyで親指シフトを実装するのか?」ですが、たいていは定義ファイルをコンパイルしたexeファイルが配られていて、それを実行すれば使えるようになります。でもネットで拾ってきたexeファイルを実行するなんて怖いですよね。そもそもすでにAutoHotKeyはalt-ime-ahkで動いているので定義ファイルを追加するだけでいいはずです。それに既存のものはオプション画面があったりして、本筋とは別のところで複雑になっていて、必要な部分を見極めてコピーしてくるだけでも大変そうでした。なのでシンプルなものを自分用に書いていくことにしましょう。

親指シフトってなんだ?

 ErgoDox EZを買い、日本語入力は親指シフトを試してみようということになりましたが「そもそも親指シフトとはなんぞや?」というところからでした。 最初は名前から「小指でシフトキーを押さないで親指で押す配列なのかな?」ぐらいに思ってました。でもシフトキーはシフトキーとして普通の位置にあって、日本語入力用のシフトキーが親指で押しやすい位置にあるんですね。 さらに詳しく調べた結果、富士通の開発した親指とアルファベットやいくつかの記号のキーを同時押しすることによって日本語のかなを入力する方式らしいことがわかりました。数字キーは使わないので、アルファベット等の2×3×5=30のキーと親指シフトキー2つの組み合わせで30×3=90の文字が入力できるらしいです。これはErgoDoxで使える。 日本語の表現では ・「ゐ」と「ゑ」を除いて清音が46 ・「ゔ」を入れて濁音21 ・半濁音5 ・「ぁぃぅぇぉっゃゅょ」の小さい文字が9 ・「。、ー.,・゛゜」と全角空白で9 で全部で90です。最後のやつは「それいるのか?」と思うやつが入っていて、括弧とかチルダがありませんが、親指シフトキーと数字の組み合わせが空いているので大丈夫です。 これらが具体的にどのキーにどの文字が割り当てられているのでしょうか?これにはどうもいくつか流派があって、NICOLA、orz、飛鳥、小梅などの配列があるようです。普通のキーボードだとタイプライターの名残りでずれているので、右親指シフトとyの組み合わせが押しづらかったりするらしいです。でもErgoDoxならそんな心配はありません。他にはもっと効率的なキー配置を求めて試行錯誤している方達がいるらしいです。でもとりあえずは最大派閥らしいNICOLAを試すのがよいでしょう。 とりあえず親指シフトの基本がわかって、使う配列が決まったので、次回「どうやって親指シフト環境を作るのか?」編に続きます。

ErgoDox EZとかな入力

手首への負担をなくすためにセパレートタイプのキーボードであるErgoDox EZを買ったのですが、次の問題はどのようなキー割り当てにして負担をなくすかです。 まずはデフォルトでしばらく使ってみようなどと考えたのですが、すぐに使いものにならないことに気がつきました。使わないキーがたくさんあるのに指が覚えている位置にキーがないのです。「HyperにMehとかなんじゃらほい?」です。鹿にクローバーに池の水位みたいな記号もあります。「ESCキーがそこかよ!」ってのも思いました。 それに右手の小指が覚えている位置に'=', ']', '\'がありません。日本語入力をかな入力で覚えていたのでこれが大問題でした。'ぺ'を入力するためには"=]"ですが、指が覚えている感覚で打とうとすると空振りです。そもそも'へ'を打つときには'へ'のキーを叩くという感覚だったので「今まで'へ'を出すためにどのキーを叩いていたのか?そして新しいキーボードではそのキーはどこにあるのか?」ということを確認しないと打てません。しかもキーマップをいじって記号の位置をずらすたびに覚えなおしです。それにキーマップを考えるときに「'='をこの位置に持ってくると日本語入力はどうなる?」とも考えないといけないので大変です。 ローマ字入力にすることも考えましたが、ローマ字入力派だったことはないのでいちから覚えることになります。それにかな入力派対ローマ字入力派の争いをかな入力派として見てきていたのに、今さら改宗するのはなんか悔しいです。 「やはりかなの「むへろ」あたりの場所を新たに覚えるしかない?」と思っていたのですが、ここでひらめきました。「どうせいろいろ覚えなおさなきゃならないのならいっそ親指シフトにしよう!」 次回「親指シフト環境構築編」へ続きます。

セパレートタイプキーボード

 まとめようと思っていたけどめんどうでまとめていなかったキーボードの話を徒然なるままに。 しばらく前にErgoDox EZというセパレートタイプのキーボードを買いました。なんで買ったのかあんまり覚えていないのだけれど、手首が楽だという話とRebuildfmで宣伝していたからだったかな?腱鞘炎かなにかで音声入力のプログラマの話もインパクトがあったかも。転ばぬ先の杖ってことで。 心配だったのは「一般的でないキーボードを使い慣れてしまうと普通のものが使いづらくなってしまうのではないか」ということ。でもよく考えたら自宅以外でキーボードを使うことはないことに気がついて「ならいいか」と。 で、買おうとぐぐってみるとMOONLANDERっていう新しいやつもあったんですよね。ErgoDox EZだと手の小さい人には使いづらかった点を改良的なことが書いてあって「ならそっちか」と思ったのだけれども、納期が数か月とかで「それはないな」と。そんなに手が小さいわけじゃないけど、たぶんアメリカの白人男性が基準だろうからそうなんだろうなと。で、実際に買ってみた結果は「やっぱりそうなんだ」でした。 次の検討点はキースイッチで、今までThinkPadを使っていたので薄いやつがいいなと思ったんだけど、それは選べませんでした。自由に選べるって書いてあるのに。じゃあ無しで買って別に買うかと思ったけど、それも不可能なもよう。そもそもErgoDoxというカスタマイズが自由だけれども組み立てるのがめんどうなやつを、そういう人向けにありがちな構成で組み立て済みのものをお安く提供しますというコンセプトっぽいので致し方ない。「EZじゃないならErgoDox以外も検討対象だな」と思ってぐぐってみるも、すぐに「めんどくさそうなのでなし!」ということになりました。 「じゃあ一般的なキースイッチで何を選ぶか?」ですが、なるべく軽くてうるさくないやつということで静音赤軸で決まり。昔はHHKを使っていたんだけどThinkPadに慣れてしまったのでもう戻れない。たぶん、また使い始めればすぐに慣れるんだろうけど。 おおまかな構成は決まったので次は購入ですが、セパレートタイプのキーボードの人は何台も買い換えるという噂を聞いたので「もしかしたら中古でいいのがあるのでは?」と検索してみるとそのものズバリなものがメルカリにありました。余計な

ブログ始めました

さくらのレンタルサーバでブログのようなものを書いていたのですが、最近は全然更新していません。書こうと思っていることはたくさんあるのですが、しっかりまとめてからとか、システムを変更してからとか、先にあのプログラムを完成させて出力を使ってからとか考えるとなんだかめんどうになってしまって、書き始めないまま時が過ぎてしまいました。 ということで心機一転、既存のブログシステムを使って難しく考えないで書くことにしました。文字数制限のないTwitterだと思ってばんばん書き飛ばしていきます。しっかりまとめてからと思っていたことは、まとめずに思いついたことを書きます。きっとこれらの断片がまとまってブログのようなものも先に進むでしょう。