{"id":22360842,"url":"https://github.com/vahor/organizer-py","last_synced_at":"2026-04-27T08:31:17.727Z","repository":{"id":266071306,"uuid":"897291857","full_name":"Vahor/organizer-py","owner":"Vahor","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-16T19:13:43.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-17T01:28:59.246Z","etag":null,"topics":["macos","python","yabai"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vahor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-02T11:30:12.000Z","updated_at":"2024-12-02T16:24:46.000Z","dependencies_parsed_at":"2024-12-02T12:41:52.823Z","dependency_job_id":null,"html_url":"https://github.com/Vahor/organizer-py","commit_stats":null,"previous_names":["vahor/organizer-py"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Vahor/organizer-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vahor%2Forganizer-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vahor%2Forganizer-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vahor%2Forganizer-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vahor%2Forganizer-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vahor","download_url":"https://codeload.github.com/Vahor/organizer-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vahor%2Forganizer-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32329462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["macos","python","yabai"],"created_at":"2024-12-04T16:18:49.255Z","updated_at":"2026-04-27T08:31:17.621Z","avatar_url":"https://github.com/Vahor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Organizer\n\nOrganizer is a Python tool to focus your windows with keyboard shortcuts on macOS.\n\n**Example:** Open Firefox by pressing `ctrl+1`, discord by pressing `ctrl+2`, etc, and go back to the previous window by pressing `page_down`.\n\n![Preview](https://github.com/user-attachments/assets/5cab85de-d330-4a16-a393-d29ddf6316a3)\n\n## Requirements\n\n- Python 3.10+\n- Yabai: https://github.com/koekeishiya/yabai\n- Poetry: https://python-poetry.org/docs/ _(optional, you can use `pip` instead and install the dependencies manually)_\n\n## How to use\n\n1. Clone the repository\n2. `uv pip install -r requirements.txt`\n3. `source .venv/bin/activate`\n4. `python src/app.py`\n5. Configure the shortcuts in `config.toml`\n\n\n## Configuration\n\nEdit the `config.toml` file to configure the shortcuts.\n\n```toml title=\"config.toml\"\n[shortcut]\nnext = \"\u003cshift\u003e+1\"\nprev = \"\u003cshift\u003e+2\"\n1    = \"\u003cctrl\u003e+1\"\n2    = \"\u003cctrl\u003e+2\"\n3    = \"\u003cctrl\u003e+3\"\n4    = \"\u003cctrl\u003e+4\"\n5    = \"\u003cctrl\u003e+5\"\n6    = \"\u003cctrl\u003e+6\"\n7    = \"\u003cctrl\u003e+7\"\n8    = \"\u003cctrl\u003e+8\"\n9    = \"\u003cctrl\u003e+9\"\n\n[organizer.1]\napp_name = \"firefox\"\ntitle = \"vahor\"\n\n[organizer.2]\napp_name = \"discord\"\n\n[organizer.3]\ntitle = \"spotify\"\n```\n\nHere's a description of the configuration options:\n\n| Block                | Field      | Description                                              |\n| ---                  | ---        | ---                                                      |\n| `shortcut`           | next       | The keyboard shortcut to switch to the next window.      |\n| `shortcut`           | prev       | The keyboard shortcut to switch to the previous window.  |\n| `shortcut`           | `[number]` | The keyboard shortcut to switch to the specified window. |\n| `organizer.[number]` | app_name?  | The name of the application.                             |\n| `organizer.[number]` | title?     | The title of the window.                                 |\n\nThe tool will search open windows for the specified application and title, and switch to the first one it finds.\\\n`app_name` and `title` are optional, and can be used to narrow down the search.\\\n`number` is the order in which the windows will be switched, should be unique.\n\nYou can find a full list of keyboard shortcuts [here](https://pynput.readthedocs.io/en/latest/keyboard.html#pynput.keyboard.Key).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvahor%2Forganizer-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvahor%2Forganizer-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvahor%2Forganizer-py/lists"}