Skip to content

Feature Request: CSV Import/Export for Shortcuts #1203

@sanathusk

Description

@sanathusk

Summary

Add bulk import and export functionality for shortcuts via CSV files to enable users to easily manage large collections of shortcuts.

Current Limitations

Vicinae currently only supports individual shortcut creation through the ShortcutFormViewHost interface. Users must manually create each shortcut using the "Create Shortcut" command or manage existing shortcuts through the "Manage Shortcuts" interface.

Proposed Solution

Implement CSV import/export functionality that leverages the existing ShortcutService and database schema.

CSV Format

name,url,icon,app
Google Search,https://google.com,https://google.com/favicon.ico,firefox
GitHub,https://github.com,https://github.com/favicon.ico,firefox

Implementation Approach

  1. Add Import Command: Create a new command similar to CreateShortcutCommand that handles file selection and CSV parsing
  2. CSV Parsing: Implement validation and parsing logic for the CSV format
  3. Batch Creation: Use the existing createShortcut method to create shortcuts in bulk
  4. Export Functionality: Add export capability to the "Manage Shortcuts" interface
  5. Error Handling: Provide clear feedback for invalid CSV formats and duplicate entries

Technical Considerations

  • The existing setPrefilledValues method demonstrates the system can handle pre-populated data
  • The browser extension already shows programmatic shortcut creation
  • Database schema supports all necessary fields for CSV import/export

Use Cases

  • Migrating shortcuts between different Vicinae installations
  • Bulk importing bookmarks from browsers
  • Sharing shortcut collections with other users
  • Backup and restore of shortcut configurations

Additional Context

This feature would be particularly valuable for users with extensive shortcut collections who currently need to manually recreate each shortcut when setting up new systems or sharing configurations with others.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions