Giter Site home page Giter Site logo

milinbhakta / cliprust Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 5.11 MB

ClipRust is a robust, efficient clipboard manager built with Rust. It provides a seamless way to manage clipboard history, allowing users to copy, store, and retrieve multiple items easily. With a user-friendly interface and high performance, ClipRust enhances productivity and streamlines workflows.

License: MIT License

HTML 4.70% Rust 24.58% TypeScript 41.72% CSS 21.89% Python 7.11%
rust tauri clipboard-manager typescript

cliprust's Introduction

ClipRust - A Clipboard Manager

ClipRust is a clipboard manager application that is designed to enhance the functionality of the system clipboard. It is built using Tauri, a framework for building lightweight, secure, and cross-platform desktop applications with web technologies, and TypeScript, a statically typed superset of JavaScript that adds optional types.

What It Is Used For

ClipRust is used for managing clipboard data. It allows users to copy and delete clipboard items, and it displays notifications to inform users when an action has been performed. This makes it easier for users to keep track of their clipboard history and manage their copied items.

How to Use It

To use ClipRust, you first need to install it on your machine. The installation process involves cloning the repository, navigating into the project directory, installing the dependencies, and building the Tauri application. Once installed, you can start the application by running the Tauri development server.

Here are the steps to install and use ClipRust:

  1. Clone the repository: git clone https://github.com/milinbhakta/ClipRust.git
  2. Navigate into the project directory: cd ClipRust
  3. Install the dependencies: npm install
  4. Build the Tauri application: npm run tauri build
  5. Start the application: npm run tauri dev

Once the application is running, you can copy and delete clipboard items using the user interface.

What Problem It Solves

The system clipboard typically only allows for one item to be stored at a time. This can be limiting when you need to copy and paste multiple items frequently. ClipRust solves this problem by providing a clipboard manager that allows for multiple items to be stored and managed. This can greatly improve productivity and efficiency when working with copied data.

Project Structure

  • src/: Contains the TypeScript source files and assets for the frontend of the application.
  • src-tauri/: Contains the Rust source files for the backend of the application.
  • vite.config.ts: Configuration file for Vite, which is used for bundling the frontend code.
  • tsconfig.json: Configuration file for TypeScript.
  • .env: Contains environment variables for the project. This file is ignored by Git for security reasons.
  • .env.sample: A template for the .env file. You can copy this file to .env and fill in your own values.
  • iconGenerator.py: A Script to generate icons for different OS and sizes

Development

To start the development server, run npm run tauri dev. This will start the Tauri development server and open the Tauri window.

Contributing

Contributions are welcome! Please read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

cliprust's People

Contributors

milinbhakta avatar milindbhakta avatar

Stargazers

 avatar Chris Raethke avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cliprust's Issues

Add Support for Image

  1. Cross-Platform Support: The clipboard manager should support copying and pasting images on multiple platforms, including Windows, macOS, and Linux.

  2. Image Support: The clipboard manager should be able to copy and paste images from and to the clipboard. It should support common image formats such as JPEG, PNG, and BMP.

  3. Error Handling: The clipboard manager should handle errors gracefully. If an image cannot be copied or pasted, the application should display an appropriate error message to the user.

  4. Performance: The clipboard manager should handle images. It should not significantly slow down the application or use excessive memory, even when dealing with large images or files.

  5. User Interface: The clipboard manager should display a preview of images in the clipboard history. The user interface should be intuitive and easy to use.

  6. Integration with Existing Features: The image support should be integrated with the existing features of the clipboard manager.

  7. Testing: The image support should be thoroughly tested to ensure it works correctly and reliably. The tests should cover different platforms, image formats, and edge cases.

Add Testing for ClipRust Features

Description

As ClipRust grows and more features are added, it's important to ensure that all features are working as expected and that new changes don't break existing functionality. To achieve this, we need to implement tests for the features in ClipRust.

Detailed Explanation

Currently, there are no tests in place to verify the functionality of the features in ClipRust. This makes it difficult to catch bugs and regressions, and it increases the risk of introducing breaking changes.

By adding tests, we can catch issues early, before they affect the end users. Tests will also make it easier to add new features and refactor existing code, as we can be confident that we're not breaking anything.

Expected Behavior

All features in ClipRust should have corresponding tests that verify their functionality.

Possible Solution

  1. Choose a testing framework suitable for Rust projects.
  2. Write unit tests for individual functions and methods.
  3. Write integration tests for features, ensuring that they work correctly when they interact with each other.
  4. Set up continuous integration to run the tests automatically when code is pushed to the repository.

Additional Context

Adding tests is a best practice in software development. It will help us maintain the quality of ClipRust and make it easier to add new features in the future.

Add Search Functionality to ClipRust

Description

As a user of ClipRust, I would like to be able to search my clipboard history so that I can quickly find and retrieve items that I've previously copied.

Detailed Explanation

Currently, if a user wants to find a specific item in their clipboard history, they have to manually scroll through the list. This can be time-consuming and inefficient, especially if the user has a large clipboard history.

By adding a search functionality, users would be able to find items in their clipboard history more quickly and easily. The search functionality should support searching for text within the copied items.

Steps to Reproduce

  1. Open ClipRust.
  2. Try to find a specific item in the clipboard history.
  3. Notice that there is no way to search the clipboard history.

Expected Behavior

Users should be able to search their clipboard history for specific items.

Actual Behavior

There is currently no way to search the clipboard history.

Possible Solution

Implement a search bar at the top of the clipboard history. When the user types into the search bar, the clipboard history should be filtered to only show items that match the search query.

Additional Context

Adding a search functionality would greatly improve the user experience and make the application more efficient.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.