A run utility featuring a slim design and bash-style autocompletion
Go to file
mishoo 1968ce40df modified for URL-s
also, added some small comments to make content clearer for user.
2001-07-27 08:01:58 +00:00
config modified for URL-s 2001-07-27 08:01:58 +00:00
src added URL-handling ability (check the config file) 2001-07-27 08:01:02 +00:00
AUTHORS Initial revision 2001-02-23 07:48:14 +00:00
COPYING Initial revision 2001-02-23 07:48:14 +00:00
ChangeLog Initial revision 2001-02-23 07:48:14 +00:00
INSTALL Initial revision 2001-02-23 07:48:14 +00:00
Makefile.am *** empty log message *** 2001-07-21 14:15:29 +00:00
NEWS Initial revision 2001-02-23 07:48:14 +00:00
README *** empty log message *** 2001-06-29 06:52:34 +00:00
acconfig.h Initial revision 2001-02-23 07:48:14 +00:00
aclocal.m4 Initial revision 2001-02-23 07:48:14 +00:00
autogen.sh Initial revision 2001-02-23 07:48:14 +00:00
config.h.in Initial revision 2001-02-23 07:48:14 +00:00
configure - bug fixes 2001-07-26 07:47:41 +00:00
configure.in new version 2001-07-22 14:39:03 +00:00
gmrun.glade Initial revision 2001-02-23 07:48:14 +00:00
gmrun.spec updated 2001-07-22 14:38:06 +00:00
install-sh Initial revision 2001-02-23 07:48:14 +00:00
missing Initial revision 2001-02-23 07:48:14 +00:00
mkinstalldirs Initial revision 2001-02-23 07:48:14 +00:00
stamp-h.in Initial revision 2001-02-23 07:48:14 +00:00

README

gmrun 0.1.1
------------

            Short GtkEntry for file autocompletion + main.cc that does the
            needed stuff for running programs.  This is intended as a
            replacement to grun, which (sorry) sucks.  The idea comes from the
            KDE Window Manager (ALT-F2 in KDE).  Though, GNOME is better :)


Copyright (c) 2000 Mishoo.
Author: Mihai Bazon <mishoo@infoiasi.ro>.

send postcards to:

     Mihai Bazon,
     str. Republicii, nr. 350, sc. E, ap. 9, cod 6500 VASLUI - VASLUI
     Romania

This program falls under the GNU General Public License version 2 or above.


For code critics
-----------------

    This program is written in 2 hours.  The code might seem a little weird,
    but it works, and is that I'm interested in.  Code completion is written
    in C++, although GTK+ is written in standard C.  Should you think this
    is a problem, feel free to rewrite the code in C (it could be at least 4
    times bigger).

    It uses some static data (I know, I'm a too lasy programmer to think about
    something better); this means that if you're having *two or more*
    (GtkCompletionLine)s in a program, you're looking for trouble.  The static
    data will be *shared* between them, and completion might not work
    correctly.  However, I don't know for sure, and I'm not going to test this.

    Running programs is done with "system" libc function.  I dunno if it's The
    Right Thing, but it works.  It might have some problems when running suid
    programs.  This could be reimplemented using gnome-exec, but a lot of code
    should be rewritten, so don't bother ask me to do this.
    
    Having all that said, you should know that I'm not actually a bad
    programmer; the problem being too simple for huge code complications, I
    preferred the easy way of doing different kind of things.  It works pretty
    fine, so "don't expect tons of C code for completion" (quoted from some
    sources in mini-commander applet of GNOME).


Compilation, installation
--------------------------

    Use the configure script:

        $ ./configure
        $ make
        $ make install

    After this the executable goes usually in /usr/local/bin, make sure this is
    in your path.  Put this in your .sawmillrc:

        (require 'sawmill-defaults)
        (bind-keys global-keymap "S-C-M-RET" '(system "gmrun &"))

    Note that if you're using sawfish you have other ways to customize your
    keyboard, through the control panel.

Bugs
-----

    * Writting this README took me more time than writting the program.

    * As I mentioned before, the code is written in C++, although GTK+ is a
      C library.  This is not actually a bug; I like C++ because programs
      become clearer and easier to maintain, not to mention the source file
      size is smaller.  So, if anyone cares to port this to standard C, feel
      free to do it, but I fear the code should be rewritten (almost) from
      scratch.

    * Documentation is inexistent (however, it would be useless).

    Should you have any problems mail me a detailed description; please put
    the text "ignore_me" in the subject line, for easy message filtering. :)
    (just kidding...)

    Never send me cores!  My mail box is limited to 4 Mb.  Use instead:

        $  cat core > /dev/null

    if you feel like you *have* to send it somewhere.. :)


Disclaimer
-----------

    * The Short Way:
        NO WARRANTIES OF ANY KIND.  USE IT AT YOUR OWN RISK.

    * The Right Way:
        Please read the GNU General Public License.  This program falls under
        its terms.


                       (: END OF TERMS AND CONDITIONS :)


Changes since writing this file:
---------------------------------

    * 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).

	* I added history capability (limited to 20 entries, change history.cc for
	  more, #define HIST_MAX_SIZE).  History is maintained in the file "
	  ~/.gmrun_history ".
	
	* Actually I worked more than 2 hours.  Anyway, the completion code took
	  about 2-3 h to design and implement.

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

    * New configuration file: ~/.gmrunrc or /usr/local/share/gmrun/gmrunrc.
      Check one of them, configuration is very simple.  From that file you
      can change window position and width, history size, terminal.
	
	These changes should appear in the ChangeLog.