about summary refs log tree commit diff
path: root/pkgs/applications/window-managers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/window-managers')
-rw-r--r--pkgs/applications/window-managers/cage/default.nix22
-rw-r--r--pkgs/applications/window-managers/cage/inject-git-commit.patch23
-rw-r--r--pkgs/applications/window-managers/dwl/default.nix99
-rw-r--r--pkgs/applications/window-managers/dwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/dwm/dwm-status.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix32
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix40
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprfocus.nix35
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix47
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprscroller.nix41
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix44
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix86
-rw-r--r--pkgs/applications/window-managers/i3/auto-layout.nix2
-rw-r--r--pkgs/applications/window-managers/i3/balance-workspace.nix2
-rw-r--r--pkgs/applications/window-managers/i3/bumblebee-status/default.nix10
-rw-r--r--pkgs/applications/window-managers/i3/bumblebee-status/plugins.nix6
-rw-r--r--pkgs/applications/window-managers/i3/default.nix43
-rw-r--r--pkgs/applications/window-managers/i3/i3-ratiosplit.nix2
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix2
-rw-r--r--pkgs/applications/window-managers/i3/kitti3.nix2
-rw-r--r--pkgs/applications/window-managers/i3/layout-manager.nix2
-rw-r--r--pkgs/applications/window-managers/i3/pystatus.nix62
-rw-r--r--pkgs/applications/window-managers/i3/rounded.nix3
-rw-r--r--pkgs/applications/window-managers/i3/swallow.nix2
-rw-r--r--pkgs/applications/window-managers/i3/wsr.nix2
-rw-r--r--pkgs/applications/window-managers/ion-3/default.nix2
-rw-r--r--pkgs/applications/window-managers/jay/default.nix6
-rw-r--r--pkgs/applications/window-managers/maui-shell/default.nix2
-rw-r--r--pkgs/applications/window-managers/miriway/default.nix6
-rw-r--r--pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix4
-rw-r--r--pkgs/applications/window-managers/ragnarwm/default.nix8
-rw-r--r--pkgs/applications/window-managers/sommelier/default.nix6
-rw-r--r--pkgs/applications/window-managers/tabbed/default.nix2
-rw-r--r--pkgs/applications/window-managers/taffybar/default.nix2
-rw-r--r--pkgs/applications/window-managers/vwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/wwp-switcher.nix6
-rw-r--r--pkgs/applications/window-managers/weston/default.nix4
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix2
44 files changed, 424 insertions, 265 deletions
diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix
index 73c9f7c4c5115..9d22cefc461b0 100644
--- a/pkgs/applications/window-managers/cage/default.nix
+++ b/pkgs/applications/window-managers/cage/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchFromGitHub
+, substituteAll
 , meson, ninja, pkg-config, wayland-scanner, scdoc, makeWrapper
 , wlroots, wayland, wayland-protocols, pixman, libxkbcommon, xcbutilwm
 , systemd, libGL, libX11, mesa
@@ -8,15 +9,24 @@
 
 stdenv.mkDerivation rec {
   pname = "cage";
-  version = "0.1.5";
+  version = "0.1.5-unstable-2024-07-29";
 
   src = fetchFromGitHub {
-    owner = "Hjdskes";
+    owner = "cage-kiosk";
     repo = "cage";
-    rev = "v${version}";
-    hash = "sha256-Suq14YRw/MReDRvO/TQqjpZvpzAEDnHUyVbQj0BPT4c=";
+    rev = "d3fb99d6654325ec46277cfdb589f89316bed701";
+    hash = "sha256-WP0rWO9Wbs/09wTY8IlIUybnVUnwiNdXD9JgsoVG4rM=";
   };
 
+  patches = [
+    # TODO: Remove on next stable release.
+    (substituteAll {
+      src = ./inject-git-commit.patch;
+      gitCommit = lib.substring 0 7 src.rev;
+      gitBranch = "master";
+    })
+  ];
+
   depsBuildBuild = [
     pkg-config
   ];
@@ -29,9 +39,7 @@ stdenv.mkDerivation rec {
     systemd libGL libX11
   ];
 
-  mesonFlags = [ "-Dxwayland=${lib.boolToString (xwayland != null)}" ];
-
-  postFixup = lib.optionalString (xwayland != null) ''
+  postFixup = lib.optionalString wlroots.enableXWayland ''
     wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
   '';
 
diff --git a/pkgs/applications/window-managers/cage/inject-git-commit.patch b/pkgs/applications/window-managers/cage/inject-git-commit.patch
new file mode 100644
index 0000000000000..b1c73f4a0761e
--- /dev/null
+++ b/pkgs/applications/window-managers/cage/inject-git-commit.patch
@@ -0,0 +1,23 @@
+diff --git a/meson.build b/meson.build
+index 4c0cbe280f..d4479741c8 100644
+--- a/meson.build
++++ b/meson.build
+@@ -68,14 +68,12 @@
+ 
+ version = '@0@'.format(meson.project_version())
+ git = find_program('git', native: true, required: false)
+-if git.found()
+-  git_commit = run_command([git, 'rev-parse', '--short', 'HEAD'], check: false)
+-  git_branch = run_command([git, 'rev-parse', '--abbrev-ref', 'HEAD'], check: false)
+-  if git_commit.returncode() == 0 and git_branch.returncode() == 0
++if true
++  if true
+     version = '@0@-@1@ (branch \'@2@\')'.format(
+       meson.project_version(),
+-      git_commit.stdout().strip(),
+-      git_branch.stdout().strip(),
++      '@gitCommit@'.strip(),
++      '@gitBranch@'.strip(),
+     )
+   endif
+ endif
diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix
deleted file mode 100644
index 68815952b17f1..0000000000000
--- a/pkgs/applications/window-managers/dwl/default.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitea
-, installShellFiles
-, libX11
-, libinput
-, libxcb
-, libxkbcommon
-, pixman
-, pkg-config
-, substituteAll
-, wayland-scanner
-, wayland
-, wayland-protocols
-, wlroots
-, writeText
-, xcbutilwm
-, xwayland
-, enableXWayland ? true
-, conf ? null
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "dwl";
-  version = "0.5";
-
-  src = fetchFromGitea {
-    domain = "codeberg.org";
-    owner = "dwl";
-    repo = "dwl";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-U/vqGE1dJKgEGTfPMw02z5KJbZLWY1vwDJWnJxT8urM=";
-  };
-
-  nativeBuildInputs = [
-    installShellFiles
-    pkg-config
-    wayland-scanner
-  ];
-
-  buildInputs = [
-    libinput
-    libxcb
-    libxkbcommon
-    pixman
-    wayland
-    wayland-protocols
-    wlroots
-  ] ++ lib.optionals enableXWayland [
-    libX11
-    xcbutilwm
-    xwayland
-  ];
-
-  outputs = [ "out" "man" ];
-
-  # Allow users to set an alternative config.def.h
-  postPatch = let
-    configFile = if lib.isDerivation conf || builtins.isPath conf
-                 then conf
-                 else writeText "config.def.h" conf;
-  in lib.optionalString (conf != null) "cp ${configFile} config.def.h";
-
-  makeFlags = [
-    "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config"
-    "WAYLAND_SCANNER=wayland-scanner"
-    "PREFIX=$(out)"
-    "MANDIR=$(man)/share/man"
-  ];
-
-  preBuild = ''
-    makeFlagsArray+=(
-      XWAYLAND=${lib.optionalString enableXWayland "-DXWAYLAND"}
-      XLIBS=${lib.optionalString enableXWayland "xcb\\ xcb-icccm"}
-    )
-  '';
-
-  meta = {
-    homepage = "https://github.com/djpohly/dwl/";
-    description = "Dynamic window manager for Wayland";
-    longDescription = ''
-      dwl is a compact, hackable compositor for Wayland based on wlroots. It is
-      intended to fill the same space in the Wayland world that dwm does in X11,
-      primarily in terms of philosophy, and secondarily in terms of
-      functionality. Like dwm, dwl is:
-
-      - Easy to understand, hack on, and extend with patches
-      - One C source file (or a very small number) configurable via config.h
-      - Limited to 2000 SLOC to promote hackability
-      - Tied to as few external dependencies as possible
-    '';
-    changelog = "https://github.com/djpohly/dwl/releases/tag/v${finalAttrs.version}";
-    license = lib.licenses.gpl3Only;
-    maintainers = [ lib.maintainers.AndersonTorres ];
-    inherit (wayland.meta) platforms;
-    mainProgram = "dwl";
-  };
-})
-# TODO: custom patches from upstream website
diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index 10fef61b49a1a..74d5022219a05 100644
--- a/pkgs/applications/window-managers/dwm/default.nix
+++ b/pkgs/applications/window-managers/dwm/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
       tags.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ viric neonfuz ];
+    maintainers = with maintainers; [ neonfuz ];
     platforms = platforms.all;
     mainProgram = "dwm";
   };
diff --git a/pkgs/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix
index 1d5f84abe288b..cb303ff268aea 100644
--- a/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ makeWrapper pkg-config ];
   buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
 
