Kholmogorov27 Chevron Save

Powerful and highly functional startpage integrated with chatGPT and hidden under the super minimalistic and animated design (static/hosted/github pages)

Project README

Chevron GitHub license PRs Welcome

Сhevron is a powerful and highly functional startpage integrated with chatGPT
and hidden under the super minimalistic and animated design

available in static, hosted and github pages options

Live Demo | Download | Installation

Content

  • Usage
  • Configuration
  • TODO
  • Technologies
  • Features

    autosuggestions, history, macros and commands, macros menu, hotkeys, chatGPT integration, currency converter, calculator, animated and minimalist design

    Screenshots

    Installation

    You can set Chevron as the homepage (in the browser settings) or the new tab (you will need a custom tab extension).

    Warning If you want the app itself to be focused when opening a new tab and not the address bar,
    I recommend this extension in tandem with the hosted or github pages installation method for all chromium based browsers (Google Chrome, Microsoft Edge, Brave, Opera, Vivaldi etc)

    There are a few ways to install Chevron:

    Static (recommended)

    This method is recommended because it doesn't depend on your internet connection or any remote servers, and the UI will be loaded instantly.
    Some browser and extensions might have the focus problem

    1. Download the latest release
    2. Unzip the archive in any convenient place

    Hosted

    This method is useful when you want to fix the focus problem or for any other reason the Local file method doesn't work for you

    Note This method assumes that you have Node.js and npm installed on your PC

    1. Clone this repository

    2. Build

    3. Install node-(windows/linux/mac)

      for Windows:

      npm install -g node-windows && npm link node-windows
      

      for Linux:

      npm install -g node-linux && npm link node-linux
      

      for Mac:

      npm install -g node-mac && npm link node-mac
      
    4. Register the local server as a system service

      Note Administrator privileges are required to run this command

      for Windows:

      npm run register_windows
      

      for Linux:

      npm run register_linux
      

      for Mac:

      npm run register_mac
      

      This operation will create a service in your system to run the server on startup.

      To uninstall the service, run the command again.

    After you register the server, you will be able to access Chevron on localhost:8000

    GitHub Pages

    This method isn't recommended because it depends on your internet connection and GitHub servers

    1. Fork this repository
    2. Go SettingsPagesBranch: "gh-pages"Save
    3. Wait until your link will appear

    Build

    Note > Node.js and npm are required

    1. Install dependencies

      npm install
      
    2. Build

      npm run build
      

    After building, you can find all the necessary files in the /dist folder

    Usage

    To use Chevron's main functionality, just type something (you don't need to worry about focus on the input field, it is always in focus at the right moment).

    As soon as you type something, the query will be parsed and suggestions will be given.

    Suggestions generates from history and autosuggestion engine. You can limit number of suggestions for each source is settings.

    By default, you will be redirected to the search page of the search engine, however if the query matches a trigger of a macro, redirecting to this query will take you to the URL, specified in macro properties (url property).

    • Macros and commands:

      Macro is something like a bookmark. It helps access your frequently visited websites.
      To use a macro, your query must match one of its triggers.

      > gh

      Command is an addition to macros. With commands you can implement some website logic by modifying the URL.
      To use a command, you need to put the command after a trigger of a macro (the command must be defined in the global and macro commands lists). Everything going after a command is argument.

      > so?how to parse html with regex

      To ignore macros and force using search engine press Ctrl

    • Macros menu:

      Macros can be pinned to macros menu.

      Controls:

      • open/close:

        • the macros menu toggle button in the right bottom corner

          Note The macros menu toggle button will appear only on hover after you click it at least once

        • RMB
        • Shift
      • navigation:

        • mouse wheel
        • drag
    • Hotkeys:

      You can use hotkeys to quickly call macros which have key property.

      Shift + <key>

      macro must be pinned

    • ChatGPT:

      Before using ChatGPT you need to specify your OpenAI API key in SettingsQueryAIApi key.

      the key is stored locally on your computer

      To use ChatGPT integration double press Space after you typed a query.

    Configuration

    Settings

    You can configure main functionality of the app in Settings.

    To open Settings, click on the gear icon in the top right corner.

    You can click the show/hide icon at the bottom of the Settings window to show advanced settings.

    Note The gear icon will appear only on hover after you visit Settings at least once

    config.js

    You can edit Macros and Commands only in the /config.js file yet.

    /config.js contains a single JS object named CONFIG which has 3 properties:

    • macros Array

      structure:

      {
        name: string, // macros name
        category: string, // category of the macros
        url: string, // full macros URL
        normalisedURL: string, // normalised URL (secondLevelDomain + '.' + firstLevelDomain)
        triggers: [ string, ... ], // list of triggers
        commands: { // commands of the macro
          [type]: {
            // {@} - macros URL
            // {$} - command argument
            template: string, // URL template
            description (optional): string // description of the command for this macros
          }
        },
        bgColor: complexColor, // background color
        textColor: string, // text color
        pinned: boolean, // is the macros pinned in the Macros Menu
        key: (optional): string, // hotkey ('key' + <keyName>)
        icon: (optional): string // the name of the icon in the "/icons.js" file
      }
      
    • commands Array

      structure:

      {
        type: string, // command type (name)
        trigger: string // command trigger (preferably a symbol)
      }
      
    • engines Object

      structure:

      {
        name: string, // engine name
        bgColor: complexColor, // background color
        textColor: string, // text color
        types: { // query, calculator, currency, ...
          [type]: {
            // {@} - raw query (what user typed)
            // {$} - parsed query (what is in the query field)
            template: string // URL template
          }
        }
      }
      

    Because of the limitations of the CORS policy, macros icons must be stored in /icons.js in the ICONS object. You can put there any valid HTML SVG as a string

    Warning be aware of quotes

    TODO

    • The "Legacy" mode
    • Macros menu toggle button
    • Weather widget
    • Settings description
    • Redirect button
    • Force search engine on Ctrl
    • Fix transition animations
    • Macros and Commands editor
    • Macros Menu categories
    • Localisation
    • LocalStorage reset buttons
    • Refactor search engines system
    • Time settings

    Technologies

    JS, CSS, HTML, APCA (from color.js)


    inspired by Tilde

    Open Source Agenda is not affiliated with "Kholmogorov27 Chevron" Project. README Source: kholmogorov27/chevron

    Open Source Agenda Badge

    Open Source Agenda Rating