Logitech MX Master

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

MX Master は Logicool が発売しているコンピューターのマウス シリーズです。

使用方法

購入時に付属する Unifying Receiver USB ドングルを使用している場合、マウスは特別な設定を行わなくても動作するはずです。ドングルを PC に接続します。マウスの下にある switch ボタンを押してマウスがチャンネル 1 に設定されていることを確認し、ボタンが速く点滅し始めるまでボタンを押し続けます。数秒後に点灯し、接続されるようになります。接続されていないレシーバーに接続したい場合は、Logitech Unifying Receiver を参照してください。

Bluetooth を使用するために、マウスの底のチャンネルを変更して、connect ボタンをクリックしてください。それからお好きな Bluetooth マネージャでマウスを検索してペアリングを行ってください。今後は Bluetooth が有効になっている場合、チャンネルを切り替えたらすぐ接続されるようになります。スキャン時にマウスが表示されない場合、Bluetooth#スキャンしてもデバイスが表示されない を見てください。

マウスには 3 つのメジャーバージョンがあり、最新バージョンには 5 つのリビジョンがありますが、機能は同じです。

  • MX Master,
  • MX Master 2s,
  • MX Master 3:
MX Master 3 バリエーション
名前 リリース サポート? 販売?
MX Master 3 2019 Unifying Unifying + USB A-C
MX Master 3 for Mac 2020 Unifying USB C-C
MX Master 3 for business 2021 Bolt Bolt + USB A-C
MX Master 3S 2022
MX Master 3S for Mac Bolt USB C-C

追加ボタンのマッピング

logiopsAUR または logiops-gitAUR をインストールして、マウス設定をカスタマイズします:

  • プログラム可能なボタン
  • DPI の選択
  • Smartshift (超高速およびラチェットホイールモード)
  • スクロール速度
  • ジェスチャー

2022 年 8 月の時点で、logiops は新しいボルトレシーバーを介して接続されたデバイスを (まだ) サポートしていません。ボルトベースのデバイスのリストについては、ロジクール製品のリスト を参照してください。市場で入手可能なすべてのボルトベースのデバイスも Bluetooth 接続を備えています。したがって、代わりに Bluetooth を使用することが回避策になる可能性があります。

Xbindkeys だけを使用してデスクトップのショートカットを調整してカスタマイズすることもできますが、いくつかの注意点があります (以下のメモを参照)

Logiops

コマンドライン経由でアプリケーションとして実行するには、次のように実行します。

# logid

または、logid.service として 起動 します。

設定は /etc/logid.cfg にあります。ただし、パッケージには設定は含まれていません。使用するデバイスの名前を指定してこれを作成する必要があります。cli から起動してその名前を取得するには

# logid -v

検出されたデバイスの名前が検出されます。

次に、設定ファイルを作成して下さい。

CID (ボタンコード) の リスト を含む詳細については、設定形式のドキュメント を参照してください。および キーコードのリスト

この最小限の設定ファイルは、ジェスチャを無視して、各ボタンを通常のマウスボタンとして機能させるだけです。これにより、ゲームや Xbindkeys などで追加のボタンを通常どおりに使用できるようになります (下記を参照)

/etc/logid.cfg
devices: ({
  name: "Wireless Mouse MX Master 3";

  // A lower threshold number makes the wheel switch to free-spin mode
  // quicker when scrolling fast.
  smartshift: { on: true; threshold: 20; };

  hiresscroll: { hires: true; invert: false; target: false; };

  // Higher numbers make the mouse more sensitive (cursor moves faster),
  // 4000 max for MX Master 3.
  dpi: 1500;

  buttons: (

    // Make thumb button 10.
    { cid: 0x53; action = { type: "Keypress"; keys: ["KEY_FORWARD"]; }; },

    // Make top button 11.
    { cid: 0x56; action = { type: "Keypress"; keys: ["KEY_BACK"];    }; }

  );
});

より完全な機能を備えた設定については、logid.example.cfg を参照してください。

/etc/logid.cfg
devices: (
{
    name: "Wireless Mouse MX Master 3";
    smartshift:
    {
        on: true;
        threshold: 30;
    };
    hiresscroll:
    {
        hires: true;
        invert: false;
        target: false;
    }; 
    

    thumbwheel:
    {
        divert: true;
        invert: false;

        left: {
                mode: "OnInterval";
                interval: 2;
                action: {
                        type: "Keypress";
                        keys: ["KEY_VOLUMEDOWN"];
                };
        };
        right: {
                mode: "OnInterval";
                interval: 2;
                action: {
                        type: "Keypress";
                        keys: ["KEY_VOLUMEUP"];
                };
        };
    
        tap: {
            type: "Keypress";
            keys: ["KEY_MUTE"];
        };

    };
    dpi: 1000;

    buttons: (
        {
            cid: 0xc3;
            action =
            {
                type: "Gestures";
                gestures: (
                    {
                        direction: "Up";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_LEFTCTRL", "KEY_F10"];
                        };
                    },
                    {
                        direction: "Down";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_LEFTCTRL", "KEY_F7"];
                        };
                    },
#                    {
#                        direction: "Left";
#                        mode: "OnRelease";
#                        action =
#                        {
#                            type: "CycleDPI";
#                            dpis: [50, 500, 1000, 1500, 2000, 3000, 4000];
#                        };
#                    },
                    {
                        direction: "Left";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_LEFTMETA", "KEY_LEFT"];
                        };
                    },

#                    {
#                        direction: "Right";
#                        mode: "OnRelease";
#                        action =
#                        {
#                            type = "ToggleHiresScroll";
#                        }
#                    },
                    {
                        direction: "Right";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_LEFTMETA", "KEY_RIGHT"];
                        }
                    },

                    {
                        direction: "None"
                        mode: "NoPress"
                    }
                );
            };
        },
        {
            cid: 0xc4;
            action =
            {
                type = "ToggleSmartshift";
            };
        },
        {
            # Next tab instead of fwd in history, Comment to default behavior
            cid: 0x53;
            action =
            {
                type :  "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_PAGEUP"];
            };
        },
        {
            # Previous tab instead of back in history, Comment to default behavior
            cid: 0x56;
            action =
            {
                type :  "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_PAGEDOWN"];
            };
        }
    );
},
{
# Another device to configure
name: "Other Logitech USB Receiver";

}
);

Xbindkeys

物理的な操作 認識されるイベント
左ボタン button 1
ホイールボタン button 2
右ボタン button 3
ホイールを上に回す button 4
ホイールを下に回す button 5
ホイール近くの "i" ボタン Linux では認識されません
サムホイールを右 (上) に回す button 6
サムホイールを左 (下) に回す button 7
サイドの下側ボタン button 8
サイドの上側ボタン button 9
親指ボタン Ctrl+Alt+Tab

ノート:

  • 親指ボタンを押しながらマウスカーソルを移動することはできませんが、他のアクション (ホイールの回転やボタンの押下) は使うことができます。Ctrl+Alt+Tab イベントは親指ボタンを離したときに送信されます。
  • 必要であれば、Windows や Mac と同じように親指ボタンを使うことができます。KDE では System settings → Shortcuts → Global Shortcuts → KWin → Show all windows from all desktops がデフォルトでは ctrl+f10 に設定されていますが、ctrl+alt+tab に設定することが可能です。
  • ホイールの下の "I" ボタンはデフォルトでは Linux では検出できませんが、ホイールのフリーモードとラチェットモード間の切り替えとして機能します。logid を使用すると、再割り当てして使用できます。
  • Logitech ジェスチャ (親指を押しながらマウスを上下左右に動かす) は Linux では検出されませんが、logid によってソフトウェアに実装されます。

垂直ホイールとその近くの 2 つのボタンはすぐに機能するはずですが、親指ボタンには特別な処理が必要なため、残りの部分を再マップする必要があるかもしれません。

マウスのボタンを再マップするには、パッケージ xbindkeys および xautomation を使います。

xbindkeys はボタンをリダイレクトし、xte (xautomation に含まれています) はカスタムキーの押下を実行します。これを行うには、ホームディレクトリに .xbindkeysrc という名前の設定ファイルを作成します。

以下は、垂直スクロールホイールとその近くにある 2 つのボタンの設定例です:

# thumb wheel up => increase volume and unmute      
"amixer -D pulse set Master 4000+ unmute"
   b:6                                   
                                        
# thumb wheel down => lower volume       
"amixer -D pulse set Master 4000-"       
   b:7                                   
                                        
# backward button => previous song       
"xte 'key XF86AudioPrev'"                
   b:8                                   
                                        
# forward button => next song            
"xte 'key XF86AudioNext'"                
   b:9

PulseAudio を使用する場合 (Xbindkeys#ボリューム操作を参照):

# thumb wheel up => increase volume
"pactl set-sink-volume @DEFAULT_SINK@ +2%"
   b:6

# thumb wheel down => lower volume
"pactl set-sink-volume @DEFAULT_SINK@ -2%"
   b:7

ボリュームを変更したときに視覚的に分かるようにしたい場合、以下の設定を使ってください (GNOME と KDE でテスト済み):

# thumb wheel up => increase volume
"xte 'key XF86AudioRaiseVolume'"
   b:6

# thumb wheel down => lower volume
"xte 'key XF86AudioLowerVolume'"
   b:7

設定したら xbindkeys を起動してください。問題なければデスクトップ環境の 自動起動 リストに追加すると良いでしょう。

親指ボタンは特殊です。Windows や Mac では Logitech のソフトウェアを使って、最大5つまでのアクション (ボタンを押しながら四方向にマウスを移動するのとボタン押下) をマッピングすることができます。2015年11月現在、Arch で方向機能を使う方法はありません。

一連のキーを送信するため、xbindkeys が混乱する場合があります。短いスリープを挿入することで xbindkeys が最初のキーに反応するようにすることができます:

# thumb button => play/pause music         
# Credit to gregmuellegger https://bbs.archlinux.org/viewtopic.php?pid=1551271#p1551271                               
# We need a sleep here since the button triggers a few more key codes. 
# It also triggers Control+Mod2+Control_L and Alt+Mod2+Alt_L. The sleep       
# prevents that X receives those keypresses simultaniously. Therefore they    
# might interfere and trigger unwanted actions. By the sleep we make sure that
# the Alt+Left is receive as distinct event.                                  
"sleep 0.1 && xte 'key XF86AudioPlay'"                                        
   m:0xc + c:23

~/.xbindkeysrc に変更を加えたら xbindkeys のプロセスを再起動してください:

$ pkill xbindkeys && xbindkeys

電源

Logitech Unifying Receiver に書かれているようにバッテリーの状態を読み込むことができます。Solaar (solaar) にはシステムトレイユーティリティが付属します。

Smart Shift

Smart Shift とは、スクロールホイールの回転速度に基づいて、スクロールホイールがラチェットモードからスムーズスクロールに自動的に切り替わることです。

Logiops

任意のマウスボタンをモード間の切り替えに割り当てることができます。デフォルト設定では、Smart Shift のしきい値は約 20 で、上部のボタン (ホイールのすぐ下) は常にスムーズとラチェットモード (ゆっくりスクロールするときのみクリック音) を切り替えるために使用されます。しきい値の数値を増やすには、スムーズスクロールモードに切り替える前にホイールをより速く回転させる必要があります。

デフォルト設定を再現するには、上記のように設定ファイルでこのスニペットを使用します:

/etc/logid.cfg
...
  smartshift: { on: true; threshold: 20; };
  buttons: (
    // Make top button (0xc4) switch modes
    { cid: 0xc4; action = { type = "ToggleSmartshift"; }; },
...

必要に応じて、しきい値を変更するか、別のボタン (cid) を使用します。

Solaar

logid の代わりに、Solaar を使用して、マウスホイールモード (ハイパーファストとクリックツークリックの間) の変更の感度を変更することもできます。solaar をインストールしてください。スライダーが表示され、0 〜 50 (両端を含む) の範囲で設定できます。0 は常にハイパーファストモードであることを意味し、50 は常にラチェットモードであることを意味します。

感度を変更するには、この値を 0 〜 50 の間で変更します。

トラブルシューティング

Bluetooth モードでのマウスの動きに遅延

Bluetooth マウス#マウスの遅延 を参照してください。

数秒間のアイドリング後に Bluetooth モードでマウスの動きが遅れる

デバイスをブラックリストに登録するには、電源管理# USB の自動サスペンド を参照してください。

Windows と比較して、サムホイールの水平スクロール動作が異なる (反転)

これは、垂直方向/水平方向の奇妙な動作 (癖) を修正するために、libinput ([1]) に追加された既知の動作です。このマウス (および他の多くの Logitech 製品も) のスクロール ホイールの構成は異なります。ただし、別のオペレーティングシステムでこのマウスを頻繁に使用し、この自動修正動作が不便である場合は、明示的にオフにすることができます。

/etc/libinput/local-overrides.quirks
...
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0x4082
ModelInvertHorizontalScrolling=0

# MX Master 3 has a different PID on bluetooth
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0xB023
ModelInvertHorizontalScrolling=0
...

他のデバイス用にパッチが適用された互換性のリストについては、[2] も参照してください。

MX Master 3 でスクロールイベントが見つからない

スクロールホイールがラチェットモードで、スクロールの方向を切り替えると (瞬時に 2 ステップ上にスクロールし、1 ステップ下にスクロール)、最後のステップが選択されないことがあります。これは、スムーズスクロールが無効になっている場合、または qt ウィジェットベースのアプリケーションでスクロールホイールを使用してタブを切り替えている場合に、Firefox で予測できないスクロールが発生する可能性があります。これは、MX Master 3 が高解像度スクロールデバイスとして登録されており、ラチェットモードでも高解像度イベントを送信し続けるためです [3][4]

高解像度イベントをフィルタリングして除外するには、次を使用します:

/etc/libinput/local-overrides.quirks
...
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0x4082
ModelInvertHorizontalScrolling=0

# MX Master 3 has a different PID on bluetooth
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0xB023
ModelInvertHorizontalScrolling=0
...