updated components #122

Merged
zach merged 64 commits from feat/updated-components into main 2026-06-23 11:33:20 +02:00
Owner

Something I've wanted to do for a while is to update the base components used in many parts of the shell but have been putting off because it will take a long time to do.

Currently updated components

  • StateLayer
  • CustomSlider
  • Anim
  • Time input
  • Split button
  • Settings navrail
  • ScrollBar
  • MaterialIcon
  • CircularIndicator
  • CircularProgress
  • SparkLineItem
  • ButtonRow
  • ColorArcPicker
  • Elevation
  • Menu

Time input components

  • Integer input only, hour clamps number between 0-23 and minute clamps to 0-59
  • Enter to confirm input + unfocus
  • Escape to cancel input and revert to original value
  • Tab to focus next input box
  • Shift + Tab to focus previous input box

Settings StackView

Settings pages now have a dedicated animation when replacing each other in the StackView

Desktop icons

Desktop icons are now more efficient on initial load, closes #120

ScrollBar bug fixes and quality-of-life improvements

  • Fixed an issue where moving the scrollbar using the mouse in the launcher would set the flickable's contentY property to the wrong value due to not accounting for reversed lists (ListView.BottomToTop).
  • Scrollbars now do not snap to the cursor if you click on the handle directly, but will snap when you click outside the handle on the track.
  • During a flickable overshoot/rebound the y-calculation will no longer freeze due to binding directly to contentHeight of the flickable.
  • The hitbox for expanding their width to make it easier to pick up is now static, while visually it will be slimmer when not hovered/pressed.

UPower (Battery) popout

  • Updated layout
  • Increased panel radius to fit better with new panel layout/design

Bar popouts optional property for PanelBg (BlobRect)

Added a check for an optional property in all bar popout panel items panelRadius so individual popouts can set its radius directly in the panel itself:

radius: panels.popouts.current?.panelRadius ?? Appearance.rounding.normal

Example use:

Column {
id: root
readonly property int panelRadius: ((profiles.height / 2) + Appearance.padding.small) * Appearance.rounding.scale

Resources popout refresh

  • Uses new components and slightly changed design.
  • Sparkline graph uses bezier curves for a more rounded look.

Drawing

On-screen drawing has been rewritten into a C++ plugin for better performance, and DrawingInput.qml has been removed in favor of using PointHandler inside Interactions.qml instead.

  • Uses Catmull-Rom to cubic bezier for curve smoothing.
  • Cursor crosshair and pen width outline preview replaces normal mouse cursor.
  • Added close and clear buttons to the popout.
  • Added pin button to popout.
  • Changed preset color picker to use newer ButtonBase components and ButtonRow.
  • ColorArcPicker has a centered rectangle for previewing current color.
Something I've wanted to do for a while is to update the base components used in many parts of the shell but have been putting off because it will take a long time to do. ## Currently updated components - [x] StateLayer - [x] CustomSlider - [x] Anim - [x] Time input - [x] Split button - [x] Settings navrail - [x] ScrollBar - [x] MaterialIcon - [x] CircularIndicator - [x] CircularProgress - [x] SparkLineItem - [x] ButtonRow - [x] ColorArcPicker - [x] Elevation - [x] Menu ## Time input components - Integer input only, hour clamps number between 0-23 and minute clamps to 0-59 - Enter to confirm input + unfocus - Escape to cancel input and revert to original value - Tab to focus next input box - Shift + Tab to focus previous input box ## Settings StackView Settings pages now have a dedicated animation when replacing each other in the `StackView` ## Desktop icons Desktop icons are now more efficient on initial load, closes #120 ## ScrollBar bug fixes and quality-of-life improvements - Fixed an issue where moving the scrollbar using the mouse in the launcher would set the flickable's `contentY` property to the wrong value due to not accounting for reversed lists (`ListView.BottomToTop`). - Scrollbars now do not snap to the cursor if you click on the handle directly, but will snap when you click outside the handle on the track. - During a flickable overshoot/rebound the y-calculation will no longer freeze due to binding directly to contentHeight of the flickable. - The hitbox for expanding their width to make it easier to pick up is now static, while visually it will be slimmer when not hovered/pressed. ## UPower (Battery) popout - Updated layout - Increased panel radius to fit better with new panel layout/design ## Bar popouts optional property for PanelBg (BlobRect) Added a check for an optional property in all bar popout panel items `panelRadius` so individual popouts can set its radius directly in the panel itself: https://git.zach-dev.cc/zach/z-bar-qt/src/commit/eb99237a31612be90436e37abe56d5a8380e8be9/Drawers/Windows.qml#L257 Example use: https://git.zach-dev.cc/zach/z-bar-qt/src/commit/eb99237a31612be90436e37abe56d5a8380e8be9/Modules/SysTray/Popouts/UPowerPopout.qml#L9-L12 ## Resources popout refresh - Uses new components and slightly changed design. - Sparkline graph uses bezier curves for a more rounded look. ## Drawing On-screen drawing has been rewritten into a C++ plugin for better performance, and `DrawingInput.qml` has been removed in favor of using `PointHandler` inside `Interactions.qml` instead. - Uses Catmull-Rom to cubic bezier for curve smoothing. - Cursor crosshair and pen width outline preview replaces normal mouse cursor. - Added close and clear buttons to the popout. - Added pin button to popout. - Changed preset color picker to use newer ButtonBase components and ButtonRow. - ColorArcPicker has a centered rectangle for previewing current color.
zach self-assigned this 2026-06-06 00:54:01 +02:00
zach added 1 commit 2026-06-06 00:54:01 +02:00
updated components
Python / lint-format (pull_request) Successful in 41s
Python / test (pull_request) Successful in 1m9s
Lint & Format (Rust) / lint-format (pull_request) Successful in 2m42s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 20s
65c56bc598
Inorishio approved these changes 2026-06-06 19:58:58 +02:00
Dismissed
Inorishio left a comment
Collaborator

Think everything looks good.
Slider handler is in the right position now.
Slider functionality has been alter a bit but I think this works / is better than what it was before.

Think everything looks good. Slider handler is in the right position now. Slider functionality has been alter a bit but I think this works / is better than what it was before.
Inorishio reviewed 2026-06-06 19:59:38 +02:00
@@ -126,2 +125,3 @@
Layout.fillHeight: true
Layout.bottomMargin: Appearance.padding.normal
Layout.fillWidth: true
Layout.preferredHeight: Appearance.padding.larger * 3
Collaborator

Personally like:
Layout.preferredHeight: Appearance.padding.larger * 2

Personally like: Layout.preferredHeight: Appearance.padding.larger * 2
zach added 1 commit 2026-06-06 21:13:49 +02:00
switches and popouts
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 12s
Python / lint-format (pull_request) Successful in 25s
Python / test (pull_request) Successful in 51s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m11s
50e99501de
zach added 1 commit 2026-06-06 21:21:36 +02:00
scroll deceleration env
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 20s
Python / test (pull_request) Successful in 48s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
04fb534a05
zach added 1 commit 2026-06-07 12:55:38 +02:00
port new components to greeter
Python / lint-format (pull_request) Successful in 21s
Python / test (pull_request) Successful in 50s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Lint & Format (Rust) / lint-format (pull_request) Successful in 42s
1f9630ed76
zach added 1 commit 2026-06-08 01:22:42 +02:00
audio popout changes, slider inset icons added
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m1s
628c4b32a5
zach added 1 commit 2026-06-08 10:03:29 +02:00
wallpaper cropper slider inset icon, fixed disabled splitbutton state
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
fe91a65324
zach added 1 commit 2026-06-08 14:51:50 +02:00
new time input picker, added support for minutes in timeframe
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
52980e4d84
zach added 1 commit 2026-06-08 14:54:01 +02:00
fix bool switch on timeinput
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 19s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
7df5af332c
zach added 1 commit 2026-06-08 14:57:24 +02:00
fix start/end text for hyprsunset
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 13s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m4s
345d558317
zach added 1 commit 2026-06-08 15:28:33 +02:00
fix text set on escape, add focus shift with tab and shift + tab
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
c0202ef015
Inorishio approved these changes 2026-06-08 17:54:17 +02:00
Inorishio left a comment
Collaborator

image.png

Issa pretty big... Part of the settings is being cut off as well as is visible on the attached image.
Further looking good.
Everything works as intended and the audio/mic systray mod looks slick.

![image.png](/attachments/1443e272-1845-4fbd-ab35-a6c6653effe6) Issa pretty big... Part of the settings is being cut off as well as is visible on the attached image. Further looking good. Everything works as intended and the audio/mic systray mod looks slick.
268 KiB
zach added 1 commit 2026-06-08 18:17:16 +02:00
fix text wrapping on time input components
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 22s
Python / test (pull_request) Successful in 34s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m21s
ea911996a8
zach added 1 commit 2026-06-08 18:35:38 +02:00
fix statelayer colors for various components, add logic for color background feedback on tray items when icon doesn't have color layer
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
8ec7faaafd
zach added 1 commit 2026-06-08 23:35:51 +02:00
fix splitbutton menu popout region for clicking outside panel bounds
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
6bab341190
zach added 1 commit 2026-06-09 13:09:34 +02:00
settings window category navrail changes and padding decreases
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 13s
Python / lint-format (pull_request) Successful in 20s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
dbccc14f9a
zach added 1 commit 2026-06-10 00:48:21 +02:00
settings window pages replace anims
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 13s
Python / lint-format (pull_request) Successful in 19s
Python / test (pull_request) Successful in 35s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m22s
01556e66f3
zach added 1 commit 2026-06-10 14:40:44 +02:00
more efficient desktop icons
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
6b77ebd9be
zach added 1 commit 2026-06-10 19:29:25 +02:00
default apps config entries, revert focus property on root shell
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 20s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
e90f1facb7
zach added 1 commit 2026-06-11 14:35:50 +02:00
clipboard history using cliphist
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
130e613eb5
zach added 1 commit 2026-06-11 20:02:43 +02:00
clipboard config options + fade text and keyboard input handling
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 36s
Python / lint-format (pull_request) Successful in 35s
Python / test (pull_request) Successful in 58s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m46s
e29763134e
Inorishio added 1 commit 2026-06-12 14:50:23 +02:00
category flickable addition content.height
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m7s
d1085b749d
zach added 1 commit 2026-06-13 01:44:16 +02:00
clipboard preview with image support
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
4b7ba30272
zach added 1 commit 2026-06-13 12:56:56 +02:00
scrollbars QOL updates
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
f1dbff1208
zach added 1 commit 2026-06-13 13:08:39 +02:00
remove logging
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 19s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
fea468dd0c
zach added 1 commit 2026-06-13 13:12:18 +02:00
fix scrollbar visible even when contentHeight < height
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 22s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
39895bf75b
zach added 1 commit 2026-06-13 13:15:01 +02:00
fix scrollbar mouse pointer change not being accurate to handle position
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 21s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m12s
7756e46355
zach added 1 commit 2026-06-13 20:12:02 +02:00
clipboard preview with syntax support
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
6034c4816d
Collaborator

Is there a goal in mind before this PR is "ready for review"?

Is there a goal in mind before this PR is "ready for review"?
zach added 1 commit 2026-06-14 12:47:58 +02:00
MaterialIcon opsz clamp, UPower popout and widget changes, improved SysTray hover detection logic
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 13s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m13s
3f5cc2de07
zach added 1 commit 2026-06-14 12:49:07 +02:00
remove accidental material symbols font from assets
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 12s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
eb99237a31
Author
Owner

Is there a goal in mind before this PR is "ready for review"?

Yeah, I wrote it in OP. There's no point in having you both review this PR when I am far from done.

> Is there a goal in mind before this PR is "ready for review"? Yeah, I wrote it in OP. There's no point in having you both review this PR when I am far from done.
Collaborator

I do not really read a todo or expectation for when this was considered ready or satisfactory, only what is implemented currently.

I do not really read a todo or expectation for when this was considered ready or satisfactory, only what is implemented currently.
AramJonghu added 1 commit 2026-06-14 22:01:38 +02:00
Merge branch 'main' into feat/updated-components
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m7s
4cb2d843a5
zach added 1 commit 2026-06-14 23:09:15 +02:00
resources popout refresh + new components & reskinned old components
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 23s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m12s
2a50732bc2
zach added 1 commit 2026-06-14 23:33:16 +02:00
slight changes to clipboard history preview and item delegate
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
7e38f3f428
zach added 1 commit 2026-06-15 15:53:00 +02:00
fixed applying crop being overwritten by multiple write calls, added wallpaper fade anim
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 14s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
2034f3a8db
zach added 1 commit 2026-06-15 18:24:00 +02:00
clipboard preview leading tab trimming while preserving indentation + proper width calculations
Python / lint-format (pull_request) Successful in 27s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 30s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
578a10c950
zach added 1 commit 2026-06-15 19:20:06 +02:00
fix slider inset icons initial position
Python / lint-format (pull_request) Failing after 2m25s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 3m14s
Python / test (pull_request) Successful in 3m55s
Lint & Format (Rust) / lint-format (pull_request) Successful in 4m49s
eafffdcc8f
zach added 1 commit 2026-06-15 19:27:19 +02:00
resource popout spacing and larger percent text size
Python / lint-format (pull_request) Successful in 30s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 52s
Python / test (pull_request) Successful in 1m26s
Lint & Format (Rust) / lint-format (pull_request) Successful in 2m20s
0057830fbc
zach added 1 commit 2026-06-16 09:46:40 +02:00
fix function call in wallpaper cropper
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
e3d3daf807
zach added 1 commit 2026-06-16 10:16:00 +02:00
config option for min brightness + clipboard config options now in settings
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
be8b7ae436
zach added 1 commit 2026-06-16 10:55:33 +02:00
calendar month change animation
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
ea82b8cf22
zach added 1 commit 2026-06-16 13:52:48 +02:00
rounded sparkline graph, fixed network usage accumulation spikes
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 19s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
c0b62dfb6c
zach added 1 commit 2026-06-17 11:59:33 +02:00
hacky english month and day names while using system locale
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
b034400df9
zach added 1 commit 2026-06-17 12:02:26 +02:00
remove accidental log files
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 21s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m7s
866373be48
zach added 1 commit 2026-06-17 13:19:41 +02:00
visualizer wave graph instead of lines
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 24s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m13s
5fb137699f
Collaborator

For AMD, temperature does not show properly. See image for reference. Would have to check how it shows for Intel. Have not looked at your implementation yet.
image.png

For AMD, temperature does not show properly. See image for reference. Would have to check how it shows for Intel. Have not looked at your implementation yet. ![image.png](/attachments/c37b2c90-5bcc-4a2c-892a-b5c4662e3743)
zach added 1 commit 2026-06-17 18:44:55 +02:00
show notification in fullscreen
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m11s
a98a7944b9
zach added 1 commit 2026-06-17 18:53:27 +02:00
revert sensors process removal
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 32s
Python / lint-format (pull_request) Successful in 38s
Python / test (pull_request) Successful in 49s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m24s
2cb4d9b739
Author
Owner

For AMD, temperature does not show properly. See image for reference. Would have to check how it shows for Intel. Have not looked at your implementation yet.
image.png

2cb4d9b739 should fix it

> For AMD, temperature does not show properly. See image for reference. Would have to check how it shows for Intel. Have not looked at your implementation yet. > ![image.png](/attachments/c37b2c90-5bcc-4a2c-892a-b5c4662e3743) [2cb4d9b739](https://git.zach-dev.cc/zach/z-bar-qt/commit/2cb4d9b739c33571acf4b27665b4e4465ef87f79) should fix it
Collaborator

Would have to check on my PC, will report back.

As for Intel; that should work for most Intel cards. Since mine is new (panther lake CPU), the kernel module for my generation of iGPU is not in the kernel yet. So that will just not work at this moment unless we implement some roundabout ourselves, which I'd suggest against doing.

Would have to check on my PC, will report back. As for Intel; that should work for most Intel cards. Since mine is new (panther lake CPU), the kernel module for my generation of iGPU is not in the kernel yet. So that will just not work at this moment unless we implement some roundabout ourselves, which I'd suggest against doing.
zach added 1 commit 2026-06-17 21:49:55 +02:00
sidebar doesn't reduce height when new notifs come in
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 12s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m14s
fbadcbb717
Collaborator

Can confirm; AMD temps show correctly.

Can confirm; AMD temps show correctly.
zach added 1 commit 2026-06-18 13:49:03 +02:00
drawing reworked into c++ plugin, moved input handler to Interactions.qml as a PointHandler
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m17s
c102d0e38f
zach added 1 commit 2026-06-18 20:36:33 +02:00
add right click clear
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m14s
e37332fe6b
zach added 1 commit 2026-06-18 22:26:56 +02:00
remove logging
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m9s
b17bc61d80
zach added 1 commit 2026-06-19 14:06:36 +02:00
fix text input
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m15s
d516dd8be4
zach added 1 commit 2026-06-19 22:50:57 +02:00
notif actions rework
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m25s
697058146e
zach added 1 commit 2026-06-19 23:21:05 +02:00
disable interactible elements when drawing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 13s
Python / lint-format (pull_request) Successful in 25s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m28s
ca1243f9c7
zach added 1 commit 2026-06-20 13:24:52 +02:00
preset color buttons rework + curve smoothing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
fc9be754fd
zach added 1 commit 2026-06-20 13:37:03 +02:00
current color rectangle centered in arc
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 14s
Python / test (pull_request) Successful in 27s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
a1c148bf70
zach added 1 commit 2026-06-20 14:23:19 +02:00
fixes for drawing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s
Python / lint-format (pull_request) Successful in 14s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
81eb56e1d0
zach added 1 commit 2026-06-20 19:01:03 +02:00
show hover dot instead of cursor while drawing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 12s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m11s
e619632077
zach added 1 commit 2026-06-20 20:09:06 +02:00
apply curve smoothing to drawn lines
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m10s
8a87f86758
zach added 1 commit 2026-06-20 20:55:20 +02:00
GPU caching for better performance after many strokes
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 12s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
7be81e584e
zach added 1 commit 2026-06-20 20:57:45 +02:00
early return in hover handler if drawing
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 17s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
91b4466773
Collaborator

Maybe its me, but with certain wallpapers or backgrounds, the cursor can be hard to spot. Perhaps having this as a config option is nice. It is great to see right away how thick the strokes will be without needing to draw them.

I also tested touchscreen drawing. It was good overall, noticed nothing odd. Only minor inconvenience is that I cannot undo without a mouse? Would be nice to have a button for it for touch users (for example when the display is flipped and mouse is inaccesible). Later on, a gesture could reveal and hide the drawing tool to be able to not use the keyboard/mouse at all.

Maybe its me, but with certain wallpapers or backgrounds, the cursor can be hard to spot. Perhaps having this as a config option is nice. It is great to see right away how thick the strokes will be without needing to draw them. I also tested touchscreen drawing. It was good overall, noticed nothing odd. Only minor inconvenience is that I cannot undo without a mouse? Would be nice to have a button for it for touch users (for example when the display is flipped and mouse is inaccesible). Later on, a gesture could reveal and hide the drawing tool to be able to not use the keyboard/mouse at all.
zach added 1 commit 2026-06-21 16:14:39 +02:00
clear and exit buttons on drawing popout + pin button
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 19s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m11s
e55d4aa36b
Author
Owner

Maybe its me, but with certain wallpapers or backgrounds, the cursor can be hard to spot. Perhaps having this as a config option is nice. It is great to see right away how thick the strokes will be without needing to draw them.

I also tested touchscreen drawing. It was good overall, noticed nothing odd. Only minor inconvenience is that I cannot undo without a mouse? Would be nice to have a button for it for touch users (for example when the display is flipped and mouse is inaccesible). Later on, a gesture could reveal and hide the drawing tool to be able to not use the keyboard/mouse at all.

e55d4aa36b added buttons to clear strokes and exit drawing mode. It also changes the mouse cursor to a cross while not actively drawing, and then hides again once a stroke is started. Maybe that'll make it easier to see. I also added a pin button to prevent the popout from closing, not sure how useful that is though.

> Maybe its me, but with certain wallpapers or backgrounds, the cursor can be hard to spot. Perhaps having this as a config option is nice. It is great to see right away how thick the strokes will be without needing to draw them. > > I also tested touchscreen drawing. It was good overall, noticed nothing odd. Only minor inconvenience is that I cannot undo without a mouse? Would be nice to have a button for it for touch users (for example when the display is flipped and mouse is inaccesible). Later on, a gesture could reveal and hide the drawing tool to be able to not use the keyboard/mouse at all. [e55d4aa36b](https://git.zach-dev.cc/zach/z-bar-qt/commit/e55d4aa36bc035271a33e4654b25f9f8b3a48ed7) added buttons to clear strokes and exit drawing mode. It also changes the mouse cursor to a cross while not actively drawing, and then hides again once a stroke is started. Maybe that'll make it easier to see. I also added a pin button to prevent the popout from closing, not sure how useful that is though.
Collaborator

Will try the changes.

My pen has additional buttons, which I should have read up on what they do (maybe some features can be implemented using those buttons).

I will inform based on my findings + testing.

Will try the changes. My pen has additional buttons, which I should have read up on what they do (maybe some features can be implemented using those buttons). I will inform based on my findings + testing.
Author
Owner

My pen has additional buttons, which I should have read up on what they do (maybe some features can be implemented using those buttons).

@Inorishio should do the same with his pen.

> My pen has additional buttons, which I should have read up on what they do (maybe some features can be implemented using those buttons). @Inorishio should do the same with his pen.
Collaborator

It works perfectly fine for me.
I can set my pencil to do whatever I want so I can just tell it to right click whenever I press any button.

Though. There are specific artist buttons for pencils like mine but I reconfigured mine when I'm not drawing.
Wev is not giving me any feedback when pressing the eraser button though so I'd have to search up what button it is that gets used or function that gets called.

Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start.
Either that or have a dotted outline of the size that will be drawn before you start drawing and or even whilst you are drawing.
^ This comes closer to how other programs do it when you draw for example gimp.
I get that you might not want to be making this because the simple drawing tool that we were making is becoming way more complex now but we are already changing our cursor to a more drawing look a like program cursor + some other settings so I did wanna mention it anyway.

Let me know what you think

It works perfectly fine for me. I can set my pencil to do whatever I want so I can just tell it to right click whenever I press any button. Though. There are specific artist buttons for pencils like mine but I reconfigured mine when I'm not drawing. Wev is not giving me any feedback when pressing the eraser button though so I'd have to search up what button it is that gets used or function that gets called. Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start. Either that or have a dotted outline of the size that will be drawn before you start drawing and or even whilst you are drawing. ^ This comes closer to how other programs do it when you draw for example gimp. I get that you might not want to be making this because the simple drawing tool that we were making is becoming way more complex now but we are already changing our cursor to a more drawing look a like program cursor + some other settings so I did wanna mention it anyway. Let me know what you think
Collaborator

Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start.

The idea to have the color dot as your cursor is to immediately see the size of your stroke. Previously, you'd have to select and stroke & repeat to find the right thickness.

Though, I do not know the right approach here.

>Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start. The idea to have the color dot as your cursor is to immediately see the size of your stroke. Previously, you'd have to select and stroke & repeat to find the right thickness. Though, I do not know the right approach here.
zach added 1 commit 2026-06-21 17:45:02 +02:00
better spacing of action buttons in notification popups
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 20s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m14s
164b48ab6a
Author
Owner

Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start.
Either that or have a dotted outline of the size that will be drawn before you start drawing and or even whilst you are drawing.

This is a good idea, I just don't know how to do it yet but I'm sure I could do it. There's many helper classes for drawing a circle so I'll have a look at some point.

I get that you might not want to be making this because the simple drawing tool that we were making is becoming way more complex now

Yeah don't worry about that, I already went way past what I should've when I decided to not only rewrite it in C++ but also make it so each individual stroke is cached to its own FBO (Framebuffer object) on the GPU for better performance lol.

Edit: quote

> Further I like the change for the cross but I think the circular color should not be active whilst you are not drawing and should stay hidden as your cross until you start. > Either that or have a dotted outline of the size that will be drawn before you start drawing and or even whilst you are drawing. This is a good idea, I just don't know how to do it yet but I'm sure I could do it. There's many helper classes for drawing a circle so I'll have a look at some point. > I get that you might not want to be making this because the simple drawing tool that we were making is becoming way more complex now Yeah don't worry about that, I already went way past what I should've when I decided to not only rewrite it in C++ but also make it so each individual stroke is cached to its own FBO (Framebuffer object) on the GPU for better performance lol. Edit: quote
zach added 1 commit 2026-06-21 22:31:13 +02:00
sidebar toggle buttons
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 31s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m7s
faad2dbd09
zach added 1 commit 2026-06-22 09:27:18 +02:00
fill icons when relevant
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 16s
Python / test (pull_request) Successful in 30s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
2f3f41cedd
zach added 1 commit 2026-06-22 11:52:16 +02:00
cursor crosshair + outline of pen width
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 10s
Python / lint-format (pull_request) Successful in 14s
Python / test (pull_request) Successful in 32s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m7s
80d5f13663
Collaborator

Changes to drawing tool look good, well done.

Changes to drawing tool look good, well done.
zach marked the pull request as ready for review 2026-06-22 19:30:54 +02:00
zach requested review from Inorishio 2026-06-22 19:31:04 +02:00
zach requested review from AramJonghu 2026-06-22 19:31:04 +02:00
AramJonghu approved these changes 2026-06-22 22:55:00 +02:00
AramJonghu left a comment
Collaborator

image.png

In the image, the settingswindow separator is hard to distinguish. I do not see this as an issue, but the spaces could look odd when not noticed.
The preset scheme is catppuccin mocha green.

Other than that, approved.

![image.png](/attachments/47ac3bcd-5896-4c46-b3f3-510291245a71) In the image, the settingswindow separator is hard to distinguish. I do not see this as an issue, but the spaces could look odd when not noticed. The preset scheme is catppuccin mocha green. Other than that, approved.
190 KiB
zach added 1 commit 2026-06-22 23:13:26 +02:00
GPU plugin
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 29s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m8s
a37f6075d1
zach merged commit e6f7742bd8 into main 2026-06-23 11:33:20 +02:00
zach deleted branch feat/updated-components 2026-06-23 11:33:29 +02:00
Sign in to join this conversation.