mirror of
https://github.com/youwen5/nixos.git
synced 2024-11-24 17:53:51 -08:00
fix: get better patch?
This commit is contained in:
parent
feac40c47e
commit
e1cbf35efb
22 changed files with 5081 additions and 2101 deletions
|
@ -1,28 +0,0 @@
|
||||||
From 279ec1c291021479b050c83a0435ac7076c1aee0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Sun, 18 Aug 2024 19:51:54 +0200
|
|
||||||
Subject: [PATCH 01/20] linux-dmabuf: allow on split-node systems
|
|
||||||
|
|
||||||
ref #7364
|
|
||||||
---
|
|
||||||
src/protocols/LinuxDMABUF.cpp | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/protocols/LinuxDMABUF.cpp b/src/protocols/LinuxDMABUF.cpp
|
|
||||||
index 3cdb5b34..32625792 100644
|
|
||||||
--- a/src/protocols/LinuxDMABUF.cpp
|
|
||||||
+++ b/src/protocols/LinuxDMABUF.cpp
|
|
||||||
@@ -490,9 +490,8 @@ CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(const wl_interface* iface, const
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
- LOGM(ERR, "DRM device {} has no render node, disabling linux dmabuf", device->nodes[DRM_NODE_PRIMARY] ? device->nodes[DRM_NODE_PRIMARY] : "null");
|
|
||||||
+ LOGM(ERR, "DRM device {} has no render node, disabling linux dmabuf checks", device->nodes[DRM_NODE_PRIMARY] ? device->nodes[DRM_NODE_PRIMARY] : "null");
|
|
||||||
drmFreeDevice(&device);
|
|
||||||
- removeGlobal();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
From 50348a3ddbb6bc3367300c9bba2ff682e4a356e3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Sun, 18 Aug 2024 20:19:13 +0200
|
|
||||||
Subject: [PATCH 02/20] renderer: pass custom modelines to aq
|
|
||||||
|
|
||||||
ref #7390
|
|
||||||
---
|
|
||||||
src/render/Renderer.cpp | 14 +++-----------
|
|
||||||
1 file changed, 3 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
|
|
||||||
index b363c287..c2ecbbf3 100644
|
|
||||||
--- a/src/render/Renderer.cpp
|
|
||||||
+++ b/src/render/Renderer.cpp
|
|
||||||
@@ -1994,17 +1994,9 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR
|
|
||||||
if (pMonitor->output->getBackend()->type() != Aquamarine::eBackendType::AQ_BACKEND_DRM) {
|
|
||||||
Debug::log(ERR, "Tried to set custom modeline on non-DRM output");
|
|
||||||
fail = true;
|
|
||||||
- } else {
|
|
||||||
- // FIXME:
|
|
||||||
- // auto* mode = wlr_drm_connector_add_mode(pMonitor->output, &RULE->drmMode);
|
|
||||||
- // if (mode) {
|
|
||||||
- // wlr_output_state_set_mode(pMonitor->state.wlr(), mode);
|
|
||||||
- // pMonitor->customDrmMode = RULE->drmMode;
|
|
||||||
- // } else {
|
|
||||||
- // Debug::log(ERR, "wlr_drm_connector_add_mode failed");
|
|
||||||
- // fail = true;
|
|
||||||
- // }
|
|
||||||
- }
|
|
||||||
+ } else
|
|
||||||
+ pMonitor->output->state->setCustomMode(makeShared<Aquamarine::SOutputMode>(
|
|
||||||
+ Aquamarine::SOutputMode{.pixelSize = {RULE->drmMode.hdisplay, RULE->drmMode.vdisplay}, .refreshRate = RULE->drmMode.vrefresh, .modeInfo = RULE->drmMode}));
|
|
||||||
} else
|
|
||||||
pMonitor->output->state->setCustomMode(makeShared<Aquamarine::SOutputMode>(Aquamarine::SOutputMode{.pixelSize = RULE->resolution, .refreshRate = WLRREFRESHRATE}));
|
|
||||||
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
From 5afc4dc42e2409da62b7bcdf0ead90329e8d7a92 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tom Englund <tomenglund26@gmail.com>
|
|
||||||
Date: Sun, 18 Aug 2024 21:02:46 +0200
|
|
||||||
Subject: [PATCH 03/20] compositor: update suspendstate on window move (#7396)
|
|
||||||
|
|
||||||
hyprctl dispatch -- movetoworkspacesilent x,"^kitty$" where X is the
|
|
||||||
current workspace makes kitty stops updating until current workspace is
|
|
||||||
changed while it is on the screen. update the suspend state after it has
|
|
||||||
been moved.
|
|
||||||
---
|
|
||||||
src/Compositor.cpp | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
|
|
||||||
index 9d247a56..1437a653 100644
|
|
||||||
--- a/src/Compositor.cpp
|
|
||||||
+++ b/src/Compositor.cpp
|
|
||||||
@@ -2737,6 +2737,7 @@ void CCompositor::moveWindowToWorkspaceSafe(PHLWINDOW pWindow, PHLWORKSPACE pWor
|
|
||||||
|
|
||||||
g_pCompositor->updateWorkspaceWindows(pWorkspace->m_iID);
|
|
||||||
g_pCompositor->updateWorkspaceWindows(pWindow->workspaceID());
|
|
||||||
+ g_pCompositor->updateSuspendedStates();
|
|
||||||
}
|
|
||||||
|
|
||||||
PHLWINDOW CCompositor::getForceFocus() {
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
From bf611fbbf3183e6f96529d79189be56189a46e1b Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Sun, 18 Aug 2024 22:40:21 +0200
|
|
||||||
Subject: [PATCH 04/20] screencopy: nuke unused stuff
|
|
||||||
|
|
||||||
---
|
|
||||||
src/protocols/Screencopy.cpp | 11 -----------
|
|
||||||
1 file changed, 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp
|
|
||||||
index f246f6dd..8a7fd567 100644
|
|
||||||
--- a/src/protocols/Screencopy.cpp
|
|
||||||
+++ b/src/protocols/Screencopy.cpp
|
|
||||||
@@ -38,17 +38,6 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, int32_t
|
|
||||||
|
|
||||||
g_pHyprRenderer->makeEGLCurrent();
|
|
||||||
|
|
||||||
- if (g_pHyprOpenGL->m_mMonitorRenderResources.contains(pMonitor)) {
|
|
||||||
- const auto& RDATA = g_pHyprOpenGL->m_mMonitorRenderResources.at(pMonitor);
|
|
||||||
- // bind the fb for its format. Suppress gl errors.
|
|
||||||
-#ifndef GLES2
|
|
||||||
- glBindFramebuffer(GL_READ_FRAMEBUFFER, RDATA.offloadFB.m_iFb);
|
|
||||||
-#else
|
|
||||||
- glBindFramebuffer(GL_FRAMEBUFFER, RDATA.offloadFB.m_iFb);
|
|
||||||
-#endif
|
|
||||||
- } else
|
|
||||||
- LOGM(ERR, "No RDATA in screencopy???");
|
|
||||||
-
|
|
||||||
shmFormat = g_pHyprOpenGL->getPreferredReadFormat(pMonitor);
|
|
||||||
if (shmFormat == DRM_FORMAT_INVALID) {
|
|
||||||
LOGM(ERR, "No format supported by renderer in capture output");
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From fa12efdd2aae6851305245f16a801fb571fbe2c1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Sun, 18 Aug 2024 22:54:47 +0200
|
|
||||||
Subject: [PATCH 05/20] protocol: fix logm template checks
|
|
||||||
|
|
||||||
---
|
|
||||||
src/protocols/WaylandProtocol.hpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/protocols/WaylandProtocol.hpp b/src/protocols/WaylandProtocol.hpp
|
|
||||||
index 0fa8daab..87c75ed8 100644
|
|
||||||
--- a/src/protocols/WaylandProtocol.hpp
|
|
||||||
+++ b/src/protocols/WaylandProtocol.hpp
|
|
||||||
@@ -32,7 +32,7 @@
|
|
||||||
} else if (level == LOG || level == INFO || level == TRACE) { \
|
|
||||||
oss << "[" << EXTRACT_CLASS_NAME() << "] "; \
|
|
||||||
} \
|
|
||||||
- if constexpr (std::is_same_v<decltype(__VA_ARGS__), std::string>) { \
|
|
||||||
+ if constexpr (std::tuple_size<decltype(std::make_tuple(__VA_ARGS__))>::value == 1 && std::is_same_v<decltype(__VA_ARGS__), std::string>) { \
|
|
||||||
oss << __VA_ARGS__; \
|
|
||||||
Debug::log(level, oss.str()); \
|
|
||||||
} else { \
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
From f4045ab8d032186b7c5409cd9f05eeaa813320ba Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Sun, 18 Aug 2024 22:57:21 +0200
|
|
||||||
Subject: [PATCH 06/20] screencopy: fix 10b format r/b flip
|
|
||||||
|
|
||||||
---
|
|
||||||
src/protocols/Screencopy.cpp | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp
|
|
||||||
index 8a7fd567..b25d9456 100644
|
|
||||||
--- a/src/protocols/Screencopy.cpp
|
|
||||||
+++ b/src/protocols/Screencopy.cpp
|
|
||||||
@@ -46,6 +46,10 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, int32_t
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // TODO: hack, we can't bit flip so we'll format flip heh, GL_BGRA_EXT wont work here
|
|
||||||
+ if (shmFormat == DRM_FORMAT_XRGB2101010 || shmFormat == DRM_FORMAT_ARGB2101010)
|
|
||||||
+ shmFormat = DRM_FORMAT_XBGR2101010;
|
|
||||||
+
|
|
||||||
const auto PSHMINFO = FormatUtils::getPixelFormatFromDRM(shmFormat);
|
|
||||||
if (!PSHMINFO) {
|
|
||||||
LOGM(ERR, "No pixel format supported by renderer in capture output");
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
From 11dfb8397becca85cad078dd31bf043d1c40ceac Mon Sep 17 00:00:00 2001
|
|
||||||
From: diniamo <diniamo53@gmail.com>
|
|
||||||
Date: Sun, 18 Aug 2024 20:43:04 +0200
|
|
||||||
Subject: [PATCH 07/20] flake: update aquamarine
|
|
||||||
|
|
||||||
---
|
|
||||||
flake.lock | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/flake.lock b/flake.lock
|
|
||||||
index c70d31d1..97016819 100644
|
|
||||||
--- a/flake.lock
|
|
||||||
+++ b/flake.lock
|
|
||||||
@@ -16,11 +16,11 @@
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
- "lastModified": 1723920171,
|
|
||||||
- "narHash": "sha256-dVCMrAe+D/5S91erhwQj2DSzHOVzAanWqoy+vPWB9DY=",
|
|
||||||
+ "lastModified": 1724006173,
|
|
||||||
+ "narHash": "sha256-1ROh0buuxiMyc6eIb3CIbJsmYO7PhLqSYs55mOx1XTk=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "aquamarine",
|
|
||||||
- "rev": "71d49670fe246cdaff4860b0effba0ab9f163b72",
|
|
||||||
+ "rev": "7f8df01d4297b9068a9592400f16044602844f86",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,30 +0,0 @@
|
||||||
From 33015546c62a7b73793d62983a84b097362cec1a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Beich <jbeich@FreeBSD.org>
|
|
||||||
Date: Mon, 19 Aug 2024 12:46:36 +0000
|
|
||||||
Subject: [PATCH 09/20] config: add missing header for libc++ after
|
|
||||||
92744b5b9aa3 (#7403)
|
|
||||||
|
|
||||||
In file included from src/pch/pch.hpp:1:
|
|
||||||
In file included from src/Compositor.hpp:11:
|
|
||||||
src/config/ConfigManager.hpp:147:10: error: no template named 'variant' in namespace 'std'
|
|
||||||
147 | std::variant<SBoolData, SRangeData, SFloatData, SStringData, SColorData, SChoiceData, SGradientData, SVectorData> data;
|
|
||||||
| ~~~~~^
|
|
||||||
---
|
|
||||||
src/config/ConfigManager.hpp | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp
|
|
||||||
index 4241031b..4d087753 100644
|
|
||||||
--- a/src/config/ConfigManager.hpp
|
|
||||||
+++ b/src/config/ConfigManager.hpp
|
|
||||||
@@ -6,6 +6,7 @@
|
|
||||||
#include "../debug/Log.hpp"
|
|
||||||
#include <unordered_map>
|
|
||||||
#include "../defines.hpp"
|
|
||||||
+#include <variant>
|
|
||||||
#include <vector>
|
|
||||||
#include <deque>
|
|
||||||
#include <algorithm>
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
From 01e3da4d51927427860368c88a523f47c479b710 Mon Sep 17 00:00:00 2001
|
|
||||||
From: JL2210 <larrowe.semaj11@gmail.com>
|
|
||||||
Date: Mon, 19 Aug 2024 09:02:09 -0400
|
|
||||||
Subject: [PATCH 10/20] examples: more systemd examples (#7409)
|
|
||||||
|
|
||||||
These allow launching hyprland with a systemd service. They provide
|
|
||||||
graphical-session.target which allows enabling services such as the
|
|
||||||
ones for Waybar and Mako.
|
|
||||||
---
|
|
||||||
example/hyprland-session.service | 14 ++++++++++++++
|
|
||||||
example/hyprland-systemd.desktop | 5 +++++
|
|
||||||
2 files changed, 19 insertions(+)
|
|
||||||
create mode 100644 example/hyprland-session.service
|
|
||||||
create mode 100644 example/hyprland-systemd.desktop
|
|
||||||
|
|
||||||
diff --git a/example/hyprland-session.service b/example/hyprland-session.service
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..7d33f5b3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/example/hyprland-session.service
|
|
||||||
@@ -0,0 +1,14 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=Hyprland - Tiling compositor with the looks
|
|
||||||
+Documentation=man:Hyprland(1)
|
|
||||||
+BindsTo=graphical-session.target
|
|
||||||
+Before=graphical-session.target
|
|
||||||
+Wants=graphical-session-pre.target
|
|
||||||
+After=graphical-session-pre.target
|
|
||||||
+
|
|
||||||
+[Service]
|
|
||||||
+Type=notify
|
|
||||||
+ExecStart=/usr/bin/Hyprland
|
|
||||||
+ExecStop=/usr/bin/hyprctl dispatch exit
|
|
||||||
+Restart=on-failure
|
|
||||||
+Slice=session.slice
|
|
||||||
diff --git a/example/hyprland-systemd.desktop b/example/hyprland-systemd.desktop
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..b36a87b2
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/example/hyprland-systemd.desktop
|
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+[Desktop Entry]
|
|
||||||
+Name=Hyprland
|
|
||||||
+Comment=An intelligent dynamic tiling Wayland compositor
|
|
||||||
+Exec=systemctl --user start --wait hyprland-session
|
|
||||||
+Type=Application
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From 272d9048706379201b761c3159c24a20cd62fad1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Mon, 19 Aug 2024 18:36:06 +0200
|
|
||||||
Subject: [PATCH 11/20] monitors: avoid crash on wayland output removal
|
|
||||||
|
|
||||||
---
|
|
||||||
src/events/Monitors.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
|
|
||||||
index b2778062..60fb5bef 100644
|
|
||||||
--- a/src/events/Monitors.cpp
|
|
||||||
+++ b/src/events/Monitors.cpp
|
|
||||||
@@ -98,7 +98,7 @@ void Events::listener_monitorDestroy(void* owner, void* data) {
|
|
||||||
if (!pMonitor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- Debug::log(LOG, "Destroy called for monitor {}", pMonitor->output->name);
|
|
||||||
+ Debug::log(LOG, "Destroy called for monitor {}", pMonitor->szName);
|
|
||||||
|
|
||||||
pMonitor->onDisconnect(true);
|
|
||||||
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,146 +0,0 @@
|
||||||
From c86db7bbb0cf14d4955ee3a4d13c0ed9f8a0e0ae Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Mon, 19 Aug 2024 18:44:22 +0200
|
|
||||||
Subject: [PATCH 12/20] monitor: avoid dangling references to old monitors
|
|
||||||
being undestroyed
|
|
||||||
|
|
||||||
ref #7414
|
|
||||||
---
|
|
||||||
src/Compositor.cpp | 3 +--
|
|
||||||
src/events/Events.hpp | 1 -
|
|
||||||
src/events/Monitors.cpp | 25 -------------------------
|
|
||||||
src/helpers/Monitor.cpp | 21 +++++++++++++++++----
|
|
||||||
src/helpers/Monitor.hpp | 2 +-
|
|
||||||
5 files changed, 19 insertions(+), 33 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
|
|
||||||
index 1437a653..75c22743 100644
|
|
||||||
--- a/src/Compositor.cpp
|
|
||||||
+++ b/src/Compositor.cpp
|
|
||||||
@@ -2935,7 +2935,7 @@ PHLWINDOW CCompositor::windowForCPointer(CWindow* pWindow) {
|
|
||||||
|
|
||||||
void CCompositor::onNewMonitor(SP<Aquamarine::IOutput> output) {
|
|
||||||
// add it to real
|
|
||||||
- auto PNEWMONITOR = g_pCompositor->m_vRealMonitors.emplace_back(makeShared<CMonitor>());
|
|
||||||
+ auto PNEWMONITOR = g_pCompositor->m_vRealMonitors.emplace_back(makeShared<CMonitor>(output));
|
|
||||||
if (std::string("HEADLESS-1") == output->name) {
|
|
||||||
g_pCompositor->m_pUnsafeOutput = PNEWMONITOR.get();
|
|
||||||
output->name = "FALLBACK"; // we are allowed to do this :)
|
|
||||||
@@ -2944,7 +2944,6 @@ void CCompositor::onNewMonitor(SP<Aquamarine::IOutput> output) {
|
|
||||||
Debug::log(LOG, "New output with name {}", output->name);
|
|
||||||
|
|
||||||
PNEWMONITOR->szName = output->name;
|
|
||||||
- PNEWMONITOR->output = output;
|
|
||||||
PNEWMONITOR->self = PNEWMONITOR;
|
|
||||||
const bool FALLBACK = g_pCompositor->m_pUnsafeOutput ? output == g_pCompositor->m_pUnsafeOutput->output : false;
|
|
||||||
PNEWMONITOR->ID = FALLBACK ? MONITOR_INVALID : g_pCompositor->getNextAvailableMonitorID(output->name);
|
|
||||||
diff --git a/src/events/Events.hpp b/src/events/Events.hpp
|
|
||||||
index 8e73f54a..0af16f64 100644
|
|
||||||
--- a/src/events/Events.hpp
|
|
||||||
+++ b/src/events/Events.hpp
|
|
||||||
@@ -27,7 +27,6 @@ namespace Events {
|
|
||||||
|
|
||||||
// Monitor part 2 the sequel
|
|
||||||
DYNLISTENFUNC(monitorFrame);
|
|
||||||
- DYNLISTENFUNC(monitorDestroy);
|
|
||||||
DYNLISTENFUNC(monitorStateRequest);
|
|
||||||
DYNLISTENFUNC(monitorDamage);
|
|
||||||
DYNLISTENFUNC(monitorNeedsFrame);
|
|
||||||
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
|
|
||||||
index 60fb5bef..9d2210f6 100644
|
|
||||||
--- a/src/events/Monitors.cpp
|
|
||||||
+++ b/src/events/Monitors.cpp
|
|
||||||
@@ -85,31 +85,6 @@ void Events::listener_monitorFrame(void* owner, void* data) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-void Events::listener_monitorDestroy(void* owner, void* data) {
|
|
||||||
- CMonitor* pMonitor = (CMonitor*)owner;
|
|
||||||
-
|
|
||||||
- for (auto& m : g_pCompositor->m_vRealMonitors) {
|
|
||||||
- if (m->output == pMonitor->output) {
|
|
||||||
- pMonitor = m.get();
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (!pMonitor)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- Debug::log(LOG, "Destroy called for monitor {}", pMonitor->szName);
|
|
||||||
-
|
|
||||||
- pMonitor->onDisconnect(true);
|
|
||||||
-
|
|
||||||
- pMonitor->output = nullptr;
|
|
||||||
- pMonitor->m_bRenderingInitPassed = false;
|
|
||||||
-
|
|
||||||
- Debug::log(LOG, "Removing monitor {} from realMonitors", pMonitor->szName);
|
|
||||||
-
|
|
||||||
- std::erase_if(g_pCompositor->m_vRealMonitors, [&](SP<CMonitor>& el) { return el.get() == pMonitor; });
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
void Events::listener_monitorNeedsFrame(void* owner, void* data) {
|
|
||||||
const auto PMONITOR = (CMonitor*)owner;
|
|
||||||
|
|
||||||
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
|
|
||||||
index 9542d2c4..2c6282e1 100644
|
|
||||||
--- a/src/helpers/Monitor.cpp
|
|
||||||
+++ b/src/helpers/Monitor.cpp
|
|
||||||
@@ -25,7 +25,7 @@ int ratHandler(void* data) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
-CMonitor::CMonitor() : state(this) {
|
|
||||||
+CMonitor::CMonitor(SP<Aquamarine::IOutput> output_) : state(this), output(output_) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -40,16 +40,29 @@ void CMonitor::onConnect(bool noRule) {
|
|
||||||
outTimeline = CSyncTimeline::create(output->getBackend()->drmFD());
|
|
||||||
}
|
|
||||||
|
|
||||||
- listeners.frame = output->events.frame.registerListener([this](std::any d) { Events::listener_monitorFrame(this, nullptr); });
|
|
||||||
- listeners.destroy = output->events.destroy.registerListener([this](std::any d) { Events::listener_monitorDestroy(this, nullptr); });
|
|
||||||
- listeners.commit = output->events.commit.registerListener([this](std::any d) { Events::listener_monitorCommit(this, nullptr); });
|
|
||||||
+ listeners.frame = output->events.frame.registerListener([this](std::any d) { Events::listener_monitorFrame(this, nullptr); });
|
|
||||||
+ listeners.commit = output->events.commit.registerListener([this](std::any d) { Events::listener_monitorCommit(this, nullptr); });
|
|
||||||
listeners.needsFrame =
|
|
||||||
output->events.needsFrame.registerListener([this](std::any d) { g_pCompositor->scheduleFrameForMonitor(this, Aquamarine::IOutput::AQ_SCHEDULE_NEEDS_FRAME); });
|
|
||||||
+
|
|
||||||
listeners.presented = output->events.present.registerListener([this](std::any d) {
|
|
||||||
auto E = std::any_cast<Aquamarine::IOutput::SPresentEvent>(d);
|
|
||||||
PROTO::presentation->onPresented(this, E.when, E.refresh, E.seq, E.flags);
|
|
||||||
});
|
|
||||||
|
|
||||||
+ listeners.destroy = output->events.destroy.registerListener([this](std::any d) {
|
|
||||||
+ Debug::log(LOG, "Destroy called for monitor {}", szName);
|
|
||||||
+
|
|
||||||
+ onDisconnect(true);
|
|
||||||
+
|
|
||||||
+ output = nullptr;
|
|
||||||
+ m_bRenderingInitPassed = false;
|
|
||||||
+
|
|
||||||
+ Debug::log(LOG, "Removing monitor {} from realMonitors", szName);
|
|
||||||
+
|
|
||||||
+ std::erase_if(g_pCompositor->m_vRealMonitors, [&](SP<CMonitor>& el) { return el.get() == this; });
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
listeners.state = output->events.state.registerListener([this](std::any d) {
|
|
||||||
auto E = std::any_cast<Aquamarine::IOutput::SStateEvent>(d);
|
|
||||||
|
|
||||||
diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp
|
|
||||||
index dcfcb63b..01a5d28d 100644
|
|
||||||
--- a/src/helpers/Monitor.hpp
|
|
||||||
+++ b/src/helpers/Monitor.hpp
|
|
||||||
@@ -59,7 +59,7 @@ class CMonitorState {
|
|
||||||
|
|
||||||
class CMonitor {
|
|
||||||
public:
|
|
||||||
- CMonitor();
|
|
||||||
+ CMonitor(SP<Aquamarine::IOutput> output);
|
|
||||||
~CMonitor();
|
|
||||||
|
|
||||||
Vector2D vecPosition = Vector2D(-1, -1); // means unset
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
From 4eff224a7f6f4baa5600f687d6f2ef4ad8340ad3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ali Atashrooz <atashroozarash@gmail.com>
|
|
||||||
Date: Wed, 21 Aug 2024 13:54:02 +0330
|
|
||||||
Subject: [PATCH 13/20] example/config: fix typo in default config (#7446)
|
|
||||||
|
|
||||||
* Update hyprland.conf
|
|
||||||
|
|
||||||
* Update defaultConfig.hpp
|
|
||||||
---
|
|
||||||
example/hyprland.conf | 6 +++---
|
|
||||||
src/config/defaultConfig.hpp | 6 +++---
|
|
||||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/example/hyprland.conf b/example/hyprland.conf
|
|
||||||
index f69309c2..d55d25fd 100644
|
|
||||||
--- a/example/hyprland.conf
|
|
||||||
+++ b/example/hyprland.conf
|
|
||||||
@@ -169,9 +169,9 @@ device {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-####################
|
|
||||||
-### KEYBINDINGSS ###
|
|
||||||
-####################
|
|
||||||
+###################
|
|
||||||
+### KEYBINDINGS ###
|
|
||||||
+###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
|
||||||
diff --git a/src/config/defaultConfig.hpp b/src/config/defaultConfig.hpp
|
|
||||||
index 98b617d0..59265fee 100644
|
|
||||||
--- a/src/config/defaultConfig.hpp
|
|
||||||
+++ b/src/config/defaultConfig.hpp
|
|
||||||
@@ -182,9 +182,9 @@ device {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-####################
|
|
||||||
-### KEYBINDINGSS ###
|
|
||||||
-####################
|
|
||||||
+###################
|
|
||||||
+### KEYBINDINGS ###
|
|
||||||
+###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
From 946ed1f32ae8e3840d1b3bb04c6e048ca7501fba Mon Sep 17 00:00:00 2001
|
|
||||||
From: ParaN3xus <136563585+ParaN3xus@users.noreply.github.com>
|
|
||||||
Date: Wed, 21 Aug 2024 18:24:42 +0800
|
|
||||||
Subject: [PATCH 14/20] core: add option to control which window to focus on
|
|
||||||
close (#7368)
|
|
||||||
|
|
||||||
---
|
|
||||||
src/config/ConfigDescriptions.hpp | 9 ++++++++-
|
|
||||||
src/config/ConfigManager.cpp | 1 +
|
|
||||||
src/events/Windows.cpp | 7 ++++++-
|
|
||||||
3 files changed, 15 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/config/ConfigDescriptions.hpp b/src/config/ConfigDescriptions.hpp
|
|
||||||
index 3c830132..73b995ae 100644
|
|
||||||
--- a/src/config/ConfigDescriptions.hpp
|
|
||||||
+++ b/src/config/ConfigDescriptions.hpp
|
|
||||||
@@ -453,6 +453,13 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
|
||||||
.type = CONFIG_OPTION_INT,
|
|
||||||
.data = SConfigOptionDescription::SRangeData{1, 0, 3},
|
|
||||||
},
|
|
||||||
+ SConfigOptionDescription{
|
|
||||||
+ .value = "input:focus_on_close",
|
|
||||||
+ .description = "Controls the window focus behavior when a window is closed. When set to 0, focus will shift to the next window candidate. When set to 1, focus will shift "
|
|
||||||
+ "to the window under the cursor.",
|
|
||||||
+ .type = CONFIG_OPTION_CHOICE,
|
|
||||||
+ .data = SConfigOptionDescription::SChoiceData{0, "next,cursor"},
|
|
||||||
+ },
|
|
||||||
SConfigOptionDescription{
|
|
||||||
.value = "input:mouse_refocus",
|
|
||||||
.description = "if disabled, mouse focus won't switch to the hovered window unless the mouse crosses a window boundary when follow_mouse=1.",
|
|
||||||
@@ -1341,4 +1348,4 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
|
||||||
.type = CONFIG_OPTION_BOOL,
|
|
||||||
.data = SConfigOptionDescription::SBoolData{true},
|
|
||||||
},
|
|
||||||
-};
|
|
||||||
\ No newline at end of file
|
|
||||||
+};
|
|
||||||
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
|
|
||||||
index 1856bd49..155b75d3 100644
|
|
||||||
--- a/src/config/ConfigManager.cpp
|
|
||||||
+++ b/src/config/ConfigManager.cpp
|
|
||||||
@@ -449,6 +449,7 @@ CConfigManager::CConfigManager() {
|
|
||||||
m_pConfig->addConfigValue("animations:first_launch_animation", Hyprlang::INT{1});
|
|
||||||
|
|
||||||
m_pConfig->addConfigValue("input:follow_mouse", Hyprlang::INT{1});
|
|
||||||
+ m_pConfig->addConfigValue("input:focus_on_close", Hyprlang::INT{0});
|
|
||||||
m_pConfig->addConfigValue("input:mouse_refocus", Hyprlang::INT{1});
|
|
||||||
m_pConfig->addConfigValue("input:special_fallthrough", Hyprlang::INT{0});
|
|
||||||
m_pConfig->addConfigValue("input:off_window_axis_events", Hyprlang::INT{1});
|
|
||||||
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
|
|
||||||
index 2eb7038f..e4e3900b 100644
|
|
||||||
--- a/src/events/Windows.cpp
|
|
||||||
+++ b/src/events/Windows.cpp
|
|
||||||
@@ -648,7 +648,12 @@ void Events::listener_unmapWindow(void* owner, void* data) {
|
|
||||||
|
|
||||||
// refocus on a new window if needed
|
|
||||||
if (wasLastWindow) {
|
|
||||||
- const auto PWINDOWCANDIDATE = g_pLayoutManager->getCurrentLayout()->getNextWindowCandidate(PWINDOW);
|
|
||||||
+ static auto FOCUSONCLOSE = CConfigValue<Hyprlang::INT>("input:focus_on_close");
|
|
||||||
+ PHLWINDOW PWINDOWCANDIDATE = nullptr;
|
|
||||||
+ if (*FOCUSONCLOSE)
|
|
||||||
+ PWINDOWCANDIDATE = (g_pCompositor->vectorToWindowUnified(g_pInputManager->getMouseCoordsInternal(), RESERVED_EXTENTS | INPUT_EXTENTS | ALLOW_FLOATING));
|
|
||||||
+ else
|
|
||||||
+ PWINDOWCANDIDATE = g_pLayoutManager->getCurrentLayout()->getNextWindowCandidate(PWINDOW);
|
|
||||||
|
|
||||||
Debug::log(LOG, "On closed window, new focused candidate is {}", PWINDOWCANDIDATE);
|
|
||||||
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
From 3e7325af57c4670ebea65d2669f49526819c2260 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tom Englund <tomenglund26@gmail.com>
|
|
||||||
Date: Wed, 21 Aug 2024 12:52:40 +0200
|
|
||||||
Subject: [PATCH 15/20] output: dont cast enum out of range (#7448)
|
|
||||||
|
|
||||||
avoid casting non typed enum out of range, looks like
|
|
||||||
WL_OUTPUT_MODE_CURRENT was the intention here.
|
|
||||||
---
|
|
||||||
src/protocols/core/Output.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/protocols/core/Output.cpp b/src/protocols/core/Output.cpp
|
|
||||||
index 878d1484..8d0b0121 100644
|
|
||||||
--- a/src/protocols/core/Output.cpp
|
|
||||||
+++ b/src/protocols/core/Output.cpp
|
|
||||||
@@ -55,7 +55,7 @@ void CWLOutputResource::updateState() {
|
|
||||||
if (resource->version() >= 2)
|
|
||||||
resource->sendScale(std::ceil(monitor->scale));
|
|
||||||
|
|
||||||
- resource->sendMode((wl_output_mode)(WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED), monitor->vecPixelSize.x, monitor->vecPixelSize.y, monitor->refreshRate * 1000.0);
|
|
||||||
+ resource->sendMode((wl_output_mode)(WL_OUTPUT_MODE_CURRENT), monitor->vecPixelSize.x, monitor->vecPixelSize.y, monitor->refreshRate * 1000.0);
|
|
||||||
|
|
||||||
if (resource->version() >= 2)
|
|
||||||
resource->sendDone();
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
From 883463f9dd7f1cdc68c3e32017c0a71ccbe39b26 Mon Sep 17 00:00:00 2001
|
|
||||||
From: vaxerski <vaxry@vaxry.net>
|
|
||||||
Date: Wed, 21 Aug 2024 14:37:50 +0200
|
|
||||||
Subject: [PATCH 16/20] animations: add workspace in/out configs
|
|
||||||
|
|
||||||
---
|
|
||||||
src/config/ConfigManager.cpp | 10 +++++++++-
|
|
||||||
src/desktop/Workspace.cpp | 12 ++++++++++--
|
|
||||||
src/managers/AnimationManager.cpp | 2 +-
|
|
||||||
3 files changed, 20 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
|
|
||||||
index 155b75d3..e2ae2c47 100644
|
|
||||||
--- a/src/config/ConfigManager.cpp
|
|
||||||
+++ b/src/config/ConfigManager.cpp
|
|
||||||
@@ -724,7 +724,6 @@ void CConfigManager::setDefaultAnimationVars() {
|
|
||||||
INITANIMCFG("fade");
|
|
||||||
INITANIMCFG("border");
|
|
||||||
INITANIMCFG("borderangle");
|
|
||||||
- INITANIMCFG("workspaces");
|
|
||||||
|
|
||||||
// windows
|
|
||||||
INITANIMCFG("windowsIn");
|
|
||||||
@@ -745,7 +744,12 @@ void CConfigManager::setDefaultAnimationVars() {
|
|
||||||
// border
|
|
||||||
|
|
||||||
// workspaces
|
|
||||||
+ INITANIMCFG("workspaces");
|
|
||||||
+ INITANIMCFG("workspacesIn");
|
|
||||||
+ INITANIMCFG("workspacesOut");
|
|
||||||
INITANIMCFG("specialWorkspace");
|
|
||||||
+ INITANIMCFG("specialWorkspaceIn");
|
|
||||||
+ INITANIMCFG("specialWorkspaceOut");
|
|
||||||
}
|
|
||||||
|
|
||||||
// init the values
|
|
||||||
@@ -774,7 +778,11 @@ void CConfigManager::setDefaultAnimationVars() {
|
|
||||||
CREATEANIMCFG("fadeLayersIn", "fadeLayers");
|
|
||||||
CREATEANIMCFG("fadeLayersOut", "fadeLayers");
|
|
||||||
|
|
||||||
+ CREATEANIMCFG("workspacesIn", "workspaces");
|
|
||||||
+ CREATEANIMCFG("workspacesOut", "workspaces");
|
|
||||||
CREATEANIMCFG("specialWorkspace", "workspaces");
|
|
||||||
+ CREATEANIMCFG("specialWorkspaceIn", "specialWorkspace");
|
|
||||||
+ CREATEANIMCFG("specialWorkspaceOut", "specialWorkspace");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::optional<std::string> CConfigManager::resetHLConfig() {
|
|
||||||
diff --git a/src/desktop/Workspace.cpp b/src/desktop/Workspace.cpp
|
|
||||||
index d9ac7927..a9412e6d 100644
|
|
||||||
--- a/src/desktop/Workspace.cpp
|
|
||||||
+++ b/src/desktop/Workspace.cpp
|
|
||||||
@@ -22,10 +22,11 @@ CWorkspace::CWorkspace(WORKSPACEID id, MONITORID monitorID, std::string name, bo
|
|
||||||
void CWorkspace::init(PHLWORKSPACE self) {
|
|
||||||
m_pSelf = self;
|
|
||||||
|
|
||||||
- m_vRenderOffset.create(m_bIsSpecialWorkspace ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"),
|
|
||||||
+ m_vRenderOffset.create(m_bIsSpecialWorkspace ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspaceIn") :
|
|
||||||
+ g_pConfigManager->getAnimationPropertyConfig("workspacesIn"),
|
|
||||||
self, AVARDAMAGE_ENTIRE);
|
|
||||||
m_fAlpha.create(AVARTYPE_FLOAT,
|
|
||||||
- m_bIsSpecialWorkspace ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspace") : g_pConfigManager->getAnimationPropertyConfig("workspaces"), self,
|
|
||||||
+ m_bIsSpecialWorkspace ? g_pConfigManager->getAnimationPropertyConfig("specialWorkspaceIn") : g_pConfigManager->getAnimationPropertyConfig("workspacesIn"), self,
|
|
||||||
AVARDAMAGE_ENTIRE);
|
|
||||||
m_fAlpha.setValueAndWarp(1.f);
|
|
||||||
|
|
||||||
@@ -81,6 +82,13 @@ CWorkspace::~CWorkspace() {
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWorkspace::startAnim(bool in, bool left, bool instant) {
|
|
||||||
+ if (!instant) {
|
|
||||||
+ const std::string ANIMNAME = std::format("{}{}", m_bIsSpecialWorkspace ? "specialWorkspace" : "workspaces", in ? "In" : "Out");
|
|
||||||
+
|
|
||||||
+ m_fAlpha.m_pConfig = g_pConfigManager->getAnimationPropertyConfig(ANIMNAME);
|
|
||||||
+ m_vRenderOffset.m_pConfig = g_pConfigManager->getAnimationPropertyConfig(ANIMNAME);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
const auto ANIMSTYLE = m_fAlpha.m_pConfig->pValues->internalStyle;
|
|
||||||
static auto PWORKSPACEGAP = CConfigValue<Hyprlang::INT>("general:gaps_workspaces");
|
|
||||||
|
|
||||||
diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp
|
|
||||||
index dcc7a45f..beb880be 100644
|
|
||||||
--- a/src/managers/AnimationManager.cpp
|
|
||||||
+++ b/src/managers/AnimationManager.cpp
|
|
||||||
@@ -471,7 +471,7 @@ std::string CAnimationManager::styleValidInConfigVar(const std::string& config,
|
|
||||||
}
|
|
||||||
|
|
||||||
return "unknown style";
|
|
||||||
- } else if (config == "workspaces" || config == "specialWorkspace") {
|
|
||||||
+ } else if (config.starts_with("workspaces") || config.starts_with("specialWorkspace")) {
|
|
||||||
if (style == "slide" || style == "slidevert" || style == "fade")
|
|
||||||
return "";
|
|
||||||
else if (style.starts_with("slidefade")) {
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
From 1b1ecf77e0c195460eb5335652d65de6fd83cf7b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mihai Fufezan <mihai@fufexan.net>
|
|
||||||
Date: Wed, 21 Aug 2024 22:37:28 +0300
|
|
||||||
Subject: [PATCH 17/20] Nix: include xcursor regardless of xwayland
|
|
||||||
|
|
||||||
---
|
|
||||||
nix/default.nix | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/nix/default.nix b/nix/default.nix
|
|
||||||
index 9bae9d83..c8eaf731 100644
|
|
||||||
--- a/nix/default.nix
|
|
||||||
+++ b/nix/default.nix
|
|
||||||
@@ -136,11 +136,11 @@ assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been remov
|
|
||||||
tomlplusplus
|
|
||||||
wayland
|
|
||||||
wayland-protocols
|
|
||||||
+ xorg.libXcursor
|
|
||||||
]
|
|
||||||
(lib.optionals stdenv.hostPlatform.isMusl [libexecinfo])
|
|
||||||
(lib.optionals enableXWayland [
|
|
||||||
xorg.libxcb
|
|
||||||
- xorg.libXcursor
|
|
||||||
xorg.libXdmcp
|
|
||||||
xorg.xcbutil
|
|
||||||
xorg.xcbutilerrors
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
From c5786be695224c2d2771854436844b88a6b48fc5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: James R Larrowe <larrowe.semaj11@gmail.com>
|
|
||||||
Date: Tue, 20 Aug 2024 13:36:41 -0400
|
|
||||||
Subject: [PATCH 18/20] Fix static asan patch
|
|
||||||
|
|
||||||
---
|
|
||||||
scripts/hyprlandStaticAsan.diff | 16 ++++++++--------
|
|
||||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/hyprlandStaticAsan.diff b/scripts/hyprlandStaticAsan.diff
|
|
||||||
index e74eb6ab..b352d65d 100644
|
|
||||||
--- a/scripts/hyprlandStaticAsan.diff
|
|
||||||
+++ b/scripts/hyprlandStaticAsan.diff
|
|
||||||
@@ -1,13 +1,13 @@
|
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
-index f54cdf5d..ad7c3e73 100755
|
|
||||||
+index f26a5c3c..3dfef333 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
-@@ -130,6 +130,8 @@ if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES DEBUG)
|
|
||||||
- message(STATUS "Enabling ASan")
|
|
||||||
+@@ -143,6 +143,8 @@ if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES DEBUG)
|
|
||||||
+ message(STATUS "Enabling ASan")
|
|
||||||
|
|
||||||
- target_link_libraries(Hyprland asan)
|
|
||||||
-+ pkg_check_modules(ffidep REQUIRED IMPORTED_TARGET libffi)
|
|
||||||
-+ target_link_libraries(Hyprland ${CMAKE_SOURCE_DIR}/libwayland-server.a PkgConfig::ffidep)
|
|
||||||
- target_compile_options(Hyprland PUBLIC -fsanitize=address)
|
|
||||||
- endif()
|
|
||||||
+ target_link_libraries(Hyprland asan)
|
|
||||||
++ pkg_check_modules(ffidep REQUIRED IMPORTED_TARGET libffi)
|
|
||||||
++ target_link_libraries(Hyprland ${CMAKE_SOURCE_DIR}/libwayland-server.a PkgConfig::ffidep)
|
|
||||||
+ target_compile_options(Hyprland PUBLIC -fsanitize=address)
|
|
||||||
+ endif()
|
|
||||||
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
From 8162fae37728b3ae2b1a82a32663e76c59c4ce61 Mon Sep 17 00:00:00 2001
|
|
||||||
From: James R Larrowe <larrowe.semaj11@gmail.com>
|
|
||||||
Date: Tue, 20 Aug 2024 13:54:51 -0400
|
|
||||||
Subject: [PATCH 19/20] Fix Makefile too
|
|
||||||
|
|
||||||
... did this ever work?
|
|
||||||
---
|
|
||||||
Makefile | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index adf6fbe8..bc7b750b 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -87,8 +87,8 @@ asan:
|
|
||||||
#git reset --hard
|
|
||||||
|
|
||||||
@echo -en "If you want to apply a patch, input its path (leave empty for none):\n"
|
|
||||||
- @read patchvar
|
|
||||||
- @if [-n "$patchvar"]; then patch -p1 < $patchvar || echo ""; else echo "No patch specified"; fi
|
|
||||||
+ @read patchvar; \
|
|
||||||
+ if [ -n "$$patchvar" ]; then patch -p1 < "$$patchvar" || echo ""; else echo "No patch specified"; fi
|
|
||||||
|
|
||||||
git clone --recursive https://gitlab.freedesktop.org/wayland/wayland
|
|
||||||
cd wayland && patch -p1 < ../scripts/waylandStatic.diff && meson setup build --buildtype=debug -Db_sanitize=address -Ddocumentation=false && ninja -C build && cd ..
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
From cae937c51bd220d6676c6027d05ea51fc3c821bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tom Englund <tomenglund26@gmail.com>
|
|
||||||
Date: Wed, 21 Aug 2024 23:05:03 +0200
|
|
||||||
Subject: [PATCH 20/20] layersurface: dont rollover on size_t (#7451)
|
|
||||||
|
|
||||||
unneded rollover on size_t if force equals -1
|
|
||||||
---
|
|
||||||
src/desktop/LayerSurface.cpp | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/desktop/LayerSurface.cpp b/src/desktop/LayerSurface.cpp
|
|
||||||
index c352fa74..8fd448ef 100644
|
|
||||||
--- a/src/desktop/LayerSurface.cpp
|
|
||||||
+++ b/src/desktop/LayerSurface.cpp
|
|
||||||
@@ -432,8 +432,8 @@ void CLayerSurface::startAnimation(bool in, bool instant) {
|
|
||||||
PMONITOR->vecPosition + Vector2D{PMONITOR->vecSize.x, PMONITOR->vecSize.y / 2},
|
|
||||||
};
|
|
||||||
|
|
||||||
- float closest = std::numeric_limits<float>::max();
|
|
||||||
- size_t leader = force;
|
|
||||||
+ float closest = std::numeric_limits<float>::max();
|
|
||||||
+ int leader = force;
|
|
||||||
if (leader == -1) {
|
|
||||||
for (size_t i = 0; i < 4; ++i) {
|
|
||||||
float dist = MIDDLE.distance(edgePoints[i]);
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
5080
hosts/callisto/asahi-fix.patch
Normal file
5080
hosts/callisto/asahi-fix.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -45,26 +45,7 @@
|
||||||
oldAttrs.patches
|
oldAttrs.patches
|
||||||
or []
|
or []
|
||||||
++ [
|
++ [
|
||||||
./0001-linux-dmabuf-allow-on-split-node-systems.patch
|
./asahi-fix.patch
|
||||||
./0002-renderer-pass-custom-modelines-to-aq.patch
|
|
||||||
./0003-compositor-update-suspendstate-on-window-move-7396.patch
|
|
||||||
./0004-screencopy-nuke-unused-stuff.patch
|
|
||||||
./0005-protocol-fix-logm-template-checks.patch
|
|
||||||
./0006-screencopy-fix-10b-format-r-b-flip.patch
|
|
||||||
./0007-flake-update-aquamarine.patch
|
|
||||||
./0008-hyprpm-hyprctl-update-shell-completions.patch
|
|
||||||
./0009-config-add-missing-header-for-libc-after-92744b5b9aa.patch
|
|
||||||
./0010-examples-more-systemd-examples-7409.patch
|
|
||||||
./0011-monitors-avoid-crash-on-wayland-output-removal.patch
|
|
||||||
./0012-monitor-avoid-dangling-references-to-old-monitors-be.patch
|
|
||||||
./0013-example-config-fix-typo-in-default-config-7446.patch
|
|
||||||
./0014-core-add-option-to-control-which-window-to-focus-on-.patch
|
|
||||||
./0015-output-dont-cast-enum-out-of-range-7448.patch
|
|
||||||
./0016-animations-add-workspace-in-out-configs.patch
|
|
||||||
./0017-Nix-include-xcursor-regardless-of-xwayland.patch
|
|
||||||
./0018-Fix-static-asan-patch.patch
|
|
||||||
./0019-Fix-Makefile-too.patch
|
|
||||||
./0020-layersurface-dont-rollover-on-size_t-7451.patch
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue