Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Git-Based Settings Sync #10037

Open
znowfox opened this issue Oct 31, 2024 · 1 comment
Open

Feature Request: Git-Based Settings Sync #10037

znowfox opened this issue Oct 31, 2024 · 1 comment

Comments

@znowfox
Copy link

znowfox commented Oct 31, 2024

Feature Request: Git-Based Settings Sync

Description

A feature to enable seamless synchronization of settings and configurations across multiple devices via Git, similar to Electerm's settings sync functionality. This will allow users to automatically sync their settings with a specified Git repository, ensuring consistent configurations on all devices without the need for manual export/import.

Motivation

Tabby users often use the app across multiple devices and environments. Implementing Git-based settings sync will:

  1. Ensure consistent configurations across different devices.
  2. Simplify configuration management for teams and individuals who want to maintain a uniform setup.
  3. Reduce the time spent on manually configuring each instance of Tabby.
  4. Increase productivity by maintaining a seamless environment across development machines.

Proposed Implementation

  1. Add a Git Integration Option in Settings

    • Add an option in the settings menu where users can link a Git repository for syncing.
    • Allow users to specify the repository URL and set up Git credentials or SSH keys for authentication.
  2. Syncing Mechanics

    • Provide options to set sync intervals or sync manually.
    • When syncing, push any local changes in settings to the Git repository, or pull updates from the repository if newer changes are detected.
    • Handle conflicts (e.g., via prompts or a "Last Write Wins" approach).
  3. Settings Backup Structure

    • Use a .tabby-config or similar folder structure in the repository to store settings.
    • Enable the syncing of profiles, themes, plugins, and any other custom configurations.
  4. Encryption and Privacy Options

    • Allow users to encrypt sensitive data like credentials, possibly with a passphrase, before pushing to Git.
    • Add an option to exclude specific settings (e.g., credentials) from sync if users prefer not to store them in Git.
  5. UI/UX Considerations

    • Provide clear indicators of sync status (e.g., last synced timestamp, sync errors).
    • Display a summary of changes before syncing to give users a clear view of what will be pushed/pulled.

Potential Challenges

  • Conflict Resolution: Strategies for handling conflicts between local and remote settings.
  • Security: Ensuring sensitive settings data remains secure, especially when using public repositories.
  • Network Issues: Handling sync failures gracefully if the user is offline or has network issues.

References

@GeekCornerGH
Copy link

There's a Git plugin available (plugin section) that allows you to sync through GitHub Gist for example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants