Commit graph

818 commits

Author SHA1 Message Date
7d1c9a9c67
wayland/toplevel: reorganize toplevel management 2026-05-11 01:38:16 -07:00
Aditya Alok
d1760ed1f3
wayland/lock: add window null check in surface isVisible 2026-05-07 23:40:27 -07:00
b93d61385f
wayland/lock: run scenegraph callbacks for lock surfaces
Fixes ScreencopyView never initializing if only using lock surfaces.
2026-05-07 03:08:57 -07:00
59e9c47b0e
version: 0.3.0 2026-05-03 22:09:49 -07:00
ffe95f06ac
guix: drop
Hard to keep the package up to date without an active maintainer.
2026-05-03 18:50:15 -07:00
8db8ca1fec
core/log: mask virtual/override property warnings 2026-05-02 00:15:59 -07:00
0baa81aa03
all: fix typos 2026-04-27 18:56:41 -07:00
01834e9c8f
hyprland/ipc: add lua ipc support 2026-04-27 18:56:39 -07:00
2ba2ae48b4
core: add qt version check in preprocessor 2026-04-27 02:18:32 -07:00
Jörg Thalheim
055e384668 core/model: make diffUpdate handle reordering without duplicating rows
diffUpdate inserted an element at its target index without removing it
from its previous index, so a pure permutation like [d,a,b,c] ->
[a,b,c,d] left every misplaced element in the model twice and the
removal pass never reclaimed them because their pointer is still in
newValues. Any caller that re-sorts an existing list (dbusmenu
re-layout, desktopentry re-scan) can hit this. Found via a downstream
niri workspace backend where a monitor hot-plug re-sorts the model.
2026-04-26 12:59:02 +02:00
11a71d233a
dbus/dbusmenu: connect onItemPropertiesUpdated
Evidently this was broken at some point or never connected.
2026-04-24 21:01:49 -07:00
e162429b6f
wayland/toplevel: track global screen removals
Screen removal events aren't necessarily emitted at a protocol level
when a screen is removed globally.

