{"id":26137112,"url":"https://github.com/SameerJS6/powertoys-svgl","last_synced_at":"2025-03-11T01:03:09.904Z","repository":{"id":280300047,"uuid":"923172933","full_name":"SameerJS6/powertoys-svgl","owner":"SameerJS6","description":"A PowerToys plugin to search and copy SVG logos from SVGL.","archived":false,"fork":false,"pushed_at":"2025-03-02T15:35:20.000Z","size":157,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T16:20:17.138Z","etag":null,"topics":["powertoys","powertoys-run","powertoys-run-plugin","svgl","windows"],"latest_commit_sha":null,"homepage":"https://svgl.sameerjs.com","language":"C#","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/SameerJS6.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}},"created_at":"2025-01-27T19:04:02.000Z","updated_at":"2025-03-02T15:34:42.000Z","dependencies_parsed_at":"2025-03-02T16:20:21.322Z","dependency_job_id":"dff21c7a-0b43-459c-9d2c-ad9cfa7d8f87","html_url":"https://github.com/SameerJS6/powertoys-svgl","commit_stats":null,"previous_names":["sameerjs6/powertoys-svgl"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Fpowertoys-svgl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Fpowertoys-svgl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Fpowertoys-svgl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJS6%2Fpowertoys-svgl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SameerJS6","download_url":"https://codeload.github.com/SameerJS6/powertoys-svgl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242951081,"owners_count":20211572,"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":["powertoys","powertoys-run","powertoys-run-plugin","svgl","windows"],"created_at":"2025-03-11T01:01:35.664Z","updated_at":"2025-03-11T01:03:09.898Z","avatar_url":"https://github.com/SameerJS6.png","language":"C#","funding_links":[],"categories":["Plugins"],"sub_categories":[],"readme":"﻿# SVGL For PowerToys\n\nThis [**PowerToys Run**](https://github.com/microsoft/PowerToys) plugin enables quick **searching and copying of SVG icons**, powered by [**SVGL**](https://svgl.app).\n\n![SVGL PowerToys Run Initial Screen Mockup](https://mcp4lhyypl.ufs.sh/f/9Vzc0FiUzX7Rf77ZRLZzk764cyASxaOBWsoVzZ9vLqK8u5tY)\n\n## Features\n\n- Browse and search SVG logos\n- Choose from multiple different variant i.e. Light, Dark or Themed Wordmark\n- Copy SVG to clipboard\n\n## Installation\n\n1. Download the latest release of the SVGL Plugin from the [**Release page**.](https://github.com/SameerJS6/powertoys-svgl/releases)\n2. Extract the zip folder to your PowerToys Plugin modules directory. Usually:\n\n```text\n%LOCALAPPDATA%\\Microsoft\\PowerToys\\PowerToys Run\\Plugins\n```\n\n3. Restart PowerToys\n\n## Usage\n\n1. Open PowerToys Run using the default shortcut **`Alt`** + **`Space`**.\n2. Type `svgl` to initialize the plugin. _(If it's your first time, wait a moment for initialization.)_\n3. Search for a company's logo by typing its name.\n4. Select your preferred logo—if multiple variants are available, you'll see relevant options in the context menu.\n\n- Hover or focus on a context menu item to view its **keyboard shortcut \u0026 action**.\n- _(For a full list of available commands, [click here](https://svgl.sameerjs.com/commands).)_\n\n5. Press `Enter` to copy the SVG icon and paste it wherever you need—whether in **Figma, Adobe Illustrator, or directly in your code**! ✨\n\n## License\n\nThis project is licensed under the [MIT License](https://github.com/SameerJS6/SVGL/blob/main/LICENSE)\n\n## Acknowledgements\n\n1. The original [**SVGL**](https://github.com/pheralb/svgl) project by [Pablo Hdez](https://github.com/pheralb) for making this possible.\n2. [Corey] for providing guidance on building a PowerToys plugin and sharing valuable resources.\n3. [**Henrik Lau Erikson**](https://github.com/hlaueriksson) for writing an insightful blog on [Creating Custom PowerToys Run Plugin](https://conductofcode.io/post/creating-custom-powertoys-run-plugins/) and for developing a highly useful [Dependency Referencing NuGet Package](https://www.nuget.org/packages/Community.PowerToys.Run.Plugin.Dependencies/) for PowerToys Run plugin development.\n4. The [**SVGL Raycast Extension**](https://www.raycast.com/1weiho/svgl) by [Yiewi Ho](https://github.com/1weiho), featured in a [YouTube video](https://youtu.be/dQwJQnOxyVk?si=E72TxTEnHo83_sqk\u0026t=370) by **Theo**, which inspired me and gave me the confidence to build something similar for Windows i.e. PowerToys.\n\n## Roadmap\n\n### Version 1.0.0 ✅\n\n1. **Search Enhancements**\n\n   - [x] Debounce API calls to optimize search performance.\n   - [x] Improve search ranking: prioritize exact matches, titles starting with the query, and titles containing the query.\n   - [x] Cache search results for faster responses.\n\n2. **Context Menu Improvements**\n\n   - [x] Fix broken icons in search results.\n   - [x] Show relevant options for \"Request Logo\" and \"Submit a Logo.\"\n   - [x] Add options for copying Wordmark icons (both themes, if available).\n   - [x] Separate context menu options for copying light/dark theme SVGs.\n   - [x] Dynamically display theme-based context menu options based on SVG availability.\n   - [x] Add context menu actions for SVGL results (Copy SVG Logo, Copy Wordmark Logo).\n\n3. **Functionality Enhancements**\n\n   - [x] Add a \"Copy SVG Code\" function.\n   - [x] Implement caching for default results.\n   - [x] Add a command to manually reload/re-validate cache without restarting PowerToys.\n   - [x] Automatically detect internet reconnection and refresh API results instead of showing cached `No Internet` data.\n\n4. **Codebase \u0026 Testing**\n   - [x] Restructure the codebase into two projects: Main Plugin \u0026 Unit Tests.\n   - [x] Refactor code (separate types, API functions, etc.).\n   - [x] Handle exceptions, particularly when fetching SVGs (e.g., tRPC dark-themed Wordmark SVG errors).\n   - [x] Write unit tests to ensure reliability.\n\n\n### Future Improvements 🛠️\n\n- **Enhanced Functionality**\n\n  - Add support for copying SVGs as `React` components.\n  - Implement fuzzy search for better result matching.\n  - Allow customization of all context menu keyword shortcuts via settings.\n\n- **Code Quality \u0026 Performance**\n  - Refactor `Types.cs` for better structure and maintainability.\n  - Improve overall code quality, resolve build warnings, and enable `TreatWarningsAsErrors` in `csproj`.\n\n\n### PowerToys Run Limitations \u0026 Workarounds ⚡\n\n- **Performance Optimizations**\n\n  - Implement caching for SVG code to speed up retrieval.\n  - Introduce file-based caching with time-based re-validation for improved efficiency.\n\n- **UI/UX Enhancements**\n  - Improve context menu icons for better clarity.\n  - Display actual SVGs as previews in search results.\n  - Show a loading state when fetching results for the first time.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSameerJS6%2Fpowertoys-svgl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSameerJS6%2Fpowertoys-svgl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSameerJS6%2Fpowertoys-svgl/lists"}