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.
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.
- Left mouse click:
- Non-executable file (green):
- Left mouse click:
- Open file using corresponding application.
- Right mouse click:
- Toggle executable state.
- Left mouse click:
- Directory/symlink (blue):
- Left mouse click:
- Open directory using configured filesystem browser.
- Right mouse click:
- Open directory using configured text based terminal emulator.
- Left mouse click:
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/
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
- This program is free software: released under Creative Commons Zero (CC0) license
- Program author:
- Svjatoslav Agejenko
- Homepage: https://svjatoslav.eu
- Email: mailto:svjatoslav@svjatoslav.eu
- Other software projects hosted at svjatoslav.eu
3.1. Download and clone
- Download latest snapshot in TAR GZ format
- Browse Git repository online
Clone Git repository using command:
git clone https://www2.svjatoslav.eu/git/instantlauncher.git