Files
community-plugins/config-swap/README.md
T
Tadomika-AriandGitHub b6b141ecec 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
2026-08-06 10:43:14 -04:00

130 lines
4.6 KiB
Markdown

# 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.