Skip to content

[BUG] dmenu listview shows stale rows on filter with config + @theme (2.0.0) #2302

@bebert64

Description

@bebert64

Version

Version: 2.0.0

(rofi -v)

Environment

  • Compositor: Sway (Wayland)
  • OS: NixOS (nixpkgs 26.05)
  • Font: Iosevka Nerd Font 10 (set in configuration { font: ... })

Summary

In dmenu mode, typing a filter string updates the filtered result set internally, but the listview UI keeps stale rows visible. Non-matching entries remain on screen even though they no longer match the filter.

This is not a matching/filtering bug: rofi -dump -filter … returns the correct subset.

Steps to reproduce

  1. Create a config that loads a custom theme via @theme (same layout as a typical home-manager setup):

    ~/.config/rofi/config.rasi (minimal repro in gist):

    configuration {
      font: "Iosevka Nerd Font 10";
      disable-history: true;
      fixed-num-lines: false;
      show-icons: false;
    }
    @theme "/path/to/custom.rasi"
    

    custom.rasi: window + inputbar with [ prompt, entry ] + listview with dynamic: true, fixed-height: false, expand: false. (Full file in gist.)

  2. Run:

    echo -en 'Region to editor\nRegion to clipboard\nRegion to file\nFullscreen to clipboard\nFullscreen to file' \
      | rofi -i -dmenu -no-custom -sync -config ~/.config/rofi/config.rasi
  3. Type full in the entry field.

Expected behaviour

The listview shows 2 rows:

  • Fullscreen to clipboard
  • Fullscreen to file

Actual behaviour

The listview shows 4 rows. The top two rows still display the original entries ("Region to editor", "Region to clipboard") even though they do not contain full. The two matching entries appear below them.

Filter logic is correct (control)

echo -en 'Region to editor\nRegion to clipboard\nRegion to file\nFullscreen to clipboard\nFullscreen to file' \
  | rofi -dump -filter full -dmenu -no-custom -i -config ~/.config/rofi/config.rasi

Output:

Fullscreen to clipboard
Fullscreen to file

Same correct output with or without -config.

Workarounds observed

Change Filter UI Theme
-no-config (default theme) ✅ correct ❌ unstyled
-no-fixed-num-lines alone ❌ still 4 rows
fixed-num-lines: false in config ❌ still 4 rows
Separate dmenu config, no global font:, no prompt widget ✅ correct ⚠️ degraded look
rofi 1.7.9 with same theme ✅ correct ✅ full theme

Notes

  • Reproduces with 5 static stdin lines (not a large-list / delayed-filtering case).
  • -sync does not change the broken UI behaviour.
  • Partial -theme-str overrides do not fix it; the broken theme still loads underneath.
  • Not the same as [BUG] Listview lines not correctly showing the number of elements expected #1190 (fixed years ago): this is a 2.0 regression where stale rows persist on refilter, while -dump is always correct.

Attachments

Reproducer files and rofi -help output: https://gist.github.com/bebert64/8aa6a735b51a9ac4da05642844cd2193

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions