Instantlauncher - quick launcher

Table of Contents

1. Introduction

Quick filesystem based document/application launcher. It starts by showing content of predefined directory. Sub directories can be chosen by simply moving mouse pointer over corresponding directory.

screenshot.png

Files types are color-coded.

1.1. File type colors

Colors come from the file type (selected entry = brighter shade):

blue
Directory - including a symlink that points to a directory
red
Executable file
green
Non-executable file
olive/yellow
Anything that is neither directory nor regular file, e.g. a broken symlink

Note: a symlink pointing to a file takes the file colors (red/green), not blue. The Usage table's "Directory/symlink (blue)" holds only for symlinks pointing to directories.

1.2. Usage

Simply hovering mouse pointer over directory expands its contents in the next right column.

  • Executable file (red):
    • Left mouse click:
      • Run executable file.
    • Right mouse click:
      • Toggle executable state.
  • Non-executable file (green):
    • Left mouse click:
      • Open file using corresponding application.
    • Right mouse click:
      • Toggle executable state.
  • Directory/symlink (blue):
    • Left mouse click:
      • Open directory using configured filesystem browser.
    • Right mouse click:
      • Open directory using configured text based terminal emulator.

2. Installation

Run the install script from the project root (asks for sudo):

./install

The script does everything: builds the jar (mvn clean package, requires JDK 21 and Maven), copies instantlauncher.jar and the instantlauncher launcher script to /opt/instantlauncher/, and symlinks the launcher into /usr/bin/.

After that the program starts by typing instantlauncher in a terminal. Only a Java runtime is needed at launch; the launcher script runs java -jar /opt/instantlauncher/instantlauncher.jar.

The jar name carries no version number, so these scripts never change when the project version does. Re-running install is safe: it rebuilds and updates the installed copy.

2.1. Configuration

When instantlauncher starts, it looks for configuration file under

~/.instantlauncher

If file is not found, it creates new default configuration file in YAML format:

!configuration
directoryOpenCommand: nautilus -w {file}
directoryTerminalOpenCommand: gnome-terminal --working-directory={file}
fileAssociations:
-  command: vlc {file}
   fileRegex: .*\.mkv$
-  command: emacs {file}
   fileRegex: .*\.txt$
-  command: eog {file}
   fileRegex: .*\.jpeg$
-  command: eog {file}
   fileRegex: .*\.png$
-  command: vlc {file}
   fileRegex: .*\.avi$
-  command: vlc {file}
   fileRegex: .*\.mp4$
-  command: eog {file}
   fileRegex: .*\.jpg$
-  command: emacs {file}
   fileRegex: .*\.org$
navigationRootPath: /home/svjatoslav/

Root directory from where to start navigation.

This parameter is user specific! In my case instantlauncher by default pointed this to my home directory. But it can be any directory user chooses.

I think good use-case is to create special directory to be used for instantlauncher root. This special root directory can in turn contain symlinks to various places user wants to visit often. Instantlauncher will follow symlinks as if they were directories.

navigationRootPath: /home/svjatoslav/

2.1.2. fileAssociations

Allows to map file name/extension using regular expression pattern matching to corresponding application.

Example:

-  command: vlc {file}
   fileRegex: .*\.mkv$

Where:

command
Command to execute to open given file. Special variable {file} will point to user chosen file using absolute file path.
fileRegex
Regular expression that must match the file.

2.1.3. directoryOpenCommand

Command to use when opening directory.

By default instantlauncher assumes that Gnome desktop environment is installed and uses Nautilus file manager:

directoryOpenCommand: nautilus -w {file}

2.1.4. directoryTerminalOpenCommand

Command to use when opening directory in text terminal based console.

By default instantlauncher assumes that Gnome desktop environment is installed and uses Gnome Terminal:

directoryTerminalOpenCommand: gnome-terminal --working-directory={file}

3. Source code

3.1. Download and clone

Created: 2026-09-27 su 19:30

Validate