Launcher that features tab-completion

desktop-environmentsoftware-rec

I'm looking for a "proper" launcher that also allows running raw commands, including tab completion. Hence, it must do two things, at a minimum.

  1. It's a "proper" launcher, hence respect ~/.local/share/applications/*.desktop, not just commands in $PATH.
  2. Run raw commands with tab completion, so I can type in gimp /tmp/foo Tab and have it autocomplete to gimp /tmp/foobar.png

What I've tried

KDE's krunner is quite good, but doesn't offer tab completion of paths. gmrun and grun don't respect *.desktop files, and the latter also doesn't offer tab completion of paths. kupfer doesn't run raw commands at all, as far as I can tell.

(FWIW I'm running KDE, but hopefully this is not important.)

Best Answer

You can try Rofi as far as I know it's capable of all your conditions hassle free and out of the box. There is one exception and that is auto completion of the path (not command) which is hard to implement. However you can use Rofi with fzf (or alike).

here is pretty handy configuration for your setup ($HOME/rofi/config):

!=======================================
!=============  rofi  ==================
!=======================================

!| you can refer rofi site/screenshot for different configurations
rofi.location:          6
rofi.color-enabled:     true
rofi.color-window:      argb:ee0F3B5F, #CC9752, #CC9752
rofi.color-normal:      argb:00111111, #E5DBCF, argb:00111111, #CC9752, #0F3B5F
rofi.color-urgent:      argb:00111111, #af652f, argb:00111111, #af652f, #0F3B5F
rofi.color-active:      argb:00111111, #70a16c, argb:00111111, #70a16c, #0F3B5F
rofi.key-combi:         Alt-F3
rofi.separator-style:   dash
rofi.fullscreen:        false
rofi.padding:           2
rofi.hide-scrollbar:    true
rofi.line-margin:       5
rofi.fake-transparency: true
rofi.yoffset:           -20
rofi.xoffset:           0
rofi.width:             80
rofi.lines:         4
rofi.terminal:      urxvt
rofi.font:      Inconsolata 18
rofi.fuzzy:         true
rofi.run-command:   zsh -c "{cmd}"
rofi.opacity:       75

p.s. pay attention to rofi.run-command and rofi-terminal.