remove noctalia patches

This commit is contained in:
2026-08-18 06:10:43 +09:00
parent 5b8c3b1415
commit c1540d8764
4 changed files with 1 additions and 81 deletions
+1 -10
View File
@@ -13,15 +13,6 @@ let
--replace-fail "@codexbarPath@" "${lib.getExe codexbar}" --replace-fail "@codexbarPath@" "${lib.getExe codexbar}"
''; '';
noctaliaPatched =
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs
(oldAttrs: {
patches = (oldAttrs.patches or [ ]) ++ [
./patches/window-switcher-labwc.patch
./patches/taskbar-overview-hook.patch
];
});
wallpapers = pkgs.fetchFromGitHub { wallpapers = pkgs.fetchFromGitHub {
owner = "moons-14"; owner = "moons-14";
repo = "wallpapers"; repo = "wallpapers";
@@ -51,7 +42,7 @@ in
programs.noctalia = { programs.noctalia = {
enable = true; enable = true;
package = noctaliaPatched; package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default;
systemd.enable = true; systemd.enable = true;
-4
View File
@@ -2,10 +2,6 @@
{ {
description = "Noctalia Wayland desktop shell"; description = "Noctalia Wayland desktop shell";
includes = [
"applications.window-overview"
];
imports = { imports = {
nixos = [ inputs.noctalia.nixosModules.default ]; nixos = [ inputs.noctalia.nixosModules.default ];
home = [ inputs.noctalia.homeModules.default ]; home = [ inputs.noctalia.homeModules.default ];
@@ -1,41 +0,0 @@
diff --git a/src/shell/bar/widgets/taskbar_widget.cpp b/src/shell/bar/widgets/taskbar_widget.cpp
--- a/src/shell/bar/widgets/taskbar_widget.cpp
+++ b/src/shell/bar/widgets/taskbar_widget.cpp
@@ -5,6 +5,7 @@
#include "compositors/workspace_backend.h"
#include "config/config_service.h"
#include "core/deferred_call.h"
+#include "core/process/process.h"
#include "i18n/i18n.h"
#include "render/core/color.h"
#include "render/core/renderer.h"
@@ -36,6 +37,18 @@
namespace {
+ [[nodiscard]] bool launchTaskbarOverview(const std::string& appId) {
+ constexpr const char* command = "window-overview";
+ if (appId.empty() || !process::commandExists(command)) {
+ return false;
+ }
+ return process::runAsync({
+ command,
+ "--app-id",
+ appId.c_str(),
+ });
+ }
+
// Integer centering; optional odd spare pixel on the end side (right/bottom).
[[nodiscard]] float centeredOffset(float extent, float content, float inset = 0.0F, bool oddSpareOnEnd = true) {
const float inner = std::max(0.0F, extent - inset * 2.0F);
@@ -373,6 +386,10 @@ void TaskbarWidget::activateOrLaunchPinned(const TaskModel& task) {
return;
}
+ if (!windows[0].appId.empty() && launchTaskbarOverview(windows[0].appId)) {
+ return;
+ }
+
const std::string cycleKey = !task.desktopEntryId.empty() ? task.desktopEntryId : task.idLower;
std::size_t& cursor = m_groupedAppCycleCursor[cycleKey];
if (cursor >= windows.size()) {
@@ -1,26 +0,0 @@
diff --git a/src/shell/switcher/window_switcher.cpp b/src/shell/switcher/window_switcher.cpp
--- a/src/shell/switcher/window_switcher.cpp
+++ b/src/shell/switcher/window_switcher.cpp
@@ -286,12 +286,19 @@ indexLiveToplevelsByWindowId(const CompositorPlatform& platform, std::unordered_
continue;
}
- const auto mappedId = platform.compositorWindowIdForToplevelInfo(info);
- if (!mappedId.has_value() || mappedId->empty()) {
- continue;
+ std::string key;
+ if (const auto mappedId = platform.compositorWindowIdForToplevelInfo(info);
+ mappedId.has_value() && !mappedId->empty()) {
+ key = canonicalWindowId(*mappedId);
}
- const std::string key = canonicalWindowId(*mappedId);
+
+ // Generic wlroots compositors such as labwc do not provide a
+ // compositor-specific window ID. The wlr toplevel handle is stable
+ // for the lifetime of the window and is sufficient for switcher identity.
+ if (key.empty() && wlrHandle != 0) {
+ key = "toplevel:" + std::to_string(wlrHandle);
+ }
if (key.empty()) {
continue;
}