LinuxにてLogicool K380のファンクションキーを、fnキーを押さずに使えるようにするために行ったこと
LogicoolのBluetoothキーボードであるK380のファンクションキー(F1〜F12)には、ペアリングするデバイスの切り替えや、メディア操作、音量変更などの機能が割り当てられています。したがって、F1〜F12の各々のキーを、本来の(普通の)ファンクションキーとして使うためには、fnキーを同時に押さなければならないという仕様になっています。 https://i.gyazo.com/89ca993c8a44233d6ceb7b12769f8630.jpg
(K380のfnキー)
Linuxにおいて、その仕様を逆にする(すなわち、fnキーを同時に押していないときは普通のファンクションキーとして機能し、fnキーを同時に押せば、割り当てられている各機能が発動するようにする)ために行った設定を紹介します。 下記の手順を一度実行すれば、以降は常にその設定が有効になっています(再起動や再ログインの後でも有効)。
実行環境
必要なもの
GCCがインストールされていない場合は、あらかじめインストールしておきます。 $ sudo pamac install gcc
設定の手順
k380-function-keys-confのReleasesページから、Source code(zipまたはtar.gz)をダウンロードし、そのファイルを解凍して、できたフォルダ(k380-funtionkeys-conf-1.0)をLinuxのホームディレクトリに置きます。 端末でそのフォルダに移動。
$ cd ~/k380-function-keys-conf-1.0
そしてbuild.shを実行。
$ sh build.sh
すると、端末が下記の画像のように出力してきます。
この出力部分の2行目(sudo cpから--reloadまで)はコマンドであり、これを端末で実行せよという意味の出力となっていますので、この行をマウスで選択して、Ctrl + Shift + Cなどと操作してクリップボードにコピーします。
https://gyazo.com/3ead347e94a8ab1f113fb550263a8acb
(sudo cp の直後の部分の文字はユーザーごとに異なっています)
コピーしたそのコマンドを、端末の新しい行に貼り付けて(ショートカット:Ctrl + Shift + V)、Enterキーを押すと、そのコマンドが実行されます。
コマンドの実行例
$ sudo cp /your-build-path/80-k380.rules /etc/udev/rules.d/ && sudo udevadm control --reload
次に、ファイラで/devというディレクトリを開くと、ファイル名がhidrawという文字列で始まっている数個のファイルがあると思います。
https://gyazo.com/21dc7d0ca7a053d19154e786bc55dd9a
これらのファイルのうちで、ファイルの更新日時が、K380をLinuxにペアリングした時刻となっているものがあります(上掲の画像ではhidraw4が該当)。下記のコマンドのXの一字を、このファイル名の末尾の字である4で上書きします。
$ sudo ./k380_conf -d /dev/hidrawX -f on
上書きすると、下記のようになります。このコマンドを端末で実行します(上掲のbuild.shを実行したのと同じディレクトリで実行する)。
$ sudo ./k380_conf -d /dev/hidraw4 -f on
これで完了です。
なお、上述の~/k380-function-keys-conf-1.0というフォルダは、この設定が終わった後でも、その内部のファイルが随時更新されていくかもしれないので、消さずに置いておくほうがよいかもしれません。
備考
本記事では、上掲のsudo cp〜--reloadというコマンドと、sudo ./k380_conf -d /dev/hidraw4 -f onというコマンドを実行する順番が、GithubのREADMEの記述と逆になっていますが、私の環境では問題はないようでした。 参考にしたページ