1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxデスクトップでキーリマッパを使ってMacのキーボード操作に近づける

1
Last updated at Posted at 2026-01-18

前回の記事に続いてMacに操作を近づけるシリーズです

対象の環境

今回の対象もLinux Mintでデスクトップ環境はCinnamonです。

※今回使用するxremapはx11もWaylandも対応しているようです。

やりたいこと概要

MacだとCtrlキーのショートカットで以下のような操作が出来ます。
主にテキストを編集するときの操作です。

キー 効果
Ctrl + a カーソルを行頭に移動する
Ctrl + e カーソルを行末に移動する
Ctrl + p カーソルを↑に移動する
Ctrl + n カーソルを↓に移動する
Ctrl + f カーソルを→に移動する
Ctrl + b カーソルを←に移動する
Ctrl + h Backspace
Ctrl + d Delete
Ctrl + k カーソルの位置から行末までを削除する

※他にも色々ありますが、私がよく使うやつを上げています。

これに慣れるとカーソルキーを押す事がほぼなくなるので、ホームポジションから手を離すことが減りかなり快適です。
そしてMacはCmdがあるので例えば Cmd + a でテキスト全選択が出来るので上記のショートカットになっていても問題ないです。

Cmdキーの利点は他にもあって、例えばLinuxデスクトップを使っていると普段は Ctrl + cでコピーの操作をしているけどターミナルでは Shift + Ctrl + cでないとコピー操作にならなかったりします。地味にストレスを感じるポイントです(ターミナルでは Ctrl + c がプロセスの強制終了のショートカットなので)
Macだと Cmd + c がどのアプリでもコピーとして使えます。この快適さもLinuxで再現させたいです。

xremapのインストール

キーリマップツールのxremapを使います。これを使うことで上記の環境を再現させることが出来ます。
xremapはrust製で、rustのパッケージマネージャであるcargo経由でインストール出来ます。cargoはrustupをインストールすると使えるようになります。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

rustupをインストールするとpathの設定もされると思います。使っているshellの設定ファイルに以下のような設定が増えているはずです。

. "$HOME/.cargo/env"

shellを再起動してpathが通っているか確認してください。($HOME/.cargo/binにpathが通っているはず)
そして次のコマンドでxremapをインストールします。

cargo install xremap --features x11

わたしの使っているLinux Mintがx11環境なのでx11指定しています。(xremapはwaylandも対応しているようです。)

追記

Ubuntu標準(Gnome)の場合

sudo apt install build-essential
cargo install xremap --features gnome

xremap設定

設定の方針ですが、最初に説明したCtrlキーとのショートカットでカーソル移動へのリマップなどを設定します。
それだけだと元々のショートカットが使えなくなってしまうので、MacでいうCmdキーの役割をAltキーに持たせるための設定をします。

私がLinuxを入れて使っているPCのキーボードが以下の感じなので、キーの位置てきにAltが一番よさそうなのでAltにしました。

IMG_2045.JPG

設定ファイルは以下の感じです。
Ctrlと被っていないものまでAltにリマップしているのは、普段使いのMacと同じ操作性にするためです。またCaps LockとCtrlの入れ替えもxremapでやっています。

xremapはアプリケーション毎に設定することも出来るので、ターミナルだけは分けて設定しています。
ターミナルはもともとCtrlでのショートカットでカーソル移動が出来るのでそのあたりはいじらずAlt-c,vでのコピペのキーを統一させる設定にしています。

$HOME/.config/xremap/config.yml
modmap:
  - name: CapsLock to Ctrl
    remap:
      CapsLock: Ctrl_L

keymap:
  - name: Global Mac Bindings (Except Terminals)
    application:
      not: [Gnome-terminal, gnome-terminal-server]
    remap:
      Alt-c: Ctrl-c
      Alt-v: Ctrl-v
      Alt-x: Ctrl-x
      Alt-z: Ctrl-z
      Alt-a: Ctrl-a
      Alt-s: Ctrl-s
      Alt-f: Ctrl-f
      Alt-t: Ctrl-t
      Alt-w: Ctrl-w

      Ctrl-p: Up
      Ctrl-n: Down
      Ctrl-b: Left
      Ctrl-f: Right
      Ctrl-a: Home
      Ctrl-e: End
      Ctrl-h: BackSpace
      Ctrl-d: Delete
      Ctrl-k: [Shift-End, BackSpace]

  - name: Terminal Specific Bindings
    application:
      only: [Gnome-terminal, gnome-terminal-server]
    remap:
      Alt-c: Ctrl-Shift-c
      Alt-v: Ctrl-Shift-v

notやonlyの個所で指定しているアプリケーション名はxpropコマンドで取得できます。
ターミナルで以下のコマンドを実行すると、マウスカーソルが+の形になります。この状態で調べたいアプリのWindowをクリックすると名前が出てきます。

xprop | grep WM_CLASS

Waylandの環境でアプリケーション名を調べる方法

※Ubuntuでの操作方法です
Alt + F2キーを押して、lgとコマンドを入れる。
ツールが起動するので、右上のWindowsを選択する。そこに現在開いているアプリの一覧がでる。

image.png

wmclassの欄に書かれている名前をアプリケーション名に指定します。

xremapのGnome拡張をインストールする

Ubuntu Gnome(Waylandの環境)だと、これを入れないとアプリケーション名の指定が効きません。
※x11環境の場合は不要です

sudo apt install gnome-browser-connector

Firefoxで
https://extensions.gnome.org/
にアクセスして、サイトの指示に従って拡張機能をインストールする。

その後、サイト上でxremapで検索してxremap用の拡張をインストールします。
https://extensions.gnome.org/extension/5060/xremap/

image.png
右上の on にするとインストールできます。

ここで、一度OS再起動させます。

xremap起動させる

xremapを動かすためにユーザーをinputグループに所属させます。

sudo usermod -aG input $USER
echo 'KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"' | sudo tee /etc/udev/rules.d/99-input.rules

# 設定を反映
sudo udevadm control --reload-rules && sudo udevadm trigger

systemdで起動させるのでsystemdの設定を書きます。

$HOME/.config/systemd/user/xremap.service
[Unit]
Description=xremap daemon
# デスクトップ環境が完全に立ち上がるのを待つ
After=graphical-session.target

[Service]
Type=simple
# 起動前に5秒待機(デバイスやディスプレイの準備待ち)
ExecStartPre=/bin/sleep 5
ExecStart=/home/user/.cargo/bin/xremap /home/user/.config/xremap/config.yml
# 失敗しても自動で再試行する
Restart=always
RestartSec=5
Environment=DISPLAY=:0

[Install]
# ログイン時に確実に実行されるように指定
WantedBy=default.target

起動前に5秒待機がポイントです。(ここでかなりはまりました)
xremapサービスを有効化します。

systemctl --user enable xremap
systemctl --user start xremap

これで再起動するとMacのようなショートカットで操作出来るようになると思います。

1
1
0

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
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?