This would have caused UAFs if the pointer was ever dereferenced, but
in practice it was only compared against.
2026-04-24 01:30:59 -07:00
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
b850b8a1a9
core: add DefaultEnv pragma 2026-04-22 01:12:10 -07:00
Carson Powers
d60498adc0
networking: add wired device support 2026-04-21 01:48:20 -07:00
9a54119893
core/command: warn on mismatch when other displays have instances 2026-04-19 02:01:41 -07:00
18075d1218
core/command: ignore QT_QPA_PLATFORM in display check 2026-04-19 02:01:19 -07:00
fb08eced44
wayland/screencopy: intersect dmabuf and render formats + cleanup
Fixes 99% of MGPU cases.
2026-04-13 00:41:08 -07:00
d4c92973b5
i3/ipc: ensure monitor/workspace pointers are nulled on destroy 2026-04-09 00:34:57 -07:00
7f7ab6bc8a
launch: use dup2 to reset daemon stdio over close+open 2026-04-09 00:10:49 -07:00
7208f68bb7
core: add QS_DROP_EXPENSIVE_FONTS env var 2026-04-08 01:35:15 -07:00
f0d0216b3d
core: add DropExpensiveFonts pragma disabling woff and woff2 fonts 2026-04-08 00:48:58 -07:00
7c5a6c4bd4
core/log: crash if Quickshell's log filter is installed twice
Crashes from recursion inside filterCategories through the old filter
have been observed. Presumably this means the log filter is getting
installed twice somehow. This should catch it.
2026-04-06 00:45:26 -07:00
5bf6a412b0
core: correctly construct runtime path when XDG_RUNTIME_DIR missing
Fixes a typo of % as $, which broke string substitution.
2026-04-06 00:43:02 -07:00
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
ad5fd9116e
wm: add nullptr guard to WindowManager::screenProjection 2026-04-04 13:51:32 -07:00
49d4f46cf1
io/fileview: handle deserialization to list<T> properties 2026-04-04 13:05:33 -07:00
9b98d10178
io/fileview: try to convert values to json before handling sequences
The previous code was interpreting a string as a list of characters
and therefore a sequence.
2026-04-04 12:28:40 -07:00
854088c48c
io/fileview: convert containers to QVariantList/Map before serialize
QJsonValue::fromVariant doesn't do this automatically for some reason.
2026-04-04 02:06:22 -07:00
bbedward
b4e71cb2c0
core/window: add parentWindow property to FloatingWindow 2026-04-03 21:36:18 -07:00
ceac3c6cfa
io/fileview: use QVariant when QJSValue cast fails in adapter prop read
A QVariant(QVariantMap) does not convert implicitly to a
QVaraint(QJSValue), causing extra signals to be emitted if the old
value was not updated by js (replaced by a QJSValue) before
deserializing again.
2026-04-03 21:36:02 -07:00
aaff22f4b0
io/fileview: write values into correct JsonObjects in deserialize
Property writes were being done on the JsonAdapter and not the child
JsonObject, resulting in the data of children being set on the
adapter's props, and occasional crashes.
2026-04-03 21:35:11 -07:00
HigherOrderLogic
50cdf98868
core/colorquant: add imageRect option for cropping image 2026-04-03 00:30:27 -07:00
4b751ccb0d
wayland/screencopy: use linear texture filtering over nearest
Fixes pixelated views at scaled resolutions.
2026-04-03 00:03:27 -07:00
Carson Powers
20c691cdf1
networking: add PSK, settings and connection status support 2026-04-02 20:26:08 -07:00
92b336c80c
tooling: ensure intercepts do not overwrite symlinks to cfg files
Intercept-file writes could end up opening an existing vfs symlink
back to the user's actual config instead of creating a new file in the
vfs.
2026-04-02 03:25:42 -07:00
2 * r + 2 * t
d612227740
core/qmlglobal: add shellId, instanceId, appId and launchTime props 2026-03-31 02:49:24 -07:00
b83c39c8af
services/pipewire: add -fno-strict-overflow to fix PCH with pipewire
Unclear how this should be handled long term.
2026-03-30 21:42:08 -07:00
Mia Herkt
ee1100eb98
wayland/buffer: drop unused GLESv3 include
That one is often in a separate Mesa package and contrary to GLESv2
doesn’t come with a pkg-config file. Mildly annoying…
2026-03-29 09:31:28 +02:00
9bf752ac33
crash: add std::terminate handler 2026-03-28 23:07:37 -07:00
313f4e47f6
core: track XDG_CURRENT_DESKTOP in debuginfo 2026-03-28 20:28:03 -07:00
6ef86dd5aa
crash: run platform compat hooks in crash reporter init
For some reason, QtWayland crashes we work around trigger in this
path. This was previously masked when the crash reporter didn't unmask
signals, as long as the original process crashed with SIGSEGV.
2026-03-28 20:27:57 -07:00
308f1e249b
crash: unmask signals before reexec
Signals were previously left masked before reexec, causing UB if a
child were to crash again, instead of triggering the reporter.

This might've been responsible for a number of unexplainable bugs.
2026-03-28 20:27:48 -07:00
08058326f0
core: reuse global pragma parsing js engine during scanning
QJSEngine cleanup is not fast or clean and results in speed
degradation over time if too many are destroyed.
2026-03-25 00:16:36 -07:00
bbedward
6a244c3c56
core/region: add per-corner radius support 2026-03-19 23:42:32 -07:00
bbedward
d745184823
wayland/background-effect: add ext-background-effect-v1 support 2026-03-19 23:39:21 -07:00
bbedward
77c04a9447
launch: add ability to override AppId via pragma or QS_APP_ID 2026-03-19 22:33:32 -07:00
Dan Aloni
eb6eaf59c7
core/log: add a mutex to protect stdoutStream
QTextStream is not thread safe.
2026-03-19 03:36:12 -07:00
Mia Herkt
7511545ee2
build: add missing wayland-client CFLAGS
Fixes #276
2026-03-19 03:30:11 -07:00
0cb62920a7
hyprland/focus_grab: handle destruction of tracked windows 2026-03-18 02:39:22 -07:00