tell tmux to refresh-client on resize
test / unit + widget + golden + a11y (push) Failing after 27s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / unit + widget + golden + a11y (push) Failing after 27s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
tmux doesn't re-read the PTY winsize on SIGWINCH. After the ioctl resize, call tmux refresh-client -C cols,rows to update tmux's internal window dimensions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
a028eb7ad3
commit
956279eca4
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"exported_at": "2026-05-01T11:03:51Z",
|
"exported_at": "2026-05-01T11:11:26Z",
|
||||||
"decisions": [
|
"decisions": [
|
||||||
{
|
{
|
||||||
"id": "D-1",
|
"id": "D-1",
|
||||||
|
|||||||
@@ -242,8 +242,10 @@ class _ClaudePaneState extends State<ClaudePane> {
|
|||||||
_resizeTimer = Timer(const Duration(milliseconds: 150), () {
|
_resizeTimer = Timer(const Duration(milliseconds: 150), () {
|
||||||
final id = _paneId;
|
final id = _paneId;
|
||||||
if (id == null) return;
|
if (id == null) return;
|
||||||
print('[resize] cols=$cols rows=$rows');
|
|
||||||
_ipc()?.request('pane.resize', args: {'id': id, 'cols': cols, 'rows': rows});
|
_ipc()?.request('pane.resize', args: {'id': id, 'cols': cols, 'rows': rows});
|
||||||
|
// tmux doesn't re-read PTY winsize on SIGWINCH — it needs an
|
||||||
|
// explicit refresh-client to update its internal window size.
|
||||||
|
Process.run('tmux', ['refresh-client', '-C', '$cols,$rows']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user