Giter VIP home page Giter VIP logo

parthjadhav / verve Goto Github PK

View Code? Open in Web Editor NEW
622.0 7.0 24.0 6.35 MB

Verve is a lightweight and blazingly fast launcher for accessing and opening applications, files and documents. ⚡

License: GNU Affero General Public License v3.0

HTML 0.70% Rust 49.20% TypeScript 9.67% Svelte 38.57% CSS 1.46% JavaScript 0.40%
rust alfred cmd-k launcher raycast rust-lang spotlight svelte typescript verve cmd-space macos open-source tauri verve-app verve-launcher

verve's Issues

Verve.app is damaged and can't be opened

I'm getting the following error message "Verve.app is damaged and can't be opened" when I try to run Verve. This is with the aarch64 build on an M1 Pro processor running macOS Ventura (13.0.1).

Screenshot 2022-12-29 at 16 28 20

v0.3.2 is broken.

Download v0.3.2 and tried to launch, but macOS reports verce is broken.

Adding Extension Support to Verve

We are considering adding extension support to Verve, which would allow users to create scripts or programs that extend the functionality of the application. This would be a challenging task to implement, but we believe it would greatly enhance the utility of Verve for our users.

One potential way to implement extension support is by using a wasm runtime (such as wasmtime) to embed a wasm runtime into the app and load 3rd party plugins as wasm modules. This would give us fine-grained control over security and exposed APIs, and would allow us to use codegen utilities (such as rust, assemblyscript, and c) to create binding libraries that compile to wasm. Third-party developers (or ourselves) could then use these libraries to compile their code to wasm and create working extensions in a secure way.

We are open to suggestions and ideas about how best to implement extension support in Verve. If you have any thoughts or recommendations on this topic, please let us know in the comments.

Side notes:
The above approach was suggested by -> https://github.com/JonasKruckenberg

Replace generic icon with extension based icons

Currently when a user searches through /search-term the icons of the results are same: ./src-tauri/assets/default.svg
This task involves replacing the generic icon with extension based icons.

display full path for file search

When searching for files the path is not displayed which can get confusing, especially when you have many projects that use a similar pattern when naming files, or when compiled/transpiled files maintain the same file name:

Screenshot 2023-01-10 at 00 46 21

It would probably be beneficial to display the file path, and perhaps de-prioritise certain directories, e.g. folders with the name dist or target etc.

Check if valid shortcut

This task involves checking if the shortcut specified by the user is valid and meets certain criteria (e.g. not already in use by another application).

Display Paths from parent git repository in full search

currently only 2 parent folders are displayed: fileParentDir/fileDir/fileName. This is better but for files that are nested deeper, e.g. app/pages/page1/components/index.ts This pattern might have lots of folder named components and lots of files named index.ts. In cases like this there are 2 solutions:

  1. Always display the absoute path from the home directory
  2. Display the absolute path from the git repository root.

Both options are fine but probably option 2 is better. In cases where the total path name is very long, we should truncate the final output to not clutter the UI. E.g.:

some-project/app/pages/feature/componets/edit/state.ts

could become

some-project/.../components/edit/state.ts

otherwise depending on how deeply nested the file is, the full file path might not fit in the results view because it is too wide.

Originally posted by @benediktms in #38 (comment)

Allow users to change FULL Search Path

Currently /search-term would only search in /users directory. This task would involve adding a control in Preferences window to change that path or add additional paths to search in.

Shortcut hotkey not based on keyboard layout.

Shortcut is based on standard keys layout rather than the actual input given. To reproduce:

  1. Set keyboard layout to colemak.
  2. Open verve preferences.
  3. Set Hotkey to Cmd+Shift+F

Now Cmd+Shift+F will not open Verve, but Cmd+Shift+T will.


As an aside, after installing on MB M1 Pro, I got damaged and can't be opened which had to be circumvented with xattr -cr /Applications/verve.app. Also, the app often opens lower and lower until it is off the screen and not usable, then at some point pops back up to the middle.

Add scroll feature to display all results

This task involves adding a scroll feature to the application to allow users to view all of the search results, rather than just a limited number which is 5 currently.

Make a windows version

Can you provide a windows version ? By hiding default design, and frame to hidden ?
ty

Calculations support

This task involves adding a calculator feature to the application that allows users to perform calculations and conversions using normal language. The calculator will be able to understand mathematical expressions and equations written in a natural language format, such as "10 + 20" or "20 times 49". This will allow users to input calculations and conversions in a way that is similar to how they would be written on paper or spoken aloud.

