{"id":48856832,"url":"https://github.com/warasugitewara/mouse-wheel-tool","last_synced_at":"2026-04-15T13:04:23.525Z","repository":{"id":336942458,"uuid":"1151767614","full_name":"warasugitewara/mouse-wheel-tool","owner":"warasugitewara","description":"Java製、Windows/Linux クロスプラットフォーム対応のマウスホイール自動回転ツール。F9/F10 ホットキーで簡単操作。","archived":false,"fork":false,"pushed_at":"2026-02-07T07:02:31.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-07T08:50:36.627Z","etag":null,"topics":["automation","hotkeys","mouse-events","mousewheel","wheel"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/warasugitewara.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-06T21:52:39.000Z","updated_at":"2026-02-07T07:02:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/warasugitewara/mouse-wheel-tool","commit_stats":null,"previous_names":["warasugitewara/mouse-wheel-tool"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/warasugitewara/mouse-wheel-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warasugitewara%2Fmouse-wheel-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warasugitewara%2Fmouse-wheel-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warasugitewara%2Fmouse-wheel-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warasugitewara%2Fmouse-wheel-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warasugitewara","download_url":"https://codeload.github.com/warasugitewara/mouse-wheel-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warasugitewara%2Fmouse-wheel-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31842193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T11:29:19.690Z","status":"ssl_error","status_checked_at":"2026-04-15T11:29:19.171Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","hotkeys","mouse-events","mousewheel","wheel"],"created_at":"2026-04-15T13:04:22.405Z","updated_at":"2026-04-15T13:04:23.516Z","avatar_url":"https://github.com/warasugitewara.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mouse Wheel Tool\n\nJava 21/22/25 対応のマウスホイール自動回転ツール。**Windows/Linux** クロスプラットフォーム対応。\n\n![Version](https://img.shields.io/badge/version-1.0.0-blue)\n![License](https://img.shields.io/badge/license-MIT-green)\n![Java](https://img.shields.io/badge/java-21%2B-orange)\n\n## 🎯 機能\n\n### グローバルホットキー（Windows）\n- **F9**: マウスホイール回転開始（持続回転）\n- **F10**: マウスホイール回転停止\n\n別画面フォーカス時でも反応します。\n\n### GUI コントロール\n- 🎚️ **回転速度調整**: スライダーと数値入力フィールド（10～500ms）\n- 🔄 **回転量調整**: スライダーと数値入力フィールド（1～20 ticks）\n- ↕️ **回転方向切り替え**: 上/下\n- 🖱️ **ボタンクリック操作**: Start/Stop ボタン\n\n### リアルタイム同期\n- スライダーと数値フィールドが常に同期\n- 設定変更は即座に反映\n\n## 💻 動作環境\n\n| OS | ホットキー | マウス制御 | GUI |\n|---|-----------|----------|-----|\n| **Windows** | ✅ グローバル (JNA) | ✅ 完全対応 | ✅ Swing |\n| **Linux** | ⚠️ xbindkeys推奨 | ✅ X11対応 | ✅ Swing |\n| **macOS** | ❌ 未実装 | ❓ 確認必要 | ✅ Swing |\n\n### 必要なもの\n- **Java**: 21, 22, 25 以上\n- **Maven**: 3.6+ (ビルド時のみ)\n\n## 🚀 クイックスタート\n\n### 📥 推奨: GitHub Release から直接ダウンロード（最も簡単）\n\nワンコマンドで導入できます：\n\n```bash\nwget https://github.com/warasugitewara/mouse-wheel-tool/releases/download/v1.0.0/MouseWheelTool-1.0.0-jar-with-dependencies.jar \u0026\u0026 java -jar MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\nまたは分けて実行：\n\n```bash\n# JAR ファイルをダウンロード\nwget https://github.com/warasugitewara/mouse-wheel-tool/releases/download/v1.0.0/MouseWheelTool-1.0.0-jar-with-dependencies.jar\n\n# 実行\njava -jar MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\n### ビルドから実行（詳細）\n\n#### Windows\n\n```bash\ngit clone https://github.com/warasugitewara/mouse-wheel-tool.git\ncd MouseWheelTool\nmvn clean package -DskipTests\njava -jar target/MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\n#### Linux\n\n詳細な手順は **[LINUX_SETUP.md](LINUX_SETUP.md)** を参照してください。\n\n```bash\n# 1. 必要なツールをインストール\nsudo apt install -y openjdk-21-jdk maven  # Ubuntu/Debian\n\n# 2. ソースコードを取得・ビルド\ngit clone https://github.com/warasugitewara/mouse-wheel-tool.git\ncd mouse-wheel-tool\nmvn clean package -DskipTests\n\n# 3. 実行\njava -jar target/MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\n**⚠️ target フォルダーが見つからないエラーが出た場合:**\n- `mvn clean package -DskipTests` でビルドしてください\n- または、GitHub Release から JAR を直接ダウンロードしてください\n\n## 📖 使い方\n\n### Windows（グローバルホットキー）\n\n1. アプリケーションを起動\n2. **F9** を押す → 回転開始\n3. **F10** を押す → 回転停止\n4. GUI で設定調整\n\n※ アプリケーションの背景にいても F9/F10 は動作します\n\n### Linux（xbindkeys 推奨）\n\n**セットアップ:**\n\n```bash\n# xbindkeys をインストール\nsudo apt install xbindkeys  # Ubuntu/Debian\n# または\nsudo yum install xbindkeys  # RedHat/CentOS\n\n# 設定ファイルを生成\nxbindkeys --defaults \u003e ~/.xbindkeysrc\n\n# エディタで編集\nnano ~/.xbindkeysrc\n```\n\n**~/.xbindkeysrc に追加:**\n\n```bash\n# Mouse Wheel Tool - Start\n\"java -jar /path/to/MouseWheelTool-1.0.0-jar-with-dependencies.jar --start\"\n    F9\n\n# Mouse Wheel Tool - Stop  \n\"java -jar /path/to/MouseWheelTool-1.0.0-jar-with-dependencies.jar --stop\"\n    F10\n```\n\n**起動:**\n\n```bash\nxbindkeys -f ~/.xbindkeysrc\n```\n\nまたは、GUI ウィンドウをアクティブにしておけば、キーボード入力リスナーが動作します。\n\n## ⚙️ GUI 設定\n\n### Rotation Speed (回転間隔)\n- **スライダー**: 直感的に調整\n- **数値フィールド**: 正確な値を入力\n- **範囲**: 10～500ms（デフォルト: 50ms）\n- **低い値** = 高速回転\n- **高い値** = ゆっくり回転\n\n### Rotation Amount (回転量)\n- **スライダー**: 1～20 ticks\n- **数値フィールド**: 正確な値を入力\n- **デフォルト**: 1 tick\n- **意味**: 1回の操作で回転するホイール「段」の数\n\n### Direction (回転方向)\n- **Down (↓)**: 下方向にスクロール（ページ送り）\n- **Up (↑)**: 上方向にスクロール（ページ戻る）\n\n## 🏗️ アーキテクチャ\n\n```\nMouseWheelToolApp (エントリーポイント)\n  ├── MouseWheelToolGUI (Swing GUI)\n  │   ├── Sliders (スライダー)\n  │   ├── Spinners (数値入力)\n  │   └── Buttons (開始/停止)\n  ├── RotationController (制御ロジック)\n  │   ├── start/stop (状態管理)\n  │   └── rotationLoop (バックグラウンド回転)\n  ├── MouseWheelRotator (マウス操作)\n  │   └── Robot API (java.awt.Robot)\n  ├── GlobalHotKeyListener (ホットキー検出)\n  │   ├── Windows: JNA + Windows API\n  │   └── Linux: xbindkeys 推奨\n  └── OSUtils (OS判定)\n```\n\n### スレッド構成\n\n| スレッド | 用途 |\n|---------|-----|\n| **EDT (Event Dispatch Thread)** | Swing GUI イベント処理 |\n| **RotationThread** | マウスホイール定期操作 |\n| **HotKeyListenerThread** | グローバルホットキー検出 (Windows) |\n\n## 🔧 カスタマイズ\n\n### デフォルト値変更\n\n`RotationController.java`:\n```java\nprivate volatile int rotationSpeed = 50;      // 回転間隔（ミリ秒）\nprivate volatile int rotationAmount = 1;      // 回転量（ticks）\nprivate volatile int rotationDirection = 1;   // 1=下, -1=上\n```\n\n### GUI レイアウト変更\n\n`MouseWheelToolGUI.java` のコンストラクタで調整可能。\n\n## 🧪 テスト\n\n### マウスホイール動作確認\n\n```bash\nmvn test-compile\njava -cp \"target/classes:target/test-classes\" mousewheeltool.MouseWheelTest\n```\n\n**出力例:**\n```\n=== Mouse Wheel Test ===\nTesting mouse wheel rotation...\n\nTest 1: Scrolling DOWN 5 times...\n[MouseWheel] Rotating: 1\n[MouseWheel] Rotating: 1\n[MouseWheel] Rotating: 1\n[MouseWheel] Rotating: 1\n[MouseWheel] Rotating: 1\nTest 2: Scrolling UP 5 times...\n[MouseWheel] Rotating: -1\n[MouseWheel] Rotating: -1\n[MouseWheel] Rotating: -1\n[MouseWheel] Rotating: -1\n[MouseWheel] Rotating: -1\n\nTest completed!\n```\n\n## 🐛 トラブルシューティング\n\n### 共通エラー\n\n#### エラー: \"target フォルダーが見つからない\"\n\n**原因**: ビルドされていない\n\n**解決方法**:\n```bash\n# ビルドコマンドを実行\nmvn clean package -DskipTests\n\n# または、GitHub Release から JAR を直接ダウンロード\nwget https://github.com/warasugitewara/mouse-wheel-tool/releases/download/v1.0.0/MouseWheelTool-1.0.0-jar-with-dependencies.jar\njava -jar MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\n#### エラー: \"java: command not found\"\n\n**原因**: Java がインストールされていない\n\n**解決方法**:\n```bash\n# Linux\nsudo apt install openjdk-21-jdk  # Ubuntu/Debian\nsudo yum install java-21-openjdk  # CentOS/RHEL\n\n# 確認\njava -version\n```\n\n#### エラー: \"mvn: command not found\"\n\n**原因**: Maven がインストールされていない\n\n**解決方法**:\n```bash\n# Linux\nsudo apt install maven  # Ubuntu/Debian\nsudo yum install maven  # CentOS/RHEL\n\n# 確認\nmvn -version\n```\n\n### Windows\n\n#### F9/F10 が反応しない\n- ✅ 別のアプリ が F9/F10 をグローバルホットキーとして登録していないか確認\n- ✅ 管理者権限で実行を試みてください\n- ✅ コンソール出力でエラーメッセージを確認\n\n#### マウスホイール動作が遅い\n- スライダーを右に移動（回転間隔を短くする）\n- 回転量を増やす\n\n### Linux\n\n**詳細は [LINUX_SETUP.md](LINUX_SETUP.md) を参照してください**\n\n#### \"mvn\", \"java\" が見つからない\n```bash\n# インストール確認\nwhich java\nwhich mvn\n\n# パスを確認\necho $PATH\n```\n\n#### xbindkeys が F9/F10 を認識しない\n```bash\n# xbindkeys テスト\nxbindkeys -v\n\n# キーの確認\nxbindkeys -k  # F9 を押してテスト\n```\n\n#### マウスホイール が動作しない\n- X11 環境か Wayland 環境か確認\n- Wayland の場合、まず X11 をお試しください\n\n```bash\n# X11 確認\necho $DISPLAY\n```\n\n#### GUI が表示されない\n- X11/ディスプレイサーバーが起動しているか確認\n- X11 フォワーディングを確認（リモート接続時）\n\n### macOS\n\n- グローバルホットキー: ❌ 未実装\n- マウスホイール制御: ? 確認中\n\n## 📊 システム要件\n\n- **CPU**: 最小限（バックグラウンドスレッド使用）\n- **RAM**: 100MB 以上\n- **ディスク**: 50MB（JAR + 依存関係）\n\n## 📦 依存ライブラリ\n\n| ライブラリ | 用途 | バージョン |\n|-----------|-----|-----------|\n| JNA | Windows API 呼び出し | 5.14.0 |\n| SLF4J | ロギング | 2.0.11 |\n| Swing | GUI | Java 標準 |\n\n## 🤝 貢献\n\n貢献を歓迎します！以下を参照してください:\n\n- [CONTRIBUTING.md](CONTRIBUTING.md) - 貢献ガイド\n- [Issues](../../issues) - バグ報告・機能リクエスト\n\n## 📖 セットアップガイド\n\n### Windows\nメイン README と [GITHUB_MANUAL_SETUP.md](GITHUB_MANUAL_SETUP.md) を参照\n\n### Linux\n詳細な手順は **[LINUX_SETUP.md](LINUX_SETUP.md)** を参照してください\n- インストール手順（Ubuntu/Debian/Fedora/CentOS）\n- xbindkeys セットアップ\n- トラブルシューティング\n\n### macOS\n未実装\n\n## 📝 ライセンス\n\n[MIT License](LICENSE) - 詳細はファイルを参照してください\n\n## 📝 変更履歴\n\n### v1.0.0 (Latest)\n- ✨ 数値入力フィールド追加（スライダーとの連動）\n- 📈 最大回転量を 20 に拡張\n- 🐧 Linux 対応（xbindkeys 推奨）\n- 🖥️ OS 判定ユーティリティ\n- 📊 起動時にシステム情報表示\n\n詳細は [CHANGELOG.md](CHANGELOG.md) を参照。\n\n## 🚀 今後の予定\n\n- [ ] macOS ネイティブサポート\n- [ ] GUI テーマカスタマイズ\n- [ ] 設定ファイル保存・読み込み\n- [ ] ホットキーのカスタマイズ機能\n- [ ] ロギングをファイルに保存\n\n## 👨‍💻 開発情報\n\n```bash\n# ローカル開発\ngit clone \u003crepository\u003e\ncd MouseWheelTool\n\n# Maven でコンパイル\nmvn compile\n\n# テスト\nmvn test\n\n# パッケージ\nmvn package -DskipTests\n\n# 実行\njava -jar target/MouseWheelTool-1.0.0-jar-with-dependencies.jar\n```\n\n## 📮 サポート\n\n問題が発生した場合:\n\n1. [Troubleshooting](#-トラブルシューティング) を確認\n2. [Issues](../../issues) で同じ問題がないか検索\n3. 新しい Issue を作成（OS、Java バージョン、エラーメッセージを含める）\n\n---\n\n**Happy scrolling! 🎉**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarasugitewara%2Fmouse-wheel-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarasugitewara%2Fmouse-wheel-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarasugitewara%2Fmouse-wheel-tool/lists"}