A run utility featuring a slim design and bash-style autocompletion
Go to file
wdlkmpx c4813e68e4 update autogen.sh 2020-08-24 19:27:20 +08:00
src support gtk >= 2.14 2020-08-24 19:27:15 +08:00
.gitignore update autogen.sh 2020-08-24 19:27:20 +08:00
.travis.yml add .travis.yml 2017-12-03 14:11:17 +00:00
AUTHORS update ChangeLog & AUTHORS 2020-07-16 18:40:10 +08:00
COPYING Initial revision 2001-02-23 07:48:14 +00:00
ChangeLog update ChangeLog & AUTHORS 2020-07-16 18:40:10 +08:00
Makefile.am simplify / use @sysconfdir@ for gmrunrc 2017-06-29 19:46:04 +08:00
README.md update README a bit 2020-07-16 18:51:05 +08:00
autogen.sh update autogen.sh 2020-08-24 19:27:20 +08:00
configure.ac update autogen.sh 2020-08-24 19:27:20 +08:00
gmrunrc gmrunrc: remove unused options 2020-07-17 13:42:10 +08:00
zrelease gmrun 0.9.5w 2019-05-22 23:51:21 +08:00

README.md

GMRUN

A run utiliy featuring a slim design and bash style auto-completion.

see AUTHORS file

Features

* Tilda completion (~/ <==> $HOME/)

* Completion works for separate words (e.g. you can type em<TAB> which
  turns to emacs, type a SPACE, and write the file you want to open using
  completion).

* Configuration file: ~/.gmrunrc or /etc/gmrunrc.
  Check one of them, configuration is very simple.  From that file you
  can change window position and width, history size, terminal, URL
  handlers, etc.

* Config file parameter: History.  History is maintained in the file "
  ~/.gmrun_history ".

* CTRL-Enter runs the command in a terminal.  CTRL-Enter without any
  command starts a new terminal.

* You can use CTRL-R / CTRL-S to search through history, much like in bash
  or Emacs.  Also, pressing "!" as the first character enters some special
  search mode, finding those history entries that begin with the entered
  text.

* URL handlers allowing you to enter lines like "http://www.google.com"
  to start your favorite browser on www.google.com.
  The URL-s are configurable from the configuration
  file, in a simple manner (I hope..).

* Extension handlers (added in 0.8.0).  Basically you can run, for
  instance, a ".txt" file, assuming that you have configured a handler for
  it in the configuration file.  The default handler for ".txt" files is,
  of course, Emacs.  But you can easily change that, you... you VIM user!

* UTF-8 support (added in 0.9.2)

Requirements

* A C++ compiler
* GTK-2 / 3

Compilation, installation

Use the configure script (run ./autogen.sh if ./configure is missing):

    $ ./configure --prefix=/usr
    $ make
    $ make install

Pass --enable-gtk3 to ./configure to build the gtk3 ui

Optionally you can configure your window manager to call gmrun
with WinKey + R or something.

Tips and tricks

  1. Everything that doesn't start with "/" or "~" gets completed from $PATH environment var. More exactly, all files from $PATH directories are subjects to completion (even if they are NOT executables; this is a bug, but I'm afraid I'm not willing to fix it).

    Pressing TAB once when no text is entered opens the completion window, which will contain ALL files under $PATH.

  2. For instance you use TAB to complete from "nets" to "netscape-navigator". A small window appears, allowing you to select from:

    - netscape
    - netscape-communicator
    - netscape-navigator
    - netstat
    

    That is because all these executables have the same prefix, "nets". You type TAB twice to get to the third element ("netscape-navigator"). Now, if you want to add a parameter such as "-url http://blah.blah.org" you can press SPACE (the list disappears, and a SPACE is inserted after the netscape-navigator).

  3. If you accidentally pressed TAB more than you wanted (in that small window, described above) you can use UP / DOWN arrows to select the right completion.

    • ESC closes the completion window, leaving the selected text in the entry.
    • HOME / END - the same, but clears the selection.
    • SPACE - the same, but clears the selection and appends one space.
    • Pressing ENTER (anytime) runs the command that is written in the entry.
    • Pressing CTRL+Enter (anytime) runs the command in a terminal (check your configuration file). But if the entry is empty (no text is present, or only whitespaces) then a fresh terminal will be started.
  4. Suppose you use CTRL-R to search backwards through history. If, accidentally, you skipped the line that you're interested in, you can use CTRL-S to search forward. This is more awesome than in bash :) It basically acts like a filter on history, for which you use CTRL-R instead of UP arrow, and CTRL-S instead of DOWN arrow.

    The same if you search something with "!": only lines that BEGIN with the entered text are matching, but you can reverse the search order using CTRL-R / CTRL-S. Very flexible approach.