To implement this feature, you will likely need to use a library or tool that is capable of parsing and evaluating mathematical expressions written in natural language. One example of such a library is the Alfred Calculate Anything library (https://github.com/biati-digital/alfred-calculate-anything). Once you have a library or tool in place, you will need to integrate it into Verve and create a user interface for the calculator feature, such as a text input field for the user to enter their calculations and a display area to show the results.

In addition to basic arithmetic operations (e.g. addition, subtraction, multiplication, division), the calculator feature should also be able to handle more complex operations, such as square roots, exponents, and trigonometric functions. It should also be able to handle unit conversions, such as converting between different units of length, mass, or volume.

Add Linting

This task involves adding linting to the application codebase to ensure that it follows a consistent style and adheres to best practices.

Install Via Homebrew

This task involves creating a Homebrew package for the application so that users can easily install it using the Homebrew package manager.

Create an Indicator when App is opened first time

Verve being an menu bar app, it doesn't display that it has been opened or not except for the menu bar icon. It would be better if we add an indicator or open the preferences tab each time the app is opened.

add linux support 🚀

Changes required:

  1. Changing this to include linux release.

    "targets": ["app"],

  2. Changing the paths below to work for Linux file system, Might need to research a bit on how to add platform specific logic. Creating a struct with the platform specific paths would be a good idea.

    pub async fn handle_input(input: String) -> (Vec<String>, f32, i32) {
    let mut result: Vec<String>;
    let mut result_type: ResultType;
    let start_time = Instant::now();
    if !input.starts_with("/") {
    result = search(
    input.as_str(),
    vec![
    "/Applications",
    "/System/Applications",
    "/System/Applications/Utilities",
    ],
    Some(".app"),
    Some(1),
    );
    similarity_sort(&mut result, input.as_str());
    result_type = ResultType::Applications;
    } else {
    result = search(
    input.trim_start_matches("/"),
    vec!["/Users/"],
    None,
    Some(10000),
    );
    println!("{:?}", result);
    result_type = ResultType::Files;
    }
    if result.len() == 0 {
    let calculation_result = calculate(input.as_str());
    if calculation_result != "" {
    result.push(calculation_result);
    result_type = ResultType::Calculation;
    }
    }
    let time_taken = start_time.elapsed().as_secs_f32();
    return (result, time_taken, result_type as i32);
    }

  3. Might need to update the command below to support opening apps on linux.

    #[tauri::command]
    pub fn open_command(path: &str) {
    Command::new("open")
    .arg(path.trim())
    .spawn()
    .expect("failed to execute process");
    }

  4. Below Path may also need updation:

    #[tauri::command]
    pub fn launch_on_login(enable: bool) -> bool {
    let auto = AutoLaunchBuilder::new()
    .set_app_name("verve")
    .set_app_path("/Applications/verve.app")
    .build()
    .unwrap();

  5. Might need to figure out how to derive icons on linux systems...

    pub fn convert_all_app_icons_to_png() {
    let result: Vec<String> = SearchBuilder::default()
    .location("/Applications")
    .more_locations(vec![
    "/System/Applications",
    "/System/Applications/Utilities",
    ])
    .depth(1)
    .ext(".app")
    .ignore_case()
    .build()
    .collect();
    for app_path in result {
    let app_name = app_path.split("/").last().unwrap();
    let icon_path = get_icon_path(&app_path);
    if icon_path != "" {
    convert_and_store_icons(&icon_path, app_name);
    }
    }
    }

  6. This shortcut might need to be updated to META + Shift + G

    shortcut: String::from("Command+Shift+G"),

    shortcutArray = ["Command", "Shift", "G"];

    .map((key) => key)
    .join(" + ")
    .replace("Meta", "")
    .replace("Command", "")
    .replace("Control", "")
    .replace("Alt", "")
    .replace("Shift", "")

There might be more changes, Depending on the arising issues. Please do ping below if you want to create sub-issues for all of those...

Add Theme's & Customisation

This task involves adding an interface in the Preferences window that allows users to change the colors of the application based on their preference. The colors are currently specified in the ./src/styles.css file, and the goal is to give users the ability to customize those colors to their liking.

Application won't run/start

I'm sure this is a user error but here goes. I install the app (x86_64), run it, hit cmd+shift+g, and nothing. I check in activity monitor i can't find any process by the name 'verve.'

If i install the aarch64 version, i get this error: #16.

Much appreciated if you can point me in the right direction or some error messages or logs :) Thanks!

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.