/ueli

An 'alt+space' launcher for Windows

Primary LanguageTypeScriptMIT LicenseMIT

ueli logo

ueli

Original repo: https://github.com/oliverschwendener/ueli
This repo contains personal modification, only supports Windows 10. Some optional requirements:

  • Spicetify (https://github.com/khanhas/spicetify) for Spotify search and control player.
    • If you are also using WebNowPlaying in one of your skin in Rainmeter, it's best to use another port for Spotify to communicate with UELI:
      • Save this file to Documents\Rainmeter\Skins\Spicetify\Extensions
      • Activate and inject WebNowPlaying for UELI in Spicetify. Restart Spotify.
      • Change musicPlayerWebSocketPort to 3928
      • Reload UELI
  • Everything (https://www.voidtools.com/) to search all files in all drives in split of second.

musicplayer

ueli screenshot

Table of contents

Installation

Download exe to install or zip to unzip manually.

Quick tutorial

  • Press Alt Space to show/hide the window
  • Start typing a program name
  • Press Enter to launch the program

Keyboard shortcuts

Keyboard shortcut Description
Ctrl O Open the selected program or file at it's location
Ctrl Shift C Copy search result to clipboard
Scroll up
Scroll down
F6, Ctrl L Set focus on user input
Ctrl , Ctrl Browse previous input

Hold Alt when opening an executable to run as adminstrator.
Hold Alt when opening an folder to open it in text editor.

Check out config file for mode and media player hotkeys.

Features

ueli also can be extended with plugins

Plugins

To install plugins, put plugin you want to use in folder %userprofile%\.ueli\plugins\.
Following is list of plugins in plugins.zip package I included in releases page.

ddg

Mode: Online
Prefix: dd!

A Duckduckgo scrapper. Convenient for a quick web search.

plugin_ddg

firefox

Mode: Run
No prefix

Search Firefox visited sites.

plugin_firefox

moneyconverter

Mode: Online
No prefix

Converts over 160 currencies. Exchange rates are updated everyday.
This plugin requires you to register a free account at https://fixer.io/ to get a personal API key.
After that, put your API key in %userprofile%\.ueli\plugins\moneyconverter\api-key.js.

Syntax: <number> <from currency> [to] <to currency> <to currency> ...
to is optional, it's ok to not type it in.

Example usages:

  • 50 usd to eur
  • 50 usd myr
  • 20 aud to gbp cad
  • 20 aud vnd jpy hkd

plugin_moneyconverter

rainmeter

Mode: Run
Prefix: rm!

Executes Rainmeter bang. Bang and config names are also autocompletable (hit Tab when selecting a result).

plugin_rainmeter

Customization

All settings are stored in ~/ueli.config.json. You can modify this file to change the default values.

Option Type Description
applicationFileExtensions string[] File extensions which are used to find applications in the specified folders.
applicationFolders [path, alias][] path is the folder path which are scanned for applications, alias is for search result description.
applicationKeywordBlacklist string[] List of keyword to excluding application from search results, like uninstall or help
autoStartApp boolean If the app should be started automatically when you log in
blurBackground boolean Whether ueli should show blurry background
bookmarkFromBrowser string Browser to get bookmark from. Valid values: firefox, chrome, vivaldi, opera, chromium.
bookmarkProfileName string https://github.com/khanhas/ueli/wiki/Browser-bookmark-search
customCommands customCommand[] A list of customCommand.
customIcons customIcons Define custom search results and mode icon
directorySeparator string Separator for search result description
everythingFilterFilePath string Path to Everything's filters CSV file.
hotkeyEverythingMode string
hotkeyEverythingModeCwd string Hotkey for Everything mode with Explorer location-aware.
hotkeyOnlineMode string
hotkeyRunMode string
hotkeyRunModeCwd string Hotkey for Run mode with Explorer location-aware.
hotkeyWindowsMode string
maxSearchResultCount number Maximum number of search results to be displayed
maxTotalSearchResult number Maximum number of search results to be listed
musicPlayerHotkeyBack string
musicPlayerHotkeyLike string
musicPlayerHotkeyMute string
musicPlayerHotkeyNext string
musicPlayerHotkeyPlayPause string
musicPlayerLocalName string Valid values: aimp, cad, foobar, itunes, mediamonkey, spotify, winamp, wmp
musicPlayerSmallSize boolean Wheather using small player
musicPlayerType string websocket or local
musicPlayerWebSocketPort number Port to use when communicating with player to get information.
onlineModeDelay number In milisecond. Delays an amount of time before starting to search.
powerShellPath string Set path to custom powershell cli. Useful for anyone want to use Powershell Core 6 instead of default Windows Powershell.
searchOperatingSystemSettings boolean If operting system settings and commands should appear in the search results
searchResultExecutionArgumentFontSize number Font size of the search result execution argument in pixels
searchResultHeight number Height of a search result box in pixels
searchResultNameFontSize number Font size of the search result name in pixels
textEditor textEditor Set your favourite editor to open folder with it.
userInputFontSize number Font size of the user input in pixels
userInputHeight number Height of the user input box in pixels
useNativeApplicationIcon boolean Whether using native bitmap icon of programs.
webSearches webSearchEngine[] A list of webSearchEngines
windowWidth number Width of the main window in pixels

customCommand object

  • executionArgument string - Execution argument for the custom command. Prefix > to execute command in UELI command line.
  • name string - Displayed name for the custom command
  • icon string - (Optional) SVG icon for the custom command. If no icon is set default icon is used.

customIcons object

  • bookmark: SVG for bookmark search result icon
  • calculator: SVG for calculator search result icon
  • clipboard: SVG for clipboard icon
  • commandLine: SVG for commandLine search result icon
  • customShortcut: SVG for customShortcut search result icon
  • everything: SVG for Everything mode icon
  • file: SVG for file search result icon
  • folder: SVG for folder search result icon
  • loading: SVG for loading icon
  • online: SVG for Online mode icon
  • program: SVG for program search result icon
  • search: SVG for Run mode icon
  • url: SVG for url search result icon
  • variable: SVG for variable search result icon
  • windows: SVG for Windows mode icon

textEditor object

  • name string - Displayed name for the editor
  • path string - Path to the editor exe.

webSearchEngine object

  • icon string - SVG icon for the specific web search engine
  • name string - Name of the web search engine
  • prefix string - Prefix for your web search engine. For example if the prefix is g you can type in g?{your search term} to search
  • url string url for the search engine to which the search term is appended to. For example https://google.com/search?q=

Development

Requirements

  • Git
  • Node.js
  • Yarn

Setup

git clone https://github.com/khanhas/ueli
cd ueli
yarn

Run

yarn electron-rebuild
yarn build
yarn start

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

Debug

Note: for debugging you need Visual Studio Code

Choose one of these debug configurations:

Debug configurations

Package

yarn package

For distributing:

yarn package:publish

License

Copyright (c) Oliver Schwendener. All rights reserved.

Licensed under the MIT License.