Skip to content

[fzf 0.70.0] fzf cannot perform fuzzy-find-completion when ble.sh is sourced under xterm #681

@hiroshi-ya

Description

@hiroshi-ya
$ ble summary
GNU bash, version 5.3.9(1)-release (x86_64-pc-linux-gnu) [Arch Linux]
ble.sh, version 0.4.0-nightly+4706cb2 (noarch) [git 2.53.0, GNU Make 4.3, GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.1, GNU MP 6.3.0)]
fzf key-bindings, (hash:719288b065965d8fb3248ad31d3b4ab4bf9d3808, 3414 bytes) (noarch) (integration: off)
WARNING: fzf integration "integration/fzf-key-bindings" is not activated.
fzf completion, (hash:719288b065965d8fb3248ad31d3b4ab4bf9d3808, 3414 bytes) (noarch) (integration: on)
starship, version 1.24.2+33f7077fb (rustc 1.93.0 (254b59607 2026-01-19) (Arch Linux rust 1:1.93.0-1), 2026-02-14 19:43:02 +00:00)
zoxide, version 0.9.9 (/usr/sbin/zoxide) (integration: off)
locale: LANG=en_US.UTF-8
terminal: TERM=xterm-256color wcwidth=16.0-west/16.0-2+ri, wt:0 (0;10;1)
options: +histappend +inherit_errexit +login_shell

fzf cannot perform fuzzy-find-completion when ble.sh is sourced and running under my WSL (Arch Linux) setup (which defaults to xterm-256color). For example, if I want to fuzzy find a file for vim:

$ vim ** # and press TAB

The list view will show up, and I can browse any option provided. However, after hitting enter, the terminal emulator will complain:

unbound keyseq: dsr0

and no auto-completion is done.

I tried to log the key strokes:

$ ble/debug/keylog#start
# vim ** # deleted using C-u
$ ble/debug/keylog#end
===== bytes =====
118 105 109 32 42 42 9 192 155 91 48 110
 21 192 155 91 50 48 48 126 98 108 101 4
7 100 101 98 117 103 47 107 101 121 108
111 103 35 101 110 100 192 155 91 50 48
49 126 13

===== chars =====
v i m SP * * TAB ESC [ 0 n NAK ESC [ 2 0
 0 ~ b l e / d e b u g / k e y l o g # e
 n d ESC [ 2 0 1 ~ RET

===== keys =====
v ac_enter i m SP SP ac_enter * * * C-i
dsr0 C-u paste_begin C-m

Doing a simple search for dsr0:
lib/init-cmap.sh

2025-05-04 Add a new key "dsr0" for "ESC [ 0 n

But I have no idea why dsr0 is an issue for xterm.

On my Arch Linux machine, fzf works fine with ble.sh under alacritty, but when using xterm, it has the same dsr0 issue. I can just use alacritty on my Linux machine, but I don't think WSL allows you to change the terminal running under the hood - I tried using both Windows and WSL alacritty, and they both have the same issue.

I tried running fzf with ble.sh disabled, and fzf can then perform auto-completion just fine. Not exactly sure if it's a fzf problem or ble.sh problem or xterm problem :(

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions