find-n-run
Simple and quick application finder for Linux.
News
- Project home
- As of version 1.10.5 this script is featured in the original Find'N'Run
- Version 1.10.6 runs on Lubuntu: package information
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
- find-n-run refers to this new project and its repository.
- Find'N'Run refers to the original project. For historical reasons both projects also used it as the window title.
findnrun
is the script name; the same name for both projects - but of course the script contents differ.
Overview
Main features:
- Fast searching and starting system applications (find as you type). It is also possible to search through application comments and categories, searching for left-starting matches only, searching using regular expressions, and enforcing case-dependence.
- Application icon column. [1]
- Command line entry with command history.
A combobox widget
tracks the command associated with the currently selected
.desktop
item. Pressing up-arrow/down-arrow moves back/forward in the history of previously executed commands. [2] - Keyboard focus control. After starting an application focus can be returned to either the search input field or to the selected application list item.
- Geometry support to exactly size and position the main window.
- Browsable help documentation (HTML and markdown).
- Extensive tooltips, and configurable user preferences.
- Multiple users can use find-n-run at the same time. [3]
- Multi-language support includes program and help documentation.
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)
Installing
It is recommended to install the latest full package for your distribution, which is split into multiple sub-packages:
- The base package includes the main script, its
.desktop
file, and an English help file (markdown) - The optional NLS package adds runtime translations in several languages
- The optional doc package adds HTML English documentation (possibly also translated in other languages).
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:
- Non-Puppy Linux OS: ensure all pre-requisites are met
- Extract file
usr/bin/findnrun
and copy it to/usr/bin/findnrun
- Set file ownership to root and executable file permissions
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 Widthx
Heigth 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
-
Freedesktop.org's icon theme support isn't implemented. This means that if multiple icon themes are installed findnrun will apply the first icon found in alphabetical order. You can work around this limitation by setting hidden user preference
ICON_DIRS
. - Prioritized language preferences via environment variable
LANGUAGE
are not supported. Find-n-run honors the system locale code that environment variableLANG
displays - when a matching translation file is installed.
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
Change Log
See the project release announcements page and - for fine-grained information - the commit history page.