ueli

This is a keystroke launcher for Windows and macOS.

ueli logo

ueli

This is a keystroke launcher for Windows and macOS.

ueli screenshot

Table of contents

Installation

Installer / Zip

  • Download the latest version here
  • Run the installer or unzip
  • Run the application

Note: because the executables are not signed Windows will probably prevent you from executing the installer or the program itself. You can click "Run anyway" to install/run the program.

Installing via chocolatey repository

  • Open a powershell with administration rights (Right click on your start button and click Windows PowerShell (Admin)
  • Type choco install ueli
  • Accept the upcoming prompt by entering y or run above command with -y switch
  • Run the application

Features

Program search

  • You can search for installed programs
  • Press Enter to launch the selected program
  • Press Shift Enter to launch the selected program as admin (Windows only)

Feature Program search

Files and folder search

  • You can search files and folders
  • Press Enter to open the selected file/folder
  • You can customize the folders which are scanned for files and folders

Feature file search

Open URLs with your default web browser

  • Type in a URL
  • Press Enter to open the URL with your default web browser

Feature URL

Open default mail program

  • Type in an email address
  • Press Enter to open your default mail program with an empty email to the specified email address

Feature email

Web search engines

  • You can use web search engines with a prefix and ?

Feature web search engines

Default web search engines:

Prefix Web Search Engine
d DuckDuckGo
g Google
gi Google Images
l Linguee
w Wikipedia
yt YouTube

You can customize your own web search engines

Fallback web search engines

You can customize multiple fallback web search engines which are used if ueli does not find any other search results.

Feature fallback web search

Operating system settings

  • Search for operating system settings

Feature operating system settings

Operating system commands

  • Execute operating system commands like "Shutdown", "Restart", "Lock computer", etc.

Feature operating system commands

Execute commandline tools

  • Start a commandline tool with the > prefix
  • Stop an executing commandline tool with Ctrl c

Note: you can not interact with the commandline tool. You only see the output.

Feature commandline

Browse file system

  • You can browse your file system by typing in a file path
  • Press Enter to open the file or folder
  • Press Tab for autocompletion

Feature file browser

Calculator

  • Calculate simple math, matrix, symbolic function, convert units and a lot more
  • Press Enter to copy the result to the clipboard

Feature calculator

Shortcuts

  • You can customize shortcuts to
    • start command line tools
    • open websites
    • open files/folders
    • launch programs

Feature shortcuts

Custom commands

  • You can customize custom commands with parameters

Feature custom commands

Environment Variables

  • Search for environment variables
  • Press Enter to open the current file/folder
  • Press Tab to autocomplete if it shows a valid file path

Feature environment variables

Keyboard shortcuts

Keyboard shortcut Description
Enter Execute selected search result
Shift Enter Execute selected program as admin (Windows only)
Tab Autocomplete file path
Ctrl o Open the selected program or file at it's location
Scroll up
Scroll down
Ctrl i Open settings
Shift Browse user input history up
Shift Browse user input history down
F6, Ctrl l Set focus on user input

Settings

To open the settings press Ctrl i or search for ueli settings.

Settings view

Options

All settings are stored in ~/.ueli/ueli.config.json.

  • allowMouseInteraction Boolean - If mouse interaction should be allowed.
  • alwaysShowOnPrimaryDisplay Boolean - If ueli should always show up your the primary display. If set to false ueli will show up on the display your cursor is currently on.
  • applicationFileExtensions Array of string - Represents the file extensions which are used to find applications in the specified folders.
  • applicationFolders Array of string - Represents the folders which are scanned for applications.
  • autoStartApp Boolean - If the app should be started automatically when you log in.
  • calculatorPrecision Number - Defines the calculator's precision of decimal numbers. Minimum is 0 and maximum is 64.
  • colorTheme String - Defines the color theme.
  • customCommands Array of customCommand objects - A list of custom commands
    • name String - Represents the displayed name of the custom command.
    • executionArgument String - Represents the execution argument for the custom command.
    • prefix String - Represents the prefix for the custom command.
    • icon String - Represents the svg icon for the custom command.
  • features FeatureOptions
    • calculator Boolean - If the calculator feature is enabled.
    • commandLine Boolean - If the command line feature is enabled.
    • customCommands Boolean - If the custom command feature is enabled.
    • email Boolean - If the email feature is enabled.
    • environmentVariables Boolean - If the environment variables feature is enabled.
    • fileBrowser Boolean - If the file browser feature is enabled.
    • fileSearch Boolean - If the file search feature is enabled.
    • programs Boolean - If the programs feature is enabled.
    • operatingSystemCommands Boolean - If the operating system commands feature is enabled.
    • operatingSystemSettings Boolean - If the operating system settings feature is enabled.
    • shortcuts Boolean - If the shortcuts feature is enabled.
    • ueliCommands Boolean - If the ueli commands feature is enabled.
    • webSearch Boolean - If the web search feature is enabled.
    • webUrl Boolean - If the web url feature is enabled.
  • fileSearchBlackList: Array of string - Represents a black list when files are searched. This has a small improvement on the performance when scanning a folder with a lot of files.
  • fileSearchOptions Array of FileSearchOption objects (only effective if searchFiles is set to true).
    • folderPath String - Represents a folder which should be searched for files and folders.
    • recursive Boolean - If the specified folder should be searched recursively. Be cautious with this option because it can slow down the application drastically.
  • hotKey String - Represents the hotkey to show/hide the window (Available hot keys).
  • logExecution Boolean - If ueli should log the execution of applications, files and folders for better search results. Set to false if you want to disable logging.
  • iconSet IconSet - Represents the default icon set.
    • appIcon String - Represents the svg icon for applications.
    • calculatorIcon String - Represents the svg icon for the calculator.
    • commandLineIcon String - Represents the svg icon when typing in a command line command.
    • emailIcon String - Represents the svg icon when typing in an email address.
    • environmentVariableIcon String - Represents the svg icon for environment variables.
    • fileIcon String - Represents the svg icon for files.
    • folderIcon String - Represents the svg icon for folders.
    • operatingSystemSettingsIcon String - Represents the svg icon for operating system settings.
    • searchIcon String - Represents the svg icon for the search icon on the top right.
    • shortcutIcon String - Represents the default svg icon for shortcuts and custom commands.
    • urlIcon String - Represents the svg icon when typing in an email address.
  • maxSearchResultCount Number - Maximum number of search results to be displayed on one page.
  • rescanInterval Number - Interval in seconds to rescan the application folders.
  • searchEngineLimit Number - Represents the maximum of items that the search engine shows in the search results. The lower the better is the rendering performance.
  • searchEngineThreshold Number - Represents the threshold for fuzzy matching (min = 0, max = 1, lower means you have to be more precise with the user input).
  • searchResultDescriptionFontSize Number - Represents the font size of the search result description in pixels.
  • searchResultHeight Number - Represents the height of a search result box in pixels.
  • searchResultNameFontSize Number - Represents the font size of the search result name in pixels.
  • shortcuts Arraay of shortcut objects - A list of shortcuts.
    • executionArgument String - Represents the execution argument for the shortcut.
    • name String - Represents the displayed name for the shortcut.
    • icon String - (Optional) Represents the svg icon for the shortcut. If no icon is set default icon is used.
  • showConfirmationDialog Boolean - If a confirmation dialog should pop up when trying to execute "dangerous stuff" like operating system shutdown etc.
  • showSearchResultNumber Boolean - If the search result number should be shown on the GUI.
  • showTrayIcon Boolean - If the icon should appear in the system tray.
  • smoothScrolling Boolean - If page scrolling for search results should be smooth or instant.
  • transparentWindow Boolean - If the window should be transparent. Changing this option needs a restart of ueli..
  • useNativeIcons Boolean - If native operating system icons should be applied to apps and files.
  • userInputFontSize Number - Represents the font size of the user input in pixels.
  • userInputHeight Number - Represents the height of the user input box in pixels.
  • userStylesheet String - Represents a path to a local stylesheet to modify the appearance of the window.
  • webSearches Array of webSearch Objects - A list of web search engines:
    • webSearch Object - Defines a web search engine.
      • icon String - Represents the svg icon for the specific web search engine.
      • isFallback Boolean - If the web search should act as fallback
      • name String - Represents the name of the web search engine.
      • prefix String - Represents the prefix for your web search engine. For example if the prefix is g you can type in g?{your search term} to search.
      • priority Number - Represents the priority of the web search engine when used as fallback (the higher the number the higher the web search engine appears in the search results).
      • url String - Represents the url for the search engine to which the search term is appended to. For example https://google.com/search?q= or https://google.com/search?q={{query}}.
      • whitespaceCharacter String - Represents a character or string which is used to encode whitespace.
  • windowMaxHeight Number - Represents the maximum window height. Only used for command line output and settings view.
  • windowWidth: Number - Represents the width of the main window in pixels.

Color themes

Color themes

Available color themes

  • atom-one-dark
  • dark
  • dark-mono
  • light
  • light-mono

Custom color themes

You can customize your own color theme with a CSS file on your computer.

  1. Create a CSS file on your computer

  2. Add CSS variables in the :root section. For example:

    :root {
        --background-color: #21252b;
        --text-color: #ccc;
        --accent-color: #333842;
        --accent-text-color: #fff;
        --mono-font-color: #ccc;
        --scrollbar-foreground-color: #3d444f;
        --scrollbar-background-color: #1f2328;
    }
  3. In the settings set userStylesheet to the CSS file you just created

  4. Reload ueli

You can completly overwrite uelis behaviour with your CSS file! See the base stylesheet of ueli.

Icons

On https://icons8.com you can find svg icons for almost everything!

Updating

To check if you are running the latest version open the settings. If there is an update available you can press the button to download and install the newer version.

Privacy

For better search results ueli is keeping track of the applications, files and folders you are executing. All information is stored in ~/.ueli/ueli.count.json. If you don't want ueli to track your executions simply delete that file's content and disable logging via the settings.

Known bugs

  • (#37) Window starts to move while typing when custom scaling in Windows is set.
  • (#92) If you see an error that says spawn powershell.exe ENOENT check if powershell is installed (should be installed in all recent Versions of Windows by default) and check if powershell is in the PATH variable.

Development

Build status

Platform Build status
Windows Build status
macOS Build status

Code coverage

Coverage Status

Requirements

  • Git
  • Node.js
  • Yarn

Setup

$ git clone https://github.com/oliverschwendener/ueli
$ cd ueli
$ yarn

Run

$ yarn bundle
$ yarn start

Note: there is also a watch task $ yarn bundle:watch which watches the typescript files and bundles them automatically if there are any changes.

Debug

For debugging you need Visual Studio Code

  1. Go to .vscode folder
  2. Make a copy of launch.example.json and rename it to launch.json
  3. Select one of the preconfigured debug modes and start debugging

Run tests

$ yarn test

Code coverage

$ yarn test --coverage

Package

$ yarn package:dir

Alternatives

License

Copyright (c) Oliver Schwendener. All rights reserved.

Licensed under the MIT License.

not_used

Something missing? Edit this app.

Keyboard Shortcuts

Key Action
/ Focus the search bar
Esc Focus the search bar and cleans it
Select the next search result
Select the previous search result
Enter Open the selected search result
cmdEnter Ctrl+Enter Open the selected search result in a new tab