キモオタクの部屋

終わりかけの大学生のブログ。不定期に更新します。

Capslockをレイヤーキーにする(Ubuntu)

こんばんは。

 

www.youtube.com

 

この動画で紹介れていたCapslockをレイヤーキー化してホームポジションから手を動かさずにバックスペースとかカーソルキーとかを操作するやつ、異様に便利ですよね。

 

しかし私は宗教上の都合でなるべくWindowsを使いたくないので、Ubuntuで同じようなことを実現する方法を探しました。結果、すげ〜綺麗に解決できたのでやり方をまとめておきます。ちなみにOSのバージョンは23.10を想定しています。

 

Capslockをレイヤーキーにする

上記の動画では割り当てをF13に変えていましたが、UbuntuだとHyperキーとかいう謎のキーの割り当てが空いている&変更が楽なのでHyperキーで行きます。

 

まずはtweaksをインストール

sudo apt install -y tweaks

 

アプリアイコンをクリックして起動

 

キーボードとマウス→アクティビティ画面のショートカット→追加のレイアウトオプション

 

Caps Lock behaviorを「Caps Lockを追加のHyperにする」にチェックをつける

 

そうしたら再起動して、晴れてCapslockキーはレイヤーキーに生まれ変わりま…

 

まだ作業は続きます。

 

この設定だけだとなぜかSuperキー(Windowsキーに相当するやつ)と競合しており、Superキーとしては機能しません。

 

再起動後

open /usr/share/X11/xkb/symbols/capslock

でxkbのCapslock設定ファイルを開き

xkb_symbols "hyper" {
    ~中略~
};

の部分を

xkb_symbols "hyper" {
    key <CAPS> { [ VoidSymbol ] };
    modifier_map Mod3 { <CAPS> };
    modifier_map Mod3  { <HYPR> };
};

のように書き換えます。保存したら再起動し、これでやっとCapslockキーはHyperキーとして振る舞うようになりました。

 

ちなみにこの方法は以下のブログで知りました。この場を借りてお礼申し上げます。マジであざす。

 

ujimushisradjp.hatenablog.jp

 

※この方法ではUbuntuをアップグレードした際に上書きされるらしいです。ujimushiさんはhomeディレクトリの/.configフォルダ内にある設定ファイルを弄ることを推奨sれていました。

 

キー入力をコマンドでエミュレートできるようにする

xteをインストール

sudo apt install xautomation

これでターミナル経由でキー入力をエミュレートできるようになります。例えば

xte 'key Return'

でエンターキーを入力できます。

ショートカットを設定する

いよいよ大詰めです。

 

設定→キーボード→ショートカットの表示とカスタマイズから

 

独自のショートカット

+ボタンから、例えばバックスペースを設定したいのであれば

 

のように設定します。xteコマンドの詳細については

xte -help

で詳しく出てくるので、それを読んでください。

 

いかがでしたか?

tweaksとxte、あとはUbuntuの標準機能のみで実現することができました。ちなみに私は大体以下のように設定しています。

では。