-  cargoSha256 = "sha256-eRfXUnyzOfVSEiwjLCaNbETUPXVU2Ed2VUNM9FjS5YE=";
+  cargoHash = "sha256-eRfXUnyzOfVSEiwjLCaNbETUPXVU2Ed2VUNM9FjS5YE=";
 
   postInstall = lib.optionalString (bins != [])  ''
     wrapProgram $out/bin/dwm-status --prefix "PATH" : "${lib.makeBinPath bins}"
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
index f994b19175209..2970e724b3fda 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
@@ -26,6 +26,12 @@ let
 
   plugins = lib.mergeAttrsList [
     { hy3 = import ./hy3.nix; }
+    { hycov = import ./hycov.nix; }
+    { hypr-dynamic-cursors = import ./hypr-dynamic-cursors.nix; }
+    { hyprfocus = import ./hyprfocus.nix; }
+    { hyprgrass = import ./hyprgrass.nix; }
+    { hyprscroller = import ./hyprscroller.nix; }
+    { hyprspace = import ./hyprspace.nix; }
     (import ./hyprland-plugins.nix)
   ];
 in
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix
index bd4422cb33fba..8ae17d72877fc 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix
@@ -7,13 +7,13 @@
 }:
 mkHyprlandPlugin hyprland rec {
   pluginName = "hy3";
-  version = "0.41.2";
+  version = "0.42.0";
 
   src = fetchFromGitHub {
     owner = "outfoxxed";
     repo = "hy3";
     rev = "refs/tags/hl${version}";
-    hash = "sha256-aZuNKBwTwj8EXkDBMWNdRKbHPx647wJLWm55h6jOKbo=";
+    hash = "sha256-gyhpW3Mv9RgWsB8jAMoA7yoMSb01ol0jyPFNsghaZ0w=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -24,7 +24,7 @@ mkHyprlandPlugin hyprland rec {
     homepage = "https://github.com/outfoxxed/hy3";
     description = "Hyprland plugin for an i3 / sway like manual tiling layout";
     license = lib.licenses.gpl3;
-    platforms = lib.platforms.linux;
+    inherit (hyprland.meta) platforms;
     maintainers = with lib.maintainers; [
       aacebedo
       johnrtitor
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix
new file mode 100644
index 0000000000000..be074e0c5e83e
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  mkHyprlandPlugin,
+  hyprland,
+  cmake,
+  fetchFromGitHub,
+  nix-update-script,
+}:
+
+mkHyprlandPlugin hyprland rec {
+  pluginName = "hycov";
+  version = "0.41.2.1";
+
+  src = fetchFromGitHub {
+    owner = "DreamMaoMao";
+    repo = "hycov";
+    rev = version;
+    hash = "sha256-NRnxbkuiq1rQ+uauo7D+CEe73iGqxsWxTQa+1SEPnXQ=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Clients overview for Hyprland plugin";
+    homepage = "https://github.com/DreamMaoMao/hycov";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ donovanglover ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix
new file mode 100644
index 0000000000000..6b16f3c5c7e59
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  mkHyprlandPlugin,
+  fetchFromGitHub,
+  hyprland,
+  unstableGitUpdater,
+}:
+
+mkHyprlandPlugin hyprland {
+  pluginName = "hypr-dynamic-cursors";
+  version = "0-unstable-2024-08-01";
+
+  src = fetchFromGitHub {
+    owner = "VirtCode";
+    repo = "hypr-dynamic-cursors";
+    rev = "ed2ff68862ae02e04dd06488eb7228e4412f5c33";
+    hash = "sha256-02G/SPd/X7zSIFF3V6dkh8mGGWoO0/m6/Yld7HyPmJs=";
+  };
+
+  dontUseCmakeConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    mv out/dynamic-cursors.so $out/lib/libhypr-dynamic-cursors.so
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Plugin to make your Hyprland cursor more realistic";
+    homepage = "https://github.com/VirtCode/hypr-dynamic-cursors";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ donovanglover ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprfocus.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprfocus.nix
new file mode 100644
index 0000000000000..f58cc54a8eb56
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprfocus.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  mkHyprlandPlugin,
+  hyprland,
+  fetchFromGitHub,
+}:
+
+mkHyprlandPlugin hyprland {
+  pluginName = "hyprfocus";
+  version = "0-unstable-2024-05-30";
+
+  src = fetchFromGitHub {
+    owner = "pyt0xic";
+    repo = "hyprfocus";
+    rev = "aa7262d3a4564062f97b9cfdad47fd914cfb80f2";
+    hash = "sha256-R1ZgNhQkoS6ZHRRKB+j5vYgRANfYO//sHbrD7moUTx0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    mv hyprfocus.so $out/lib/libhyprfocus.so
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/pyt0xic/hyprfocus";
+    description = "Focus animation plugin for Hyprland inspired by Flashfocus";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ donovanglover ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix
new file mode 100644
index 0000000000000..f493ec6e526d4
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  mkHyprlandPlugin,
+  hyprland,
+  fetchFromGitHub,
+  cmake,
+  doctest,
+  meson,
+  ninja,
+  wf-touch,
+  nix-update-script,
+}:
+
+mkHyprlandPlugin hyprland rec {
+  pluginName = "hyprgrass";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "horriblename";
+    repo = "hyprgrass";
+    rev = "v${version}";
+    hash = "sha256-DfM2BqnFW48NlHkBfC7ErHgK7WHlOgiiE+aFetN/yJ4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    doctest
+    meson
+    ninja
+  ];
+
+  buildInputs = [ wf-touch ];
+
+  dontUseCmakeConfigure = true;
+
+  doCheck = true;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Hyprland plugin for touch gestures";
+    homepage = "https://github.com/horriblename/hyprgrass";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ donovanglover ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix
index b3bd59f7b5255..e81537db800d5 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix
@@ -14,13 +14,13 @@ let
             mkHyprlandPlugin,
           }:
           let
-            version = "0.41.2";
+            version = "0.42.0";
 
             hyprland-plugins-src = fetchFromGitHub {
               owner = "hyprwm";
               repo = "hyprland-plugins";
               rev = "refs/tags/v${version}";
-              hash = "sha256-TnlAcO5K2gkab0mpKurP5Co6eWRycP/KbFqWNS2rsMA=";
+              hash = "sha256-aPzAbDgAyxJlUjyaFPDhjcL7WnyDP5uDZKOqlQRD8eM=";
             };
           in
           mkHyprlandPlugin hyprland {
@@ -37,7 +37,7 @@ let
                 fufexan
                 johnrtitor
               ];
-              platforms = lib.platforms.linux;
+              inherit (hyprland.meta) platforms;
             };
           }
         )
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprscroller.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprscroller.nix
new file mode 100644
index 0000000000000..f94da804d370a
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprscroller.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  mkHyprlandPlugin,
+  hyprland,
+  cmake,
+  fetchFromGitHub,
+  unstableGitUpdater,
+}:
+
+mkHyprlandPlugin hyprland {
+  pluginName = "hyprscroller";
+  version = "0-unstable-2024-07-04";
+
+  src = fetchFromGitHub {
+    owner = "dawsers";
+    repo = "hyprscroller";
+    rev = "bef840b3f0fd3d37b5c1c9f2704b2efb60173184";
+    hash = "sha256-vkpGSseA7n0/Y+83snbEe7Z++2akdDbvv7eZzM9V3wI=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    mv hyprscroller.so $out/lib/libhyprscroller.so
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    homepage = "https://github.com/dawsers/hyprscroller";
+    description = "Hyprland layout plugin providing a scrolling layout like PaperWM";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ donovanglover ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix
new file mode 100644
index 0000000000000..66d6fcd7506ef
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  hyprland,
+  mkHyprlandPlugin,
+}:
+
+mkHyprlandPlugin hyprland {
+  pluginName = "hyprspace";
+  version = "0-unstable-2024-06-17";
+
+  src = fetchFromGitHub {
+    owner = "KZDKM";
+    repo = "hyprspace";
+    rev = "2f3edb68f47a8f5d99d10b322e9a85a285f53cc7";
+    hash = "sha256-iyj4D6c77uROAH9QdZjPd9SKnS/DuACMESqaEKnBgI8=";
+  };
+
+  # Fix build for Hyprland v0.41.2+
+  patches = fetchpatch {
+    url = "https://github.com/KZDKM/Hyprspace/commit/edad6cf735097b7cb4406d3fc8daddd09dfa458a.patch";
+    hash = "sha256-EVabjPymGAMPtC3Uf6lMJOInvccJhu4t09NXhXhq4RY=";
+  };
+
+  dontUseCmakeConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    mv Hyprspace.so $out/lib/libhyprspace.so
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/KZDKM/Hyprspace";
+    description = "Workspace overview plugin for Hyprland";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ donovanglover ];
+  };
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
index 8815205b0e9d1..a1269307c9581 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchFromGitHub {
     owner = "hyprwm";
-    repo = finalAttrs.pname;
+    repo = "hyprland-protocols";
     rev = "v${finalAttrs.version}";
     hash = "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=";
   };
diff --git a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
index 9da143be08bf1..17bf63a727537 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchFromGitHub {
     owner = "hyprwm";
-    repo = finalAttrs.pname;
+    repo = "hyprpaper";
     rev = "v${finalAttrs.version}";
     hash = "sha256-l13c8ALA7ZKDgluYA1C1OfkDGYD6e1/GR6LJnxCLRhA=";
   };
diff --git a/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix b/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
index 4089d82a3b977..0ee4884f5b6f1 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchFromGitHub {
     owner = "hyprwm";
-    repo = finalAttrs.pname;
+    repo = "hyprpicker";
     rev = "v${finalAttrs.version}";
     hash = "sha256-BYQF1zM6bJ44ag9FJ0aTSkhOTY9U7uRdp3SmRCs5fJM=";
   };
diff --git a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
index 609da88715661..322962123547c 100644
--- a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
@@ -1,36 +1,39 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, pkg-config
-, wayland-scanner
-, makeWrapper
-, wrapQtAppsHook
-, hyprland-protocols
-, hyprlang
-, libdrm
-, mesa
-, pipewire
-, qtbase
-, qttools
-, qtwayland
-, sdbus-cpp
-, systemd
-, wayland
-, wayland-protocols
-, hyprland
-, hyprpicker
-, slurp
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  cmake,
+  pkg-config,
+  wayland-scanner,
+  makeWrapper,
+  wrapQtAppsHook,
+  nix-update-script,
+  hyprland-protocols,
+  hyprlang,
+  libdrm,
+  mesa,
+  pipewire,
+  qtbase,
+  qttools,
+  qtwayland,
+  sdbus-cpp,
+  systemd,
+  wayland,
+  wayland-protocols,
+  hyprland,
+  hyprpicker,
+  slurp,
 }:
