Você pode tentar Rofi , tanto quanto eu sei, é capaz de todas as suas condições sem complicações e fora da caixa. Há uma exceção e a conclusão automática do caminho (não o comando), que é difícil de implementar. No entanto, você pode usar o Rofi com fzf (ou similar).
aqui é uma configuração bastante prática para sua configuração ($ 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: 70
rofi.lines: 4
rofi.terminal: urxvt
rofi.font: Inconsolata 18
rofi.fuzzy: true
rofi.run-command: zsh -c "{cmd}"
rofi.terminal: gnome-terminal
rofi.opacity: 75
p.s. preste atenção em rofi.run-command
e rofi-terminal
.