feat!: add Config Swap plugin (#112)
* feat!: init plugin * fix: fix widget not found on bar setting * feat!: add creation folder for plugin * feat!: add first version of Config Swap (simple modification test) * feat!: update toml with new feature * docs: prepare docs * feat!: add more place for view preview * feat!: add new page for store and allerady download * docs: improve lisibility * feat!: add description emplacement * feat!: add wallpaper support for install and set * docs: add more info to readme * feat: add cp depedencie * docs: add more info * feat!: add trad support * fix: change order for set wallpaper after change config * feat!: add settingsPath for data.json * feat!: add data.json creation if not exist * docs: add more docs info * feat!: rm useless preview image * docs: improve docs * feat!: change false description * feat!: add shellQuote for protect bad command * feat!: add path var in infoConfig.Change config type for infoConfig Type * feat!: add secure delete config and confirmation for delete config * feat!: add save function for save current config * feat!: add welcome warning and confirmation switch * feat!: add info for store section * docs: add new info in setting section * feat!: add resolve state dir for check all state dir possibility * feat!: add english translation compatibility * feat!: change thumbnail * docs: add more information on the readme * fix: rm useless button * docs: add comment * fix: add depedencie missing * fix: rm death code * fix: rm update interval not use * feat!: add delete, save and apply protection, reject invalid name * docs: add more info in info section * feat!: add more charactere in match string in isDetect function * fix: change wrong name function * feat!: add protection for invalid name in dowload Config
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
# Config Swap
|
||||
|
||||
A [Noctalia](https://github.com/noctalia-dev/noctalia) v5 plugin for switching between saved Noctalia configurations.
|
||||
|
||||
## Dependencies
|
||||
|
||||
For this plugin, you need:
|
||||
* internet access to fetch configuration data from GitHub on the store page
|
||||
* `cp` to apply a configuration
|
||||
* `rm` to delete the selected installed configuration (not the current configuration)
|
||||
|
||||
## Plugin
|
||||
|
||||
| Field | Value |
|
||||
| --- | --- |
|
||||
| ID | `tadomika_ari/config-swap` |
|
||||
| Entries | Bar widget: `widget`; panel: `panel`; service: `start` |
|
||||
|
||||
## Usage
|
||||
|
||||
This plugin is still under development.
|
||||
|
||||
You can open Config Swap with:
|
||||
|
||||
```sh
|
||||
noctalia msg panel-toggle tadomika_ari/config-swap:panel
|
||||
```
|
||||
|
||||
The plugin downloads saved configurations from the `Config-Swap-Box` GitHub repository and stores them in `~/Config-Swap`.
|
||||
Applying a configuration copies its `settings.toml` to `~/.local/state/noctalia/settings.toml` and sets the matching wallpaper.
|
||||
Keep a backup of your current configuration before using it.
|
||||
|
||||
Open the panel from the bar widget, then switch between the two views with `Show Store` and `Show List`.
|
||||
|
||||
|
||||
### Before Start
|
||||
|
||||
A welcome page is shown after each restart. Agree to continue, or close the plugin if you prefer not to use it.
|
||||
|
||||
### Show Store
|
||||
|
||||
The store view fetches available configurations from GitHub.
|
||||
Use `refresh` to reload the list if nothing appears.
|
||||
|
||||
Do not spam `refresh`; GitHub rate limits unauthenticated requests.
|
||||
|
||||
Each card lets you `install` a configuration.
|
||||
|
||||
An information panel is also available to explain the store view.
|
||||
|
||||
| Action | Effect |
|
||||
| --- | --- |
|
||||
| Refresh | Refresh the GitHub API data |
|
||||
| Info | Show information about the store |
|
||||
| Install | Install the configuration in `~/Config-Swap` |
|
||||
| Show list | Switch to the list view |
|
||||
|
||||
### Show List
|
||||
|
||||
The list view shows configurations already installed in `~/Config-Swap`.
|
||||
From there, you can `apply` them again or `delete` them again to refresh the files.
|
||||
You will be asked to confirm before applying the selected configuration and confirm before deleting the selected configuration.
|
||||
|
||||
Click a preview image to see extra information such as the author, origin, and description.
|
||||
|
||||
Use `Show Store` to return to the GitHub store view.
|
||||
|
||||
| Action | Effect |
|
||||
| --- | --- |
|
||||
| Refresh | Refresh the GitHub API data |
|
||||
| Delete | Delete the configuration in `~/Config-Swap` |
|
||||
| Apply | Apply the configuration |
|
||||
| Setting | Open the Config Swap settings |
|
||||
| Click the preview | Open extra information |
|
||||
| Show store | Switch to the store view |
|
||||
|
||||
### Setting Info
|
||||
|
||||
A settings panel is available. At this time, only saving a configuration is supported.
|
||||
|
||||
You can save your current configuration under a custom name for backup or export.
|
||||
Saving a configuration copies the current `settings.toml` and creates an `info.json` file, which is important for the plugin and for export to the GitHub store. The `info.json` file can be edited to add information, and you can also add a `preview.png` and a default wallpaper as `wallpaper.png`.
|
||||
Files are saved in `~/Config-Swap/{name}`.
|
||||
|
||||
This also refreshes the list of installed configurations.
|
||||
|
||||
| Action | Effect |
|
||||
| --- | --- |
|
||||
| Input field | Enter a custom name for the save (default: `save`) |
|
||||
| Save | Create a backup of the current configuration |
|
||||
|
||||
|
||||
### Extra Info
|
||||
|
||||
You can add your own configuration folder to `~/Config-Swap`.
|
||||
Each configuration should follow the same structure as the downloaded ones, including an `info.json` file and the expected asset files.
|
||||
|
||||
If you want to publish a configuration, add it to the `Config-Swap-Box` repository: https://github.com/Tadomika-Ari/Config-Swap-Box
|
||||
Make sure Config Swap is enabled in your plugin list before you try to use it.
|
||||
|
||||
You can delete a configuration with the trash button. A warning panel will appear before deletion.
|
||||
|
||||
### Contributing
|
||||
|
||||
You can contribute to Config Swap! Add your own configuration files and wallpaper to the store so others can use them.
|
||||
To do so:
|
||||
* Go to the Settings section and save your configuration. The plugin will copy your `settings.toml` and create an `info.json` file.
|
||||
* Take a preview image and wallpaper, then go to `~/Config-Swap/{name}` and copy your `preview.png` and `wallpaper.png` files (the exact names are required).
|
||||
* Update your `info.json` with important information such as the author and description.
|
||||
* Go to the GitHub page linked from the information panel in the Store section and create a pull request.
|
||||
* Wait for review, and then your configuration can be shared.
|
||||
|
||||
## Settings
|
||||
|
||||
No setting needed
|
||||
|
||||
## Requirements
|
||||
|
||||
- Noctalia ≥ 5.0.0
|
||||
- `cp`
|
||||
- `rm`
|
||||
- internet access for the store view
|
||||
|
||||
## Install
|
||||
|
||||
Install the plugin and add it to your bar.
|
||||
|
||||
## License
|
||||
|
||||
MIT.
|
||||
Reference in New Issue
Block a user