nandi/frqpublic Fork 0
140ff99
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Give the sidebar its 320 and the compose field the rest of the bar

Two panes both marked :fill-height split the row's spare width between
them, because filling the height is taken to mean taking a share of the
slack as well. So the list ignored its 320 and came out half the window,
with its cards clipped at the fold and the conversation squeezed into what
was left. :expand :cross on the list is the vertical axis alone — the
height without the share — and the conversation keeps :fill-height, so the
slack goes where the note there already said it goes.

The compose field asked for :hexpand only in a terminal, which is the case
that needs it least: a window is where 260 points is a third of the bar,
and the field sat stranded in the middle of it with Send far off to the
right. Always now; 260 stays as the minimum it always was.

Measured headless at 1365x729: the sidebar's widest child ends at 316, and
the field runs 396 to 1273 with Send against the margin.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nandi committed 2026-09-10T10:01:04-07:00 Browse files
140ff99 parent: 264b6da
modified src/frq/app.clj +16 -2
@@ -1461,7 +1461,12 @@
14611461 ;; into three rows rather than scrolling one line sideways.
14621462 [:entry {:text @s/draft
14631463 :width-request 260
1464- :hexpand @terminal?
1464+ ;; Always, not only in a terminal. A window is the case that
1465+ ;; needs it more: 260 points is most of a phone's row and a
1466+ ;; third of a pane's, and the field sat stranded in the middle
1467+ ;; of the bar with the rest of it empty. The number stays as
1468+ ;; the minimum it always was.
1469+ :hexpand true
14651470 :rows (if @terminal? 3 1)
14661471 :placeholder "Message"
14671472 :on-change #(reset! s/draft %)
@@ -1505,7 +1510,16 @@
15051510 ;; contents. Marking the children alone is not enough — what they fill is
15061511 ;; whatever the row got.
15071512 [:hbox {:spacing 0 :wrap false :fill-height true}
1508- [:vbox {:key :list :width-request sidebar-width :fill-height true}
1513+ ;; :expand :cross so the width-request is the width. Both panes fill the
1514+ ;; height, and a pane that fills the height is also told to take a share
1515+ ;; of the row's spare WIDTH — which two panes split between them, so the
1516+ ;; list came out half the window with its cards clipped at the fold and
1517+ ;; the conversation squeezed beside it. Down a row, :cross is the vertical
1518+ ;; axis alone: the height without the share. The conversation keeps
1519+ ;; :fill-height and so keeps the slack, which is what the note above says
1520+ ;; it takes.
1521+ [:vbox {:key :list :width-request sidebar-width :fill-height true
1522+ :expand :cross}
15091523 [chats-screen]]
15101524 [:vbox {:key :chat :fill-height true}
15111525 (if @s/current
@@ -1461,7 +1461,12 @@
1461 ;; into three rows rather than scrolling one line sideways.1461 ;; into three rows rather than scrolling one line sideways.
1462 [:entry {:text @s/draft1462 [:entry {:text @s/draft
1463 :width-request 2601463 :width-request 260
1464- :hexpand @terminal?1464+ ;; Always, not only in a terminal. A window is the case that
1465+ ;; needs it more: 260 points is most of a phone's row and a
1466+ ;; third of a pane's, and the field sat stranded in the middle
1467+ ;; of the bar with the rest of it empty. The number stays as
1468+ ;; the minimum it always was.
1469+ :hexpand true
1465 :rows (if @terminal? 3 1)1470 :rows (if @terminal? 3 1)
1466 :placeholder "Message"1471 :placeholder "Message"
1467 :on-change #(reset! s/draft %)1472 :on-change #(reset! s/draft %)
@@ -1505,7 +1510,16 @@
1505 ;; contents. Marking the children alone is not enough — what they fill is1510 ;; contents. Marking the children alone is not enough — what they fill is
1506 ;; whatever the row got.1511 ;; whatever the row got.
1507 [:hbox {:spacing 0 :wrap false :fill-height true}1512 [:hbox {:spacing 0 :wrap false :fill-height true}
1508- [:vbox {:key :list :width-request sidebar-width :fill-height true}1513+ ;; :expand :cross so the width-request is the width. Both panes fill the
1514+ ;; height, and a pane that fills the height is also told to take a share
1515+ ;; of the row's spare WIDTH — which two panes split between them, so the
1516+ ;; list came out half the window with its cards clipped at the fold and
1517+ ;; the conversation squeezed beside it. Down a row, :cross is the vertical
1518+ ;; axis alone: the height without the share. The conversation keeps
1519+ ;; :fill-height and so keeps the slack, which is what the note above says
1520+ ;; it takes.
1521+ [:vbox {:key :list :width-request sidebar-width :fill-height true
1522+ :expand :cross}
1509 [chats-screen]]1523 [chats-screen]]
1510 [:vbox {:key :chat :fill-height true}1524 [:vbox {:key :chat :fill-height true}
1511 (if @s/current1525 (if @s/current