Linux

キーボード考

はじめに

引用(Happy Hacking Keyboard ホームページ)

Link

以下に紹介するキーボードで、個人的な別満足度順

Logicool Gaming G キーボード(キースイッチ交換タイプ) > RealForce? > リベルタッチ > Buffalo ゲーミングキーボード > Magestouch

キーボードの選ぶ時に考慮すること

  1. 打鍵音の大きさ
    • メンブレン、パンタグラフ、静電容量無接点方式が優れています
  2. 打鍵感
    • メンブレン、メカニカル、静電容量無接点方式のどれでも該当する物が有ります
  3. 価格
    • 2,000円〜5,000円
      • メンブレン
    • 10,000円前後
      • メカニカル
    • 20,000円前後
      • 静電容量無接点方式
  4. 英語配列、日本語配列
    • 英語配列は日本でリモートデスクトップを行う場合は無理です。
    • 英語配列は一般的にノートPCの配列と違うので戸惑います。
  5. テンキーの有無
    • これはお好みで。数字を多く打つ方はテンキー有り
    • 小スペースにこだわる方はテンキー無し。
  6. 変態配列について
    • Happy Hacking Keyboard のような変態配列は、
      Happy Hacking Keyboard を使用していない時、
      ノートPCからリモートデスクトップする場合に大変苦労します。
      それ以外なら意外にありなのでは?と思いました。

種類について

種類一覧

メンブレン

メンブレンキーボードのお勧め

  1. BUFFALO 有線ゲーミングキーボード BSKBC16BK
  2. 富士通コンポーネント Libertouch ホワイト FKB8540-051/W
    • 色々調べると必ず検索に引っかかる有名キーボード。
      デザインに難あり(Libertouchのフォントがださい、右上の突起と凹みの意味がわからない、全体的に大きいなど)
      荷重が45gでとても軽いのが印象的で、付属物に、ソフトラバーとハードラバーが(十数個ずつ)、
      キートップ引き抜き工具、予備用バネが付属してくることもうれしいです。
      音も比較的静かで、会社での使用も問題ないでしょう。
      テンキーが付いてるのは賛否両論ですが、個人的にはあってもいいし、無くてもいいし(笑)
      打鍵感もとてもよく、家用としてメインで使用しています。
      最初に買う高級キーボードとしては、当たり障りがなくオススメできます(^^) ※以下、amazon リンク

パンタグラフ

メカニカル

メカニカル・キーボードの軸について

