Skip to content

launcher ​

Application launcher / dmenu (rofi replacement).

General ​

FieldTypeDefaultDescription
locationLauncherLocation"center"Surface position on screen.
widthSize1Surface width: a multiplier of the default 600px (1.0 = default) or absolute pixels (e.g. "800px").
linesu3210Visible result lines.
monitorstring""Output connector to show on ("" = focused output).
modesarray of string[...]Modes enabled by default (order = tab/kb-mode-next order). Script modes are referenced by their [launcher.scripts] key.
cyclebooltrueWrap selection at list edges.
matchingLauncherMatching"normal"Matching method.
tokenizebooltrueSplit the query into independently matched words.
negate-charstring"-"Token prefix that negates a token.
normalize-matchbooltrueStrip accents/normalize Unicode while matching.
sortboolfalseRank results by match quality (off = keep list order, rofi default).
sorting-methodLauncherSorting"levenshtein"Ranking method when sort is on.
caseLauncherCase"insensitive"Case handling.
terminalstring""Terminal emulator for terminal apps ("" = autodetect).
show-iconsbooltrueShow row icons.
icon-themestring""Icon theme override ("" = system theme).
sidebar-modeboolfalseShow mode tabs at the bottom of the surface.
auto-selectboolfalseAccept automatically when exactly one result remains.
hover-selectboolfalseSelect the row under the mouse cursor.
fixed-num-linesbooltrueKeep the list height fixed at lines rows.
display-namesmap of string{}Per-mode display-name overrides (rofi display-{mode}), e.g. drun: apps.
scriptsmap of string{}Custom script modes: name → executable (rofi name:script).
keybindingsmap of string{}Keybinding overrides: action (rofi kb- name without the prefix, e.g. accept, cancel, mode-next, custom-1) → comma-separated key list (e.g. "Control+Tab,F3"). Unset actions keep rofi's defaults.
mouse-bindingsmap of string{}Mouse binding overrides: action (rofi's me-/ml- name, prefix included, e.g. me-accept-entry, ml-row-down) → comma-separated button list (e.g. "MouseDPrimary", "ScrollDown"). Unset actions keep their defaults.
fontstring""Launcher font, as a Pango description ("Inter 12"). Empty keeps the shell's font. rofi's -font overrides it per invocation.
stylesmap of string{}Named looks selectable per invocation with -style <name>: name → the CSS applied for that session, on top of [styling].
preview-cmdstring""Command that turns a thumbnail:// row icon into an image file: {input} the icon's path, {output} where to write the thumbnail, {size} the requested pixel size. Empty uses the system's XDG thumbnailers. rofi's -preview-cmd.
historyLauncherHistoryConfig{...}Launch history / frecency.
drunLauncherDrunConfig{...}drun (application) mode.
runLauncherRunConfig{...}run (command) mode.
windowLauncherWindowConfig{...}window switcher mode.
sshLauncherSshConfig{...}ssh mode.
filebrowserLauncherFilebrowserConfig{...}file browser mode.
combiLauncherCombiConfig{...}combi (combined modes) mode.
searchLauncherSearchConfig{...}The search panel, lys-shell launcher with no arguments.
More about styles

CSS rather than a second copy of the display keys: a preset exists to say "this invocation looks different", and there is no list of the ways someone might want that. -style compact then costs one config entry instead of a schema change.

Default configuration ​

yaml
launcher:
  location: center
  width: 1.0
  lines: 10
  monitor: ""
  modes:
    - drun
    - run
    - window
  cycle: true
  matching: normal
  tokenize: true
  negate-char: '-'
  normalize-match: true
  sort: false
  sorting-method: levenshtein
  case: insensitive
  terminal: ""
  show-icons: true
  icon-theme: ""
  sidebar-mode: false
  auto-select: false
  hover-select: false
  fixed-num-lines: true
  display-names: {}
  scripts: {}
  keybindings: {}
  mouse-bindings: {}
  font: ""
  styles: {}
  preview-cmd: ""
  history:
    enable: true
    max-size: 25
  drun:
    categories: []
    exclude-categories: []
    match-fields:
      - name
      - generic
      - exec
      - categories
      - keywords
    display-format: '{name} [<span weight=''light'' size=''small''><i>({generic})</i></span>]'
    show-actions: false
    url-launcher: xdg-open
  run:
    run-command: '{cmd}'
    shell-command: '{terminal} -e {cmd}'
    list-command: ""
  window:
    format: '{w}   {c}   {t}'
    match-fields:
      - title
      - class
    hide-active: false
    close-on-delete: true
  ssh:
    client: ssh
    command: '{terminal} -e {ssh-client} {host}'
    parse-hosts: false
    parse-known-hosts: true
  filebrowser:
    directory: ""
    sorting-method: name
    directories-first: true
    show-hidden: false
    command: ""
  combi:
    modes:
      - window
      - drun
      - run
    display-format: '{text}'
  search:
    providers:
      - apps
      - windows
      - files
      - calculator
      - system
      - settings
      - clipboard
      - emoji
      - vault
      - links
      - scripts
      - shell
      - web
    web-engine: DuckDuckGo
    web-url: https://duckduckgo.com/?q={query}
    file-roots: []
    file-exclude: []
    commands-dir: ""
    previews: true
    quicklinks: []
    snippets: []

Released under the MIT License.