{"id":13728748,"url":"https://github.com/ShayBox/Wooting-Profile-Switcher","last_synced_at":"2025-05-08T01:30:20.953Z","repository":{"id":50122606,"uuid":"367977529","full_name":"ShayBox/Wooting-Profile-Switcher","owner":"ShayBox","description":"Automatically switch Wooting keyboard profiles based on focused window","archived":false,"fork":false,"pushed_at":"2025-02-25T00:59:43.000Z","size":1742,"stargazers_count":65,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T01:01:41.382Z","etag":null,"topics":["linux","macos","windows","wooting","wooting-keyboard","wooting-keyboards"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/ShayBox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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},"funding":{"github":"ShayBox"}},"created_at":"2021-05-16T20:20:33.000Z","updated_at":"2025-03-12T07:46:39.000Z","dependencies_parsed_at":"2023-10-16T11:35:21.230Z","dependency_job_id":"2e183434-6730-413c-8fee-58906bb7569a","html_url":"https://github.com/ShayBox/Wooting-Profile-Switcher","commit_stats":null,"previous_names":["shaybox/wooting-profile-switcher","shaybox/wootingprofileswitcher"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FWooting-Profile-Switcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FWooting-Profile-Switcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FWooting-Profile-Switcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FWooting-Profile-Switcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShayBox","download_url":"https://codeload.github.com/ShayBox/Wooting-Profile-Switcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252981348,"owners_count":21835413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["linux","macos","windows","wooting","wooting-keyboard","wooting-keyboards"],"created_at":"2024-08-03T02:00:49.489Z","updated_at":"2025-05-08T01:30:20.576Z","avatar_url":"https://github.com/ShayBox.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://discord.shaybox.com\"\u003e\n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/824865729445888041?color=404eed\u0026label=Discord\u0026logo=Discord\u0026logoColor=FFFFFF\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/shaybox/wooting-profile-switcher/releases/latest\"\u003e\n    \u003cimg alt=\"Downloads\" src=\"https://img.shields.io/github/downloads/shaybox/wooting-profile-switcher/total?color=3fb950\u0026label=Downloads\u0026logo=github\u0026logoColor=FFFFFF\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n# Wooting Profile Switcher\n\nAutomatically switch Wooting keyboard profiles based on focused window\n\n## Installation\n\n[Download the latest release](https://github.com/ShayBox/Wooting-Profile-Switcher/releases/latest)\n\nYou must install and run [Wootility](https://wooting.io/wootility) once, but must not have it running at the same time.\n\n## Screenshots\n\n![MainApp](https://github.com/ShayBox/Wooting-Profile-Switcher/assets/9505196/2dabd348-2b5c-49b1-8a51-e9cc3fcdf6a9)\n\n## System Tray Icon\n\nThe system tray icon allows you to pause/resume, reload, quit, and set the active profile\n\n## Configuration\n\nThe config file is generated on first-run in the following location and format\n\n| Platform | Location                                 |\n| -------- | ---------------------------------------- |\n| Portable | Same location as the binary              |\n| Windows  | `C:\\Users\\...\\AppData\\Roaming`           |\n| macOS    | `/Users/.../Library/Application Support` |\n| Linux    | `/home/.../.config`                      |\n\n```json5\n{\n  // Auto launch at startup\n  \"auto_launch\": null,\n  // Auto update at startup\n  \"auto_update\": null,\n  // List of connected devices, their serial number properties, and profile names\n  \"devices\": {\n    \"A02B2106W031H00418\": {\n      \"model_name\": \"Wooting Two LE\",\n      \"supplier\": 2,\n      \"year\": 21,\n      \"week\": 6,\n      \"product\": 3,\n      \"revision\": 1,\n      \"product_id\": 418,\n      \"production\": true,\n      \"profiles\": [\n        \"Typing Profile\",\n        \"Rapid Profile\",\n        \"Racing Profile\",\n        \"Mixed Movement\"\n      ]\n    }\n  },\n  // Sleep duration for the loop checking the active window\n  \"loop_sleep_ms\": 250,\n  // Sleep duration between sending Wooting USB commands\n  \"send_sleep_ms\": 250,\n  // Show the serial number instead of the model name\n  \"show_serial\": false,\n  // Swap the lighting effects with the keyboard profile\n  \"swap_lighting\": true,\n  // List of rule objects, all match rules support Wildcard and Regex\n  \"rules\": [\n    {\n      \"alias\": \"The Binding of Isaac\",\n      \"device_indices\": {\n        \"A02B2106W031H00418\": 0\n      },\n      \"match_app_name\": null,\n      \"match_bin_name\": null,\n      \"match_bin_path\": \"C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\The Binding of Isaac Rebirth*\",\n      \"match_win_name\": null\n    },\n    {\n      \"alias\": \"Default Fallback\",\n      \"device_indices\": {\n        \"A02B2106W031H00418\": 0\n      },\n      \"match_app_name\": \"*\",\n      \"match_bin_name\": \"*\",\n      \"match_bin_path\": \"*\",\n      \"match_win_name\": \"*\"\n    }\n  ],\n  \"ui\": {\n    \"scale\": 1.25,\n    \"theme\": \"Dark\"\n  }\n}\n```\n\n### Examples:\n\n#### Matching a window title with a date variable\n\n```json5\n{\n    \"alias\": \"VRCX\",\n    \"match_app_name\": null,\n    \"match_bin_name\": null,\n    \"match_bin_path\": null,\n    \"match_win_name\": \"VRCX ????.??.??\",\n    \"device_indices\": {\n      \"A02B2106W031H00418\": 0\n    },\n}\n```\n\n#### Matching a window title with a version variable\n\n```json5\n{\n    \"alias\": \"Minecraft\",\n    \"match_app_name\": null,\n    \"match_bin_name\": null,\n    \"match_bin_path\": null,\n    \"match_win_name\": \"Minecraft [\\d]+.[\\d]+.[\\d]+\",\n    \"device_indices\": {\n      \"A02B2106W031H00418\": 0\n    },\n}\n```\n\n#### Wayland Support\n\nThis program does not officially support Wayland.  \nThis is because most compositors don't support the `foreign-toplevel-management` protocol.  \nThere's no way for programs to detect the active focused Wayland window, only X11 / Xwayland.\nThe version of Tauri (`tauri-egui`) this program uses didn't yet support Wayland either, so the window doesn't appear.\nYou can use this program to detect Xwayland windows headlessly using only the config and tray icon, but it's not great.\n","funding_links":["https://github.com/sponsors/ShayBox"],"categories":["Software"],"sub_categories":["Language Wrappers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShayBox%2FWooting-Profile-Switcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FShayBox%2FWooting-Profile-Switcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShayBox%2FWooting-Profile-Switcher/lists"}