-stdenv.mkDerivation (self: {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-hyprland";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "xdg-desktop-portal-hyprland";
-    rev = "v${self.version}";
-    hash = "sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-cyyxu/oj4QEFp3CVx2WeXa9T4OAUyynuBJHGkBZSxJI=";
   };
 
   nativeBuildInputs = [
@@ -61,18 +64,33 @@ stdenv.mkDerivation (self: {
   postInstall = ''
     wrapProgramShell $out/bin/hyprland-share-picker \
       "''${qtWrapperArgs[@]}" \
-      --prefix PATH ":" ${lib.makeBinPath [slurp hyprland]}
+      --prefix PATH ":" ${
+        lib.makeBinPath [
+          slurp
+          hyprland
+        ]
+      }
 
     wrapProgramShell $out/libexec/xdg-desktop-portal-hyprland \
-      --prefix PATH ":" ${lib.makeBinPath [(placeholder "out") hyprpicker]}
+      --prefix PATH ":" ${
+        lib.makeBinPath [
+          (placeholder "out")
+          hyprpicker
+        ]
+      }
   '';
 
-  meta = with lib; {
-    homepage = "https://github.com/hyprwm/xdg-desktop-portal-hyprland";
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
     description = "xdg-desktop-portal backend for Hyprland";
+    homepage = "https://github.com/hyprwm/xdg-desktop-portal-hyprland";
+    changelog = "https://github.com/hyprwm/xdg-desktop-portal-hyprland/releases/tag/v${finalAttrs.version}";
     mainProgram = "hyprland-share-picker";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ fufexan ];
-    platforms = platforms.linux;
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ fufexan ];
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/applications/window-managers/i3/auto-layout.nix b/pkgs/applications/window-managers/i3/auto-layout.nix
index bfcb35a870c94..ef6c27de438ef 100644
--- a/pkgs/applications/window-managers/i3/auto-layout.nix
+++ b/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-gpVYVyh+2y4Tttvw1SuCf7mx/nxR330Ob2R4UmHZSJs=";
   };
 
-  cargoSha256 = "sha256-OxQ7S+Sqc3aRH53Bs53Y+EKOYFgboGOBsQ7KJgICcGo=";
+  cargoHash = "sha256-OxQ7S+Sqc3aRH53Bs53Y+EKOYFgboGOBsQ7KJgICcGo=";
 
   # Currently no tests are implemented, so we avoid building the package twice
   doCheck = false;
diff --git a/pkgs/applications/window-managers/i3/balance-workspace.nix b/pkgs/applications/window-managers/i3/balance-workspace.nix
index bb0ea94e77c34..de68a06d896e2 100644
--- a/pkgs/applications/window-managers/i3/balance-workspace.nix
+++ b/pkgs/applications/window-managers/i3/balance-workspace.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
+    hash = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
   };
 
   propagatedBuildInputs = [ i3ipc ];
diff --git a/pkgs/applications/window-managers/i3/bumblebee-status/default.nix b/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
index 6346672181487..99b5b203ee2f3 100644
--- a/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
+++ b/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
@@ -2,6 +2,7 @@
 , lib
 , glibcLocales
 , python
+, fetchpatch
 , fetchFromGitHub
   # Usage: bumblebee-status.override { plugins = p: [p.arandr p.bluetooth2]; };
 , plugins ? p: [ ]
@@ -29,6 +30,15 @@ python.pkgs.buildPythonPackage {
     hash = "sha256-+RCg2XZv0AJnexi7vnQhEXB1qSoKBN1yKWm3etdys1s=";
   };
 
+  patches = [
+    # fix build with Python 3.12
+    # https://github.com/tobi-wan-kenobi/bumblebee-status/pull/1019
+    (fetchpatch {
+      url = "https://github.com/tobi-wan-kenobi/bumblebee-status/commit/2fe8f1ff1444daf155b18318005f33a76a5d64b4.patch";
+      hash = "sha256-BC1cgQDMJkhuEgq8NJ28521CHbEfqIMueHkFXXlZz2w=";
+    })
+  ];
+
   buildInputs = lib.concatMap (p: p.buildInputs or [ ]) selectedPlugins;
   propagatedBuildInputs = lib.concatMap (p: p.propagatedBuildInputs or [ ]) selectedPlugins;
 
diff --git a/pkgs/applications/window-managers/i3/bumblebee-status/plugins.nix b/pkgs/applications/window-managers/i3/bumblebee-status/plugins.nix
index 6a1dda5842072..5810070d2ff43 100644
--- a/pkgs/applications/window-managers/i3/bumblebee-status/plugins.nix
+++ b/pkgs/applications/window-managers/i3/bumblebee-status/plugins.nix
@@ -28,7 +28,7 @@ in
   brightness.propagatedBuildInputs = [ ];
   caffeine.propagatedBuildInputs = [ pkgs.xdg-utils pkgs.xdotool pkgs.xorg.xprop pkgs.libnotify ];
   cmus.propagatedBuildInputs = [ pkgs.cmus ];
-  cpu.propagatedBuildInputs = [ py.psutil pkgs.gnome.gnome-system-monitor ];
+  cpu.propagatedBuildInputs = [ py.psutil pkgs.gnome-system-monitor ];
   cpu2.propagatedBuildInputs = [ py.psutil pkgs.lm_sensors ];
   cpu3.propagatedBuildInputs = [ py.psutil pkgs.lm_sensors ];
   currency.propagatedBuildInputs = [ py.requests ];
@@ -85,8 +85,8 @@ in
   # NOTE: Yes, there is also a plugin named `layout-xkbswitch` with a dash.
   layout_xkbswitch.propagatedBuildInputs = [ pkgs.xkb-switch ];
   libvirtvms.propagatedBuildInputs = [ py.libvirt ];
-  load.propagatedBuildInputs = [ pkgs.gnome.gnome-system-monitor ];
-  memory.propagatedBuildInputs = [ pkgs.gnome.gnome-system-monitor ];
+  load.propagatedBuildInputs = [ pkgs.gnome-system-monitor ];
+  memory.propagatedBuildInputs = [ pkgs.gnome-system-monitor ];
   messagereceiver = { };
   mocp.propagatedBuildInputs = [ pkgs.moc ];
   mpd.propagatedBuildInputs = [ pkgs.mpc-cli ];
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index 16dd2e6485e77..6438eee19525d 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms
 , xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre2, libev
 , yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
-, xorgserver, xvfb-run
+, xorgserver, xvfb-run, xdotool, xorg, which
 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
 }:
 
@@ -29,27 +29,42 @@ stdenv.mkDerivation rec {
     libstartup_notification libX11 pcre2 libev yajl xcb-util-cursor perl pango
     perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun
     perlPackages.ExtUtilsPkgConfig perlPackages.InlineC
-    xorgserver xvfb-run
+  ] ++ lib.optionals doCheck [
+    xorgserver xvfb-run xdotool xorg.setxkbmap xorg.xrandr which
   ];
 
   configureFlags = [ "--disable-builddir" ];
 
   postPatch = ''
     patchShebangs .
+
+    # This testcase generates a Perl executable file with a shebang, and
+    # patchShebangs can't replace a shebang in the middle of a file.
+    if [ -f testcases/t/318-i3-dmenu-desktop.t ]; then
+      substituteInPlace testcases/t/318-i3-dmenu-desktop.t \
+        --replace-fail "#!/usr/bin/env perl" "#!${perl}/bin/perl"
+    fi
   '';
 
-  # Tests have been failing (at least for some people in some cases)
-  # and have been disabled until someone wants to fix them. Some
-  # initial digging uncovers that the tests call out to `git`, which
-  # they shouldn't, and then even once that's fixed have some
-  # perl-related errors later on. For more, see
-  # https://github.com/NixOS/nixpkgs/issues/7957
-  doCheck = false; # stdenv.hostPlatform.system == "x86_64-linux";
-
-  checkPhase = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
-  ''
-    (cd testcases && xvfb-run ./complete-run.pl -p 1 --keep-xserver-output)
-    ! grep -q '^not ok' testcases/latest/complete-run.log
+  # xvfb-run is available only on Linux
+  doCheck = stdenv.isLinux;
+
+  checkPhase = ''
+    test_failed=
+    # "| cat" disables fancy progress reporting which makes the log unreadable.
+    ./complete-run.pl -p 1 --keep-xserver-output | cat || test_failed="complete-run.pl returned $?"
+    if [ -z "$test_failed" ]; then
+      # Apparently some old versions of `complete-run.pl` did not return a
+      # proper exit code, so check the log for signs of errors too.
+      grep -q '^not ok' latest/complete-run.log && test_failed="test log contains errors" ||:
+    fi
+    if [ -n "$test_failed" ]; then
+      echo "***** Error: $test_failed"
+      echo "===== Test log ====="
+      cat latest/complete-run.log
+      echo "===== End of test log ====="
+      false
+    fi
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
index 0903ceb3185af..ad585ef08885d 100644
--- a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
+++ b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
   };
 
-  cargoSha256 = "134sgc9d0j57swknl9sgil6212rws2hhp92s3cg1yzz5ygx21c76";
+  cargoHash = "sha256-5rAg+vPlfx8eG1qkC6HQPIsgDI1PJ2on16dI0BJ7mow=";
 
   # Currently no tests are implemented, so we avoid building the package twice
   doCheck = false;
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
index 015bbee6013f2..2040cdba806a1 100644
--- a/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -6,7 +6,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
+    hash = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
   };
 
   propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
diff --git a/pkgs/applications/window-managers/i3/kitti3.nix b/pkgs/applications/window-managers/i3/kitti3.nix
index 3068baee5d996..4a88518d508bb 100644
--- a/pkgs/applications/window-managers/i3/kitti3.nix
+++ b/pkgs/applications/window-managers/i3/kitti3.nix
@@ -36,6 +36,6 @@ buildPythonApplication rec {
     description = "Kitty drop-down service for sway & i3wm";
     mainProgram = "kitti3";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ Enzime ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/window-managers/i3/layout-manager.nix b/pkgs/applications/window-managers/i3/layout-manager.nix
index b2a3adb98f907..df5bb41d85ecc 100644
--- a/pkgs/applications/window-managers/i3/layout-manager.nix
+++ b/pkgs/applications/window-managers/i3/layout-manager.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     mainProgram = "layout_manager";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/window-managers/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix
deleted file mode 100644
index 66450eec6c321..0000000000000
--- a/pkgs/applications/window-managers/i3/pystatus.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ lib
-, fetchFromGitHub
-, libpulseaudio
-, libnotify
-, gobject-introspection
-, python3Packages
-, extraLibs ? [] }:
-
-python3Packages.buildPythonApplication rec {
-  # i3pystatus moved to rolling release:
-  # https://github.com/enkore/i3pystatus/issues/584
-  version = "unstable-2020-06-12";
-  pname = "i3pystatus";
-
-  src = fetchFromGitHub {
-    owner = "enkore";
-    repo = "i3pystatus";
-    rev = "dad5eb0c5c8a2ecd20c37ade4732586c6e53f44b";
-    sha256 = "18ygvkl92yr69kxsym57k1mc90asdxpz4b943i61qr0s4fc5n4mq";
-  };
-
-  nativeBuildInputs = [
-    gobject-introspection
-  ];
-
-  buildInputs = [ libpulseaudio libnotify ];
-
-  propagatedBuildInputs = with python3Packages; [
-    keyring colour netifaces psutil basiciw pygobject3
-  ] ++ extraLibs;
-
-  makeWrapperArgs = [
-    # LC_TIME != C results in locale.Error: unsupported locale setting
-    "--set" "LC_TIME" "C"
-    "--suffix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ libpulseaudio ]}"
-  ];
-
-  postPatch = ''
-    makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH")
-  '';
-
-  postInstall = ''
-    makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
-      --prefix PYTHONPATH : "$PYTHONPATH" \
-      ''${makeWrapperArgs[@]}
-  '';
-
-  # no tests in tarball
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/enkore/i3pystatus";
-    description = "Complete replacement for i3status";
-    longDescription = ''
-      i3pystatus is a growing collection of python scripts for status output compatible
-      to i3status / i3bar of the i3 window manager.
-    '';
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.igsha ];
-  };
-}
diff --git a/pkgs/applications/window-managers/i3/rounded.nix b/pkgs/applications/window-managers/i3/rounded.nix
index ee04f4246fefa..45e80f7fb1a7a 100644
--- a/pkgs/applications/window-managers/i3/rounded.nix
+++ b/pkgs/applications/window-managers/i3/rounded.nix
@@ -13,6 +13,9 @@ i3.overrideAttrs (oldAttrs: rec {
 
   buildInputs = oldAttrs.buildInputs ++ [ pcre ];
 
+  # Some tests are failing.
+  doCheck = false;
+
   meta = with lib; {
     description = "Fork of i3-gaps that adds rounding to window corners";
     homepage = "https://github.com/LinoBigatti/i3-rounded";
diff --git a/pkgs/applications/window-managers/i3/swallow.nix b/pkgs/applications/window-managers/i3/swallow.nix
index 31101721e4c45..7b6644d0a9983 100644
--- a/pkgs/applications/window-managers/i3/swallow.nix
+++ b/pkgs/applications/window-managers/i3/swallow.nix
@@ -39,6 +39,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     platforms = platforms.linux;
     mainProgram = "swallow";
-    maintainers = [ maintainers.ivar ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/window-managers/i3/wsr.nix b/pkgs/applications/window-managers/i3/wsr.nix
index e64194ac38170..f282e38b6dcab 100644
--- a/pkgs/applications/window-managers/i3/wsr.nix
+++ b/pkgs/applications/window-managers/i3/wsr.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-Mq4TpQDiIYePUS3EwBfOe2+QmvF6+WEDK12WahbuhSU=";
   };
 
-  cargoSha256 = "sha256-hybvzHwHM0rQwgZfQpww/w9wQDW5h9P2KSjpAScVTBo=";
+  cargoHash = "sha256-hybvzHwHM0rQwgZfQpww/w9wQDW5h9P2KSjpAScVTBo=";
 
   nativeBuildInputs = [ python3 ];
   buildInputs = [ libxcb ];
diff --git a/pkgs/applications/window-managers/ion-3/default.nix b/pkgs/applications/window-managers/ion-3/default.nix
index 6fb504144b6cf..8b0d3beb1c486 100644
--- a/pkgs/applications/window-managers/ion-3/default.nix
+++ b/pkgs/applications/window-managers/ion-3/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://modeemi.fi/~tuomov/ion";
     platforms = with platforms; linux;
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/window-managers/jay/default.nix b/pkgs/applications/window-managers/jay/default.nix
index 68644b7535424..88ea73105a568 100644
--- a/pkgs/applications/window-managers/jay/default.nix
+++ b/pkgs/applications/window-managers/jay/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jay";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "mahkoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-D+dG0/MSC6LzGZBMNofU8WKVYvn52kNWunXExQPoOu8=";
+    sha256 = "sha256-iZTdhWHlorTAJTd3p2ZJbD5LRYkUmDAFjSEIR5E0JDI=";
   };
 
-  cargoHash = "sha256-WEEAFr5lemyOfeIKC9Pvr9sYMz8rLO6k1BFgbxXJ0Pk=";
+  cargoHash = "sha256-SEL7hpHcW+p49vFRedC1hDRZ/Vq9zMzMAACyyBXHwZM=";
 
   SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
 
diff --git a/pkgs/applications/window-managers/maui-shell/default.nix b/pkgs/applications/window-managers/maui-shell/default.nix
index 0ac02b0957fa9..5a30b46e907e0 100644
--- a/pkgs/applications/window-managers/maui-shell/default.nix
+++ b/pkgs/applications/window-managers/maui-shell/default.nix
@@ -1,11 +1,9 @@
 { lib
-, pkgs
 , mkDerivation
 , fetchFromGitHub
 , qtquickcontrols2
 , cmake
 , extra-cmake-modules
-, kio
 , krunner
 , prison
 , knotifyconfig
diff --git a/pkgs/applications/window-managers/miriway/default.nix b/pkgs/applications/window-managers/miriway/default.nix
index a51f3838aa3aa..4547d1df83633 100644
--- a/pkgs/applications/window-managers/miriway/default.nix
+++ b/pkgs/applications/window-managers/miriway/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "miriway";
-  version = "0-unstable-2024-05-17";
+  version = "0-unstable-2024-07-17";
 
   src = fetchFromGitHub {
     owner = "Miriway";
     repo = "Miriway";
-    rev = "5be8f60326181b22e111f02918ae5778cf1a89b0";
-    hash = "sha256-dHY0bfVfRpiBY5rPnhmu3aHXx1l9jQhXBtcBbej2JFk=";
+    rev = "810dea99773f96a4ef4471bf00c65089956ff97a";
+    hash = "sha256-hkHipu1ERiM8UH18NuyxILyxxXvyVTOSLBP/7Z64ZTg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
index 26211ca2f89c6..3a563f9e17238 100644
--- a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
+++ b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
@@ -21,12 +21,12 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh-mobile-settings";
-  version = "0.38.0";
+  version = "0.39.0";
 
   src = fetchurl {
     # This tarball includes the meson wrapped subproject 'gmobile'.
     url = "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-WDqgVsJx5y6IlWII9fRBsAeWn/tB8BaXRtlPvA0wmMk=";
+    hash = "sha256-9vN4IqGoRHDJQYohycrrSj4ITJHHaSNgPjpEjRCCvUw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/ragnarwm/default.nix b/pkgs/applications/window-managers/ragnarwm/default.nix
index 2cb9f31e7334f..6ffdc8a0a39e2 100644
--- a/pkgs/applications/window-managers/ragnarwm/default.nix
+++ b/pkgs/applications/window-managers/ragnarwm/default.nix
@@ -61,13 +61,13 @@ stdenv.mkDerivation (finalAttrs: {
     providedSessions = [ "ragnar" ];
   };
 
-  meta = with lib; {
+  meta = {
     description = "Minimal, flexible & user-friendly X tiling window manager";
     homepage = "https://ragnar-website.vercel.app";
     changelog = "https://github.com/cococry/Ragnar/releases/tag/${finalAttrs.version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ sigmanificient ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ sigmanificient ];
     mainProgram = "ragnar";
-    platforms = platforms.linux;
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/applications/window-managers/sommelier/default.nix b/pkgs/applications/window-managers/sommelier/default.nix
index a5b0398d44425..99c6892ba3da1 100644
--- a/pkgs/applications/window-managers/sommelier/default.nix
+++ b/pkgs/applications/window-managers/sommelier/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "sommelier";
-  version = "125.0";
+  version = "126.0";
 
   src = fetchzip rec {
     url = "https://chromium.googlesource.com/chromiumos/platform2/+archive/${passthru.rev}/vm_tools/sommelier.tar.gz";
-    passthru.rev = "4445ac169a9e043fd260a835384aaa49c457c358";
+    passthru.rev = "fd3798efe23f2edbc48f86f2fbd82ba5059fd875";
     stripRoot = false;
-    sha256 = "1PofODGZDknZpzXI1d3JcoNYz3IGfw32nm+SmUpeqb8=";
+    sha256 = "BmWZnMcK7IGaEAkVPulyb3hngsmuI0D1YtQEbqMjV5c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/tabbed/default.nix b/pkgs/applications/window-managers/tabbed/default.nix
index 068d5c2f82edb..9108eec14c34d 100644
--- a/pkgs/applications/window-managers/tabbed/default.nix
+++ b/pkgs/applications/window-managers/tabbed/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://tools.suckless.org/tabbed";
     description = "Simple generic tabbed fronted to xembed aware applications";
     license = licenses.mit;
-    maintainers = with maintainers; [ vrthra ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 })
diff --git a/pkgs/applications/window-managers/taffybar/default.nix b/pkgs/applications/window-managers/taffybar/default.nix
index 062fc2a3771da..16f6d38b222c9 100644
--- a/pkgs/applications/window-managers/taffybar/default.nix
+++ b/pkgs/applications/window-managers/taffybar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, ghcWithPackages, taffybar, makeWrapper, packages ? (x: []) }:
+{ stdenv, ghcWithPackages, taffybar, makeWrapper, packages ? (x: []) }:
 
 let
   taffybarEnv = ghcWithPackages (self: [
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
index 7cba387369c7a..0560bb214ba2f 100644
--- a/pkgs/applications/window-managers/vwm/default.nix
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     homepage = "https://vwm.sourceforge.net/";
     description = "Dynamic window manager for the console";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
     platforms = platforms.linux;
     mainProgram = "vwm";
   };
diff --git a/pkgs/applications/window-managers/wayfire/wwp-switcher.nix b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
index 34252d98dd838..4eb42af6995b7 100644
--- a/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
+++ b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wwp-switcher";
-  version = "unstable-2023-09-09";
+  version = "0-unstable-2024-07-23";
 
   src = fetchFromGitHub {
     owner = "wb9688";
     repo = "wwp-switcher";
-    rev = "04711a0db133a899f507a86e81897296b793b4f3";
-    hash = "sha256-qMyEhSZJNxAoaELKI2h1v59QJnKJzFa76Q4/WtZqpIU";
+    rev = "d0cd97534a2a6355697efecb7bcf8f85f5dc4b5b";
+    hash = "sha256-cU8INUb+JXlSCM7cAOUBU7z7W0IM6pAGN0izGdFYntc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index c67b760e4df39..e9f8f245dfa7c 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    # raise neatvnc version bound to 0.8.0
+    # raise neatvnc version bound to < 0.9.0
     # https://gitlab.freedesktop.org/wayland/weston/-/issues/890
     substituteInPlace libweston/backend-vnc/meson.build \
-      --replace-fail "'neatvnc', version: ['>= 0.7.0', '< 0.8.0']" "'neatvnc', version: ['>= 0.7.0', '<= 0.8.0']"
+      --replace-fail "'neatvnc', version: ['>= 0.7.0', '< 0.8.0']" "'neatvnc', version: ['>= 0.7.0', '< 0.9.0']"
   '';
 
   depsBuildBuild = [ pkg-config ];
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index e68dcdcd0e812..edeeaf5fbf654 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation {
     homepage    = "https://github.com/geommer/yabar";
     license     = licenses.mit;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
     mainProgram = "yabar";
   };
 }