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/dwl/default.nix7
-rw-r--r--pkgs/applications/window-managers/evilwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/default.nix26
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix8
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprshade/default.nix5
-rw-r--r--pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix1
-rw-r--r--pkgs/applications/window-managers/i3/altlayout.nix1
-rw-r--r--pkgs/applications/window-managers/i3/auto-layout.nix1
-rw-r--r--pkgs/applications/window-managers/i3/blocks-gaps.nix1
-rw-r--r--pkgs/applications/window-managers/i3/blocks.nix1
-rw-r--r--pkgs/applications/window-managers/i3/cycle-focus.nix1
-rw-r--r--pkgs/applications/window-managers/i3/easyfocus.nix1
-rw-r--r--pkgs/applications/window-managers/i3/i3-ratiosplit.nix1
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix1
-rw-r--r--pkgs/applications/window-managers/i3/kitti3.nix1
-rw-r--r--pkgs/applications/window-managers/i3/layout-manager.nix1
-rw-r--r--pkgs/applications/window-managers/i3/lock.nix4
-rw-r--r--pkgs/applications/window-managers/i3/wk-switch.nix1
-rw-r--r--pkgs/applications/window-managers/i3/wmfocus.nix1
-rw-r--r--pkgs/applications/window-managers/lemonbar/xft.nix1
-rw-r--r--pkgs/applications/window-managers/miriway/default.nix6
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix5
-rw-r--r--pkgs/applications/window-managers/wayfire/firedecor.nix73
-rw-r--r--pkgs/applications/window-managers/wayfire/plugins.nix1
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-shell.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix7
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonadctl.nix1
29 files changed, 141 insertions, 34 deletions
diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix
index 0af274265bff..68815952b17f 100644
--- a/pkgs/applications/window-managers/dwl/default.nix
+++ b/pkgs/applications/window-managers/dwl/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub
+, fetchFromGitea
 , installShellFiles
 , libX11
 , libinput
@@ -24,8 +24,9 @@ stdenv.mkDerivation (finalAttrs: {
   pname = "dwl";
   version = "0.5";
 
-  src = fetchFromGitHub {
-    owner = "djpohly";
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "dwl";
     repo = "dwl";
     rev = "v${finalAttrs.version}";
     hash = "sha256-U/vqGE1dJKgEGTfPMw02z5KJbZLWY1vwDJWnJxT8urM=";
diff --git a/pkgs/applications/window-managers/evilwm/default.nix b/pkgs/applications/window-managers/evilwm/default.nix
index a0dbb3660d31..017a1ab0fe95 100644
--- a/pkgs/applications/window-managers/evilwm/default.nix
+++ b/pkgs/applications/window-managers/evilwm/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evilwm";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
-    sha256 = "sha256-QhLW2QywBbLMiIFLyFN3NrSVCrWCZLu2W4gHrGO9xLk=";
+    sha256 = "sha256-1ZRbILEskdskEvrA29o/ucPsjeu44bEJg4mSsrG75dQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
index 3db57a6b8dd2..a9d1764eaf1f 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
@@ -8,6 +8,7 @@
 , binutils
 , cairo
 , git
+, hyprcursor
 , hyprland-protocols
 , hyprlang
 , jq
@@ -22,11 +23,11 @@
 , pciutils
 , systemd
 , tomlplusplus
-, udis86
+, udis86-hyprland
 , wayland
 , wayland-protocols
 , wayland-scanner
-, wlroots
+, wlroots-hyprland
 , xcbutilwm
 , xwayland
 , debug ? false
@@ -42,15 +43,19 @@
 assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been removed.";
 assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed.";
 assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
+
+let
+  wlr = wlroots-hyprland.override { inherit enableXWayland; };
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland" + lib.optionalString debug "-debug";
-  version = "0.36.0";
+  version = "0.37.1";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oZe4k6jtO/0govmERGcbeyvE9EfTvXY5bnyIs6AsL9U=";
+    hash = "sha256-W+34KhCnqscRXN/IkvuJMiVx0Fa64RcYn8H4sZjzceI=";
   };
 
   patches = [
@@ -68,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "@HASH@" '${finalAttrs.src.rev}' \
       --replace "@BRANCH@" "" \
       --replace "@MESSAGE@" "" \
-      --replace "@DATE@" "2024-02-05" \
+      --replace "@DATE@" "2024-03-16" \
       --replace "@TAG@" "" \
       --replace "@DIRTY@" ""
   '';
@@ -92,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
     [
       cairo
       git
+      hyprcursor
       hyprland-protocols
       hyprlang
       libGL
@@ -99,13 +105,13 @@ stdenv.mkDerivation (finalAttrs: {
       libinput
       libxkbcommon
       mesa
-      udis86
+      udis86-hyprland
       wayland
       wayland-protocols
       pango
       pciutils
       tomlplusplus
-      wlroots
+      wlr
     ]
     ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ]
     ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
@@ -125,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postInstall = ''
-    ln -s ${wlroots}/include/wlr $dev/include/hyprland/wlroots
+    ln -s ${wlr}/include/wlr $dev/include/hyprland/wlroots
     ${lib.optionalString wrapRuntimeDeps ''
       wrapProgram $out/bin/Hyprland \
         --suffix PATH : ${lib.makeBinPath [binutils pciutils stdenv.cc]}
@@ -135,11 +141,11 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.providedSessions = [ "hyprland" ];
 
   meta = with lib; {
-    homepage = "https://github.com/vaxerski/Hyprland";
+    homepage = "https://github.com/hyprwm/Hyprland";
     description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wozeparrot fufexan ];
     mainProgram = "Hyprland";
-    platforms = wlroots.meta.platforms;
+    platforms = wlr.meta.platforms;
   };
 })
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
index 1aef74294bd5..ddbd6d9fb4db 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
@@ -22,15 +22,15 @@ let
 
   plugins = {
     hy3 = { fetchFromGitHub, cmake, hyprland }:
-      mkHyprlandPlugin hyprland rec {
+      mkHyprlandPlugin hyprland {
         pluginName = "hy3";
-        version = "0.36.0";
+        version = "0.36.0-unstable-2024-03-06";
 
         src = fetchFromGitHub {
           owner = "outfoxxed";
           repo = "hy3";
-          rev = "hl${version}";
-          hash = "sha256-nRBeHh0Vr0gB3BHiqP9ZE4/yyZvRt8jJHwBF5lFu/24=";
+          rev = "a392bfd13caf865ccf6b9df6917b67cc3a054b82";
+          hash = "sha256-QuapQR9DJI9+vt7xqULYIXx2QCCX1I/YB50c+7ReexU=";
         };
 
         nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix b/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
index 5c42eff6fc8c..d5be9f276cf2 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
@@ -1,16 +1,18 @@
 { fetchFromGitLab
 , wlroots
+, enableXWayland ? true
 }:
 wlroots.overrideAttrs
   (old: {
+    inherit enableXWayland;
     version = "0.18.0-dev";
 
     src = fetchFromGitLab {
       domain = "gitlab.freedesktop.org";
       owner = "wlroots";
       repo = "wlroots";
-      rev = "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5";
-      hash = "sha256-Mz6hCtommq7RQfcPnxLINigO4RYSNt23HeJHC6mVmWI=";
+      rev = "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b";
+      hash = "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=";
     };
 
     patches = [ ]; # don't inherit old.patches
diff --git a/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix b/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
index 65f612136dfa..229f53ed3de8 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "hyprshade";
-  version = "3.2.0";
+  version = "3.2.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "loqusion";
     repo = "hyprshade";
     rev = "refs/tags/${version}";
-    hash = "sha256-bNgXnN4F9kzbi1vTuBqn8H7A8QMznr7QA65eNLumkAA=";
+    hash = "sha256-MlbNE9n//Qb6OJc3DMkOpnPtoodfV8JlG/I5rOfWMtQ=";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/loqusion/hyprshade";
     description = "Hyprland shade configuration tool";
+    mainProgram = "hyprshade";
     license = licenses.mit;
     maintainers = with maintainers; [ willswats ];
     platforms = platforms.linux;
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 6c1d99fbb0c7..2825ef3a6563 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
@@ -70,6 +70,7 @@ stdenv.mkDerivation (self: {
   meta = with lib; {
     homepage = "https://github.com/hyprwm/xdg-desktop-portal-hyprland";
     description = "xdg-desktop-portal backend for Hyprland";
+    mainProgram = "hyprland-share-picker";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fufexan ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/i3/altlayout.nix b/pkgs/applications/window-managers/i3/altlayout.nix
index 91f663907a0a..f6f1ecf20c1a 100644
--- a/pkgs/applications/window-managers/i3/altlayout.nix
+++ b/pkgs/applications/window-managers/i3/altlayout.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     maintainers = with maintainers; [ magnetophon ];
     description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side";
+    mainProgram = "i3altlayout";
     homepage = "https://github.com/deadc0de6/i3altlayout";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/i3/auto-layout.nix b/pkgs/applications/window-managers/i3/auto-layout.nix
index dfc0974834f4..bfcb35a870c9 100644
--- a/pkgs/applications/window-managers/i3/auto-layout.nix
+++ b/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Automatic, optimal tiling for i3wm";
+    mainProgram = "i3-auto-layout";
     homepage = "https://github.com/chmln/i3-auto-layout";
     license = licenses.mit;
     maintainers = with maintainers; [ mephistophiles perstark ];
diff --git a/pkgs/applications/window-managers/i3/blocks-gaps.nix b/pkgs/applications/window-managers/i3/blocks-gaps.nix
index deb0c99c313a..657e8d2dca1c 100644
--- a/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
+    mainProgram = "i3blocks";
     homepage = "https://github.com/Airblader/i3blocks-gaps";
     license = licenses.gpl3;
     maintainers = with maintainers; [ carlsverre ];
diff --git a/pkgs/applications/window-managers/i3/blocks.nix b/pkgs/applications/window-managers/i3/blocks.nix
index 1574c587743b..e8f628fb4dc9 100644
--- a/pkgs/applications/window-managers/i3/blocks.nix
+++ b/pkgs/applications/window-managers/i3/blocks.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A flexible scheduler for your i3bar blocks";
+    mainProgram = "i3blocks";
     homepage = "https://github.com/vivien/i3blocks";
     license = licenses.gpl3;
     platforms = with platforms; freebsd ++ linux;
diff --git a/pkgs/applications/window-managers/i3/cycle-focus.nix b/pkgs/applications/window-managers/i3/cycle-focus.nix
index 180b074118ca..7927985460e2 100644
--- a/pkgs/applications/window-managers/i3/cycle-focus.nix
+++ b/pkgs/applications/window-managers/i3/cycle-focus.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A simple tool to cyclically switch between the windows on the active workspace";
+    mainProgram = "i3-cycle-focus";
     homepage = "https://github.com/TheDoctor314/i3-cycle-focus";
     license = licenses.unlicense;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/applications/window-managers/i3/easyfocus.nix b/pkgs/applications/window-managers/i3/easyfocus.nix
index a2ee445eaf12..a1f0895bff6d 100644
--- a/pkgs/applications/window-managers/i3/easyfocus.nix
+++ b/pkgs/applications/window-managers/i3/easyfocus.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Focus and select windows in i3";
+    mainProgram = "i3-easyfocus";
     homepage = "https://github.com/cornerman/i3-easyfocus";
     maintainers = with maintainers; [teto];
     license = licenses.gpl3;
diff --git a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
index fbd584f2baa9..0903ceb3185a 100644
--- a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
+++ b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Resize newly created windows";
+    mainProgram = "i3-ratiosplit";
     homepage = "https://github.com/333fred/i3-ratiosplit";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
index a84d97504bbb..c5fedfbe36e7 100644
--- a/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -15,6 +15,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/JonnyHaystack/i3-resurrect";
     description = "A simple but flexible solution to saving and restoring i3 workspaces";
+    mainProgram = "i3-resurrect";
     license = licenses.gpl3;
     platforms= platforms.linux;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/applications/window-managers/i3/kitti3.nix b/pkgs/applications/window-managers/i3/kitti3.nix
index 63e1224a316b..3068baee5d99 100644
--- a/pkgs/applications/window-managers/i3/kitti3.nix
+++ b/pkgs/applications/window-managers/i3/kitti3.nix
@@ -34,6 +34,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/LandingEllipse/kitti3";
     description = "Kitty drop-down service for sway & i3wm";
+    mainProgram = "kitti3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ Enzime ];
   };
diff --git a/pkgs/applications/window-managers/i3/layout-manager.nix b/pkgs/applications/window-managers/i3/layout-manager.nix
index 8fd0364bb58c..b2a3adb98f90 100644
--- a/pkgs/applications/window-managers/i3/layout-manager.nix
+++ b/pkgs/applications/window-managers/i3/layout-manager.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/klaxalk/i3-layout-manager";
     description = "Saving, loading and managing layouts for i3wm";
+    mainProgram = "layout_manager";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/window-managers/i3/lock.nix b/pkgs/applications/window-managers/i3/lock.nix
index b7cca2b66376..41096a70a68d 100644
--- a/pkgs/applications/window-managers/i3/lock.nix
+++ b/pkgs/applications/window-managers/i3/lock.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "i3lock";
-  version = "2.14.1";
+  version = "2.15";
 
   src = fetchFromGitHub {
     owner = "i3";
     repo = "i3lock";
     rev = version;
-    sha256 = "sha256-cC908c47fkU6msLqZSxpEbKxO1/PatH81QeuCzBSZGw=";
+    sha256 = "sha256-OyV6GSLnNV3GUqrfs3OBnIaBvicH2PXgeY4acOk5dR4=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/applications/window-managers/i3/wk-switch.nix b/pkgs/applications/window-managers/i3/wk-switch.nix
index e077254b70f4..fadcfe9908da 100644
--- a/pkgs/applications/window-managers/i3/wk-switch.nix
+++ b/pkgs/applications/window-managers/i3/wk-switch.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "XMonad-like workspace switching for i3 and sway";
+    mainProgram = "i3-wk-switch";
     maintainers = with maintainers; [ synthetica ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/i3/wmfocus.nix b/pkgs/applications/window-managers/i3/wmfocus.nix
index 8b45c7f8a1d9..af90b968bd04 100644
--- a/pkgs/applications/window-managers/i3/wmfocus.nix
+++ b/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Visually focus windows by label";
+    mainProgram = "wmfocus";
     homepage = "https://github.com/svenstaro/wmfocus";
     license = licenses.mit;
     maintainers = with maintainers; [ synthetica ];
diff --git a/pkgs/applications/window-managers/lemonbar/xft.nix b/pkgs/applications/window-managers/lemonbar/xft.nix
index 8d009a3458b3..80439f945fdc 100644
--- a/pkgs/applications/window-managers/lemonbar/xft.nix
+++ b/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A lightweight xcb based bar with XFT-support";
+    mainProgram = "lemonbar";
     homepage = "https://github.com/drscream/lemonbar-xft";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/miriway/default.nix b/pkgs/applications/window-managers/miriway/default.nix
index b1d60032db36..4c73135c54a4 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 = "unstable-2024-03-06";
+  version = "unstable-2024-03-15";
 
   src = fetchFromGitHub {
     owner = "Miriway";
     repo = "Miriway";
-    rev = "d58ec46b38aa1c18bbe5c3a0ba2ccdf73b069ee9";
-    hash = "sha256-0zbiSAF0T/OwRn5CYv2fLL4J3K5gUOmy3GK70RfXv5Y=";
+    rev = "dcc44916d0b25dd06d792947c837cf4cd8c24925";
+    hash = "sha256-LnqhIVmC5F+FAIcYW+oT4t2ovRWeoV4zHpvbNhiY7Kw=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 5a6ca17caf69..3cdc2ee41db8 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -36,12 +36,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "phosh";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchurl {
     # Release tarball which includes subprojects gvc and libcall-ui
     url = with finalAttrs; "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-rhhvVCOqw/jqNSpo9Hlrcgh4Bxnoud/Z3yAq4n/ixIQ=";
+    hash = "sha256-kmZX2pPOYSh2hiMrRLH6744Q8rHHhE9jmG+SksepUYk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
index 71d051159de1..8e85597cc7d3 100644
--- a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
+++ b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
@@ -20,12 +20,12 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh-mobile-settings";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchurl {
     # This tarball includes the meson wrapped subproject 'gmobile'.
     url = "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-rktrEBRjOUWGb0Qfcyr03dSxpU2XnC0xHb07x8qc9JU=";
+    hash = "sha256-HW3wM/lb8pvr+eDoeqa0iHXiKhBQ8ybBIy0wwHPsrOg=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A settings app for mobile specific things";
+    mainProgram = "phosh-mobile-settings";
     homepage = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings";
     changelog = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings/-/blob/v${version}/debian/changelog";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/window-managers/wayfire/firedecor.nix b/pkgs/applications/window-managers/wayfire/firedecor.nix
new file mode 100644
index 000000000000..ce42f6fc6886
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/firedecor.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, boost
+, cairo
+, glib
+, libGL
+, libinput
+, librsvg
+, libxkbcommon
+, pango
+, udev
+, wayfire
+, wayland
+, wf-config
+, xcbutilwm
+, mate
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "firedecor";
+  version = "2023-10-23";
+
+  src = fetchFromGitHub {
+    owner = "mntmn";
+    repo = "Firedecor";
+    rev = finalAttrs.version;
+    hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    cairo
+    glib
+    libGL
+    libinput
+    librsvg
+    libxkbcommon
+    pango
+    udev
+    wayfire
+    wayland
+    wf-config
+    xcbutilwm
+  ];
+
+  postPatch = ''
+    substituteInPlace src/firedecor-theme.cpp \
+      --replace-fail "/usr/share" "/run/current-system/sw/share"
+  '';
+
+  env = {
+    PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire";
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/mntmn/Firedecor";
+    description = "Advanced window decoration plugin for the Wayfire window manager";
+    license = licenses.mit;
+    inherit (mate.mate-wayland-session.meta) maintainers;
+    inherit (wayfire.meta) platforms;
+  };
+})
diff --git a/pkgs/applications/window-managers/wayfire/plugins.nix b/pkgs/applications/window-managers/wayfire/plugins.nix
index 86f522cdd68d..b8af85aafd0d 100644
--- a/pkgs/applications/window-managers/wayfire/plugins.nix
+++ b/pkgs/applications/window-managers/wayfire/plugins.nix
@@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self:
   let
     inherit (self) callPackage;
   in {
+    firedecor = callPackage ./firedecor.nix { };
     wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
     wcm = callPackage ./wcm.nix { };
     wf-shell = callPackage ./wf-shell.nix { };
diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix
index 229a87234924..b71e667b31ad 100644
--- a/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wf-shell";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "WayfireWM";
     repo = "wf-shell";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-K5g9DfFlqZyPHDUswx3vtzh0D9ogOQ1p87ZrqyH35vs=";
+    hash = "sha256-/ajFPIk8VJnlu2DzvSyGD3bC4r/pxALTkZeLNvs9dTw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index 34532411888c..b4472425324e 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-Uv8dSqI5Si5BbIWjOLYnzpf6cdQ+t2L9Sq8UXTb8eVo=";
   };
 
+  postPatch = ''
+    # raise neatvnc version bound to 0.8.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']"
+  '';
+
   depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
   buildInputs = [
diff --git a/pkgs/applications/window-managers/xmonad/xmonadctl.nix b/pkgs/applications/window-managers/xmonad/xmonadctl.nix
index e0c452340456..f7dfe1354025 100644
--- a/pkgs/applications/window-managers/xmonad/xmonadctl.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonadctl.nix
@@ -17,6 +17,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.unix;
     description = "Send commands to a running instance of xmonad";
+    mainProgram = "xmonadctl";
     homepage = "https://github.com/xmonad/xmonad-contrib";
     license = licenses.bsd3;
     maintainers = [ maintainers.ajgrf ];