{"id":13532806,"url":"https://github.com/hyprland-community/pyprland","last_synced_at":"2026-03-08T22:02:34.769Z","repository":{"id":157592366,"uuid":"633571482","full_name":"hyprland-community/pyprland","owner":"hyprland-community","description":"Scratchpads \u0026 many goodies for Hyprland [maintainer=@fdev31]","archived":false,"fork":false,"pushed_at":"2026-03-04T23:06:37.000Z","size":3632,"stargazers_count":654,"open_issues_count":3,"forks_count":31,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-03-05T03:37:49.022Z","etag":null,"topics":["asyncio","color-scheme","desktop","extension","eyecandy","hacktoberfest","hyprland","hyprland-ipc","menus","multiscreen","productivity","python","quality-of-life","scratchpad","scriptable","shortcuts","wallpaper-changer"],"latest_commit_sha":null,"homepage":"","language":"Python","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/hyprland-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-04-27T20:01:13.000Z","updated_at":"2026-03-04T23:06:41.000Z","dependencies_parsed_at":"2023-10-16T12:33:57.361Z","dependency_job_id":"ed4a759a-2146-4b45-a4b6-095bd2d169f5","html_url":"https://github.com/hyprland-community/pyprland","commit_stats":null,"previous_names":[],"tags_count":107,"template":false,"template_full_name":null,"purl":"pkg:github/hyprland-community/pyprland","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprland-community%2Fpyprland","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprland-community%2Fpyprland/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprland-community%2Fpyprland/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprland-community%2Fpyprland/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyprland-community","download_url":"https://codeload.github.com/hyprland-community/pyprland/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprland-community%2Fpyprland/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30274876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T20:45:49.896Z","status":"ssl_error","status_checked_at":"2026-03-08T20:45:49.525Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["asyncio","color-scheme","desktop","extension","eyecandy","hacktoberfest","hyprland","hyprland-ipc","menus","multiscreen","productivity","python","quality-of-life","scratchpad","scriptable","shortcuts","wallpaper-changer"],"created_at":"2024-08-01T07:01:13.872Z","updated_at":"2026-03-08T22:02:34.764Z","avatar_url":"https://github.com/hyprland-community.png","language":"Python","funding_links":[],"categories":["Plugins"],"sub_categories":["IPC plugins"],"readme":"![rect](https://github.com/hyprland-community/pyprland/assets/238622/3fab93b6-6445-4e7b-b757-035095b5c8e8)\n\n[![Hyprland](https://img.shields.io/badge/Made%20for-Hyprland-blue)](https://github.com/hyprwm/Hyprland)\n[![Discord](https://img.shields.io/discord/1055990214411169892?label=discord)](https://discord.com/channels/1458202721294356522/1458202722892386519)\n\n[![Documentation](https://img.shields.io/badge/Documentation-Read%20Now-brightgreen?style=for-the-badge)](https://hyprland-community.github.io/pyprland)\n\n[Discussions](https://github.com/hyprland-community/pyprland/discussions) • [Plugins](https://hyprland-community.github.io/pyprland/Plugins.html) • [Dotfiles](https://github.com/fdev31/dotfiles) • [Changes History](https://github.com/hyprland-community/pyprland/releases) • [Share](https://github.com/hyprland-community/pyprland/discussions/46)\n\n## Power up your desktop\n\nA plugin system that extends your graphical environment with features like scratchpads, dynamic popup nested menus, custom notifications, easy monitor settings and more.\n\nThink of it as a *Gnome tweak tool* for Hyprland, with options that can run on any desktop. With a fully plugin-based architecture, it's lightweight and easy to customize.\n\nContributions, suggestions, bug reports and comments are welcome.\n\n\u003cdetails\u003e\n\u003csummary\u003e\nAbout Pyprland (latest stable is: \u003cb\u003e2.6.2\u003c/b\u003e)\n\u003c/summary\u003e\n\n[![Packaging Status](https://repology.org/badge/vertical-allrepos/pyprland.svg)](https://repology.org/project/pyprland/versions)\n\n🎉 Hear what others are saying:\n\n- [Elsa in Mac](https://elsainmac.tistory.com/915) some tutorial article for fedora in Korean with a nice short demo video\n- [Archlinux Hyprland dotfiles](https://github.com/DinDotDout/.dotfiles/blob/main/conf-hyprland/.config/hypr/pyprland.toml) + [video](https://www.youtube.com/watch?v=jHuzcjf-FGM)\n- [\"It just works very very well\" - The Linux Cast (video)](https://youtu.be/Cjn0SFyyucY?si=hGb0TM9IDvlbcD6A\u0026t=131) - February 2024\n- [You NEED This in your Hyprland Config - LibrePhoenix (video)](https://www.youtube.com/watch?v=CwGlm-rpok4) - October 2023 (*Now [TOML](https://toml.io/en/) format is preferred over [JSON](https://www.w3schools.com/js/js_json_intro.asp))\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\nContributing\n\u003c/summary\u003e\n\nCheck out the [creating a pull request](https://docs.github.com/fr/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) document for guidance.\n\n- Report bugs or propose features [here](https://github.com/hyprland-community/pyprland/issues)\n- Improve our [wiki](https://hyprland-community.github.io/pyprland/)\n- Read the [internal ticket list](https://github.com/hyprland-community/pyprland/blob/main/tickets.rst) for some PR ideas\n\nand if you have coding skills you can also\n\n- Enhance the coverage of our [tests](https://github.com/hyprland-community/pyprland/tree/main/tests)\n- Propose \u0026 write new plugins or enhancements\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\nDependencies\n\u003c/summary\u003e\n\n- **Python** \u003e= 3.11\n    - **aiofiles** (optional but recommended)\n    - **pillow** (optional, required for rounded borders in `wallpapers`)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\nLatest major changes\n\u003c/summary\u003e\n\nCheck the [Releases change log](https://github.com/hyprland-community/pyprland/releases) for more information\n\n### 3.0.0\n\n- Dynamic shell completions\n- Better error handling and configuration validation\n- Removed hard dependency on Hyprland\n- General polish including a couple ofbreaking changes\n  - remove old or broken options\n  - fixes\n\n### 2.5\n\n- wallpapers plugin refactored, supports rounded corners and pause\n- fcitx5 switcher plugin (appeared in late 2.4)\n\n### 2.4\n\n- Scratchpads are now pinned by default (set `pinned = false` for the old behavior)\n- Version \u003e=2.4.4 is required for Hyprland 0.48.0\n- A snappier `pypr-client` command is available, meant to be used in the keyboard bindings (NOT to start pypr on startup!), eg:\n```sh\n$pypr = uwsm-app -- pypr-client\nbind = $mainMod SHIFT, Z, exec, $pypr zoom ++0.5\n ```\n\n### 2.3\n\n- Supports *Hyprland \u003e 0.40.0*\n- Improved code kwaleetee\n- [monitors](https://hyprland-community.github.io/pyprland/monitors) allows general monitor settings\n- [scratchpads](https://hyprland-community.github.io/pyprland/scratchpads)\n  - better multi-window support\n  - better `preserve_aspect` implementation (i3 \"compatibility\")\n\n### 2.2\n\n- Added [wallpapers](https://hyprland-community.github.io/pyprland/wallpapers) and [system_notifier](https://hyprland-community.github.io/pyprland/system_notifier) plugins.\n- Deprecated [class_match](https://hyprland-community.github.io/pyprland/scratchpads_nonstandard) in [scratchpads](https://hyprland-community.github.io/pyprland/scratchpads)\n- Added [gbar](https://hyprland-community.github.io/pyprland/gbar) in 2.2.6\n- [scratchpads](https://hyprland-community.github.io/pyprland/scratchpads) supports multiple client windows (using 2.2.19 is recommended)\n- [monitors](https://hyprland-community.github.io/pyprland/monitors) and [scratchpads](https://hyprland-community.github.io/pyprland/scratchpads) supports rotation in 2.2.13\n- Improve [Nix support](https://hyprland-community.github.io/pyprland/Nix)\n\n### 2.1\n\n- Requires Hyprland \u003e= 0.37\n- [Monitors](https://hyprland-community.github.io/pyprland/monitors) plugin improvements.\n\n### 2.0\n\n- New dependency: [aiofiles](https://pypi.org/project/aiofiles/)\n- Added [hysteresis](https://hyprland-community.github.io/pyprland/scratchpads#hysteresis-optional) support for [scratchpads](https://hyprland-community.github.io/pyprland/scratchpads).\n\n### 1.10\n\n- New [fetch_client_menu](https://hyprland-community.github.io/pyprland/fetch_client_menu) and [shortcuts_menu](https://hyprland-community.github.io/pyprland/shortcuts_menu) plugins.\n\n### 1.9\n\n- Introduced [shortcuts_menu](https://hyprland-community.github.io/pyprland/shortcuts_menu) plugin.\n\n### 1.8\n\n- Requires Hyprland \u003e= 0.30\n- Added [layout_center](https://hyprland-community.github.io/pyprland/layout_center) plugin.\n\n\u003c/details\u003e\n\n\u003ca href=\"https://star-history.com/#fdev31/pyprland\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=fdev31/pyprland\u0026type=Timeline\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=fdev31/pyprland\u0026type=Timeline\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=fdev31/pyprland\u0026type=Timeline\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyprland-community%2Fpyprland","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyprland-community%2Fpyprland","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyprland-community%2Fpyprland/lists"}