正直、あまり書きたくなかったのですが(面倒なので(笑)、これを書かないとメカニカルキーボードは語れないと思い、備忘録も含めて書こうと思いました。

  1. 参考リンク
  2. 軸のメーカー
    • 元々はCherry社の特許だったので独占でしたが、今は特許期間も切れ、色々なメーカーを選ぶ事ができます。
    1. Cherry
      • 王道のメーカー。キーボードの軸と言ったらここ。
      • 上でも書いた通り軸に関する特許が切れ、これからは色々なメーカーが出てくると思う。
    2. Gateron
      • 中国のメーカー。Cherryの互換キースイッチ。
      • なんとなくネット上だと評判が良い気がする。
      • 特にクリア軸や白軸と呼ばれる押し圧35gの軸を発売してるのが魅力的。
    3. Kailh
      • 「中国のKaihua Electronics(カイフアエレクトロニクス)社の“Kailh”ブランドのメカニカルキーボード用のキースイッチ」らしい。
      • 正直、ネットの評判を見るとあまり惹かれない。。。
      • 今回唯一、試さないメーカー(笑)
  3. 軸の種類
    • 音量の指標
      指標うるささ
      1静か。会社でも使える
      2まぁまぁうるさい。会社では使えない位
      3さらにうるさい
    1. Cherry
      軸の色押下圧音量感想など
      45g2メカニカルの中では押圧が軽めだが、自分の軟弱な指ではこれでも重いw
      音は普通にうるさい(会社で使うのは厳しそう)
      ピンク(静音赤軸)45g1メカニカルキーボードで静音タイプを探していたが、これは静か。会社でも使える。
      個人的にはちょっと押下圧が重い。これで軽ければ完璧
      60g残念ながら試してない(軽い軸が好みなので)
      55g2最初に買ったメカニカルキーボード。当時は普通に打ててたが、今打つと多分重いと思う。
      あと音は盛大にうるさいので会社では使えないと思う。
      60g3Gateron 青軸のテンキーを所有。テンキーは構造上、小指を使用しないが、確かに小指で押すと重い感じがある。
      あと押した時にカチっというクリック音がするのが特徴で、とにかくうるさい(笑)。会社では使用できないと思う。
    2. Gateron
      軸の色押下圧音量感想など

      クリア
      35g!2赤軸よりさらに軽い軸。現在、購入中で静音赤のFILCOを小指のキーだけ入れ替え予定。とても楽しみ。
      ということで、白軸が届きまして、小指のキー10個だけ入れかえてみました。これは良いものだー!!!
      軽い。ちゃんと軽い。あとでこのWikiの下の方に交換した画像など上げます(^^)
      これで音がもっと静かなら最高。。。会社で使うと少しうるさいと思われるかな。。。
      サイレント

      クリア
      35g!1ということで、キーボード沼にはまっている気がする。。。
      Gateronの白(クリア)は重さの部分で申し分ないんですが、ちょっとうるさい。。。
      ので、白(クリア)のサイレント版を買ってみました。
      自分が調べた中ではちょっとネガティブな評判もあって躊躇してたんですが、買ってみたらこれはとても良いものだ〜(^^)
      とりあえず30個買ったんですが、追加で50個発注しました(笑)。
      軸の付け替えはハンダを取るのが面倒だったので、Logicool のキーボードにしました(後で下に書きます)
      55g3テンキーを所有。テンキーは構造上、小指を使用しないが、確かに小指で押すと少し重い感じがある。
      あと押した時にカチっというクリック音がするのが特徴で、とにかくうるさい(笑)。会社では使用できないと思う。
      45g2Gateron は試してないが、Cherry軸の感想
      メカニカルの中では押圧が軽めだが、自分の軟弱な指ではこれでも重いw
      音は普通にうるさい(会社で使うのは厳しそう)
      45gキーストークが浅い版らしい。未体験
      55g2タクタイル。以下、Cherryの感想。
      最初に買ったメカニカルキーボード。当時は普通に打ててたが、今打つと多分重いと思う。
      あと音は盛大にうるさいので会社では使えないと思う。
      45g白のストローク短い版。未体験。
    3. Kailh
      • 正直、評判がいまいちなので負のバイアスがかかってるかも。。。(^^;)
        軸の色押下圧音量感想など
        70g3Logicool の Pro Xに付いてきたので意図せず体験(笑)
        クリッキータイプでうるさいのはうるさいのですが、その前に音がなんかCherryの青軸とは違う。。。
        Cherryの青軸の方がもっとはっきりとクリックの音がする。。。
        それ以外では特筆すべき点は特にないかも。。。自分が青軸を嫌いなせいかもしれないw

軸はどこで購入?

メカニカル+独自配列

軸の交換(はんだ)

  1. 最初にキーボードを裏返して、「do not remove」と書いてある丸いシールを剥がします(ここを剥がした段階で保証は効かなくなると思われます)
    Mechanical-Jiku-29_2.JPG
    • 自分のFILCOのキーボードはネジ1つで止まってました。
  2. そうすると、右手前に「FILCO」と書いてある一体のプラスチックカバー(上面,キーの周りにあるカバー)が外れるようになります。
    上面のキーの周りのカバーは下のプラスチック部分と爪でとまっているので、爪を外すようにして、上面のキー周りのプレート?を外します。
  3. 次に上面プレートを外したあと、キーボード本体を2つのネジで止めてあるので外します。これで、キーボード下面のプレートが外れるようになります。
  4. キーボードの下面プレートが外れたら、USBケーブルを切断や壊さないように気をつけながらキーボードの端子から外します。
    • これでキーボード本体部分は単体になったはずです。
    • キーの周りに付いている鉄板は外れませんし、軸の交換だけでは外す必要はありません。
  5. キーボード本体を裏返して軸のはんだをはんだ吸い取り機(空気圧の力ではんだを引き抜く工具?)ではんだを吸い取ります。
    • もちろん,はんだごてが必要です。
    • ソルダーウィックでは吸い取れませんでいたので、必ずはんだ吸い取り機を使用しましょう。(自分は購入しましたw)
      • はんだ吸い取り機
        Mechanical-Jiku-28_2.JPG
  6. はんだを吸い取り終わったら、上面から軸の上下の爪を押し引き抜きます。ちゃんとはんだが吸い取れていると抜けますが、はんだが残っていると固いので再度はんだを吸い取ります(この作業が一番時間かかりますし、心が折れそうになります。。。)
  7. 交換する軸が取れた後、次にGateron白軸の取り付け準備をします。
    • Gateron白軸には、左右方向に不要な突起が付いていたので、ニッパで突起を除去します。
      • Mechanical-Jiku-22_2.JPG
  8. すると、Cherry軸が入っていた所へはまるようになるので、Gateronの白軸を入れていきます。
    • Mechanical-Jiku-26_2.JPG
  9. 全部の軸が入ったら、再度キーボードを裏返して、はんだ付けします。
    • Mechanical-Jiku-25_2.JPG
  10. はんだづけが終わったら、逆の順で組みたてて完了です。
    (自分はちゃんとキーボードが動きまして、白軸の軽いキータッチに大満足でございます(^^)

軸の交換(Logicool Pro X)

  1. 普通にスタートしていきます。
    Mechanical-Logicool-ProX-GateronClear-01.JPG
  2. で、キートップを全て外したところ。
    実は以下に書いてあるレビューの際に結構交換してたので、
    「これって軸のテストキーボード?」ってくらい交換されてますが(笑)、
    お遊びからちゃんとした状態へ持っていきます。(^^)
    Mechanical-Logicool-ProX-GateronClear-06.JPG
  3. で、軸を全部外したところ。
    Mechanical-Logicool-ProX-GateronClear-10-3.JPG
  4. 交換するのはこれ↓。Gateron クリア(白)軸です。この軸の特徴はとにかく軽い(35g)。
    数を数えて50個が必要だと思ったのですが、なんと足りませんでした(^^;)
    Mechanical-Logicool-ProX-GateronClear-02.JPG
  5. 軸を突っこんだ所
    Mechanical-Logicool-ProX-GateronClear-12.JPG
  6. キートップを戻して完成(^^)
    Mechanical-Logicool-ProX-GateronClear-15-2.JPG

メカニカルキーボードのお勧め

  1. Logicool G PRO X 日本語配列 LIGHTSYNC R
    1. Mechanical-LogicoolGproX-001.jpg
    2. Amazon link
    3. 特徴
      1. はんだ付け不要 & 自分で軸交換ができるキーボードです。
      2. 軸の端子はキーボードの基盤に付いているソケットにはまる構造。
        • こんなキーボードが欲しかったんです、というか、
          最初からこのキーボードを買えば良かったw
          (色々調べて辿り着きました)
        • ちなみに純正の交換用軸でないと保証はされないと思うのですが、
          普通にCherry互換軸なら付きます。
          • というか、Logicoolの純正交換軸、高すぎw(Kailhなのにw)
    4. その他所感
      • さて、元々付いているのはKailhの青軸です。
        全く自分の好みでは無いのでサクサク付け替えます。
      • 箱, 袋
        Mechanical-Logicool-ProX-10.JPG
        Mechanical-Logicool-ProX-09.JPG
        Mechanical-Logicool-ProX-08.JPG
        Mechanical-Logicool-ProX-07.JPG
      • 外観、手前が鏡面仕上げ?で美しいです(^^)
        Mechanical-Logicool-ProX-06.JPG
      • これに交換します(Gateron 白軸, サイレント)
        5 pinなので、不要な突起は切りました。
        Mechanical-Logicool-ProX-05.JPG
      • こんな感じで交換しました。
        Mechanical-Logicool-ProX-04.JPG
      • ちなみにキーを外す工具?が付いてたのですが、いまいちキーを取りにくく使いにくかったです。。。
        Mechanical-Logicool-ProX-03.JPG
      • キーやキートップを取り外す工具は以下の別売りの物を使ってます(^^)
        Mechanical-Logicool-ProX-02.JPG
        Mechanical-Logicool-ProX-01.JPG
  2. Majestouch 2 FKBN108MRL/JB2
    • 自分が今買うとしたら Filco の赤軸ですかね。
      自分はキーの押下圧が軽いほうが好みです。
      ちなみにこの文章は Filco の茶軸で書いてます(^^)
      ※以下 amazon リンク

静電容量無接点方式

静電容量無接点方式キーボードのお勧め

キースワップソフト

共通

Windows

PC再起動型

レジストリを変更するなどPCの再起動が必要なツール

  1. ctrl2cap
    Microsoft 製のCapsLock?キー(英数キー)を Ctrlキーに切り替えるツール。
    「インストール」という形が必要で再起動も必要。
    短所として、CapsLock?キーのみがCtrlへ切り替わるためCapsLock?キーが消失する。
  2. KeySwap?
    Vector_ダウンロードリンク
    レジストリを直変更の方式ではないが、別箇所のレジストリ変更が必要。
    短所として、リモートデスクトップの接続先で反映されない。
  3. 直接レジストリを編集
    参考サイト
    リモートデスクトップ先でもキースワップが可能。
    短所はキーの入れ替え時、PCの再起動が必要なことくらい。
    • やり方
      1. 「Windowsキー + r」を押し「ファイル名を指定して実行」で「regedit」を入力し「エンターキー」を押す。
        (あるいは「Windowsキー」を一度押し、そのまま「regedit」と入力し「エンター」キーを押す)
      2. 左のツリーから以下を選択。
        HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout
      3. 「Scancode Map」というバイナリ値を追加
      4. このレジストリデータに、 変更したいキーボードの変更前・後のスキャンコードを指定する

        フォーマット

        DWORD ヘッダ:バージョン情報 (All 0)
        DWORD ヘッダ:フラグ (All 0)
        DWORD マッピングとターミネータのデータ長 = 変えたいキーボード・キーの数+1
        DWORD マッピング = 元のスキャンコード(1 byte) と 新しく割り当てたいスキャンコード(1 byte)
        ・・・  (マッピングの繰り返し)
        DWORD ターミネータ  (All 0)

        変更したいキーボード配列の数が4
        データ長は 4+1=5
        マッピング例
         マッピング1 CapsLock (0x3A)  ⇒ 左Ctrl (0x1D)
         マッピング2 左Ctrl (0x1D)  ⇒ CapsLock (0x3A)
         マッピング3 全角/半角 (0x29) ⇒ 無変換 (0x7B)
         マッピング4 無変換 (0x7B)  ⇒ 全角/半角 (0x29))
        レジストリにセットする値
         ヘッダ	0000 0000
         ヘッダ	0000 0000
         データ長	0500 0000
         マッピング1   1D00 3A00
         マッピング2   3A00 1D00 
         マッピング3   7B00 2900
         マッピング4   2900 7B00 
         ターミネータ   0000 0000
        Scancode Map
        0000 00 00 00 00 00 00 00 00
        0008 05 00 00 00 1D 00 3A 00
        0010 3A 00 1D 00 7B 00 29 00
        0018 29 00 7B 00 00 00 00 00
  4. Change Key
    • レジストリを変更しキーマッピングを変更する。
    • 常駐不要なので便利。
    • 「変換」キーを右シフト(右Shift)へ変更するのに使用。
    • ダウンロード
    • 実行は管理者権限で実行する事。
    • レジストリのバックアップ(多分以下のKEY)
      HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout
      • バックアップはキーを選択してバックアップする。
      • 不要なものもバックアップされるので、メモ帳なので開いて以下な感じのみにする。
        (以下の設定は「CapsLock?」<->「Ctrl」,「変換」<->「右Shift」)
        Windows Registry Editor Version 5.00
        
        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
        "Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,1d,00,3a,00,3a,00,1d,00,\
         36,00,79,00,00,00,00,00

ソフト型(Auto Hot Key)

  1. Auto Hot Key
    日本語wikiリンク
    非常に高機能なソフト型キースワップソフト。
    長所は、PCを再起動すること無く、キーのスワップが可能なこと。
    (キーを状況によって切り替えることが容易)
    短所は、「CapsLock?」「かな」などのロックキー動作が不安定なこと、
    リモートデスクトップでキー変更が反映されないことなどがある。
    • {Blind}の説明
      • {Blind}がなんなのか少しわかりにくいので説明。
      • 以下のキーバインドを例として説明する。
        ;無変換 + j -> 左矢印キー
        sc07b & j::
        	send,{Blind}{Left}
        	return
      • {Blind}が無いと、例えばシフトキーを押しながらの挙動はこうなる。
        スクリプト例)
        ;無変換 + j -> 左矢印キー
        sc07b & j::
        	send,{Left}
        	return
        挙動
        キー入力:「Shiftキー」 + 「無変換」 + 「j」
        変換されたキー出力:Shiftキー(Down) -> 無変換(Down) -> j(Down) -> Shiftキー(Up) -> 左矢印(Down) -> 左矢印(Up) -> Shift(Down) -> j(Up) -> 無変換(Up) -> Shift(Up)
        変換されたキー(矢印キー)が入力される前に修飾キーがアップされる。よって、文字列などは選択で出来ない。
      • {Blind}を付けるとこうなる。 スクリプト例)
        ;無変換 + j -> 左矢印キー
        sc07b & j::
        	send,{Blind}{Left}
        	return
        挙動
        キー入力:「Shiftキー」 + 「無変換」 + 「j」
        変換されたキー出力:Shiftキー(Down) -> 無変換(Down) -> j(Down) -> 左矢印(Down) -> 左矢印(Up) -> j(Up) -> 無変換(Up) -> Shift(Up)
        シフト、無変換、jと綺麗に押しっぱなしになっているので、文字列などを選択できる。
    • OneNote?で up と down が効かない(上,下)
      • この方素晴らしい!(自分はあきらめてしまいましたが、出来るんですね!)

        AutoHotKeyから送られた上下キー(Up Downキー)がOneNote上で効かない時の対処

      • 以下の方法でうまくいきました。
        ;OneNoteへ入力する時だけに適用される設定
        #IfWinActive, ahk_class Framework::CFrame
            sc07b & u::dllcall("keybd_event", int, 0x26, int, 0, int, 1, int, 0) ;Up
            sc07b & m::dllcall("keybd_event", int, 0x28, int, 0, int, 1, int, 0) ;Down
        #IfWinActive
    • スクリプト例
      無変換キーと一緒に押すことでいろいろな事をします。
      キーボードでマウスを動かす設定を追加しました(^^)(2023/12/18)
      #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
      #Warn  ; Enable warnings to assist with detecting common errors.
      ;sendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
      ;SendMode Play  ; Recommended for new scripts due to its superior speed and reliability.
      SendMode Event  ; Recommended for new scripts due to its superior speed and reliability.
      ;SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
      
      ;#InstallKeybdHook on
      ;#InstallKeybdHook off
      ;#UseHook on
      ;#UseHook off
      #HotkeyModifierTimeout 200
      
      mouseBigMove := 100
      mouseSmallMove := 15
      mouseDetailMove := 5
      mouseScroll := 5
      ;無変換
      sc07b & j::
      if(GetKeyState("LWin","P")){
      	if(GetKeyState("Shift","P")){
      		if(GetKeyState("Alt","P")){
      			MouseMove,-mouseDetailMove,0,0,R
      		}else{
      			MouseMove,-mouseSmallMove,0,0,R
      		}
      	}else{
      		MouseMove,-mouseBigMove,0,0,R
      	}
      }else{
      	send,{Blind}{Left}
      	send,{sc07b Up}
      }
      return
      
      sc07b & k::
      if(GetKeyState("LWin","P")){
      	if(GetKeyState("Shift","P")){
      		if(GetKeyState("Alt","P")){
      			MouseMove,mouseDetailMove,0,0,R
      		}else{
      			MouseMove,mouseSmallMove,0,0,R
      		}
      	}else{
      		MouseMove,mouseBigMove,0,0,R
      	}
      }else{
      ;	if(GetKeyState("sc070","P")){
      ;		MouseMove,mouseBigMove,0,0,R
      ;	}else{
      		send,{Blind}{Right}
      		send,{sc07b Up}
      ;	}
      }
      return
      
      sc07b & h::
      send,{Blind}{BackSpace}
      send,{sc07b Up}
      return
      
      sc07b & u::
      if(GetKeyState("LWin","P")){
      	if(GetKeyState("Shift","P")){
      		if(GetKeyState("Alt","P")){
      			MouseMove,0,-mouseDetailMove,0,R
      		}else{
      			MouseMove,0,-mouseSmallMove,0,R
      		}
      	}else{
      		MouseMove,0,-mouseBigMove,0,R
      	}
      }else{
      	send,{Blind}{SC148}
      	send,{sc07b Up}
      }
      return
      
      sc07b & m::
      if(GetKeyState("LWin","P")){
      	if(GetKeyState("Shift","P")){
      		if(GetKeyState("Alt","P")){
      			MouseMove,0,mouseDetailMove,0,R
      		}else{
      			MouseMove,0,mouseSmallMove,0,R
      		}
      	}else{
      		MouseMove,0,mouseBigMove,0,R
      	}
      }else{
      ;	if(GetKeyState("sc070","P")){
      ;		MouseMove,mouseBigMove,0,0,R
      ;	}else{
      		send,{Blind}{Down}
      		send,{sc07b Up}
      ;	}
      
      }
      return
      
      sc07b & i::
      if(GetKeyState("LWin","P")){
      	Click, l
      }else{
      	send,{Blind}{Home}
      	send,{sc07b Up}
      }
      return
      
      sc07b & o::
      if(GetKeyState("LWin","P")){
      	Click, r
      }else{
      	send,{Blind}{End}
      	send,{sc07b Up}
      }
      return
      
      sc07b & p::
      if(GetKeyState("LWin","P")){
      	Click, l,,,,d
      }else{
      	send,{Blind}{Insert}
      	send,{sc07b Up}
      }
      return
      
      sc07b & ,::
      if(GetKeyState("LWin","P")){
      	MouseClick,WU,,,mouseScroll
      }else{
      	send,{Blind}{PgUp}
      	send,{sc07b Up}
      }
      return
      
      sc07b & .::
      if(GetKeyState("LWin","P")){
      	MouseClick,WD,,,mouseScroll
      }else{
      	send,{Blind}{PgDn}
      	send,{sc07b Up}
      }
      return
      
      sc07b & y::
      send,{Blind}{Delete}
      send,{sc07b Up}
      return
      
      sc07b & n::
      if(GetKeyState("LWin","P")){
      	MouseClick,l
      }else{
      	send,{Blind}{Enter}
      	send,{sc07b Up}
      }
      return
      
      
      
      ;Setting of mouse
      sc07b & e::
      if(GetKeyState("Shift","P")){
      	if(GetKeyState("Ctrl","P")){
      		MouseMove,0,-mouseDetailMove,0,R
      	}else{
      		MouseMove,0,-mouseSmallMove,0,R
      	}
      }else{
      	MouseMove,0,-mouseBigMove,0,R
      }
      return
      
      sc07b & f::
      if(GetKeyState("Shift","P")){
      	if(GetKeyState("Ctrl","P")){
      		MouseMove,mouseDetailMove,0,0,R
      	}else{
      		MouseMove,mouseSmallMove,0,0,R
      	}
      }else{
      	MouseMove,mouseBigMove,0,0,R
      }
      return
      
      sc07b & d::
      if(GetKeyState("Shift","P")){
      	if(GetKeyState("Ctrl","P")){
      		MouseMove,0,mouseDetailMove,0,R
      	}else{
      		MouseMove,0,mouseSmallMove,0,R
      	}
      }else{
      	MouseMove,0,mouseBigMove,0,R
      }
      return
      
      sc07b & s::
      if(GetKeyState("Shift","P")){
      	if(GetKeyState("Ctrl","P")){
      		MouseMove,-mouseDetailMove,0,0,R
      	}else{
      		MouseMove,-mouseSmallMove,0,0,R
      	}
      }else{
      	MouseMove,-mouseBigMove,0,0,R
      }
      return
      
      sc07b & w::
      Click, r
      return
      
      sc07b & r::
      Click, l
      return
      
      sc07b & q::
      Click, l,,,,d
      return
      
      sc07b & x::
      MouseClick,WU,,,mouseScroll
      return
      
      sc07b & c::
      MouseClick,WD,,,mouseScroll
      return
      
      
      
      
      
      ;sc07b & Lwin::return 
      
      ;OneNoteへ入力する時だけに適用される設定
      #IfWinActive, ahk_class Framework::CFrame
       sc07b & u::dllcall("keybd_event", int, 0x26, int, 0, int, 1, int, 0) ;Up
       sc07b & m::dllcall("keybd_event", int, 0x28, int, 0, int, 1, int, 0) ;Down
      #IfWinActive
    • その他, トラブル
      1. キーが押しっぱなしになる
        「sendMode Input」と「SendMode? Event」はコードに互換性があるため
        とりあえず「sendMode Input」->「SendMode? Event」へ変更してみる。
        自分はこれで解決した。

Linux

xmodmap

  1. Link [#yb2fdc76]
  2. cui-xmodmap [#ce82ae67]
    • 共通
      1. xmodmap の反映方法
         xmodmap ~/.xmodmap
      2. キーコード調査ソフト

        xev

    • xmodmap
      • 例1) Windows キーと全角半角ボタンの入れ替え

        vi .xmodmap
        以下を追加(! はコメントアウト)

        !keycode  49 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
        keycode  49 = Super_L NoSymbol Super_L
        
        !keycode 133 = Super_L NoSymbol Super_L
        keycode 133 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
      • 例2) いろいろ切替例
        clear Lock
        clear Control
        !clear mod5
        
        remove Control = Mode_switch
        !remove mod1
        !remove mod5 = Mode_switch
        
        !Muhenkan
        !左コントロール -> CapsLock
        keycode 37 = Caps_Lock
        !英数 -> Control_L
        keycode 66 = Control_L
        !無変換 -> Mode_switch
        keycode 102 = Mode_switch
        !無変換 + j -> 左矢印
        keycode 44 = j J Left Left
        !無変換 + k -> 右矢印
        keycode 45 = k K Right Right
        !無変換 + u -> 上矢印
        keycode 30 = u U Up Up
        !無変換 + m -> 下矢印
        keycode 58 = m M Down Down
        
        !無変換 + i -> Home
        keycode 31 = i I Home Home
        !無変換 + o -> End
        keycode 32 = o O End End
        !無変換 + , -> PageUp
        keycode 59 = comma less Prior Prior
        !無変換 + . -> PageDown
        keycode 60 = period greater Next Next
        
        !無変換 + h -> BackSpace
        keycode 43 = h H BackSpace BackSpace
        !無変換 + y -> Delete
        keycode 29 = y Y Delete Delete
        !無変換 + n -> Enter
        keycode 57 = n N Return Return
        
        
        add Control = Control_L Control_R
        !add mod1 = Alt_L
        !add mod5 = Mode_switch
    • cui-/etc/default/keyboard [#kfe232cb]
      • sudo vim /etc/default/keyboard
      • 以下を変更
        XKBOPTIONS="ctrl:nocaps"
      • 変更後の全部
        # KEYBOARD CONFIGURATION FILE
        
        # Consult the keyboard(5) manual page.
        
        XKBMODEL="pc105"
        XKBLAYOUT="jp"
        XKBVARIANT=""
        #XKBOPTIONS=""
        XKBOPTIONS="ctrl:nocaps"
        BACKSPACE="guess"
  3. gui [#cad2b3d8]
    • kde
      • 通常キーボードで CapsLock? を Control キーにする。

        1.「KDE システム設定」 -> 「入力デバイス」
        2.「キーボード」 -> 「詳細」
        3.「ctrlキーの位置」 -> 「Ctrl と Caps Lock を入れ替える」にチェック
        4.Ctrl + Space で IME On,Off

        • Linux
        • 「入力メソッドの設定」で Ctrl + Space でオン・オフを設定

XKB

xmodmap が少し古い技術になり、XKBの方が望ましいとのことなので、この際調べてみました(^^)

  1. 参考Link
  2. やりたいこと
    1. ctrl <-> caps lock の入れ替え
    2. 無変換キーを押しながら
      • Y : delete
      • U : 上矢印キー
      • I : Home
      • O : End
      • H : Back space
      • J : 左矢印キー
      • K : 右矢印キー
      • N : Enter
      • M : 下矢印キー
      • , : Page Up
      • . : Page Down
    3. 変換キーを「右Shift」へ。
  3. ファイル構成

    ~/.xkb/

    .xkb
    ├── compat
    │   └── mycompat
    ├── keymap
    │   └── mykbd
    ├── symbols
    │   └── mysymbols
    └── types
        └── mytypes
  4. フォルダの作成
    mkdir -p ~/.xkb/compat
    mkdir -p ~/.xkb/keymap
    mkdir -p ~/.xkb/symbols
    mkdir -p ~/.xkb/types
  5. 設定ファイルの作成
    1. compat
      • vi ~/.xkb/compat/mycompat
        xkb_compatibility "muhenkan" {
          interpret Muhenkan { action = SetMods(modifiers=Mod5); };
        };
    2. keymap
      • vi ~/.xkb/keymap/mykbd
        xkb_keymap {
            xkb_keycodes  { include "evdev+aliases(qwerty)" };
            xkb_types     { include "complete+mytypes(muhenkan)"  };
            xkb_compat    { include "complete+japan+mycompat(muhenkan)"   };
            xkb_symbols   { include "pc+jp+inet(evdev)+mysymbols(muhenkankeys)+ctrl(swapcaps)"   };
            xkb_geometry  { include "pc(pc105)" };
        };
    3. symbols
      • vi ~/.xkb/symbols/mysymbols
        xkb_symbols "muhenkankeys" {
         
        key.type = "MUHENKAN";
        //  key <AE01> { [ 1, exclam      ] };
        //  key <AE02> { [ 2, quotedbl        ] };
        //  key <AE03> { [ 3, numbersign  ] };
        //  key <AE04> { [ 4, dollar      ] };
        //  key <AE05> { [ 5, percent     ] };
        //  key <AE06> { [ 6, ampersand       ] };
        //  key <AE07> { [ 7, apostrophe  ] };
        //  key <AE08> { [ 8, parenleft       ] };
        //  key <AE09> { [ 9, parenright  ] };
        //  key <AE11> { [ minus, equal       ] };
        //  key <AE12> { [ asciicircum,   asciitilde] };
          
        //  key <AD01> { [ q, Q           ] };
        //  key <AD02> { [ w, W           ] };
        //  key <AD03> { [ e, E, Escape ] };
        //  key <AD04> { [ r, R           ] };
        //  key <AD05> { [ t, T           ] };
        //  key <AD06> { [ y, Y           ] };
            key <AD06> { [ y, Y, Delete     ] };
        //  key <AD07> { [ u, U           ] };
            key <AD07> { [ u, U, Up         ] };
            key <AD08> { [ i, I, Home       ] };
        //  key <AD09> { [ o, O           ] };
            key <AD09> { [ o, O, End        ] };
        //  key <AD10> { [ p, P, Up ] };
        //  key <AD11> { [ at, grave      ] };
        //  key <AD12> { [ bracketleft,   braceleft ] };
          
        //  key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
         
         
        //  key <AC01> { [ a, A           ] };
        //  key <AC02> { [ s, S           ] };
        //  key <AC03> { [ d, D           ] };
        //  key <AC04> { [ f, F           ] };
        //  key <AC05> { [ g, G           ] };
            key <AC06> { [ h, H, BackSpace] };
            key <AC07> { [ j, J, Left ] };
            key <AC08> { [ k, K, Right ] };
        //  key <AC09> { [ l, L, Right ] };
        //  key <AC10> { [ semicolon, plus, End ] };
        //  key <AC11> { [ colon, asterisk, Delete ] };
         
        //  key <AB01> { [ z, Z, Return ] };
        //  key <AB02> { [ x, X, BackSpace ] };
        //  key <AB03> { [ c, C, Delete ] };
        //  key <AB04> { [ v, V           ] };
        //  key <AB05> { [ b, B           ] };
        //  key <AB06> { [ n, N, Down ] };
            key <AB06> { [ n, N, Return ] };
        //  key <AB07> { [ m, M, Return ] };
            key <AB07> { [ m, M, Down ] };
            key <AB08> { [ comma,  less, Prior       ] };
            key <AB09> { [ period, greater, Next     ] };
        //  key <AB10> { [ slash, question    ] };
        //  key <AB11> { [ backslash, underscore] };
            key <HENK> { [ Shift_L, Shift_L] };
        };
    4. types
      • vi ~/.xkb/types/mytypes
        xkb_types "muhenkan" {
          type "MUHENKAN" {
            modifiers = Shift+Control+Mod5;
            map[Shift] = Level2;
            map[Mod5] = Level3;
            map[Mod5+Control] = Level3;
            map[Mod5+Shift] = Level3;
            map[Mod5+Shift+Control] = Level3;
         
            preserve[Mod5+Control] = Control;
            preserve[Mod5+Shift] = Shift;
            preserve[Mod5+Shift+Control] = Shift+Control;
         
            level_name[Level1] = "Base";
            level_name[Level2] = "Shift";
            level_name[Level3] = "Muhenkan";
          };
        };
  6. 「Shift」+「Cpas Lock」で「Ctrl」にならない対策
    • 以下のコマンドを実行
      dconf write /org/gnome/desktop/input-sources/xkb-options "['ctrl:swapcaps', 'caps:ctrl_modifier','ctrl:nocaps']"
  7. 反映
    xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null
  8. 日本語入力オン, オフで設定が元に戻ってしまう
    gsettings set org.gnome.settings-daemon.plugins.keyboard active false
  9. 自動起動設定
    1. Ubuntuメニューから、「システムツール」-「Preferences」-「自動起動するアプリケーション」へ登録。
    2. (or) ~/.bashrc へ追加
    • vim ~/.bashrc
      xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null
  10. 日本語入力時、無変換キーが認識してしまう
    • mozcの設定 -> 「キー設定の選択」から無変換キー設定の除去
  11. jp キーボードのデフォルト設定を確認する
    /usr/share/X11/xkb/symbols/jp
  12. 設定確認
    setxkbmap -print
  13. Microsoft visual studio code(VS Code)で [無変換]+[h]でバックスペースが効かない。(Ubuntu, Linux)

今までに経験したキーボードの所感

東プレ REALFORCE91UBK-S テンキーレス日本語配列 静音タイプ 変荷重 ブラック

特徴と所感

富士通 Libertouch(リベルタッチ)

特徴と所感

BUFFALO 有線ゲーミングキーボード BSKBC16BK

特徴

メンブレンキーボードで安価(2000円位)で、比較的軽いキーと
打鍵感が良い、また音が静かなのが特徴。
この値段でこのクオリティーは凄い。

所感

お店でたまたま展示品があり、キータッチに惹かれ購入しました。
性能は、キーの重さ、打鍵感、静かさなど実用十分であり、
自分は家と会社の2台体制で2年位使いました。
特に不満は無いのですが、会社で Happy Hacking Keyboard Lite2 が
発掘されて以来、キーボードについて調べているうちに道を踏み外しました(^^;)
今でもこのキーボードの評価は変わっておらず、良いキーボードと思います。
ただし、RealForce? のような2万円のキーボードを使ってみると少し粗が目立ちますが、
値段ほどの差はもちろんありません。このキーボードが2千円なら
RealForce? は3千円くらいでもいいと思います(性能差1.5倍程度と感じます)
※以下は amazon リンク


BUFFALO USB&PS2 有線ゲーミングキーボード BSKBC16BK

Happy Hacking Keyboard JP Lite2

keyboardHHKJPLite2Black.jpg

特徴

ジャンル的には「変態配列キーボード」に分類されると思う

  1. Ctrlキーが「A」キーの左側にある
  2. ファンクションキーがなく、「Fn」+数字キーで入力する
  3. PrintScreen?,ScrollLock?,Pause キーなども「Fn」キーを押しながらとなる

結論

以下3つのうちどれかに当てはまる場合は厳しい。

  1. リモートデスクトップ多用する
  2. かなり多くのPCを所有する(1つ1つに設定を入れられないくらい)
  3. ノートPCのキーボードも使用する

しかしながら、通常キーボードで、Ctrl と CapsLock? を切り替えるのは
作業効率的に有効かもしれない。

経緯と理由

  1. 会社でHappy Hacking Keyboard Lite2 の英語版が発掘される
    • 英語キーボードで致命的なのは、リモートデスクトップの接続先が日本語の場合、
      アンダースコア(アンダーバー)がどうしても打てない事。これは致命的。
      自分は仕事柄、何十台というコンピューターにリモートデスクトップで接続するため
      これはどうしても見過ごせない大きな問題。
  2. Happy Hacking Keyboard Lite2 の日本語版を購入。
    • 日本語版はいろいろと問題も少なく、1週間ほど使用した。
      ノートPCにHappy Hacking Keyboard をUSB接続する使い方だったが、
      ノートPCキーボードとの併用がとてもむずかしく諦めた。
  3. キーボード変換が必要な環境まとめ
    Happy Hacking Keyboard通常キーボード(ノートPCキーボード)
    Windows
    設定ソフト:AutoHotKey?
    Windowsキーと全角半角キーの入れ替え

    設定ソフト:AutoHotKey?
    CtrlキーとCapsLock?キーの切り替え
    Linux
    設定ソフト:xmodmap
    Windowsキーと全角半角キーの入れ替え

    設定ソフト:xmodmap
    CtrlキーとCapsLock?キーの切り替え
  4. 試したキーコンフィグツール
    1. Windows
      このページ「キースワップソフト」「Windows」を参照
    2. ソフト型
      このページ「キースワップソフト」「Linux」を参照
  5. 以上を踏まえた自分の利用環境ごとの対応について
    以下の環境で致命的な不整合が起きた
    • 「PCを移動時、 Happy Hacking Keyboard が繋がっていない状態でリモートデスクトップを行う時」
      PC の再起動が不要のキースワップツール「Auto Hot Key」では、リモートデスクトップ越しのキー変更は出来ない。

      -> リモートデスクトップ先で CpasLock?(英数) を Ctrl キーとして扱う方法が無い。
      これが Happy Hacking Keyboard を使う上で克服できない致命的な事象でした。

    • 上記をふまえ、逆に普通のキーボードを使用し、レジストリで「Ctrl」と「CapsLock?(英数)」を切り替えることにより
      「A」キーの左に「Ctrl」キーの状態は維持できます。
      またこの方式にすることにより以下のように対応が可能です。
      リモートデスクトップPC画面
      USBキーボードCtrl と CapsLock? の入れ替えが可能Ctrl と CapsLock? の入れ替えが可能
      ノートPCキーボードCtrl と CapsLock? の入れ替えが可能Ctrl と CapsLock? の入れ替えが可能
      詳細はこのページ「キースワップソフト」「Windows」を参照

Filco Majestouch FKB108M/JB(茶軸)

特徴

メカニカルキーボードの老舗、Filco が出している Majestouch。
種類はメカニカルで Cherry社製のスイッチ(茶軸)を採用。
値段は1万円くらいでした。

結論

音がうるさすぎて会社では使えませんでした。
このキーボードでタイピングしているとみんなが振り返るレベルです。
家でも同居人が居る場合は絶対うるさいです。
1キーを入力するごとに硬いプラスチック同士がぶつかる甲高い音が響きます。
メカニカルキーボード、打鍵感と反応は最高なのですが、
この音が致命的にうるさいので、家専用で会社使用は出来ませんでした。。。

FILCO Majestouch2 Tenkeyless S〔静音〕 キーボード 91日本語カナあり CherryMXピンク軸 USB/PS2両対応 ブラック FKBN91MPS/JB2

特徴,その他 

個人的Todo,メモ

  1. Filco、静音化検討結果
  2. AutoHotKey?,検討メモ
    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn  ; Enable warnings to assist with detecting common errors.
    ;SendMode event  ; Recommended for new scripts due to its superior speed and reliability.
    SendMode input  ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
    
    #InstallKeybdHook
    #UseHook
    
    ;「全角半角」キー(キーボード表記)が押された時、200msの間、同時に押されたキーを記憶し送る。
    ;なぜか「全角半角」(キーボード表記)が押された時、先に Up が来て、あとに Down が来るので
    ;下記で入れ替えてる。
    SetKeyDelay, 200
    sc029 up::
    	sendEvent,{blind}{LWin down}
    	return
    sc029::
    	sendEvent,{blind}{LWin up}
    	return
    
    ;変換キー+j で BackSpace
    sc079 & j::
    	sendEvent,{BackSpace}
    	return
    
    ;変換キー+k で Delete
    sc079 & k::
    	sendEvent,{Delete}
    	return
    
    
    
    ;変換キー
    ;sc079 & j::
    ;	send,{Blind}{Home}
    ;	return
    
    ;sc079 & k::
    ;	send,{Blind}{End}
    ;	return
    
    
    
    ;かな(不安定)
    ;sc070 & j::
    ;	send,{Blind}{Home}
    ;	return
    
    ;sc070 & k::
    ;	send,{Blind}{End}
    ;	return
    
    
    ;^j::Home
    ;^k::End
    
    ;sc07b up::
    ;	send,{LCtrl up}
    ;	return
    
    ;sc07b::
    ;	send,{LCtrl down}
    ;	return
    
    ;	
    ;+sc07b::
    ;	send,{CapsLock}
    ;	return
    
    ;#HotkeyModifierTimeout 200
    ;SetKeyDelay, 200
    ;#InstallKeybdHook off
    ;#UseHook off
    ;#HotkeyModifierTimeout 200
    ;SetKeyDelay, 200
    
    
    ;Capslock::Ctrl
    ;sc03a::
    ;	Send {Blind}{sc03a}
    ;	Send {Blind}{sc03a Up}{LCtrl DownTemp}
    ;	Send {Lctrl Up}{LCtrl DownTemp}
    ;	Send {LCtrl DownTemp}{Lctrl Up}
    ;	Send {LCtrl}
    ;	Send {Lctrl Up}
    ;	return
    
    ;sc03a::
    ;	Send {Blind}{sc03a}
    ;	Send {Blind}{sc03a Up}{LCtrl DownTemp}
    ;	return
    
    ;sc03a down::
    ;	send,{LCtrl down}
    ;	send,{LCtrl up}
    ;	return

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS