**ムーサー:**  
Logi-Plus マウスソフトウェアのオープンソース代替品。

2026/03/14 3:42

**ムーサー:** Logi-Plus マウスソフトウェアのオープンソース代替品。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

改訂版概要

Mouserは、Logitechのクラウド依存型Options+ソフトウェアに代わる軽量でオープンソースな代替手段です。macOSまたはWindows上でLogitech MX Master 3Sマウスのすべてのプログラム可能ボタンを直接リマップでき、テレメトリーもアカウントも不要で、ローカルJSON設定ファイルのみで動作します。このツールは、フォアグラウンドアプリが変わると自動的に切り替わるアプリケーション別プロファイルをサポートし、22の組み込みアクション(DPI調整やスクロール反転など)を備えています。macOSではCGEventTap、WindowsではSetWindowsHookExWというネイティブシステムフックとHID++ 2.0を使用してジェスチャーボタンを処理します。Mouserはマウスの再接続も自動で管理し、UIに「Connected/Not Connected」のバッジを表示し、ジェスチャーアクションが実行できない場合は生入力またはミドルクリックにフォールバックします。

計画されているアップデートでは、MX Master 3S以外のデバイス対応拡張、カスタムキーコンボ追加、自動起動、スクロール改善、スワイプジェスチャー、アプリごとの自動プロファイル作成、設定のインポート/エクスポート、Linux版への移植、およびプラグインアーキテクチャを追加することが目標です。すべてのカスタマイズをユーザー側の機器に留めることで、Mouserはプライバシー保護されたマウス設定を提供しつつ、MITライセンス下でコミュニティへの貢献を奨励します。このプロジェクトは、他のハードウェアベンダーが専有クラウドベースソリューションよりもオープンかつローカルなツールを採用する影響力を持つ可能性があります。

本文

Mouser – MX Master 3S ボタンリマッパー

軽量・オープンソースで、Logitech Options+ の完全ローカル代替。
Logitech MX Master 3S のすべてのプログラマブルボタンを再設定できます。
テレメトリーなし、クラウド無し、Logitech アカウント不要。


主な機能

  • macOS 対応 – CGEventTap、Quartz CGEvent、NSWorkspace を使用し完全互換(感謝 @andrew‑sz)。
  • 6 つすべてのプログラマブルボタンを再設定
    • 中クリック、ジェスチャーボタン、戻る・進む、左右スクロール。
  • アプリ別プロファイル – アプリ切替時に自動でボタン割り当てを変更(例:Chrome と VS Code)。
  • 22 の組み込みアクション
    ナビゲーション、ブラウザ、編集、メディアなど。
  • DPI / ポインタ速度制御 – 200–8000 DPI のスライダーとプリセット。HID++ 経由で同期。
  • スクロール方向反転 – 垂直・水平を個別に切替可。
  • ジェスチャーボタンサポート – Bluetooth 上で HID++ 2.0 を完全ディバーブ(Logitech ソフト不要)。
  • 自動再接続 – 電源循環や切断を検知し、アプリ再起動なしで機能復旧。
  • ライブ接続状態表示 – UI に「Connected / Not Connected」のリアルタイムバッジ。
  • モダン Qt Quick UI – ダーク Material テーマ、インタラクティブマウス図解、ボタンアクションピッカー。
  • システムトレイ – バックグラウンドで実行し、閉じるとトレイへ。トレイメニューからリマッピングを切替可。
  • フォアグラウンドアプリ自動検出 – アクティブウィンドウを 300 ms ごとにポーリングして即座にプロファイル切替。
  • 外部サービス不要 – 設定はローカル JSON に保存。全処理はデバイス上で完結。

スクリーンショット

UI は MX Master 3S のインタラクティブ図を表示します。任意のボタンのホットスポット点をクリックするとアクションが変更できます。


対応機器

プロパティ
デバイスLogitech MX Master 3S
Product ID0xB034
プロトコルHID++ 4.5 (Bluetooth)
接続方式Bluetooth(USB レシーバーでも基本ボタンは動作)

注意:構成は他の Logitech HID++ マウスにも拡張可能ですが、テスト済みなのは MX Master 3S のみです。


デフォルトマッピング

ボタンデフォルトアクション
戻るボタンAlt+Tab(ウィンドウ切替)
進むボタンAlt+Tab(ウィンドウ切替)
中クリックPass‑through(そのまま送信)
ジェスチャーボタンPass‑through
左スクロールブラウザ Back
右スクロールブラウザ Forward

利用可能アクション

  • Navigation – Alt+Tab、Alt+Shift+Tab、Show Desktop (Win+D)、Task View (Win+Tab)
  • Browser – Back、Forward、Close Tab (Ctrl+W)、New Tab (Ctrl+T)
  • Editing – Copy、Paste、Cut、Undo、Select All、Save、Find
  • Media – Volume Up、Volume Down、Volume Mute、Play/Pause、Next Track、Previous Track
  • Other – Do Nothing(Pass‑through)

ダウンロード & 実行

インストール不要。ダウンロードして解凍し、ダブルクリック。

  1. Download → Mouser.zip
    (44 MB)
  2. ZIP を任意のフォルダーに展開(デスクトップ、ドキュメント等)
  3. Mouser.exe
    を実行

アプリが起動するとすぐにマウスボタンのリマッピングが有効になります。


期待できること

  • 設定ウィンドウが開き、マウス図解が表示されます。
  • システムトレイアイコンが時計付近(右下)に出現します。
  • ボタンリマップは即座に有効です。
  • ウィンドウを閉じてもアプリは終了せずトレイで動作し続けます。
  • 完全に終了するには、トレイアイコンを右クリック → Quit Mouser

初回注意:Windows SmartScreen が警告する場合があります → 「More info」→「Run anyway」を選択。
Logitech Options+ は実行していないこと(HID++ アクセスと競合)を確認してください。設定は自動で

%APPDATA%\Mouser
に保存されます。


ソースからのインストール

前提条件

  • Windows 10/11 または macOS 12+ (Monterey)
  • Python 3.10+(実際に 3.14 でテスト)
  • Logitech MX Master 3S が Bluetooth もしくは USB レシーバーでペアリング済み
  • Logitech Options+ は 起動していないこと
  • macOS の場合:アクセシビリティ許可が必要(
    System Settings → Privacy & Security → Accessibility

手順

# 1. リポジトリをクローン
git clone https://github.com/TomBadash/MouseControl.git
cd MouseControl

# 2. 仮想環境を作成
python -m venv .venv

# 3. アクティベート
# Windows (PowerShell / CMD)
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate

# 4. 依存関係をインストール
pip install -r requirements.txt

主要ライブラリ

パッケージ用途
PySide6Qt Quick / QML UI フレームワーク
hidapiHID++ 通信(ジェスチャーボタン、DPI)
pystrayシステムトレイアイコン
Pillowアイコン生成用画像処理

実行方法

# 選択肢 A: 直接実行
python main_qml.py

# 選択肢 B: バッチファイルを使用(コンソールウィンドウ付き)
Mouser.bat

# 選択肢 C: デスクトップショートカットを使用(コンソールなし)
# Mouser.lnk をダブルクリック

Tip: コンソール無しで実行したい場合は

pythonw.exe main_qml.py
もしくは
.lnk
ショートカットを利用してください。


デスクトップショートカットの作成

Mouser.lnk
が付属しています。手動で作る場合:

$s = (New-Object -ComObject WScript.Shell).CreateShortcut("$([Environment]::GetFolderPath('Desktop'))\Mouser.lnk")
$s.TargetPath = "C:\path\to\mouser\.venv\Scripts\pythonw.exe"
$s.Arguments   = "main_qml.py"
$s.WorkingDirectory = "C:\path\to\mouser"
$s.IconLocation = "C:\path\to\mouser\images\logo.ico, 0"
$s.Save()

ポータブルアプリのビルド

誰でも Python をインストールせずに実行できる

Mouser.exe
を作成するには:

# 1. PyInstaller を仮想環境内でインストール
pip install pyinstaller

# 2. spec ファイルを使ってビルド
pyinstaller Mouser.spec --noconfirm

# あるいはビルドスクリプトだけ実行
build.bat

出力フォルダーは

dist\Mouser\
。そのフォルダ全体を ZIP 化して配布します。


アーキテクチャ概要

┌─────────────┐     ┌──────────┐     ┌────────────────┐
│  Mouse HW   │────▶│ Mouse    │────▶│ Engine         │
│ (MX Master) │     │ Hook     │     │ (orchestrator) │
└─────────────┘     └──────────┘     └───────┬────────┘
                         ▲                    │
                block/pass           ┌────▼────────┐
                                         │ Key         │
┌─────────────┐     ┌──────────┐        │ Simulator   │
│ QML UI      │◀───▶│ Backend  │        │ (SendInput) │
│ (PySide6)   │     │ (QObject)│        └─────────────┘
└─────────────┘     └──────────┘
                         ▲
                ┌────┴────────┐
                │ App         │
                │ Detector    │
                └─────────────┘
  • Mouse Hook (
    mouse_hook.py
    )
    – Windows の低レベルフック。サイドボタン、中クリック、左右スクロールを捕捉。
  • ジェスチャーボタン検出 – HID++ 2.0 → Raw Input フォールバック → 中クリックフォールバックの三層構造。
  • App Detector (
    app_detector.py
    )
    – 300 ms ごとにアクティブウィンドウをポーリングし、プロファイル切替を即時実行。
  • Engine (
    engine.py
    )
    – フック ↔ シミュレータ ↔ 設定を統括。再接続やプロファイル切替をフックの再起動無しで処理。

設定

すべての設定はローカル JSON に保存されます。

  • Windows:
    %APPDATA%\Mouser\config.json
  • macOS:
    ~/Library/Application Support/Mouser/config.json

機能:

  • 複数プロファイル(名前付き)とボタン割り当て。
  • プロファイルごとのアプリ関連付け(
    .exe
    名のリスト)。
  • グローバル設定:DPI、スクロール反転、起動オプション。
  • 旧バージョンからの自動マイグレーション。

プロジェクト構成

mouser/
├── main_qml.py              # アプリケーションエントリ
├── Mouser.bat               # クイック起動バッチファイル
├── README.md
├── requirements.txt
├── .gitignore
│
├── core/                    # バックエンドロジック
│   ├── engine.py            # コアオーケストレータ
│   ├── mouse_hook.py        # 低レベルフック & HID++ リスナー
│   ├── hid_gesture.py       # HID++ ジェスチャディバーブ
│   ├── key_simulator.py     # SendInput アクションシミュレータ
│   ├── config.py            # JSON 設定マネージャ
│   └── app_detector.py      # フォアグラウンドアプリポーリング
│
├── ui/                      # UI レイヤー
│   ├── backend.py           # QML ↔ Python ブリッジ
│   └── qml/
│       ├── Main.qml          # アプリシェル
│       ├── MousePage.qml     # マウス図解&プロファイル管理
│       ├── ScrollPage.qml    # DPI スライダー & スクロール反転
│       ├── HotspotDot.qml    # インタラクティブボタンオーバーレイ
│       ├── ActionChip.qml    # 選択可能アクションピル
│       └── Theme.js          # カラー/定数共有
│
└── images/
    ├── mouse.png            # MX Master 3S 図解
    ├── logo.png             # Mouser ロゴ
    ├── logo.ico             # ショートカット用多サイズアイコン
    ├── logo_icon.png        # 背景付き正方形アイコン
    ├── chrom.png            # Chrome アイコン
    ├── VSCODE.png           # VS Code アイコン
    ├── VLC.png              # VLC アイコン
    └── media.webp           # Windows Media Player アイコン

UI の概要

スライド式サイドバーから 2 ページにアクセス。

  1. Mouse & Profiles

    • 左パネル:プロファイル一覧(デフォルトは「All Apps」、アプリ別)。
    • 右パネル:インタラクティブマウス図解。ホットスポット点をクリックしてアクションを選択。
    • プロファイル追加:下部の ComboBox に既知アプリ一覧が表示され、「+」をクリックするとアプリ別プロファイル作成。
  2. Point & Scroll

    • DPI スライダー(200–8000)とクイックプリセット。
    • 垂直・水平スクロール反転の独立切替トグル。

現状の制限

  • Windows と macOS のみ – Linux は未対応。
  • MX Master 3S だけ – HID++ インデックスはハードコード。
  • Bluetooth 推奨;USB レシーバーは基本ボタンのみサポート。
  • Logitech Options+ と競合するため、起動前に Options+ を終了してください。
  • スクロール反転は実験段階で、一部アプリでは完全に機能しない可能性。

今後の予定

  • 他の Logitech HID++ マウス(MX Master 3、MX Anywhere 3 等)への拡張。
  • カスタムキーコンボ(例:Ctrl+Shift+P)。
  • Windows でレジストリまたはタスクスケジューラ経由で自動起動。
  • スクロール反転の改善(ドライバレベル解決策)。
  • ジェスチャーボタンアクション – マルチアクション用スワイプジェスチャー。
  • アプリ別プロファイルの自動生成。
  • 設定のエクスポート/インポート。
  • トレイアイコンに現在のプロファイル名を表示。
  • Linux への移植(libevdev / evdev フック)。
  • サードパーティアクションプロバイダー用プラグインシステム。

コントリビュート

  1. リポジトリをフォークし、機能ブランチを作成。
  2. 開発環境をセットアップ(
    Installation
    を参照)。
  3. MX Master 3S でテスト後、変更をコミット。
  4. Pull Request を送信し、詳細説明を書く。

具体的に手助けが必要な分野

  • 他の Logitech HID++ デバイスでのテスト
  • スクロール反転機能の改善
  • Linux ポーティング
  • UI/UX の洗練とアクセシビリティ

プロジェクトへの支援

Mouser が Logitech Options+ をインストールせずに済むのであれば、開発資金をサポートしてください。

すべての助力はプロジェクト継続に役立ちます。ありがとうございます!


ライセンス

MIT License.

謝辞

@andrew‑sz – macOS ポート(CGEventTap マウスフック、Quartz キーシミュレーション、NSWorkspace アプリ検出、NSEvent メディアキーサポート)。

*Mouser は Logitech と提携しておらず、承認も受けていません。 “Logitech”、 “MX Master” 及び “Options+” は Logitech International S.A. の商標です。

同じ日のほかのニュース

一覧に戻る →

2026/03/14 7:52

オープンソースドキュメントサイトで、39 個の Algolia 管理キーが漏洩していることを発見しました。

## Japanese Translation: ## 要約 この記事は、Algolia の DocSearch プログラムに広く蔓延するセキュリティ欠陥を暴露しています。多数のオープンソースプロジェクトが誤ってフルパーミッション API キーを公開サイトに掲載し、即座に脅威を生み出しました。 - **主なインシデント**:最初に報告された侵害は 10 月に *vuejs.org* で発生し、サイトがフルアクセスの管理者キーで動作していました。Vue はその漏洩を認め、レポーターを Security Hall of Fame に追加し、キーをローテーションしました。 - **問題の範囲**:調査により、影響を受けた 39 件すべての DocSearch デプロイメントがフロントエンド構成で管理者レベルのキーを使用していたことが判明しました(35 件は数千件の `docsearch-config` ファイルをスクレイピングし、約15 000 のドキュメントサイトをクロールした結果、4 件は GitHub 履歴分析で発見されました)。 - **漏洩した権限**:リークされたキーは検索、addObject、deleteObject、deleteIndex、editSettings、listIndexes、browse、analytics、logs、および NLU アクセスを含む広範な操作を許可しました。 - **高プロファイルの被害者**:Home Assistant(約85 k GitHub スター)、KEDA(CNCF プロジェクト)、vcluster(10万件以上のインデックスレコード)などが露出対象でした。 - **根本原因**:開発者は意図した検索専用キーではなく、書き込みまたは管理者キーを公開フロントエンド構成に誤って埋め込んでしまいました。 - **ユーザーと企業へのリスク**:攻撃者は任意のレコードを追加・変更・削除し、インデックス全体を削除したり、ランキング設定を変更したり、すべてのインデックス済みコンテンツをエクスポートしたり、悪意あるリンクで検索結果を汚染したり、フィッシングリダイレクトを開始したり、検索機能を完全に停止させる可能性があります。企業は評判損失と運用障害に直面しました。SUSE/Rancher は公開後 2 日以内にキーを取り消し、Home Assistant は修復を開始していましたが、報告時点では元のキーをアクティブなままでした。 - **著者のアウトリーチ**:著者は数週間前に Algolia に漏洩したすべてのキーの完全リストをメールで送付しましたが、返答はありませんでした。残りのすべてのキーは現在も有効です。 - **手法**:約3 500 のアーカイブ済み `docsearch-config` ファイルをスクレイピングし、15 000 近いドキュメントサイトで正規表現による埋め込みクレデンシャルのクロール、GitHub コード検索、および TruffleHog を 500 以上のリポジトリに対して実施しました。 - **将来展望と修復推奨**:誤設定されたキーは39 件を超えている可能性があります。DocSearch を運用している場合、フロントエンド構成に埋め込まれたキーが **検索専用** キーであることを確認し、公開サイト上で書き込み/管理者キーの使用を避けてください。 このインシデントは、Algolia の DocSearch プログラムにおいて開発者が意図せずフルアクセスキーをスケールして露出させるという体系的な問題を浮き彫りにし、オープンソースエコシステム全体でより厳格なキー管理実践の必要性を強調しています。

2026/03/13 21:46

はい。ご自身のハードウェア上で多くのAIモデルをローカルに実行することが可能です。 典型的な手順は次のとおりです。 1. **モデルを選択**(例:GPT‑2、LLaMA、Stable Diffusionなど)。 2. **依存関係をインストール**。PyTorchやTensorFlow、そして対象モデルのリポジトリをセットアップします。 3. **重みファイルをダウンロード**してローカルに保存します。 4. **推論を実行**。スクリプトやAPIラッパー経由でローカル上で動作させます。 GPT‑4規模の大型モデルの場合は、強力なGPUや専用ハードウェアが必要になります。一方、より小型・蒸留済みバージョンなら一般的なノートPCでも実行可能です。

## Japanese Translation: 提供された要約は明確で簡潔であり、リストのすべての重要ポイントを正確に反映しつつ、有用な文脈フレームワークも提示しています。修正は不要です。

2026/03/11 23:34

**Show HN:Channel Surfer – YouTubeをまるでケーブルTVのように見る**

## Japanese Translation: **概要:** Channel Surfer Press は準備が整い、すでにRDUによって構築されています。