Watch
1
0
Fork
You've already forked souveraine
0

dock: scale it up, and put the scale in settings

44px buttons with 35px icons read small on a 540px panel, and a stack's
members were 12px inside a 35px box — unreadable, which is the whole job of
the collapsed form. 56/44 now, and the member icons give back the border and
padding that were being subtracted from them as well as the grid spacing.

Both numbers live in Config so this is a setting rather than a rebuild, with
spin boxes in Settings > Dock. Two numbers and not one ratio: the button is
the row's height and the icon is what you see, and fixing the ratio would
mean either cramped icons in a tall row or icons overflowing a short one.
This commit is contained in:
Fimeg 2026-08-07 02:04:12 -04:00
commit 5c44ea06d5
5 changed files with 49 additions and 4 deletions

View file

@ -413,6 +413,14 @@ Singleton {
// in its input mask.
property int dragDwellMs: 500
property real gestureRailHeight: 32
// How big the dock draws. `buttonSize` is the one number the
// row's height follows and every icon is derived from, so the
// dock scales as a piece rather than each part being tuned
// apart. 56/44 replaced a hardcoded 44/35 that read small on a
// 540px panel; it lives here so it is a setting rather than a
// rebuild.
property real buttonSize: 56
property real iconSize: 44
}
property JsonObject interactions: JsonObject {

View file

@ -15,7 +15,7 @@ DockButton {
property var appListRoot
property int modelIndex: -1 // set by the delegate Loader (parent.index)
property int lastFocused: -1
property real iconSize: 35
property real iconSize: Config.options?.dock.iconSize ?? 44
property real countDotWidth: 10
property real countDotHeight: 4
property bool appIsActive: appToplevel.toplevels.find(t => (t.activated == true)) !== undefined

View file

@ -11,5 +11,9 @@ RippleButton {
implicitWidth: implicitHeight - topInset - bottomInset
buttonRadius: Appearance.rounding.normal
background.implicitHeight: 44
// 56, not 44. The dock read small on a 540px-wide panel Casey,
// 2026-08-07: "the whole dock is a bit small, it should scale a bit."
// This is the one number the row's height follows, so the icons and the
// stack box scale with it rather than each being tuned apart.
background.implicitHeight: Config.options?.dock.buttonSize ?? 56
}

View file

@ -25,7 +25,7 @@ DockButton {
id: root
property var appToplevel // the STACK entry (isStack === true)
property var appListRoot
property real iconSize: 35
property real iconSize: Config.options?.dock.iconSize ?? 44
property real countDotWidth: 10
property real countDotHeight: 4
@ -177,7 +177,12 @@ DockButton {
model: Math.min(root.members.length, 4)
delegate: IconImage {
required property int index
implicitSize: (root.iconSize - 11) / 2
// The members were 12px inside a 35px box a
// stack you could not read at a glance, which is
// the whole job of the collapsed form. 11 was
// border, padding and grid spacing all taken off
// the icon; only the spacing genuinely has to be.
implicitSize: (root.iconSize - 7) / 2
source: Quickshell.iconPath(AppSearch.guessIcon(root.members[index] ?? ""), "image-missing")
}
}

View file

@ -79,6 +79,34 @@ ContentPage {
}
}
// The dock's own scale. Two numbers, because the button is the row's
// height and the icon is what you actually see sizing one from the
// other would mean either cramped icons in a tall row or icons
// overflowing a short one, depending on which way the ratio was fixed.
ConfigSpinBox {
icon: "aspect_ratio"
text: Translation.tr("Button size (px)")
value: Config.options.dock.buttonSize
from: 36
to: 88
stepSize: 2
onValueChanged: {
Config.options.dock.buttonSize = value;
}
}
ConfigSpinBox {
icon: "apps"
text: Translation.tr("Icon size (px)")
value: Config.options.dock.iconSize
from: 24
to: 72
stepSize: 2
onValueChanged: {
Config.options.dock.iconSize = value;
}
}
ConfigSpinBox {
icon: "height"
text: Translation.tr("Dock height (px)")