search
LoginSignup
3

More than 1 year has passed since last update.

posted at

updated at

1台のHHKB(US)を色んなOSで切り替えて使う

このエントリーは TechCommitアドベントカレンダー2020 の14日目の記事です!

はじめに

最近人生で初の mac (中古の Mac mini) を買ったのですが、普段使いのWindows用の JISキーボードを繋いでみたところ、日本語入力すらままならず辟易してしまう事態になりました。
手持ちの Happy Hacking Keyboard Professional2(US配列、以後HHKB) が mac/windows 両対応で、ディップスイッチにより使い分けられる事は分かりましたが、頻繁に使うOSを切り替えたいのに一々物理スイッチをON/OFFしてられないのでツールを使い対応してみることにしました。

mac 用の日本語配列キーボードの場合スペースキーの左右にそれぞれ「英数」と「かな」キーが配置されていて、現在のモードに関わらず押したキーのモードになるのがとても使いやすい(要するに Windows の様にトグル切り替えではない)という話を聞いたので、今回は mac / Windows そして Linux でこの使い勝手を実現してみようと思います。
自分は デュアルブートな PC で Windows10 と Ubuntu のどちらかを起動した上で、切替器経由で mac と交互に使うような運用の仕方をしています。

ディップスイッチの設定

SW1 SW2 SW3 SW4 SW5 SW6
OFF ON ON ON ON ON

HHKB のスイッチを上記の設定にすると、キーボード全体のモードは「Macintosh」になり、
最下段のキー押下により

Fn Alt       Space       Alt

のレイアウトでキー入力される形になります。
※『Alt』はmac では『Option』キーに、『◇』はWindowsでは『Win』キーに、mac では『コマンド(⌘)』キーになります。

以下、この設定における各OSでの対応の手順を記します。

macOSでの設定

Karabiner-Elements というツールを使いますので、ダウンロードしてインストールします。
起動すると下図のように Preferences が開きますので、「Complex modification」に「オプションキーを単体で押した時に、英数・かなキーを送信する。(左オプションは英数キー、右オプションはかなキー)」というルールを選択し追加します。
スクリーンショット 2020-12-14 13.21.45.png
以上でOKです。

Linuxでの設定

Ubuntu20.04での設定例です。

キーボードレイアウトの変更

1.下記のコマンドを打ちます。

~% sudo dpkg-reconfigure keyboard-configuration

2.下図の様な画面が端末上に表示されるので、キーボードモデルに「Happy Hacking」を選択します。
Screenshot from 2020-12-14 21-50-12.png

3.後は順次下記の様に設定して行きます。
 ・「キーボードが由来する国」は「English(US)」
 ・「キーボードのレイアウト」は「English(US)」
 ・「AltGrとして機能させるキー」は「キーボード配置のデフォルト」
 ・「コンポーズキー」は「コンポーズキーなし」
 ・「Xサーバを強制終了するのに Contorol+Alt+Backspaceを使いますか?」は「いいえ」

以上でOKです。

Mozcの設定

1.タスクバーに表示されている「あ▼」の部分をクリックし、「ツール」⇒「プロパティ」の順に選択し、「一般」タブの「キー設定」の「キー設定の選択」編集ボタンを押すと下図のような「Mozcキー設定」画面が開きます。
Screenshot from 2020-12-14 22-14-14.png

2.キー設定をいじる前に、「編集」⇒「エクスポート」で適当なファイル名を付けて現在の設定を保存します。保存したファイルはバックアップとしてコピーを取っておきましょう。

3.保存したファイルは以下のようなフォーマットになっています。

keymap.txt

status  key command
Composition Backspace   Backspace
Composition Ctrl a  MoveCursorToBeginning
Composition Ctrl Backspace  Backspace
Composition Ctrl d  MoveCursorRight
Composition Ctrl Down   MoveCursorToEnd
Composition Ctrl e  MoveCursorToBeginning

ファイル中の status とモード名との対応は下表です。

モード名 status
変換前入力中 Composition
変換中 Conversion
直接入力 DirectInput
入力文字なし Precomposition
サジェスト選択中 Prediction
サジェスト表示中 Suggestion

4.テキストファイルから「key」の列が「Eisu」「Hiragana」の行を削除します。

5.ファイルの最下部に、下記の行を追記し、保存します。

DirectInput Hiragana    IMEOn
Precomposition  Hiragana    IMEOn
Composition Eisu    IMEOff
Precomposition  Eisu    IMEOff

6.編集したファイルを「インポート」すると、下表のエントリーが追加されます。

モード 入力キー コマンド
直接入力 Hiragana IMEを有効化
変換前入力中 Eisu IMEを無効化
入力文字なし Eisu IMEを無効化
入力文字なし Hiragana IMEを有効化

7.OKボタンで終了

左右のAltキーの割当

1.ホームディレクトリに下記のファイルを作成します。

$HOME/.Xmodmap
keycode 64 = Eisu_toggle
keycode 108 = Hiragana

2.下記の2つのスクリプトを作成します。ホームディレクトリの名称はご自分のものに置き換えてください。

kbd.sh
sleep 2

DISPLAY=":0"
HOME=/home/rattcv/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY HOME XAUTHORITY

setxkbmap
xmodmap $HOME/.Xmodmap
kbd_start_up.sh
#!/bin/sh
nohup /home/rattcv/kbd.sh >/dev/null 2>&1 &

3.実行属性を付けます。

~% chmod +x kbd.sh
~% chmod +x kbd_start_up.sh

4.次に「自動起動するアプリケーションの設定」を開き(タスクバーの一番下の「アプリケーションの表示」の選択窓に session と打つと絞り込まれる)、下図の様に kbd_start_up.sh を追加します。
Screenshot from 2020-12-19 11-00-55.png

以上で一度ログアウトするか再起動で望みのキーバンドになります。

macへの切り替え後の再接続時の対処

切替器でOSを切り替えたり、キーボードを抜き差しすると xmodmap の設定が消えてしまう為、対処を行います。
上述のスクリプトの内容も含め、下記の記事を参考にさせていただきました。

1.下記コマンドでHHKBのデバイス情報を取得してみます。

~% udevadm info -a --path=$(udevadm info -q path -n /dev/input/by-id/usb-Topre_Corporation_HHKB_Professional-event-kbd)

ずらっと情報が流れますが、今回はHHKBのデバイス情報特定の為に

 ATTRS{name}=="Topre Corporation HHKB Professional"

の部分を使います。
/etc/udev/rules.d/ 配下に下記の udev rules を作成します。

/etc/udev/rules.d/99-sample.rules
ACTION=="add", ATTRS{name}=="Topre*", RUN+="/home/rattcv/kbd_start_up.sh"

以上でOKです!

Windows10での設定

1.スタートメニューから「設定」を選択し、左側のタブから「言語」を選択後「オプション」押すと下記画面が表示されるので、「レイアウトを変更する」ボタンを押します。

win04.png

2.下図のダイアログが表示されるので、「英語キーボード(101/102キー)」を選択し、OKを押します。
win05.png

3.ありがたい事に alt-ime-ahk という今回の目的にぴったりと合うツールが公開されているので、これ使用させていただき左右の Alt キーでの ON/OFF を実現します。
zip を解凍すると alt-ime-ahk.exe という実行形式のファイルが展開されますので、これを実行するだけです。ショートカットを作成しスタートアップに登録するのが良いでしょう。

終わりに

うーん。結構めんどくさいですね笑
見落としてる設定もある気がするのですが、とりあえずこれで運用してみようと思います!

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
What you can do with signing up
3