Commit graph

331 commits

Author SHA1 Message Date
Robin Seger
5c59e4490a
feat: VPN fixes & improvements (#1116)
* feat: add VPN settings and management UI

- Add VPN configuration UI
- Update VPN toggle visibility to check enabled providers

* controlcenter: VPN modal transitions & cleanup

* controlcenter: VPN modal styling

* controlcenter: VPN modal scrim

* controlcenter: VPN modal padding

* controlcenter: VPN modal enter & exit behaviour

* vpn: reworked managment & fixes

       - Switched to primarily use provider status json
         - Emitting more detailed toasts and errors/states
       - Authentication prompt button to open in browser
       - Better resets and provider change

* vpn: replace use of qt5compat

* fixing providers, status and adding custom option

* local qml-lint script lied to me

* format

* section order

* linting

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-29 15:25:52 +11:00
Robin Seger
c588794b20
feat: fullscreen notification & toasts overlay (#1276)
* reworked fullscreen mode as transforming shell

* controlcenter configuring of toasts & notifs

* fix animation on fs switch

* border rounding & shadow animation

* change controlcenter notifications layout

* stay on WlrLayer.Overlay, use Anim

* ci: update action versions

* qmlformat

* format take two

* third time's the charm

* fix: special workspace fullscreen

* fix: bar width border.thickness on non-persistent behaviour

* merge fix

* stop layout shift on close

* last few conventions sorted

* linting

* maximized state to fullscreen

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-29 15:22:00 +11:00
Chloé Legué
b5f761666d
fix: weather not using system timezone (#1346)
* adjusted weather.qml to ensure that it tracks system local time and date while ignoring API times if using VPN

* adjusted weather.qml to ensure that it tracks system local time and date while ignoring API times if using VPN

---------

Co-authored-by: Chris <102560999+ItsABigIgloo@users.noreply.github.com>
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-29 02:56:38 +11:00
2 * r + 2 * t
793cc8234c feat: set hypr blur configs dynamically 2026-03-29 01:24:52 +11:00
İlyas
c64119a22b
fix: YouTube thumbnail fallback for missing mpris:artUrl (#1347)
* fix: YouTube thumbnail fallback for missing mpris:artUrl

* fix

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-28 21:58:16 +11:00
2 * r + 2 * t
42a1f34ddb chore: fix property-override linter warnings 2026-03-28 18:17:36 +11:00
Robin Seger
49695f8fd0
audio: add default output sink cycle ipc (#1200)
* [CI] chore: update flake

* [CI] chore: update flake

* [CI] chore: update flake

* [CI] chore: update flake

* audio: added default audio output cycle IPC

* fix format

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-27 18:47:05 +11:00
Chloé Legué
148417baa1
fix: weather service using UTC instead of locale timezone (#1343) 2026-03-27 14:46:13 +11:00
Robin Seger
6fa80bd857
dashboard: lyrics enhancements (#1321)
* dual lrc file search strategies, UI adjustments

* qml conventions & order

* format

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-26 17:13:57 +11:00
2 * r + 2 * t
25515fd32b chore: fix rest of formatting issues 2026-03-22 16:08:57 +11:00
2 * r + 2 * t
d0f2df9bae chore: fix all import formats 2026-03-22 06:02:19 +11:00
2 * r + 2 * t
2a54c089a4 chore: fix rest of linter warnings 2026-03-22 01:31:52 +11:00
2 * r + 2 * t
b64421d614 chore: misc fixes 2026-03-21 16:47:38 +11:00
2 * r + 2 * t
beaefc6f36 chore: fix service linter warnings 2026-03-21 16:45:23 +11:00
2 * r + 2 * t
c3fd5aa905 chore: fix unqualified access 2026-03-20 23:42:36 +11:00
2 * r + 2 * t
a3b3c88f02 fix: template string unused import false positives 2026-03-20 22:38:09 +11:00
2 * r + 2 * t
e88bbe425f refactor: move nested Notifs.Notif type to NotifData 2026-03-20 22:34:08 +11:00
2 * r + 2 * t
8b64d38e26 chore: remove unused imports 2026-03-20 22:33:26 +11:00
2 * r + 2 * t
d2acd1014d chore: fix PersistentProperties missing-prop linter errors 2026-03-20 22:17:36 +11:00
2 * r + 2 * t
796c2e4e76 chore: fix prop order 2026-03-20 16:03:18 +11:00
2 * r + 2 * t
9e2ccbede3 chore: format everything 2026-03-20 04:42:06 +11:00
2 * r + 2 * t
3b08cd6594 chore: add newline after id 2026-03-20 04:42:06 +11:00
八奈見 レイ
ffe90bd077
dashboard: add synced lyrics to media tab (#1197)
* lyrics: rewrite model

* lyrics: cleanup code

* lyrics: some minor layouting

* lyrics: add fade shaders

* lyrics: use appearance values from config

* lyrics: formatting

* lyrics: update readme

* lyrics: fix jumping, redo netease backend (resused from another one of projects)

* lyrics: fix netease searches, remove credit lines

* lyrics: add RequestIds

* lyrics: formatting

* lyrics: lyricsDir path cleanup

* lyrics: make empty lines not take up much space

* lyrics: make empty lines not take up any space

* Lyrics: Use QNetworkAccessManager instead of XMLHttpRequest

also added ability to set request headers and ability to reset cookies for requests.cpp

* lyrics: cleanup old code

* lyrics: toggle lyrics by clicking the album art

* lyrics: sanitize non-breaking spaces

* lyrics: add a menu to select lyrics and manually search for them

* lyrics: remove LrcLib backend

* lyrics: change focus to when dashboard is opened instead of the lyricMenu

* lyrics: improve UI

* lyrics: improve UI more ig

* lyrics: extract LyricsView and LyricMenu into separate components

* lyrics: cleanup old files

* lyrics: refactor LyricsService

* lyrics: restore ComponentBehavior: Bound in lyrics components

* lyrics: change SongID to real to fix integer overflow

* lyrics: add animations to the lyricMenu

* lyrics: fix manual search fields not auto updating

* lyrics: fix jerks when switching tracks

* lyrics: create lyrics directory if it doesn't exist

* lyrics: silence logs, fix binding loops, fix index out of range errors

* lyrics: only request keyboard focus when lyric menu is open

* config: add option to enable/disable the lyrics

* format + silence fileview errors

* fix merge

* anim and lsp fixes + format

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-19 22:38:36 +11:00
Mateus
60de5a129a
fix: react weather location + nominatim fallback (#1290) 2026-03-17 18:26:53 +11:00
2 * r + 2 * t
f5f4c51a73 bar/activewindow: fix anim 2026-03-15 22:18:30 +11:00
Bora Gülerman
aea2ac96ef
controlcenter/taskbar: add excludedScreens (#1215)
also changed controlcenter/components/ConnectedButtonGroup
  - Changed row layout to grid layout
  - Added optional prop: row, which defaults to 1 so it looks same as
row layout if not given
  - added new field to options, which bypasses rootItem bind. This is
needed because we can not predict the number of monitors the user has,
and can not create a seperate variable for each one
2026-03-15 18:42:34 +11:00
cordlessblues
533b6590cd
notifs: support int:value hint (#1254)
* add .vscode/settings.json to gitignore

* added support for the Int:value hint

* fix

* more fix

* f

* comment

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-15 18:27:46 +11:00
Kalagmitan
dd2d7dceab
systemusage: optimized storage aggregation and improved device filtering (#1261)
* refactor: Optimized storage aggregation

+ The storage aggregation logic doesn't account more complex storage
setups and relied too much on risky string parsing to guess where
partitions are. For example, in my case, I had a LUKS-encrypted drive
which lives inside a "crypt," because it couldn't match the type (it
only matched "disk" and "part"), it did not include my entire drive at
all. Also, Linux devices names aren't always predictable (take mapper
devices or complex NVMe paths), so if the RegEx doesn't match the name
of those devices, the data just dissapears.

I decided to go for a JSON approach making the code shorter and safer.

Everything should work about the same.

* systemusage: More intuitive filtering for storage devices

+ Removes "useless" drives from being show on the storage dashboard
+ Prioritizes the root disk to be shown first

* refactor: formatted code properly
2026-03-15 17:49:37 +11:00
2 * r + 2 * t
c1795d187a feat: add excluded screens config opt
Completely disables everything (except lock) for screen
2026-03-13 00:25:58 +11:00
2 * r + 2 * t
27cb290423 feat: replace canvas -> c++ component
Also add c++ ring buffer
2026-03-12 22:51:07 +11:00
2 * r + 2 * t
6987809a76 brightness: use map lookup for DDC monitor matching 2026-03-12 22:30:28 +11:00
2 * r + 2 * t
ce7fe96097 networkusage: avoid intermediate array copy for history updates 2026-03-12 22:22:50 +11:00
2 * r + 2 * t
8812073ab1 systemusage: combine chained replace calls into single regex 2026-03-12 22:22:41 +11:00
2 * r + 2 * t
c14db315f6 audio: replace reactive reduce with imperative node categorisation 2026-03-12 21:55:22 +11:00
2 * r + 2 * t
9464c72f7a nmcli: use Map-based lookups for network deduplication
Replace O(n²) nested .filter()/.find() loops with Map-keyed
lookups for both removal and update passes in getNetworks().
2026-03-12 21:51:44 +11:00
2 * r + 2 * t
11f5a2ee45 network: debounce nmcli monitor events
Batch rapid nmcli monitor events with a 200ms debounce timer
instead of spawning processes on every event line.
2026-03-12 21:51:38 +11:00
2 * r + 2 * t
30c36e356d notifs: use adaptive timer for timeStr instead of reactive binding
Replace the per-second reactive binding with an imperative timer
that adapts its interval based on notification age: 5s for <1min,
30s for <10min, 60s for <1h, 5min for <1d, 1h for older.
2026-03-12 21:49:55 +11:00
Bilal Özel
0d56db3b6c
systemusage: improve GPU detection for AMD RX series GPU (#1246)
* SystemUsage:improve GPU-Detection for AMD RX series GPU

updated the gpuNameDetect command with glxinfo to fix gpu name detection

* SystemUsage: adjust lspci command to detect graphics card better

* SystemUsage: adjust regex to extract name out of last bracket

* clean less

* no need xargs

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-10 01:33:33 +11:00
Thanh Minh
46174d1934
dashboard/performance: new design, configurable, controlcenter support (#975)
* feat(dashboard): add configurable performance resources

- Add config options to show/hide Battery, GPU, CPU, Memory, Storage
- Make dashboard responsive based on number of visible resources
- Scale resource sizes and spacing dynamically for 3, 4, or 5 items
- Battery shows charge status and time remaining/to full
- Each resource can be individually toggled via config

* fix(dashboard): add dynamic right margin for last visible resource

Ensures the rightmost resource always has proper margin to prevent
content from being cut off at the edge

* fix(performance): comment out duplicated value2 properties for memory and storage resources

* controlcenter: add settings for dashboard

* feat: handle readonly properties and re-usable codes

* Feature/performance tab rework (#5)

* dashboard/performance: rework tab with card-based grid layout

- Replace circular arc meters with card-based grid layout
- CPU/GPU cards show hardware name, usage and temperature with horizontal bars
- Memory card with 3/4 arc indicator and used/total at bottom
- Storage card shows physical disks from lsblk with aggregated partition usage
- Add cpuName, gpuName, cpuFreq, cpuMaxFreq, disks properties to SystemUsage
- Clean hardware names (remove Intel/AMD/NVIDIA prefixes, TM/R symbols)

* dashboard/performance: new hero card design

* dashboard/performance: update storage indicators to be reponsive to the physical disks count

* dashboard/performance: fix the overlay bounding issue

* dashboard/perfromance: refactor code

* dashboard/performance: add battery gauge

* dashboard/performance: correct battery icon

* dashboard/performance: configurable battery

* dashboard/performance: update layout

* dashboard/performance: move the "Usage" text on top and smaller the font size

* dashboard/performance: add a lot of configurations

* dashboard/performance: add network metrics

* fix: issue with hot reload

* chore: update default vaule for mainValueSpacing to 0

* chore: group settings into collapasible sections

* chore: making GPU & Battery toggle not showing if not found

* chore: fix network widget spacing & text

* chore: remove old disk bars configs, add update interval

* chore: remove old & unused value, functions

* chore: network graph update smoothly when data points change

* chore: refactor settings

- de-flood settings, most of the font & size setting now follow the
global Appearance config
- Most of sliders are not needed anymore, only keep the update interval
slider
- clean up

* chore: remove readonly properties from the controlcenter/dashboard.

* chore: minor fix

* fix: fix warning about onPercChange()

* fix: network metrics negative number

* fix: add minimal height & width, placeholder for none toggled

* fix: network graph move smoothly (#6)

* fix: network graph move smoothly

* clean up

* fix: graph animation even more smooth

* fix: padding issue

* chore: network icons short description

* fix

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-02-19 22:53:22 +11:00
Robin Seger
2e22a21def
shortcuts: add special workspace cycle (#1158)
* [CI] chore: update flake

* [CI] chore: update flake

* [CI] chore: update flake

* [CI] chore: update flake

* shortcuts: special workspace cycle IPC, reopen last

* Moved implementation into Hypr service

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-11 11:44:23 +11:00
2 * r + 2 * t
9d7f0c48ce internal: format 2026-01-28 19:21:44 +11:00
Robin Seger
2ddc367e4e
controlcenter: added VPN settings & management (#1095)
* feat: add VPN settings and management UI

- Add VPN configuration UI
- Update VPN toggle visibility to check enabled providers

* controlcenter: VPN modal transitions & cleanup

* controlcenter: VPN modal styling

* controlcenter: VPN modal scrim

* controlcenter: VPN modal padding

* controlcenter: VPN modal enter & exit behaviour
2026-01-21 00:12:08 +11:00
2 * r + 2 * t
685ad569a3 background: fix desktop clock 12h format 2026-01-20 20:53:34 +11:00
ATDMA
a17fe72be5
controlcenter: add per-application audio controls (#1098)
* feat: per-application audio controls in controlcenter and popout

* removed: per-application volume control removed from audio popout
2026-01-19 16:04:17 +11:00
Ezekiel Gonzales
d2c06587f5
utilities: fix fullscreen record (#1085) 2026-01-16 22:10:33 +11:00
2 * r + 2 * t
2d000c1052 notifs: fix image caching 2026-01-16 02:22:13 +11:00
2 * r + 2 * t
229934a986 lock: fix weather 2026-01-04 00:15:40 +11:00
2 * r + 2 * t
19104850ee fix: get city for weather when given lat,long
Fixes #1036
2026-01-03 23:09:56 +11:00
2 * r + 2 * t
ee65883f97 internal: fix some widgets not respecting rounding scale 2026-01-03 19:34:14 +11:00
Ezekiel Gonzales
49b94e7b18
services: add brightnessIncrement config property (#1010)
* feat: Add brightnessIncrement config property

* birghtness increment applies on bar scroll
2026-01-03 19:04:00 +11:00