Repository navigation
Closed
Labels
bugSomething isn't workingSomething isn't workinginputkeyboard, mouse, clipboard, selection, or IME behaviorkeyboard, mouse, clipboard, selection, or IME behaviormaintainer-neededrequires maintainer judgment or maintainer-only reproductionrequires maintainer judgment or maintainer-only reproductionp2valid narrow or ordinary defect with limited impact or a practical workaroundvalid narrow or ordinary defect with limited impact or a practical workaroundpreview-releasedAvailable on the preview channel, pending a stable release.Available on the preview channel, pending a stable release.remoteaffects SSH, headless, or remote attachment behavioraffects SSH, headless, or remote attachment behaviorwindowsaffects Windows-specific behavioraffects Windows-specific behavior
Description
Is this a reproducible bug?
- I confirm this is a reproducible bug, not a feature request, idea, question, contribution proposal, or direction check.
- I reproduced this bug on the version and environment reported below using the exact steps provided.
Current behavior
On a Spanish ISO layout ~ is a dead key: AltGr+4 then Space. In a session attached with herdr --remote <host> this types 4~ — the key's base character leaks in alongside the tilde.
Same Windows herdr client, same physical keystroke:
| Context | Result |
|---|---|
herdr local session (no --remote) |
~ |
herdr --remote <host> |
4~ |
| Windows Terminal on its own | ~ |
plain ssh <host> in Windows Terminal, no herdr |
~ |
No custom Windows Terminal keybindings are configured.
Expected behavior
AltGr+4 then Space should type a single ~, as it does in a local herdr session.
Reproduction
- Windows client with a Spanish ISO keyboard layout, in Windows Terminal.
- Run
herdr --remote <host>(--remote-keybindingsleft at its default,local). - In any pane, press AltGr+4, then Space.
Result: 4~. Expected: ~.
Impact
~ is needed constantly for paths (~/.config/...) and shell expansion. Every one has to be deleted and retyped or pasted. It affects every pane in any --remote session
Environment
- Herdr version: 0.9.0
- Update channel (stable or preview): stable
- Operating system: client Windows 10 Pro 19045; remote host Linux
- Terminal: Windows Terminal 1.24.11911.0 (Store, stable)
- Shell, if relevant: bash on the remote host
- Relevant config, if any:
~/.config/herdr/config.tomlhas no[keys]section. Keyboard layout Spanish ISO (0000040A), not US-International.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinginputkeyboard, mouse, clipboard, selection, or IME behaviorkeyboard, mouse, clipboard, selection, or IME behaviormaintainer-neededrequires maintainer judgment or maintainer-only reproductionrequires maintainer judgment or maintainer-only reproductionp2valid narrow or ordinary defect with limited impact or a practical workaroundvalid narrow or ordinary defect with limited impact or a practical workaroundpreview-releasedAvailable on the preview channel, pending a stable release.Available on the preview channel, pending a stable release.remoteaffects SSH, headless, or remote attachment behavioraffects SSH, headless, or remote attachment behaviorwindowsaffects Windows-specific behavioraffects Windows-specific behavior
Activity
akbash-bot commentedon Sep 11, 2026
Could you capture the Windows input records for one occurrence? That would let me replay the actual dead-key events against the Linux input path.
In a PowerShell tab in Windows Terminal, outside Herdr, run this, replacing
YOUR_HOSTwith your usual SSH target:At a plain bash prompt, press AltGr+4, release both keys, then Space once. Do not press Enter. Detach with Ctrl+B, then Q. Back in PowerShell, run:
Please paste only that output. The log is written to
%APPDATA%\herdr\herdr-client.log(or$env:XDG_CONFIG_HOME\herdr\herdr-client.logif configured). Tracing records typed keys, potentially including private text: avoid other typing during this capture and review the excerpt before posting.albertotb commentedon Sep 11, 2026
Thanks for the quick response. Attaching the output of the provided command after doing the test:
akbash-bot commentedon Sep 11, 2026
Thanks—the byte-by-byte logging pushed the AltGr sequence out of the excerpt; it shows only the final detach keys. My original filter was too broad.
Could you extract just the decoded events from the existing log, without repeating the test? In the same PowerShell tab, run:
Please paste that output, checking first for any private typed text. This reads the same
herdr-client.logas before and does not enable tracing again.albertotb commentedon Sep 11, 2026
akbash-bot commentedon Sep 11, 2026
@albertotb Would you be willing to try the candidate from #3972 with your Spanish keyboard? German dead keys have been checked, but we would like to confirm your exact AltGr+4 case. This is optional, and you only need to build on Linux—not Windows.
These steps use a separate test session and do not replace your installed Herdr or stop your existing sessions.
1. Build on the Linux host
Open a normal SSH connection from a fresh Windows Terminal tab (
ssh YOUR_HOST), outside Herdr. The Linux host needs Git, a C compiler/build tools, Rust via rustup, and Zig 0.16.0. If those are unavailable, please stop here rather than change your machine just for this test.Paste this into the Linux SSH terminal. The build downloads dependencies and can take several minutes:
If a command fails, stop there; do not continue with an installed binary instead. Once the test Herdr opens, press Ctrl+B, then Q to detach. Keep this SSH tab open. The test server keeps running.
2. Test from Windows
In a second, fresh PowerShell tab, replace
YOUR_HOSTwith your usual SSH target andTEST_SESSION_NAMEwith the name printed above:If asked to stop or replace a server, answer No and stop the test.
At a bash prompt in this test session, press AltGr+4, release both keys, then Space. Please tell us whether you see
~or4~. Do not press Enter; detach with Ctrl+B, then Q.3. Clean up
Back in the first Linux SSH tab, paste:
This removes only the temporary session. The build folder remains at
$TEST_DIR; you can delete it afterward. No logs or private terminal content are needed.albertotb commentedon Sep 11, 2026
Yes, I can try tomorrow. In fact Im vaguely familiar with building the project from source because I wanted to test the fix in Windows from #3701 (just to be clear this problem was tested in 0.9.0 stable). What I did in that case was fork the project and use your CI build action to build the exe. Is this a possibility here or I'm missing something? I do have access to a Linux machine, but using your build process took me about 10 mins.
fix: suppress Windows dead-key fallback characters in remote panes (#…
kangal-bot commentedon Sep 11, 2026
Implemented on master and queued for the next release. This is not available in a published Herdr release yet.
fix: suppress Windows dead-key fallback characters in remote panes (h…
kangal-bot commentedon Sep 16, 2026
Released on the preview channel in 2026-09-16-2c29fb29e302. This is available to preview users, but is not in a stable Herdr release yet.
kangal-bot commentedon Sep 16, 2026
Released in v0.9.1.
feat: integrate upstream v0.9.1 frontend (#4)
kangal-bot commentedon Oct 12, 2026
Released on the preview channel in 2026-10-12-6d697e1e75ff. This is available to preview users, but is not in a stable Herdr release yet.
fix: suppress Windows dead-key fallback characters in remote panes (h…