This commit is contained in:
Bobby Rong 2024-12-17 08:36:52 +08:00 committed by GitHub
commit d8890db135
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 360 additions and 115 deletions

View file

@ -186,6 +186,11 @@
- Cinnamon has been updated to 6.4, please check the [upstream announcement](https://www.linuxmint.com/rel_xia_whatsnew.php) for more details.
- Following [changes in Mint 22](https://github.com/linuxmint/mintupgrade/commit/f239cde908288b8c250f938e7311c7ffbc16bd59) we are no longer overriding Qt application styles. You can still restore the previous default with `qt.style = "gtk2"` and `qt.platformTheme = "gtk2"`.
- Xfce has been updated to 4.20, please check the [upstream feature tour](https://www.xfce.org/about/tour420) for more details.
- Wayland session is still [experimental](https://wiki.xfce.org/releng/wayland_roadmap) and requires opt-in using `enableWaylandSession` option.
- Overriding Wayland compositor is possible using `enableWaylandSession` option, but you might need to take care [`xfce4-session`](https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/49), [`dbus-update-activation-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L234) and [`systemctl --user import-environment`](https://github.com/labwc/labwc/blob/eaf11face68ee1f1bcc7ce1498304ca8c108c8ba/src/config/session.c#L239) on startup.
- For new Xfce installations, default panel layout has [changed](https://gitlab.xfce.org/xfce/xfce4-panel/-/merge_requests/158/diffs) to not include external panel plugins by default. You can still add them yourself using the "Panel Preferences" dialog.
- `networking.wireguard` now has an optional networkd backend. It is enabled by default when `networking.useNetworkd` is enabled, and it can be enabled alongside scripted networking with `networking.wireguard.useNetworkd`. Some `networking.wireguard` options have slightly different behavior with the networkd and script-based backends, documented in each option.
- `services.avahi.ipv6` now defaults to true.

View file

@ -69,6 +69,22 @@ in
default = true;
description = "Enable the XFCE screensaver.";
};
enableWaylandSession = mkEnableOption "the experimental Xfce Wayland session";
waylandSessionCompositor = mkOption {
type = lib.types.str;
default = "";
example = "wayfire";
description = ''
Command line to run a Wayland compositor, defaults to `labwc --startup`
if not specified. Note that `xfce4-session` will be passed to it as an
argument, see `startxfce4 --help` for details.
Some compositors do not have an option equivalent to labwc's `--startup`
and you might have to add xfce4-session somewhere in their configurations.
'';
};
};
environment.xfce.excludePackages = mkOption {
@ -134,6 +150,8 @@ in
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-gtk2;
programs.xfconf.enable = true;
programs.thunar.enable = true;
programs.labwc.enable = mkDefault (cfg.enableWaylandSession && (
cfg.waylandSessionCompositor == "" || lib.substring 0 5 cfg.waylandSessionCompositor == "labwc"));
environment.pathsToLink = [
"/share/xfce4"
@ -144,6 +162,7 @@ in
services.xserver.desktopManager.session = [{
name = "xfce";
prettyName = "Xfce Session";
desktopNames = [ "XFCE" ];
bgSupport = !cfg.noDesktop;
start = ''
@ -152,6 +171,22 @@ in
'';
}];
# Copied from https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.19.2/xfce-wayland.desktop.in
# to maintain consistent l10n state with X11 session file and to support the waylandSessionCompositor option.
services.displayManager.sessionPackages = optionals cfg.enableWaylandSession [
((pkgs.writeTextDir "share/wayland-sessions/xfce-wayland.desktop" ''
[Desktop Entry]
Version=1.0
Name=Xfce Session (Wayland)
Comment=Use this session to run Xfce as your desktop environment
Exec=startxfce4 --wayland ${cfg.waylandSessionCompositor}
Icon=
Type=Application
DesktopNames=XFCE
Keywords=xfce;wayland;desktop;environment;session;
'').overrideAttrs (_: { passthru.providedSessions = [ "xfce-wayland" ]; }))
];
services.xserver.updateDbusEnvironment = true;
programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];

View file

@ -279,6 +279,11 @@ in
lib.mapCartesianProduct
({dm, wm}: let
sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}";
prettyName =
if dm.name != "none" then
"${dm.prettyName or dm.name}${optionalString (wm.name != "none") (" (" + (wm.prettyName or wm.name) + ")")}"
else
(wm.prettyName or wm.name);
script = xsession dm wm;
desktopNames = if dm ? desktopNames
then lib.concatStringsSep ";" dm.desktopNames
@ -297,7 +302,7 @@ in
Type=XSession
TryExec=${script}
Exec=${script}
Name=${sessionName}
Name=${prettyName}
DesktopNames=${desktopNames}
'';
} // {

View file

@ -1164,6 +1164,7 @@ in {
xandikos = handleTest ./xandikos.nix {};
xautolock = handleTest ./xautolock.nix {};
xfce = handleTest ./xfce.nix {};
xfce-wayland = handleTest ./xfce-wayland.nix {};
xmonad = handleTest ./xmonad.nix {};
xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
xpadneo = handleTest ./xpadneo.nix {};

View file

@ -0,0 +1,73 @@
import ./make-test-python.nix (
{ pkgs, ... }:
{
name = "xfce-wayland";
nodes.machine =
{ pkgs, ... }:
{
imports = [
./common/user-account.nix
];
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.displayManager = {
defaultSession = "xfce-wayland";
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.xfce.enable = true;
services.xserver.desktopManager.xfce.enableWaylandSession = true;
# https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/28
services.xserver.desktopManager.xfce.enableScreensaver = false;
environment.systemPackages = [ pkgs.wlrctl ];
};
enableOCR = true;
testScript =
{ nodes, ... }:
let
user = nodes.machine.users.users.alice;
rtdir = "XDG_RUNTIME_DIR=/run/user/${toString user.uid}";
in
''
machine.wait_for_unit("display-manager.service")
with subtest("Wait for Wayland server"):
machine.wait_for_file("/run/user/${toString user.uid}/wayland-0")
with subtest("Check that logging in has given the user ownership of devices"):
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Check if Xfce components actually start"):
for p in ["labwc", "xfdesktop", "xfce4-notifyd", "xfconfd", "xfce4-panel"]:
machine.wait_until_succeeds(f"pgrep {p}")
with subtest("Open Xfce terminal"):
machine.succeed("su - ${user.name} -c '${rtdir} xfce4-terminal >&2 &'")
machine.wait_until_succeeds("su - ${user.name} -c '${rtdir} wlrctl toplevel list | grep xfce4-terminal'")
with subtest("Open Thunar"):
machine.succeed("su - ${user.name} -c '${rtdir} thunar >&2 &'")
machine.wait_until_succeeds("su - ${user.name} -c '${rtdir} wlrctl toplevel list | grep Thunar'")
machine.wait_for_text('(Pictures|Public|Templates|Videos)')
with subtest("Check if various environment variables are set"):
cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf xfce4-panel)/environ"
machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
machine.succeed(f"{cmd} | grep 'XFCE4_SESSION_COMPOSITOR' | grep 'labwc'")
machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'XFCE'")
with subtest("Check if any coredumps are found"):
machine.succeed("(coredumpctl --json=short 2>&1 || true) | grep 'No coredumps found'")
machine.sleep(10)
machine.screenshot("screen")
'';
}
)

View file

@ -45,6 +45,11 @@ stdenv.mkDerivation rec {
"--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook3 to wrap automatically
];
postPatch = ''
# https://github.com/Xubuntu/lightdm-gtk-greeter/pull/178
cp data/badges/xfce{,-wayland}_badge-symbolic.svg
'';
preConfigure = ''
configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" )
'';

View file

@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
accountsservice,
alsa-lib,
budgie-screensaver,
@ -60,7 +61,16 @@ stdenv.mkDerivation (finalAttrs: {
"man"
];
patches = [ ./plugins.patch ];
patches = [
./plugins.patch
# Adapt to libxfce4windowing v4.19.8
# https://github.com/BuddiesOfBudgie/budgie-desktop/pull/627
(fetchpatch {
url = "https://github.com/BuddiesOfBudgie/budgie-desktop/commit/ba8170b4f3108f9de28331b6a98a9d92bb0ed4de.patch";
hash = "sha256-T//1/NmaV81j0jiIYK7vEp8sgKCgF2i10D+Rk9qAAeE=";
})
];
nativeBuildInputs = [
docbook-xsl-nons

View file

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, meson
, ninja
, pkg-config
@ -22,6 +23,15 @@ stdenv.mkDerivation rec {
sha256 = "+MZQ3FThuRFEfoARsF09B7POwytS5RgTs9zYzIHVtfg=";
};
patches = [
# Fix label styles for xfdesktop 4.19
# https://github.com/shimmerproject/Greybird/pull/338
(fetchpatch {
url = "https://github.com/shimmerproject/Greybird/commit/7e4507d7713b2aaf41f8cfef2a1a9e214a4d8b6f.patch";
hash = "sha256-awXM2RgFIK/Ik5cJSy4IQYl+ic+XGQV0YwbL3SPclzQ=";
})
];
nativeBuildInputs = [
meson
ninja

View file

@ -4,9 +4,9 @@
mkXfceDerivation {
category = "xfce";
pname = "exo";
version = "4.18.0";
version = "4.20.0";
sha256 = "sha256-oWlKeUD1v2qqb8vY+2Cu9VJ1iThFPVboP12m/ob5KSQ=";
sha256 = "sha256-mlGsFaKy96eEAYgYYqtEI4naq5ZSEe3V7nsWGAEucn0=";
nativeBuildInputs = [
libxslt
@ -18,13 +18,9 @@ mkXfceDerivation {
glib
libxfce4ui
libxfce4util
(perl.withPackages(ps: with ps; [ URI ])) # for $out/lib/xfce4/exo/exo-compose-mail
];
# Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
meta = with lib; {
description = "Application library for Xfce";
maintainers = with maintainers; [ ] ++ teams.xfce.members;

View file

@ -3,9 +3,9 @@
mkXfceDerivation {
category = "xfce";
pname = "garcon";
version = "4.18.2";
version = "4.20.0";
sha256 = "sha256-J9f9MzZ1I9XIyvwuyINkvXDuXY6/MkjlH2Ct4yaEXsY=";
sha256 = "sha256-MeZkDb2QgGMaloO6Nwlj9JmZByepd6ERqpAWqrVv1xw=";
nativeBuildInputs = [ gobject-introspection ];

View file

@ -1,16 +1,45 @@
{ lib, mkXfceDerivation, gobject-introspection, vala, gtk3, libICE, libSM
, libstartup_notification, libgtop, libepoxy, libxfce4util, xfconf }:
{
mkXfceDerivation,
lib,
gobject-introspection,
vala,
libICE,
libSM,
libepoxy,
libgtop,
libgudev,
libstartup_notification,
xfconf,
gtk3,
libxfce4util,
}:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4ui";
version = "4.18.6";
version = "4.20.0";
sha256 = "sha256-ojmI745tKLHv26uL1qS/v6hAcLmAV/WF2NAtAhQRUkg=";
sha256 = "sha256-M+OapPHQ/WxlkUzHPx+ELstVyGoZanCxCL0N8hDWSN8=";
nativeBuildInputs = [ gobject-introspection vala ];
buildInputs = [ gtk3 libstartup_notification libgtop libepoxy xfconf ];
propagatedBuildInputs = [ libxfce4util libICE libSM ];
nativeBuildInputs = [
gobject-introspection
vala
];
buildInputs = [
libICE
libSM
libepoxy
libgtop
libgudev
libstartup_notification
xfconf
];
propagatedBuildInputs = [
gtk3
libxfce4util
];
configureFlags = [
"--with-vendor-info=NixOS"
@ -19,7 +48,10 @@ mkXfceDerivation {
meta = with lib; {
description = "Widgets library for Xfce";
mainProgram = "xfce4-about";
license = with licenses; [ lgpl2Plus lgpl21Plus ];
license = with licenses; [
lgpl2Plus
lgpl21Plus
];
maintainers = with maintainers; [ ] ++ teams.xfce.members;
};
}

View file

@ -1,13 +1,26 @@
{ lib, mkXfceDerivation, gobject-introspection, vala }:
{
mkXfceDerivation,
lib,
gobject-introspection,
vala,
glib,
}:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4util";
version = "4.18.2";
version = "4.20.0";
sha256 = "sha256-JQ6biE1gxtB6+LWxRGfbUhgJhhITGhLr+8BxFW4/8SU=";
sha256 = "sha256-0qbJSCXHsVz3XILHICFhciyz92LgMZiR7XFLAESHRGQ=";
nativeBuildInputs = [ gobject-introspection vala ];
nativeBuildInputs = [
gobject-introspection
vala
];
propagatedBuildInputs = [
glib
];
meta = with lib; {
description = "Extension library for Xfce";

View file

@ -4,18 +4,21 @@
, wayland-scanner
, glib
, gtk3
, libdisplay-info
, libwnck
, libX11
, libXrandr
, wayland
, wayland-protocols
, wlr-protocols
}:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4windowing";
version = "4.19.3";
version = "4.20.0";
sha256 = "sha256-nsobRyGeagUq1WHzYBq6vd9g5A65KEQC4cX+m7w0pqg=";
sha256 = "sha256-t/GbsGipc0Ts2tZJaDJBuDF+9XMp8+Trq78NPAuHEpU=";
nativeBuildInputs = [
gobject-introspection
@ -25,9 +28,12 @@ mkXfceDerivation {
buildInputs = [
glib
gtk3
libdisplay-info
libwnck
libX11
libXrandr
wayland
wayland-protocols
wlr-protocols
];

View file

@ -3,11 +3,11 @@
mkXfceDerivation {
category = "xfce";
pname = "thunar-volman";
version = "4.18.0";
version = "4.20.0";
buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ];
sha256 = "sha256-NRVoakU8jTCJVe+iyJQwW1xPti2vjd/8n8CYrIYGII0=";
sha256 = "sha256-XIVs/vRwy3QJQW/U7eLBvGdzplWlhdxn3f1lyTQsmpE=";
odd-unstable = false;

View file

@ -23,9 +23,9 @@
let unwrapped = mkXfceDerivation {
category = "xfce";
pname = "thunar";
version = "4.18.11";
version = "4.20.0";
sha256 = "sha256-B417gkrU9EG4ZsEdeuH8P2v4FqYUiTwqgKcO4cSi4SI=";
sha256 = "sha256-TCroFesFD0IKGdfuootd1BwEsWVECE2XQfUovJqPEh0=";
nativeBuildInputs = [
docbook_xsl

View file

@ -19,9 +19,9 @@
mkXfceDerivation {
category = "xfce";
pname = "tumbler";
version = "4.18.2";
version = "4.20.0";
sha256 = "sha256-thioE0q2qnV4weJFPz8OWoHIRuUcXnQEviwBtCWsSV4=";
sha256 = "sha256-GmEMdG8Ikd4Tq/1ntCHiN0S7ehUXqzMX7OtXsycLd6E=";
buildInputs = [
libxfce4util

View file

@ -3,9 +3,9 @@
mkXfceDerivation {
category = "xfce";
pname = "xfce4-appfinder";
version = "4.18.1";
version = "4.20.0";
sha256 = "sha256-CZEX1PzFsVt72Fkb4+5PiZjAcDisvYnbzFGFXjFL4sc=";
sha256 = "sha256-HovQnkfv5BOsRPowgMkMEWQmESkivVK0Xb7I15ZaOMc=";
nativeBuildInputs = [ exo ];
buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];

View file

@ -1,27 +1,48 @@
{ lib
, mkXfceDerivation
, autoreconfHook
, libxslt
, docbook_xsl
, autoconf
, automake
, glib
, gtk-doc
, intltool
, libtool
{
stdenv,
lib,
fetchFromGitLab,
autoreconfHook,
docbook_xsl,
libxslt,
meson,
pkg-config,
wrapGAppsHook3,
python3,
autoconf,
automake,
glib,
gtk-doc,
libtool,
intltool,
gitUpdater,
}:
mkXfceDerivation {
category = "xfce";
stdenv.mkDerivation (finalAttrs: {
pname = "xfce4-dev-tools";
version = "4.18.1";
version = "4.20.0";
sha256 = "sha256-JUyFlifNVhSnIMaI9qmgCtGIgkpmzYybMfuhPgJiDOg=";
src = fetchFromGitLab {
domain = "gitlab.xfce.org";
owner = "xfce";
repo = "xfce4-dev-tools";
rev = "xfce4-dev-tools-${finalAttrs.version}";
hash = "sha256-eUfNa/9ksLCKtVwBRtHaVl7Yl95tukUaDdoLNfeR+Ew=";
};
nativeBuildInputs = [
autoreconfHook
libxslt
docbook_xsl
libxslt # for xsltproc
# x-d-t itself is not a meson project, but the xfce-do-release script wants
# `meson rewrite kwargs`, thus this is checked by `AC_CHECK_PROGS`.
meson
pkg-config
wrapGAppsHook3
];
buildInputs = [
python3 # for xdt-gen-visibility
];
propagatedBuildInputs = [
@ -33,10 +54,23 @@ mkXfceDerivation {
libtool
];
dontUseMesonConfigure = true;
configureFlags = [ "--enable-maintainer-mode" ];
enableParallelBuilding = true;
setupHook = ./setup-hook.sh;
meta = with lib; {
description = "Autoconf macros and scripts to augment app build systems";
maintainers = with maintainers; [ ] ++ teams.xfce.members;
passthru.updateScript = gitUpdater {
rev-prefix = "xfce4-dev-tools-";
odd-unstable = true;
};
}
meta = with lib; {
homepage = "https://gitlab.xfce.org/xfce/xfce4-dev-tools";
description = "Autoconf macros and scripts to augment app build systems";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ] ++ teams.xfce.members;
platforms = platforms.linux;
};
})

View file

@ -1,24 +1,28 @@
{ lib
, mkXfceDerivation
, cairo
, exo
, garcon
, gobject-introspection
, gtk-layer-shell
, gtk3
, libdbusmenu-gtk3
, libwnck
, libxfce4ui
, libxfce4util
, libxfce4windowing
, tzdata
, vala
, wayland
, xfconf
}:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-panel";
version = "4.18.6";
version = "4.20.0";
sha256 = "sha256-eQLz/LJIx2WkzcSLytRdJdhtGv0woT48mdqG7eHB0U4=";
sha256 = "sha256-oB7mlU7RZtRuCQAKgv5I7ZRRu703Za7Ki9+AkHSELRE=";
nativeBuildInputs = [
gobject-introspection
@ -26,13 +30,17 @@ mkXfceDerivation {
];
buildInputs = [
cairo
exo
garcon
gtk-layer-shell
libdbusmenu-gtk3
libxfce4ui
libxfce4windowing
libwnck
xfconf
tzdata
wayland
xfconf
];
propagatedBuildInputs = [
@ -40,8 +48,6 @@ mkXfceDerivation {
libxfce4util
];
patches = [ ./xfce4-panel-datadir.patch ];
postPatch = ''
substituteInPlace plugins/clock/clock.c \
--replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"

View file

@ -1,24 +0,0 @@
diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c
index 529fe85..8c792b7 100644
--- a/panel/panel-module-factory.c
+++ b/panel/panel-module-factory.c
@@ -39,6 +39,7 @@
#include <panel/panel-module.h>
#include <panel/panel-module-factory.h>
+#define DATADIR "/run/current-system/sw/share/xfce4"
#define PANEL_PLUGINS_DATA_DIR (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
#define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins")
diff --git a/panel/panel-module.c b/panel/panel-module.c
index ba39320..519440b 100644
--- a/panel/panel-module.c
+++ b/panel/panel-module.c
@@ -35,6 +35,7 @@
#include <panel/panel-plugin-external-wrapper.h>
#include <panel/panel-plugin-external-46.h>
+#define LIBDIR "/run/current-system/sw/lib/xfce4"
#define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
#define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins")

View file

@ -1,10 +1,14 @@
{ lib
, mkXfceDerivation
, wayland-scanner
, gtk3
, libnotify
, libxfce4ui
, libxfce4util
, polkit
, upower
, wayland-protocols
, wlr-protocols
, xfconf
, xfce4-panel
}:
@ -12,16 +16,23 @@
mkXfceDerivation {
category = "xfce";
pname = "xfce4-power-manager";
version = "4.18.4";
version = "4.20.0";
sha256 = "sha256-aybY+B8VC/XS6FO3XRpYuJd9Atr9Tc/Uo45q9fh3YLE=";
sha256 = "sha256-qKUdrr+giLzNemhT3EQsOKTSiIx50NakmK14Ak7ZOCE=";
nativeBuildInputs = [
wayland-scanner
];
buildInputs = [
gtk3
libnotify
libxfce4ui
libxfce4util
polkit
upower
wayland-protocols
wlr-protocols
xfconf
xfce4-panel
];
@ -29,8 +40,8 @@ mkXfceDerivation {
# using /run/current-system/sw/bin instead of nix store path prevents polkit permission errors on
# rebuild. See https://github.com/NixOS/nixpkgs/issues/77485
postPatch = ''
substituteInPlace src/org.xfce.power.policy.in2 --replace-fail "@sbindir@" "/run/current-system/sw/bin"
substituteInPlace common/xfpm-brightness.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\""
substituteInPlace src/org.xfce.power.policy.in.in --replace-fail "@sbindir@" "/run/current-system/sw/bin"
substituteInPlace common/xfpm-brightness-polkit.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\""
substituteInPlace src/xfpm-suspend.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\""
'';

View file

@ -4,9 +4,11 @@
, exo
, libxfce4util
, libxfce4ui
, libxfce4windowing
, xfconf
, iceauth
, gtk3
, gtk-layer-shell
, glib
, libwnck
, xfce4-session
@ -15,23 +17,28 @@
mkXfceDerivation {
category = "xfce";
pname = "xfce4-session";
version = "4.18.4";
version = "4.20.0";
sha256 = "sha256-YxIHxb8mRggHLJ9TQ+KGb9qjt+DMZrxMn+oFuFRL8GI=";
sha256 = "sha256-mn3ky1NzrpQZRkhc605mj+GFhbFq26eW59YKUfnX9X8=";
buildInputs = [
exo
gtk3
gtk-layer-shell
glib
libxfce4ui
libxfce4util
libxfce4windowing
libwnck
xfconf
polkit
iceauth
];
configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ];
configureFlags = [
"--with-xsession-prefix=${placeholder "out"}"
"--with-wayland-session-prefix=${placeholder "out"}"
];
passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";

View file

@ -1,8 +1,10 @@
{ lib
, mkXfceDerivation
, wayland-scanner
, exo
, garcon
, gtk3
, gtk-layer-shell
, glib
, libnotify
, libxfce4ui
@ -12,6 +14,7 @@
# Disabled by default on upstream and actually causes issues:
# https://gitlab.xfce.org/xfce/xfce4-settings/-/issues/222
, withUpower ? false
, wlr-protocols
, xfconf
, xf86inputlibinput
, colord
@ -21,19 +24,25 @@
mkXfceDerivation {
category = "xfce";
pname = "xfce4-settings";
version = "4.18.6";
version = "4.20.0";
sha256 = "sha256-xiu26B3dbWu+/AtF/iUC6Wo2U5ZZyzN9RfdbBaQRJ1M=";
sha256 = "sha256-0fMuAucyxLr2VzQqAB0CL+HgkHNJctiVNZmUmTNzaPc=";
nativeBuildInputs = [
wayland-scanner
];
buildInputs = [
exo
garcon
glib
gtk3
gtk-layer-shell
libnotify
libxfce4ui
libxfce4util
libxklavier
wlr-protocols
xf86inputlibinput
xfconf
]

View file

@ -8,9 +8,9 @@
mkXfceDerivation {
category = "xfce";
pname = "xfconf";
version = "4.18.3";
version = "4.20.0";
sha256 = "sha256-Iu/LHyk/lOvu8uJuJRDxIkabiX0vZB4H99vVKRiugVo=";
sha256 = "sha256-U+Sk7ubBr1ZD1GLQXlxrx0NQdhV/WpVBbnLcc94Tjcw=";
nativeBuildInputs = [ gobject-introspection vala ];

View file

@ -1,21 +1,37 @@
{ lib, mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck, xfconf, libnotify, garcon, thunar }:
{
lib,
mkXfceDerivation,
exo,
gtk3,
libxfce4ui,
libxfce4util,
libxfce4windowing,
libyaml,
xfconf,
libnotify,
garcon,
gtk-layer-shell,
thunar,
}:
mkXfceDerivation {
category = "xfce";
pname = "xfdesktop";
version = "4.18.1";
version = "4.20.0";
sha256 = "sha256-33G7X5kA3MCNJ9Aq9ZCafP0Qm/46iUmLFB8clhKwDz8=";
sha256 = "sha256-80g3lk1TkQI0fbYf2nXs36TrPlaGTHgH6k/TGOzRd3w=";
buildInputs = [
exo
gtk3
libxfce4ui
libxfce4util
libwnck
libxfce4windowing
libyaml
xfconf
libnotify
garcon
gtk-layer-shell
thunar
];

View file

@ -5,9 +5,9 @@
mkXfceDerivation {
category = "xfce";
pname = "xfwm4";
version = "4.18.0";
version = "4.20.0";
sha256 = "sha256-nTPgxC0XMBJ48lPCeQgCvWWK1/2ZIoQOYsMeaxDpE1c=";
sha256 = "sha256-5UZQrAH0oz+G+7cvXCLDJ4GSXNJcyl4Ap9umb7h0f5Q=";
nativeBuildInputs = [ exo librsvg ];

View file

@ -61,11 +61,7 @@ makeScopeWithSplicing' {
xfce4-appfinder = callPackage ./core/xfce4-appfinder { };
xfce4-dev-tools = callPackage ./core/xfce4-dev-tools {
mkXfceDerivation = self.mkXfceDerivation.override {
xfce4-dev-tools = null;
};
};
xfce4-dev-tools = callPackage ./core/xfce4-dev-tools { };
#### APPLICATIONS

View file

@ -3,32 +3,33 @@
, cairo
, glib
, gtk3
, gtk-layer-shell
, libX11
, libxfce4ui
, libxfce4util
, xfce4-panel
, libwnck
, libxfce4windowing
}:
mkXfceDerivation {
category = "panel-plugins";
pname = "xfce4-docklike-plugin";
version = "0.4.2";
sha256 = "sha256-M/V8cnEU/nSEDjQ3k8fWiklF5OuNg3uzzJMHBSZBiLU=";
version = "0.4.2-unstable-2024-11-04";
rev = "1154bf1c9f291d5699663910d5aac71bb3ab2227";
sha256 = "sha256-uno3qNyuesK/hJMdAxHZS6XMysr7ySOgJ5ACXGcIWFs=";
buildInputs = [
cairo
glib
gtk3
gtk-layer-shell
libX11
libxfce4ui
libxfce4util
xfce4-panel
libwnck
libxfce4windowing
];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
meta = with lib; {
homepage = "https://docs.xfce.org/panel-plugins/xfce4-docklike-plugin/start";
description = "Modern, minimalist taskbar for Xfce";

View file

@ -7,6 +7,7 @@
, libnotify
, libxfce4ui
, libxfce4util
, libxfce4windowing
, xfce4-panel
, xfconf
, keybinder3
@ -16,12 +17,8 @@
mkXfceDerivation {
category = "panel-plugins";
pname = "xfce4-pulseaudio-plugin";
version = "0.4.8";
sha256 = "sha256-7vcjARm0O+/hVNFzOpxcgAnqD+wRNg5/eqXLcq4t/iU=";
postPatch = ''
substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0
'';
version = "0.4.9";
sha256 = "sha256-bJp4HicAFPuRATDHus0DfJFy1c6gw6Tkpd2UN7SXqsI=";
buildInputs = [
exo
@ -33,6 +30,7 @@ mkXfceDerivation {
libpulseaudio
libxfce4ui
libxfce4util
libxfce4windowing
xfce4-panel
xfconf
];