minimalistic command launcher in rust
Rust Other Makefile Shell
Latest commit 6598363 Oct 28, 2016 @buster update dependencies



rrun is a minimalistic command launcher in rust similar to gmrun. It started as a playground to learn Rust, but since i use it all day for months now, it's probably useful for others as well. It replaced gmrun and gnome-do on my laptop. rrun has few features, it can do bash completion and run commands and that's it. It will also append the commands being run to your bash history.





You have several options:

  1. download a Debian package from
  2. install from with "cargo install rrun"
  3. compile yourself with "cargo build"


  • enter a command and press Return to execute it
  • press TAB for tab completion of available commands
  • Press Ctrl + Return to display the command output in the text field

Set up rrun as command helper on Capslock

I have mapped the unused, needless CapsLock key to some other key and set up Gnome or whatever (i3wm in my case) to launch rrun on keypress.

My ~/.Xmodmap:

remove Lock = Caps_Lock
keysym Caps_Lock = XF86HomePage

Don't forget to run "xmodmap ~/.Xmodmap" after login.

The relevant parts of ~/.i3/config:

bindsym XF86HomePage exec rrun
for_window [title="rrun"] floating enable
exec --no-startup-id xmodmap ~/.Xmodmap

How to build the package

Creation of a cowbuilder image

The build process needs pbuilder/cowbuilder installed in debian (apt-get install cowbuilder pbuilder). A Debian testing buid image can be created with:

sudo cowbuilder --create --distribution testing

Eatmydata Installation

Install eatmydata (on build machine and in the image) to speeding up dpkg (from ):

On the build machine:

apt-get install eatmydata

In the build image:

sudo cowbuilder --login --save
apt-get install eatmydata

For eatmydata (>=82-2), add this /etc/pbuilderrc (on the build machine):

if [ -z "$LD_PRELOAD" ]; then


Package Build Process

The debian package can be built with the following commands:

  • make deb just creates the .deb file without touching the changelog
  • make snapshot creates a snapshot .deb without incrementing the version number (but updating the changelog)
  • make release creates a new release and bumps the minor version number


@nightscape @tshepang