find-n-run

Simple and quick application finder for Linux.

News

Introduction

Puppy Linux users SFR and L18L created the original Find'N'Run, an application starter script that displays system applications in a graphical window with a find-as-you-type search field to refine the hit list.

This project takes the shell script further, by increasing search speed and ease, adding many new features, a help system and translations.

This version does not include the additional ROX-Filer application, which is still included in the original version.

Unlike the original script, this version uses GNU awk (gawk) for core operations.

find-n-run is being developed and tested on Fatdog64-701 64-bit Linux, a Puppy Linux and LFS derivative.

Naming

Overview

Main features:

Notes

[1] It can happen that some icons unexpectedly look empty. Enable option "Show all icons" in the main window to fix the look.

[2] Due to limitations of the gtkdialog comboboxentry widget, the combobox is normally blank until it is focused and up-arrow has been pressed at least once. The first key press displays the command associated with the current entry.

[3] If you are running in a multi-user environment, be aware that find-n-run's temporary files are readable by everyone by default. Use command-line option --perm= to tighten permissions.

Screenshots

Version 1.10.6 (default window size)

main window

about dialog

Installing

It is recommended to install the latest full package for your distribution, which is split into multiple sub-packages:

If you prefer a barebone, manual installation you can just copy the script file usr/bin/findnrun from Github to your system.

In all cases, your system needs to satisfy the following pre-requisites: ash, gawk, gtk-dialog.

Packages

Packages for various distributions can be downloaded from:

(1) the latest release announcement in the releases page on Github:

(2) one of these known threads:

Manual installation

For a minimal installation, download the latest .zip or .tar.gz archive from the releases page on Github:

Puppy Linux OS: You can replace directly the findnrun script bundled with Fatdog64, and the script included in the .pet package for all other Puppies. For older .pet versions simply replace the existing file /usr/local/apps/FindNRun/findnrun with file usr/bin/findnrun from the downloaded archive.

Help system

You can view this file directly from findnrun by pressing key [F1] in the main window, or by clicking the help button in the About dialog window. If nothing happens when pressing [F1] or if the button is missing, most likely the help file isn't installed. If you are sure that the help file is installed, try setting environment variable BROWSER as explained further down.

User Preferences

The user preferences file is created as ~/.findnrunrc on first run.

Users can specify an alternative preferences file from the shell command line:

env CONFIG="/my/findnrun/conf" /usr/bin/findnrun

Gui Preferences

These values can be set also from the main window:

# Keep the main window open after starting an item.
defOPEN=false
# Show and cache all application icons.
varICONS=false
# Return keyboard focus to the search input field.
varFOCUSSEARCH=true

Hidden Preferences

These values are hidden in the main window. They are intended mostly for power users and custom applications:

# Icon cache location.
ICONCACHE=${HOME}/.icons
# Extend search to application comments (OR).
SEARCHCOMMENTS=false
# Extend search to application categories (OR).
# Prepend ';' to search for category only, i.e., ';office'.
SEARCHCATEGORIES=false
# Search pattern must match from the leftmost character.
# Ignored for category search.
SEARCHFROMLEFT=false
# Search pattern is a POSIX Basic regular expression.
# Applied also to comment search and category search.
SEARCHREGEX=false
# Enforce case-dependent searching.
CASEDEPENDENT=false
# Main window geometry, no default.
# Command-line option --geometry=WxH+X+Y overrides this value.
#GEOMETRY=460x280+100+200
# Desktop file search directories, space-separated list, system default.
#DESKTOP_FILE_DIRS=~/.local/applications /usr/share/applications /usr/local/share/applications
# Icon search directories, space-separated list, system default.
#ICON_DIRS=~/.icons ~/.local/Ń–cons /usr/share/icons /usr/local/share/icons /usr/share/pixmaps /usr/share/midi-icons /usr/share/mini-icons
# Preferred help viewing program.
#BROWSER=

Command-line options

--geometry=WxH+X+Y

Set window WidthxHeigth and top-left corner position. You may omit WxH or +X+Y.

--perm=PERMISSIONS

Set PERMISSIONS of the program temporary directory (per chown command). By default the temporary directory is created readable by everyone (755), which on multi-user systems can be a security concern:

findnrun --perm=700 # Now only the owner can read it / write it.

--stdout

Display gtkdialog's standard output, which would otherwise not be shown. This option is mostly of interest to developers and advanced users.

--

If you need to pass advanced options to gtkdialog, like perhaps which X display to use, you need to pass them on the command-line after a -- stop marker. Anything following -- will be passed to gtkdialog without further inspection. Be vary that some options you pass could conflict with the way findnrun sets up gtkdialog for use. Be also aware that in some cases you might also need to specify option --stdout:

findnrun --geometry= -- --center
findnrun -- --display=DISPLAY
findnrun --stdout -- --version

Environment variables

Standard variables

Many Linux versions pre-define some of these variables in system initialization files.

BROWSER

If the Help file is installed but it does not open - or it opens in a text editor - try setting BROWSER to your preferred web browser. BROWSER can be set either as an environment variable or as a configuration preference.

env BROWSER=firefox findnrun

LANG

If a translation file for your local language is installed but you see English messages, you need to properly configure your system locale. Find-n-run honors the system locale code that environment variable LANG displays.

echo $LANG

Non-standard variables

GEOMETRY

Window geometry can be set as an environment variable, as a configuration preference, and as a command-line option - in increasing order of precedence.

env GEOMETRY=500x200+100+100 findnrun

Known issues and limitations

Reporting bugs

Please file bugs against this script in the issues section of the github repository and not in the Puppy Linux forum thread. You do need a github free accont to file new issues.

Translations

If the system locale is correctly configured, findnrun should automatically display entry name and comments in the local language provided that the corresponding .desktop file includes translation strings. Note that entry categories are available in English only according to the freedesktop.org's desktop file specifications ref1 and ref2.

I will gladly add contributed translations to the git repository if translators send them to me. Generate a Github pull request or attach your contributed files to the above-mentioned forum thread. See TRANSLATING for further instructions.

Credits

Artwork, translations

Change Log

See the project release announcements page and - for fine-grained information - the commit history page.

License

GNU GPL v2