--- title: A Comprehensive Guide of GpgController sidebar: label: Gpg Controller --- The **GpgController** in **GpgFrontend** is a powerful tool for configuring and managing GPG-related settings. It provides advanced options for file operations, password input methods, and custom GPG configurations, catering to both general and advanced users. ## Accessing the GpgController To access the **GpgController**: 1. Navigate to the **Advanced** menu in the top toolbar. 2. Select **Open GnuPG Controller** from the dropdown menu. ![Open GnuPG Controller](https://image.cdn.bktus.com/i/2024/11/29/abfaa919-2945-1acc-eb35-5c86828a97ca.webp) The **GpgController** interface includes three tabs: **General**, **Key Database**, and **Advanced**. Below is a detailed explanation of each tab's features. ## General Tab: Core Settings The **General** tab provides essential configuration options for GpgFrontend's interaction with GPG. ![General Tab](https://image.cdn.bktus.com/i/2024/11/29/0ee752ca-ecd1-2a86-91b5-f6129184c7a4.webp) ### Available Options 1. **Use Binary Mode for File Operations** - This option determines the format used for encrypted or signed files: - **Binary Mode**: Produces compact and efficient files, ideal for storage and processing. - **ASCII Mode**: Generates human-readable files encoded in ASCII format. This is useful for sharing files over email or systems that might corrupt binary files. - **Recommendation**: Use binary mode for local file operations and ASCII mode for file sharing or email attachments. 2. **Use Pinentry as Password Input Dialog** - GpgFrontend includes a built-in password input dialog designed as a temporary fallback when no external **Pinentry** program is available. However, the built-in dialog has limitations and may not work for all password input scenarios. - **Recommendation**: Users are strongly encouraged to install a full-featured **Pinentry** program to ensure a seamless and secure password input experience. **Pinentry** is optimized for GnuPG's requirements and provides additional features such as better passphrase caching and hardware token support. 3. **Enable GpgME Debug Log** - Enables verbose logging for troubleshooting GPG operations via the **GpgME** library. This is useful for advanced users diagnosing issues in encryption or signing workflows. 4. **Restart Gpg Agent on Start** - Ensures that the GPG agent is restarted whenever GpgFrontend launches. This helps avoid issues caused by stale GPG agent processes. 5. **Kill All GPG Daemons at Close** - Terminates all GPG-related background processes when the application exits. This ensures that no sensitive information is cached in memory or accessible after the session ends. - **Recommendation**: Always enable this option for improved security. > **Note**: Changes to any settings in the General tab will require > restarting GpgFrontend to take effect. --- ## Key Database Tab: Overview The **Key Database** tab allows users to manage multiple key databases. While detailed documentation is available elsewhere, note the following key points: - **Add New Key Database**: Easily create and manage isolated key databases for different projects or security requirements. - **Switch Between Databases**: Use the **Key Toolbox** dropdown in the main interface to select the active database. ![Key Database Tab](https://image.cdn.bktus.com/i/2024/11/29/7a66848e-bc23-fd13-08a4-1923de39369e.webp) > For more information on key database management, refer to the dedicated > documentation. --- ## Advanced Tab: Custom GnuPG Configuration The **Advanced** tab is designed for users who need to configure custom GPG installations. ![Advanced Tab](https://image.cdn.bktus.com/i/2024/11/29/ba283263-c9f5-9a6b-44a7-b0adf79684e8.webp) ### Configuring Custom GnuPG 1. **Enable Custom GnuPG** - Check the **Use Custom GnuPG** box to enable this feature. 2. **Specify GPG Configuration Path** - Use the **Select GnuPG Path** button to locate and set the directory where `gpgconf` resides. This is critical because GpgFrontend relies on the paths provided by `gpgconf` to locate essential components like `gpg`, `gpgsm`, and `gpg-agent`. 3. **Verifying Custom Configuration** - After setting the path, you can test the configuration by running `gpgconf --list-components` in a terminal. This command lists all available GPG components and their paths, ensuring that GpgFrontend can access them correctly. ![Test gpgconf](https://image.cdn.bktus.com/i/2024/11/29/a9b9eb46-f064-610f-892e-dfc71f1a45d4.webp) > **Note**: If `gpgconf` is not configured correctly, GpgFrontend may fail to > locate and execute necessary GPG binaries. --- ## Tips for Using GpgController Effectively 1. **Choose File Formats Wisely** - Use **Binary Mode** for efficiency in local operations and **ASCII Mode** for readability and compatibility in file sharing. 2. **Install a Full-Featured Pinentry** - Avoid relying on GpgFrontend's built-in password dialog for critical operations. Installing **Pinentry** ensures better compatibility and security.