diff options
Diffstat (limited to 'src/content/docs/advanced')
| -rw-r--r-- | src/content/docs/advanced/key-database.md | 2 | ||||
| -rw-r--r-- | src/content/docs/advanced/key-package.md | 7 | ||||
| -rw-r--r-- | src/content/docs/advanced/module-controller.md | 201 | 
3 files changed, 84 insertions, 126 deletions
| diff --git a/src/content/docs/advanced/key-database.md b/src/content/docs/advanced/key-database.md index 44bb2ed..560c919 100644 --- a/src/content/docs/advanced/key-database.md +++ b/src/content/docs/advanced/key-database.md @@ -63,7 +63,7 @@ The **Key Database** tab allows you to perform the following operations:  - Right-click on a database entry to view options like:    - **Move Up/Move Down**: Reorder the database list. -  - **Move to Top**: Prioritize a database by moving it to the top. +  - **Move to Top**: Prioritize a database by moving it to the top. If a database is at the top, it is considered as the Default Key Database.    - **Edit**: Rename or modify the path of an existing database.    - **Remove**: Delete a database from the configuration. diff --git a/src/content/docs/advanced/key-package.md b/src/content/docs/advanced/key-package.md index fd85173..e25d169 100644 --- a/src/content/docs/advanced/key-package.md +++ b/src/content/docs/advanced/key-package.md @@ -114,10 +114,3 @@ the KeyPackage into the key management tool on the target device.  - Delete the KeyPackage files from all devices and any intermediaries (like    email servers or cloud storage) after the transfer is complete to prevent    unauthorized access. - -## Conclusion - -The KeyPackage feature streamlines the process of transferring key data between -devices while maintaining high security standards. By following the steps -outlined in this document, users can effectively manage their cryptographic keys -across multiple platforms. diff --git a/src/content/docs/advanced/module-controller.md b/src/content/docs/advanced/module-controller.md index 7f5dfaa..e234bb8 100644 --- a/src/content/docs/advanced/module-controller.md +++ b/src/content/docs/advanced/module-controller.md @@ -13,8 +13,6 @@ This guide provides an overview of the **Module Controller** interface,  instructions for managing modules, and guidance for advanced users interested in  developing custom modules. ---- -  ## Accessing the Module Controller  To access the **Module Controller**: @@ -22,73 +20,66 @@ To access the **Module Controller**:  1. Open the **Advanced** menu in the top toolbar.  2. Select **Open Module Controller**. -    +  The **Module Controller** interface consists of the following tabs:  - **Registered Modules**  - **Global Register Table** ---- -  ## Registered Modules Tab  The **Registered Modules** tab displays all available modules and provides tools  for managing their activation, metadata, and storage. -### Key Features - -1. **Module List** - -   - The left panel lists all currently available modules. -   - Modules prefixed with `*` are **Integrated Modules**, meaning they are -     bundled with the GpgFrontend application. - -2. **Module Information** - -   - When a module is selected, detailed metadata is displayed in the right -     panel, including: - -     - **ID**: The unique identifier of the module. -     - **Version**: The current module version. -     - **SDK Version**: The version of the SDK required by the module. -     - **Path**: The physical location of the module file. -     - **Activation Status**: Indicates whether the module is active or set to -       auto-activate. + -     Example: +### Key Features -     ``` -     - ID: com.bktus.gpgfrontend.module.email -     - Version: 1.0.0 -     - SDK Version: 2.1.5 -     - Path: /path/to/module/file -     - Auto Activate: True -     - Active: True -     ``` +**Module List** +- The left panel lists all currently available modules. +- Modules prefixed with `*` are **Integrated Modules**, meaning they are bundled +  with the GpgFrontend application. + +**Module Information**: When a module is selected, detailed metadata is +displayed in the right  panel, including: +- **ID**: The unique identifier of the module. +- **Version**: The current module version. +- **SDK Version**: The version of the SDK required by the module. +- **Path**: The physical location of the module file. +- **Activation Status**: Indicates whether the module is active or set to +  auto-activate. + +```text title="Example" +- ID: com.bktus.gpgfrontend.module.email +- Version: 1.0.0 +- SDK Version: 2.1.5 +- Path: /path/to/module/file +- Auto Activate: True +- Active: True +``` -    +**Module Actions** -3. **Module Actions** +- **Deactivate**: Temporarily disables the selected module. +- **Disable Auto Activate**: Prevents the module from loading automatically when +  GpgFrontend starts. -   - **Deactivate**: Temporarily disables the selected module. -   - **Disable Auto Activate**: Prevents the module from loading automatically -     when GpgFrontend starts. +**Show Mods Directory** -4. **Show Mods Directory** +- Opens the directory where external modules are stored. Users can manually add +  or remove custom modules by placing or deleting files in this directory. -   - Opens the directory where external modules are stored. Users can manually -     add or remove custom modules by placing or deleting files in this -     directory. +:::tip[Tip for Integrated Modules] -   > **Tip for Integrated Modules**: +- **Windows/Mac Users**: Integrated Modules (prefixed with `*`) can be removed +  by deleting the corresponding `.dll` (Windows) or `.dylib` (Mac) file from the +  `modules` directory. +- **Linux Users**: Due to the nature of **AppImage** and **Flatpak** packages, +removing Integrated Modules may require recompiling and repackaging the +application. -   - **Windows/Mac Users**: Integrated Modules (prefixed with `*`) can be -     removed by deleting the corresponding `.dll` (Windows) or `.dylib` (Mac) -     file from the `modules` directory. -   - **Linux Users**: Due to the nature of **AppImage** and **Flatpak** -     packages, removing Integrated Modules may require recompiling and -     repackaging the application. +:::  ## Global Register Table Tab @@ -99,25 +90,22 @@ interactions with the core application.  ### Key Features -1. **Key-Value Data** - -   - Displays the hierarchical structure of global variables, including: -     - Module-specific settings (e.g., version checking, state tracking). -     - GnuPG paths and environment configurations. -   - Example: -     ``` -     gpgme: -       ctx: -         app_path: /opt/homebrew/Cellar/gnupg/2.4.5_1/bin/gpg -         gnupg_version: 2.4.5 -         gpgconf_path: /opt/homebrew/bin/gpgconf -     ``` - -2. **Navigation** +**Key-Value Data** +- Displays the hierarchical structure of global variables, including: +- Module-specific settings (e.g., version checking, state tracking). +- GnuPG paths and environment configurations. + +```text title="Example" +gpgme: + ctx: +   app_path: /opt/homebrew/Cellar/gnupg/2.4.5_1/bin/gpg +   gnupg_version: 2.4.5 +   gpgconf_path: /opt/homebrew/bin/gpgconf +``` -   - Expand nodes to explore detailed properties for modules or core components. +**Navigation**: Expand nodes to explore detailed properties for modules or core components. -    +  ## Developing Custom Modules @@ -128,53 +116,32 @@ the `libgpgfrontend_sdk` library.  ### Key Points for Developers -1. **C ABI Compliance** - -   - Modules must be implemented using the C ABI to ensure compatibility across -     all supported platforms (Windows, macOS, Linux). - -2. **Dynamic SDK Linking** - -   - Modules interact with GpgFrontend by linking dynamically to the -     **libgpgfrontend_sdk** library. This library provides the necessary -     interfaces for module initialization, data exchange, and runtime -     interaction. - -3. **SDK Limitations** - -   - The current SDK API is still under development and may not cover all -     potential use cases. Developers are encouraged to contact the project -     maintainer for guidance or feature requests. - -4. **Getting Started** -   - Place the compiled module file (`.dll`, `.dylib`, or `.so`) in the -     `modules` directory. Use the **Show Mods Directory** button to locate this -     directory. - ---- - -## Tips for Managing Modules - -1. **Backup Before Changes** - -   - Always create a backup of the `modules` directory before making changes, -     especially when adding or removing modules. - -2. **Regular Updates** - -   - Check for updates to both GpgFrontend and its modules to ensure -     compatibility and access to the latest features. - -3. **Safe Removal** - -   - Follow the guidelines for deleting Integrated Modules based on your -     platform to avoid accidental issues. - -4. **Use Global Register Table for Debugging** -   - Advanced users can verify module configurations and GPG environment paths -     through the **Global Register Table**. - ---- +**C ABI Compliance**: Modules must be implemented using the C ABI to ensure +  compatibility across all supported platforms (Windows, macOS, Linux). + +**Dynamic SDK Linking**: Modules interact with GpgFrontend by linking + dynamically to the **libgpgfrontend_sdk** library. This library provides the + necessary interfaces for module initialization, data exchange, and runtime + interaction. +  +**SDK Limitations**: The current SDK API is still under development and may not + cover all potential use cases. Developers are encouraged to contact the project + maintainer for guidance or feature requests. + +**Getting Started**: Place the compiled module file (`.dll`, `.dylib`, or `.so`) + in the `modules` directory. Use the **Show Mods Directory** button to locate + this directory. + +:::tip[Tips for Managing Modules] +1. **Backup Before Changes**: Always create a backup of the `modules` directory +  before making changes, especially when adding or removing modules. +2. **Regular Updates**: Check for updates to both GpgFrontend and its modules to + ensure compatibility and access to the latest features. +3. **Safe Removal**: Follow the guidelines for deleting Integrated Modules based + on your platform to avoid accidental issues. +4. **Use Global Register Table for Debugging**: Advanced users can verify module + configurations and GPG environment paths through the **Global Register Table**. +:::  ## Example Module: Version Checking @@ -187,9 +154,9 @@ modules to provide additional functionality.  - Displays release notes for new updates.  - Notifies users when an upgrade is available. -### Example Metadata: +### Metadata: -``` +```text title="Example"  - ID: com.bktus.gpgfrontend.module.version_checking  - Version: 1.0.0  - Auto Activate: True @@ -197,15 +164,13 @@ modules to provide additional functionality.  ### Global Register Table: -``` +```text title="Example"  com.bktus.gpgfrontend.module.version_checking:    current_version: v2.1.5    need_upgrade: false    latest_version: v2.1.5  ``` ---- -  By leveraging the **Module Controller**, users can customize and extend  GpgFrontend to suit their needs. Developers interested in creating new modules  are encouraged to experiment with the SDK and collaborate with the maintainer | 
