Commit Graph
1272 Commits
Author SHA1 Message Date
bbedward fa445388e4 island/bar: square blur region corners where goth paths paint square
ref #3191
2026-09-01 10:50:33 -04:00
bbedward 99d36e9421 bar: rework hover popout state machine and cover missing widgets
fixes #3248
2026-09-01 10:22:40 -04:00
bbedward 99c5f96575 bluetooth: toggle power from the adapter's live state,
fixes #3242
2026-08-31 19:55:31 -04:00
bbedward c580aa26c0 shell: fix media text collapse, stale plugin cc detail, theme browser open 2026-08-31 13:19:58 -04:00
bbedward 5c552f97e4 theme: add widgetInactiveIconColor token, apply to volume 0 2026-08-31 09:36:51 -04:00
Spyros Psarras 212271291c feat(battery): show charge/discharge rate in the bar widget (#3210)
The battery popout already surfaces the UPower energy rate, but the bar
widget could only show percentage and remaining time, so telling how fast
the battery is charging or draining meant opening the popout (or running a
third-party plugin that polls /sys/class/power_supply).

Add two independent, opt-in toggles to the battery widget - "Show Charge
Rate" and "Show Discharge Rate" - that render the signed rate next to the
existing text, e.g. "+28W" while charging and "77% (2h 11m) -19W" while
draining. Both default to off, and follow the established pattern: a global
default in SettingsData plus a per-widget-instance override.

The value comes from BatteryService.changeRate, so there is no extra process
or polling. It hides itself when the rate is below 0.05W (idle, fully
charged, or sitting at a charge limit) so it costs no bar space unless it
has something to say. Precision adapts to keep the pill narrow: one decimal
below 10W, whole watts above; vertical bars get a whole-watt line.
2026-08-31 09:16:28 -04:00
bbedward 4624ceb8f0 firststart/greeter: add a step for plugins 2026-08-31 09:15:59 -04:00
purian23 7372b79c2d feat(lockscreen): allow to enable/disable of weather
Closes #3153
2026-08-30 21:45:02 -04:00
Huỳnh Thiện Lộc 4cdfc53dcd fix(dock): hide overlay dock over fullscreen (#3224)
* fix(dock): hide overlay dock over fullscreen

* fix(dock): track fullscreen state declaratively

* fix(dock): clear overlay mask during fullscreen

* feat(dock): add fullscreen visibility option

* fix(dock): preserve auto-hide fullscreen behavior

* fix(dock): keep fullscreen mask interactive in overview

* fix(frame): host dock on overview without show dock
2026-08-30 14:36:34 -04:00
Scott Steelyandclaude[bot] 393a54f7eb feat(mpris): pin preferred media source (#3150)
* feat(mpris): pin preferred media source

Add a minimal "pin media source" option so the bar media widget and OSD
keep showing a preferred player (e.g. a music player) even when another
source (e.g. YouTube in the browser) starts playing.
 - MprisController: new pinnedIdentity property + setPinned(identity);
  _bestPlayingPlayer() prefers a playing pinned player (exact identity
  match, then case-insensitive substring fallback). Existing behavior
  is unchanged when no pin is set.
- Persistence via SessionData.pinnedPlayerIdentity (spec entry added so
  SessionData.set() accepts the key); empty string clears the pin.
- MediaDropdownOverlay (Media Players panel): each player row gets a
  theme-colored circle indicator on the right. Empty circle = no pin
  (initial state). Right-click a row to make it the default source
  (circle fills); right-click another row to move the pin; right-click
  the pinned row again to clear (back to empty). Left-click behavior
  unchanged (selects the player).

* Update quickshell/Services/MprisController.qml

Concur with Claude's suggestion.

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update quickshell/Services/MprisController.qml

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-08-30 14:30:23 -04:00
bbedward 151aedbb68 display: merge missing hyprland fields into existing session entries
fixes #3221
2026-08-30 14:19:54 -04:00
bbedward 9628628d38 fix(island): click through empty strip space when floating
fixes #3227
2026-08-30 11:30:07 -04:00
Nat Fletcher 7f73a81c59 updated unit for edge spacing, exclusive zone offset, and size to 'px' (#3228) 2026-08-29 18:48:06 -04:00
bbedward b8cceb7b3a gamma: configurable transition duration for time-based night mode 2026-08-29 16:23:48 -04:00
shalevc1098andshalevc1098 22ff24b0e4 keyboard layout widget: refresh once compositor detection lands (#3225)
CompositorService detects the compositor asynchronously: compositorInitTimer
waits 100ms before calling detectCompositor(), which shells out to identify
the Wayland socket owner and only sets the compositor flags in its callback.

KeyboardLayoutName gates its initial updateLayout() on CompositorService.isHyprland
in Component.onCompleted, which always runs before that lands, so the call never
happens and the widget renders with an empty label until the first activelayout
event, i.e. until the user switches layout by hand.

Re-run updateLayout() when the detected compositor changes. updateLayout()
already branches on the compositor internally, so one handler covers every
backend.

Co-authored-by: shalevc1098 <[email protected]>
2026-08-29 15:44:30 -04:00
08dde7f79a add: Cellular Network support (rebase of #2765) (#3096)
* feat: add cellular support

* fix(settings): resolve cellular tab index collision

* fix: address review feedback for cellular support

Bump the network API version, drop the deleted term freeze file,
regenerate the settings search index, and reuse existing translation
terms where they already cover the new cellular UI.

* fix: do not assign readonly userPreference when switching network type

Assigning SettingsData.networkPreference through the readonly alias
threw on click, so the Cellular segment in Control Center did nothing.

* fix: make Cellular selectable and the modem row clickable

The Control Center type switcher was bound only to preference, so
Cellular snapped back to Ethernet. The settings modem row highlighted
on hover but had no click handler. Show the modem as a connect target
when no APN profiles exist.

* fix: create a GSM profile when connecting cellular with none saved

Clicking Mobile broadband only activated an existing profile, so a
modem with no APN did nothing useful. Fall back to AddAndActivate
like ethernet connect.

* fix: address second round of cellular review feedback

- Guard cellularDevices map with devMutex via snapshot/by-iface/set/remove
  helpers, mirroring the existing ethernet and wifi accessors
- Regenerate mocks with mockery v3 instead of hand-editing mock_Backend.go
- Reuse refreshCellularState() in SetCellularEnabled, DisconnectCellular,
  DisconnectCellularDevice, ActivateCellularConnection and device removal
- Wrap retryErr rather than the first error when the auto-config retry fails
- Use Theme.surfaceTextSecondary/primaryHover/primaryHoverLight in the
  cellular-off state instead of hand-rolled Qt.rgba values
- Drop the duplicate "No devices found" label so it can no longer render
  twice with no modem and no saved config

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* fix: address remaining cellular review comments

- Toast "Failed to toggle cellular" instead of always "enable"
- Remove unused enableCellularRadio() wrappers
- Store Control Center network type as a value, not a list index

* fix: pass nmcli connection selector as separate argument

`nmcli con mod uuid:<UUID>` is not valid syntax -- nmcli expects the
selector keyword as its own argument, so every priority update failed
with "no such connection profile". Because practically every NM profile
has a UUID, this silently disabled autoconnect-priority and route-metric
updates for ethernet and WiFi as well as cellular.

Also fix the Cellular settings status text, which said "Connecting..."
for a flag that only tracks radio enable/disable, and add the seven
cellular terms that were missing from the translation catalogs.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* apply review comments

* fix lints

* update debug doc

* fix style inconsistencies

---------

Co-authored-by: Yechiel Worenklein <[email protected]>
Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Co-authored-by: bbedward <[email protected]>
2026-08-29 15:37:36 -04:00
bbedward 6ce86a07a5 displays: round-trip hyprland HDR metadata and dedupe whitespace-duplicated outputs
fixes #3221
fixes #3219
2026-08-29 15:24:34 -04:00
Huỳnh Thiện Lộc f29a48f681 fix(popouts): close hover surface on click (#3223)
* fix(popouts): close hover surface on click

* fix(hover): preserve popout retargeting
2026-08-29 13:00:42 -04:00
Huỳnh Thiện Lộc feab79df83 feat(settings): improve battery status layout (#3103)
* feat(settings): improve battery status layout

* fix(settings): shorten battery power label

* refactor(settings): remove duplicate power source

* chore(settings): update search index

* fix(settings): combine battery estimate time

* fix(settings): address battery layout review

* fix(settings): keep battery fallback translatable

* fix(settings): mirror battery progress fill
2026-08-29 13:00:19 -04:00
Huỳnh Thiện Lộc 754040ca42 feat(lock): add vertical clock style (#3220)
* feat(lock): add vertical clock style

* fix(lock): center single-digit vertical hours
2026-08-29 12:28:32 -04:00
bbedward d272e7d9da greetd: re-add embedded greeter for archinstall compatibility 2026-08-29 12:28:05 -04:00
purian23 3306772f97 fix(island): fix ghost widgets & extended clicks on near island/screen edges 2026-08-28 21:17:36 -04:00
Huỳnh Thiện Lộc f1bbb97b2a feat(clipboard): accept dropped content (#3211)
* feat(clipboard): accept dropped content

* fix(clipboard): address drag drop review

* fix(clipboard): preserve multi-file drops
2026-08-28 14:41:28 -04:00
bbedward 93a7c17e59 launcher: add built-in power options plugin to launcher 2026-08-28 13:57:29 -04:00
bbedward 7aa1b806d2 weather: show fetch fail reasons 2026-08-28 10:44:50 -04:00
bbedward 2c471e1c9e bar/focused-app: clip title overflow horizontally only
fixes #3203
2026-08-28 10:17:26 -04:00
bbedward cef1eb962e powermenu: add popout variant for bar widget
fixes #3199
2026-08-28 10:17:26 -04:00
bbedward 07f89e314f audio: optional stream nodes in device lists
fixes #1672
2026-08-28 10:17:26 -04:00
bbedward 1486eafa75 lock: reset fingerprint retry backoff on resume
fixes #3171
2026-08-28 10:17:26 -04:00
Huỳnh Thiện Lộc d8ceb12164 feat(spotlight): align tab navigation with full launcher (#3205)
* feat(spotlight): align tab navigation

* fix(launcher): wrap reverse action navigation

* fix(launcher): reset spotlight actions on selection
2026-08-28 01:18:27 -04:00
bbedward 9255596b08 widgets/keyboard layout: use NumericText
fixes #2679
2026-08-27 16:09:14 -04:00
bbedward 48e4709eb5 calendar: add default task list setting for dash quick-add
fixes #3134
2026-08-27 14:57:16 -04:00
bbedward b97c9b0b9a plugins: load desktop widget settings via file url
fixes #3165
2026-08-27 14:24:18 -04:00
bbedward 52f393d821 displays: floor logical output sizes on niri
ref #2526
2026-08-27 13:03:17 -04:00
bbedward c0c2c73e8f wallpaper: don't drop a change back to the displayed image mid-transition 2026-08-27 12:48:49 -04:00
bbedward 530c58b928 island: scale satellite background to content in near mode
fixes #3191
2026-08-27 09:49:31 -04:00
bbedward be9aeaefbc plugins: persist ColorSetting as a color string
fixes #3164
2026-08-27 09:49:31 -04:00
bbedward 8d36628df1 desktop-widgets/sysmon: track option changes in dgop module refs
ref #3107
2026-08-27 09:49:31 -04:00
bbedward d81aca468e bar: release the input region while hidden for the niri overview
fixes #3000
2026-08-27 09:49:31 -04:00
haikalllp 42080db61b feat(theme): add support for matugen smart mode and type (#3109)
* feat(theme): add support for matugen smart mode and type

* add another dry run to get smart type preview

* fix too much keywords in search index

* revert dont extract translations

* feat gate "Auto From Wallpaper" toggle row and the available matugen scheme for the pallete drop down

* re-extract settings search index

* make portal sync no longer disables matugen smart mode

* make sure cosmic theme mode also follow change from smart mode

* add translator context for Auto (Light Mode) / Auto (Dark Mode) / Auto From Wallpaper

* fix: gate matugen smart mode checks on the dynamic theme so stock themes keep portal sync and fix tile labels in control center
2026-08-27 09:40:23 -04:00
Vladimir b7034fcadb fix(bar): prevent focused app overlap (#3190) 2026-08-27 09:28:44 -04:00
purian23 25e95d597c feat(dankisland): render notification severity as a border accent 2026-08-27 01:26:10 -04:00
Tássio Virgínio 3b527f1f7f SystemTrayBar: add configurable icon spacing (#3183)
Adds a user-configurable spacing between system tray icons in the bar,
available per widget via the tray context menu in Settings > Widgets
("Icon Spacing" stepper, 0-20px), with a global default fallback.

- SettingsData/SettingsSpec: new trayIconSpacing setting (default 0)
- SystemTrayBar: apply configuredIconSpacing to the horizontal Row and
  vertical Column layouts, and account for it in auto-overflow item
  estimation and drag-and-drop slot math (shift offsets and target
  index calculation)
- WidgetsTabSection: "Icon Spacing" stepper in the tray widget context
  menu, following the existing "Max Visible" pattern
- WidgetsTab: keep trayIconSpacing when restoring per-widget data
2026-08-26 14:59:09 -04:00
bbedward 67968aef79 notifications: add option to execute default action on body click
instead of expanding text

fixes #2425
2026-08-26 14:58:17 -04:00
Vladimir 5b8f083fe5 fix(tray): prefer tooltip title in menu (#3181) 2026-08-26 08:01:48 -04:00
bbedward ea0b158eb8 bar/island: fix click targets on satellites 2026-08-25 20:54:39 -04:00
bbedward 6feac1f79e bar/island: tweak spacing of satellite widgets 2026-08-25 17:48:32 -04:00
Vladimir 34cf6e6346 feat(control-center): show Bluetooth battery in quick tile (#3160)
Display the selected device as `name • N%` when battery information is available, while preserving the existing name-only fallback.
2026-08-25 17:43:09 -04:00
bbedward c8ec045a3c bar/island: add background options for satellites, transparency, blur.
Bigger click targets
2026-08-25 15:54:57 -04:00
bbedward d9462c5484 battery: more style adjustmetns to horizontal pill
fixes  #3177
2026-08-25 13:35:04 -04:00