Commit Graph
156 Commits
Author SHA1 Message Date
outfoxxed 4df562dfb2 service/notifications: emit NotificationClosed after Notify returns 2026-07-10 01:58:38 -07:00
outfoxxed b66495fcc5 all: add/fix property change signals on various properties
- FileView.atomicWrites notified on blockWrites
- StatusNotifierItem.onlyMenu missing notification
- MarginWrapper.extraMargin missing notification
- MarginWrapper.resizeChild missing notification
- PopupWindow.grabFocus missing notification
2026-06-01 01:48:57 -07:00
outfoxxed eaba6c8b62 services/mpris: fix minRate and maxRate returning rate 2026-06-01 01:37:19 -07:00
outfoxxed 0baa81aa03 all: fix typos 2026-04-27 18:56:41 -07:00
outfoxxed 783c953987 services/pipewire: assume default channels in channelMap if unset
Pw-pulse seems to have stopped sending these at some point. This
copies the logic that pipewire's tools use to decide the default channels.
2026-04-22 03:34:08 -07:00
outfoxxed 13fe9b0d98 services/pipewire: avoid blanket disconnect for default nodes
The same nodes can be both default and default configured nodes. When
the default and default configured node are not changed in unison, a
blanket disconnect will also disconnect the other's destroy handler,
causing a crash if the other is accessed after the node is destroyed.
2026-04-06 00:42:29 -07:00
-k 0a859d51f2 service/pam: include signal.h on freebsd 2026-03-17 00:01:24 -07:00
outfoxxed bd62179277 all: retry incomplete socket reads
Fixes greetd and hyprland ipc sockets reads being incomplete and
breaking said integrations on slow machines.
2026-03-10 00:54:45 -07:00
outfoxxed 5721955686 services/pipewire: ignore ENOENT errors
Pipewire describes all errors as fatal, however these just aren't,
don't seem to be squashable, and resetting for them breaks users.
2026-03-04 23:26:33 -08:00
bbedward 36517a2c10 services/pipewire: manage default objs using normal qt properties
Fixes use after free bugs due to pointer mismatches in destructors.
Drops SimpleObjectHandle.
2026-02-23 23:17:42 -08:00
Andrei afbc5ffd4e services/pipewire: use node volume control when device missing
Some outputs which present a pipewire device object do not present
routes, instead expecting volume to be set on the associated pipewire node.
2026-02-21 20:39:03 -08:00
outfoxxed 783b97152a build: update CI, nix checkouts, lints 2026-01-13 23:20:55 -08:00
outfoxxed eecc2f88b3 services/pipewire: ignore monitors in PwNodeLinkTracker 2026-01-09 01:09:25 -08:00
outfoxxed 11d6d67961 services/pipewire: add peak detection 2026-01-09 01:09:24 -08:00
outfoxxed 5d8354a88b services/pipewire: add reconnect support 2026-01-08 04:11:09 -08:00
outfoxxed 8d19beb69e core/log: copy early logs with sendfile/readwrite again
copy_file_range does not work across devices and memfds count as a
separate device.
2026-01-08 02:35:08 -08:00
molyuu 6742148cf4 all: initial support for freebsd
- Use `copy_file_range(2)` over `sendfile(2)` which has wider
compatibility.
- Special case pam on freebsd and document `configDirectory`
incompatibility.
- Disable jemalloc for FreeBSD by default as it is the system allocator.
- Disable breakpad by default on FreeBSD as breakpad is not supported.
2026-01-06 01:50:58 -08:00
outfoxxed 41828c4180 services/pipewire: use node volume controls when routeDevice missing
For bluez audio streams and potentially other types of synthetic
device, volume controls are managed via the node and persistence is
handled by the service.
2025-12-25 20:58:05 -08:00
Tobias Pisani 26531fc46e service/tray: emit change signals for item title and description 2025-12-02 00:22:52 -08:00
outfoxxed 0a7dcf30ea build: update clang tooling and reformat 2025-11-15 04:43:27 -08:00
outfoxxed 1552aca3df build: fix new clang-tidy lints 2025-11-15 04:29:12 -08:00
outfoxxed a00ff03944 services/pipewire: cache route device volumes to initialize nodes
Nodes referencing a device can be bound later than the device is
bound. If this happens, the node will not receive an initial route
device volume change event. This change caches the last known route
device volume and initializes the device with it if present.
2025-11-14 02:12:42 -08:00
Cu3PO42 db1777c20b service/polkit: add service module to write Polkit agents 2025-10-30 03:53:01 -07:00
outfoxxed ea79eaceb0 services/pipewire: do not use device for pro audio node controls
Note that the device object is currently still bound. This should not
be necessary.

Fixes #178
2025-10-11 21:42:58 -07:00
Gregor Kleen f12f0e7c7d service/greetd: always send responses 2025-10-11 01:03:05 -07:00
outfoxxed c5c438f1cd all: fix gcc warnings and lints 2025-10-04 13:43:41 -07:00
outfoxxed 9662234759 services/pipewire: consider device volume step when sending updates
Previously a hardcoded 0.0001 offset was used to determine if a volume
change was significant enough to send to a device, however some
devices have a much more granular step size, which caused future
volume updates to be blocked.

This change replaces the hardcoded offset with the volumeStep device
route property which should be large enough for the device to work with.

Fixes #279
2025-10-01 00:29:45 -07:00
outfoxxed 1d94144976 all: fix lints 2025-09-28 23:56:32 -07:00
bbedward 59f5744f30 core/desktopentry: watch for changes and rescan entries 2025-09-16 22:55:49 -07:00
outfoxxed 448623de5a service/notifications: use bytes over bits in pixmap rowstride check
Fixes incorrect rowstride warnings.
2025-07-25 22:08:15 -07:00
outfoxxed 4dad447570 docs: remove }; in headers + typo fixes
}; breaks the docgen regex
2025-07-24 17:15:03 -07:00
outfoxxed 63a6d27213 core/qmlglobal: configDir, configPath() -> shellDir, shellPath() 2025-07-19 02:58:55 -07:00
outfoxxed ecc4a1249d all: mask various useless dbus errors 2025-07-18 04:14:58 -07:00
ipg0 115d6717a8 services/tray: use normal icon as fallback for attention custom icon
Signed-off-by: ipg0 <[email protected]>
2025-07-17 22:27:46 +03:00
outfoxxed 91dcb41d22 services/pipewire: destroy qml ifaces early to avoid user callbacks
Consumers of defaultAudio*Changed signals can run code between
safeDestroy being called and PwObjectIface destruction due to
signal connection order. This change destroys ifaces earlier so they
are nulled by the time a changed signal is fired from destruction,
preventing access between ~PwNode() and ~QObject() completion.

Fixes #116 #122 #124
2025-07-17 00:22:58 -07:00
outfoxxed 4d8055f1cd build: fix PostReloadHook resolution in LSP 2025-07-15 19:03:27 -07:00
outfoxxed a45fc03c7d service/tray: fix missing documentation for invokables
'};' prior to invokables caused the docgen regex to miss them
2025-07-15 15:58:56 -07:00
ipg0 c40074dd56 service/notifications: add inline-reply action support
Signed-off-by: ipg0 <[email protected]>
2025-07-15 15:49:59 -07:00
outfoxxed cee1f5837e service/mpris: make lengthSupported bindable and notify for changes
Fixes #109
2025-07-13 20:32:51 -07:00
outfoxxed 3d594e16dd core/log: track default logging categories
Fixes a bug in fb37be7 which ignored default logging categories due to
skipping QLoggingRegistry's filter.
2025-07-08 13:49:06 -07:00
outfoxxed 87d99b866f services/pipewire: destroy bound audio object when node is destroyed
Fixes a leak and prevents a UAF via device volume signals
derefing the freed node.

Fixes #91
2025-07-04 20:29:50 -07:00
outfoxxed 9708d8212a core/reloader: trigger onPostReload if launched post-reload
This is similar to the check in Reloadable, and fixes a number of hard
to debug issues with Process, IpcHandler, NotificationServer, and
GlobalShortcut not working depending on where you put them in a QML file.
2025-07-04 16:02:14 -07:00
outfoxxed f681e2016f bluetooth: add bluetooth integration
Missing support for things that require an agent, but has most basics.

Closes #17
2025-07-01 00:25:16 -07:00
outfoxxed 02362c3e94 services/pipewire: add missing ; after Q_ENUM for docgen 2025-06-20 02:53:30 -07:00
outfoxxed 95d0af8113 services/pipewire: update volume props from device for device nodes
Yet another device node edge case. In addition to only writing via
a pw_device when present, now we only read from one as well.

This fixes missing state changes not conveyed by the pw_node.

Fixes #35
2025-06-19 05:12:24 -07:00
outfoxxed 517143adf9 all: fix new lints 2025-06-12 17:01:13 -07:00
nydragon ee570ec623 services/pipewire: expose node type 2025-06-07 03:26:55 -07:00
outfoxxed b67f92bc13 all: use BINDABLE only with trivial setters
Fixes various bugs caused by the QML engine bypassing setters
when BINDABLE is specified (even if the bindable is const).
Also restructures all properties using BINDABLE to have
a default READ and WRITE to ensure this doesn't happen again.
2025-05-29 16:08:39 -07:00
outfoxxed d872ea888d service/tray: hide missing prop warnings for ToolTip 2025-05-24 03:21:26 -07:00
outfoxxed 6026c4ce27 service/mpris: expose dbus service name 2025-05-18 12:33:43 -07:00