https://github.com/gitii/winstrumenta.addons.icons.papirus
Winstrumenta.Addons.Icons.Papirus is an optional package (addon) for Winstrumenta.
https://github.com/gitii/winstrumenta.addons.icons.papirus
manager package wsa wsl
Last synced: 4 months ago
JSON representation
Winstrumenta.Addons.Icons.Papirus is an optional package (addon) for Winstrumenta.
- Host: GitHub
- URL: https://github.com/gitii/winstrumenta.addons.icons.papirus
- Owner: Gitii
- License: gpl-3.0
- Created: 2021-12-31T22:10:12.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-01T11:22:58.000Z (over 3 years ago)
- Last Synced: 2025-03-10T23:28:53.353Z (4 months ago)
- Topics: manager, package, wsa, wsl
- Language: Shell
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Winstrumenta.Addons.Icons.Papirus
`Winstrumenta.Addons.Icons.Papirus` is an optional package (addon) for
[Winstrumenta](https://github.com/Gitii/Winstrumenta). `Winstrumenta` is a collection of utility programs for `WSL` and `WSA`.
This repository contains the source code for creating and uploading the optional package. When installed, `Package Manager` will display matching icons for the selected packages.## Icons
The icons are copied from [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) at build time. Papirus is a free and open source SVG icon theme for Linux.
Papirus icon theme is free and open source project distributed under the terms of the GNU General Public License, version 3.## How does icon themes work in Winstrumenta?
Icon themes consist of two main files:
* `icons.zip`
A zip file that contains only vector-images (the icons).
* `mapping.csv`
A semicolon-separated file with the format `;`.
`Winstrumenta` parses the `mapping.csv` file and uses it to extract the correct file inside `icons.zip`.Using a mapping file and archive is done to save bandwidth. A lot of keys point to the same file inside the archive. Bundling all icons in a zip limits IO operations.
By dereferencing the mapping (duplicating the icons in order to achive a 1:1 mapping between keys and icons), this could be simplified to a simple `File.OpenRead($"{lookupKey}.svg")`.Both files are packed in a `msix` package and is installed by the user if desired.
At runtime `Windows` will mount the contents of the package (both files) in the `VFS` of `Winstrumenta`. `Winstrumenta` will then detect the package and read the files using the [`Windows.Storage api`](https://docs.microsoft.com/en-us/uwp/api/windows.storage?view=winrt-22000) of `UWP`.## License
The content of this repository is free and open-source project distributed under the terms of the GNU General Public License, version 3. See the [`LICENSE`](./LICENSE) file for details.`Winstrumenta.Addons.Icons.Papirus` is a plugin and [is considered separate](https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins) from
`Winstrumenta` (which is distributed under the terms of the MIT License). There is no executable code contained in `Winstrumenta.Addons.Icons.Papirus` and therefore `Winstrumenta` **doesn't** use fork and exec to invoke plug-ins, and it **doesn't** establish intimate communication by sharing *complex* data structures, and it **doesn't** ship *complex* data structures back and forth.See section `How does icon themes work in Winstrumenta?` for a detailed explanation how plugins are loaded by `Winstrumenta`.