Merge branch 'xfce4' into 'master'

Port xfce4 and tidyup X11 config

See merge request redox-os/redox!2159
This commit is contained in:
Jeremy Soller 2026-05-21 11:13:39 -06:00
commit 79d8072276
15 changed files with 300 additions and 8 deletions

View File

@ -16,9 +16,9 @@ dbus = {}
gtk3 = {}
mate-common = {}
mesa-demos-x11 = {}
#firefox = {}
#webkitgtk3 = {} # not compiling
#xfce4-panel = {}
#xfwm4 = {}
xfce4-common = {}
x11-full = {}
zenity = {}
@ -59,6 +59,28 @@ requires_weak 10_dbus 10_xenv 20_audiod.service
nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11
"""
[[files]]
path = "/run/user/0"
data = ""
directory = true
mode = 0o700
[[files]]
path = "/home/root/.config/dconf"
data = ""
directory = true
[[files]]
path = "/home/root/Desktop"
data = ""
directory = true
[[files]]
path = "/usr/share/X11/xorg.conf.d"
data = ""
directory = true
[[files]]
path = "/usr/bin/orbital-x11"
mode = 0o755
@ -70,11 +92,12 @@ set -ex
# for ice authority and pixbuf
export HOME=/home/root
export XDG_DATA_DIRS=/usr/share
export XDG_RUNTIME_DIR=/run/user/0
export XDG_CONFIG_HOME=/home/root/.config
# Generate config file
WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))"
HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))"
mkdir -p /usr/share/X11/xorg.conf.d
cat > /usr/share/X11/xorg.conf.d/orbital.conf <<EOF
Section "Device"
Identifier "Configured Video Device"
@ -105,22 +128,40 @@ EOF
export DISPLAY=":0"
X "${DISPLAY}" &
sleep 1
exec dbus-launch --exit-with-x11 orbital-x11-session
exec dbus-launch --exit-with-x11 xfce4-x11-session
"""
[[files]]
path = "/usr/bin/orbital-x11-session"
path = "/usr/bin/mate-x11-session"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
gdk-pixbuf-query-loaders --update-cache
/usr/libexec/dconf-service &
xterm&
sleep 1
#zenity --info --text="running mate as $(id)!"
#exec marco
exec mate-session
"""
[[files]]
path = "/usr/bin/xfce4-x11-session"
mode = 0o755
data = """
#!/usr/bin/env bash
set -ex
gdk-pixbuf-query-loaders --update-cache
mate-session&
/usr/lib/xfce4/xfconf/xfconfd &
xterm&
#zenity --info --text="running xfce4 as $(id)!"
#exec xfwm4
exec xfce4-session
"""

View File

@ -22,6 +22,7 @@ mate-common = {}
redox-tests = {}
x11-minimal = {}
x11-full = {}
xfce4-common = {}
# Normal packages below

View File

@ -1,6 +1,7 @@
[package]
dependencies = [
"caja",
"dconf",
"marco",
"mate-control-center",
"mate-icon-theme",
@ -8,4 +9,5 @@ dependencies = [
"mate-session-manager",
"mate-settings-daemon",
"mate-terminal",
"mate-themes",
]

View File

@ -0,0 +1,10 @@
[package]
dependencies = [
"thunar",
"xfconf",
"xfdesktop",
"xfce4-session",
"xfce4-panel",
"xfce4-settings",
"xfwm4",
]

View File

@ -1,6 +1,7 @@
[source]
tar = "https://github.com/mate-desktop/mate-session-manager/releases/download/v1.28.0/mate-session-manager-1.28.0.tar.xz"
blake3 = "c76fd3064f4697180006cc2562a0ac55ddfa40b4029047f58c8dcc790606a9a6"
patches = ["redox.patch"]
script = """
autotools_recursive_regenerate
"""

View File

@ -0,0 +1,24 @@
diff -ruwN source/data/org.mate.session.gschema.xml.in source-new/data/org.mate.session.gschema.xml.in
--- source/data/org.mate.session.gschema.xml.in 2024-02-17 00:25:07.000000000 +0700
+++ source-new/data/org.mate.session.gschema.xml.in 2026-05-21 23:05:41.642620533 +0700
@@ -37,7 +37,7 @@
<description>List of applications that are part of the default session.</description>
</key>
<key name="required-components-list" type="as">
- <default>[ 'windowmanager', 'panel', 'filemanager', 'dock' ]</default>
+ <default>[ 'windowmanager', 'panel', 'filemanager' ]</default>
<summary>Required session components</summary>
<description>List of components that are required as part of the session. (Each element names a key under "/org/mate/desktop/session/required_components"). The Startup Applications preferences tool will not normally allow users to remove a required component from the session, and the session manager will automatically add the required components back to the session at login time if they do get removed.</description>
</key>
diff -ruwN source/mate-session/gsm-manager.c source-new/mate-session/gsm-manager.c
--- source/mate-session/gsm-manager.c 2024-02-17 00:25:07.000000000 +0700
+++ source-new/mate-session/gsm-manager.c 2026-05-21 21:13:01.539990071 +0700
@@ -70,7 +70,7 @@
#define GSM_MANAGER_DBUS_PATH "/org/gnome/SessionManager"
#define GSM_MANAGER_DBUS_NAME "org.gnome.SessionManager"
-#define GSM_MANAGER_PHASE_TIMEOUT 30 /* seconds */
+#define GSM_MANAGER_PHASE_TIMEOUT 5 /* seconds */
/* In the exit phase, all apps were already given the chance to inhibit the session end
* At that stage we don't want to wait much for apps to respond, we want to exit, and fast.

View File

@ -0,0 +1,10 @@
[source]
git = "https://github.com/mate-desktop/mate-themes"
shallow_clone = true
[build]
template = "custom"
script = """
mkdir -p ${COOKBOOK_STAGE}/usr/share/themes/
rsync -a ${COOKBOOK_SOURCE}/desktop-themes/ ${COOKBOOK_STAGE}/usr/share/themes/
"""

View File

@ -0,0 +1,15 @@
[source]
tar = "https://archive.xfce.org/src/xfce/exo/4.21/exo-4.21.0.tar.bz2"
[build]
dependencies = [
"atk",
"cairo",
"gdk-pixbuf",
"gettext",
"glib",
"gtk3",
"libxfce4ui",
"libxfce4util",
]
template = "configure"

View File

@ -0,0 +1,29 @@
[source]
tar = "https://archive.xfce.org/src/xfce/thunar/4.21/thunar-4.21.5.tar.xz"
[build]
dependencies = [
"atk",
"cairo",
"gdk-pixbuf",
"gettext",
"glib",
"gtk3",
"libice",
"libnotify",
"libx11",
"libxfce4ui",
"libxfce4util",
"pango",
"pcre2",
"vte",
"xfconf",
]
dev-dependencies = [
"libstdcxx"
]
template = "meson"
mesonflags = [
"-Dpolkit=disabled",
"-Dgudev=disabled",
"-Dintrospection=false"
]

View File

@ -1,6 +1,7 @@
[source]
tar = "https://archive.xfce.org/src/xfce/xfce4-panel/4.21/xfce4-panel-4.21.0.tar.xz"
blake3 = "59a8f55ba237a56ccd16869a28426fa3890c292164a4502dd07ddba45e0268ed"
patches = ["redox.patch"]
[build]
dependencies = [

View File

@ -0,0 +1,22 @@
diff --color -ruwN source/panel/panel-module.h source-new/panel/panel-module.h
--- source/panel/panel-module.h 2025-03-22 13:22:37.000000000 +0700
+++ source-new/panel/panel-module.h 2026-05-21 15:16:48.097953249 +0700
@@ -23,6 +23,7 @@
#include "libxfce4panel/xfce-panel-plugin-provider.h"
#include <gtk/gtk.h>
+#include <strings.h>
G_BEGIN_DECLS
diff --color -ruwN source/plugins/tasklist/tasklist-widget.h source-new/plugins/tasklist/tasklist-widget.h
--- source/plugins/tasklist/tasklist-widget.h 2025-03-22 13:22:37.000000000 +0700
+++ source-new/plugins/tasklist/tasklist-widget.h 2026-05-21 15:17:12.117347685 +0700
@@ -21,6 +21,7 @@
#include "libxfce4panel/libxfce4panel.h"
+#include <strings.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS

View File

@ -0,0 +1,23 @@
[source]
tar = "https://archive.xfce.org/src/xfce/xfce4-session/4.21/xfce4-session-4.21.1.tar.xz"
patches = [ "redox.patch" ]
[build]
dependencies = [
"atk",
"cairo",
"gdk-pixbuf",
"glib",
"gtk3",
"libice",
"libsm",
"libwnck3",
"libx11",
"libxfce4ui",
"libxfce4util",
"libxfce4windowing",
"pango",
"xfconf",
]
template = "meson"
mesonflags = [
]

View File

@ -0,0 +1,35 @@
diff --color -ruwN source/meson.build source-new/meson.build
--- source/meson.build 2025-12-29 23:51:03.000000000 +0700
+++ source-new/meson.build 2026-05-21 21:53:44.879480320 +0700
@@ -47,8 +47,6 @@
libxfce4windowing = dependency('libxfce4windowing-0', version: dependency_versions['libxfce4windowing'])
xfconf = dependency('libxfconf-0', version: dependency_versions['xfce4'])
-gdk_pixbuf_csource = find_program(gdk_pixbuf.get_variable(pkgconfig: 'gdk_pixbuf_csource'), required: true)
-
# Feature: 'x11'
x11_deps = []
x11_deps += dependency('gdk-x11-3.0', version: dependency_versions['gtk'], required: get_option('x11'))
diff --color -ruwN source/xfce4-session/meson.build source-new/xfce4-session/meson.build
--- source/xfce4-session/meson.build 2025-12-29 23:51:03.000000000 +0700
+++ source-new/xfce4-session/meson.build 2026-05-21 21:53:55.246584551 +0700
@@ -89,7 +89,7 @@
'xfsm-chooser-icon.h',
input: 'xfsm-chooser-icon.png',
output: 'xfsm-chooser-icon.h',
- command: [gdk_pixbuf_csource, '--static', '--raw', '--stream', '--name=xfsm_chooser_icon_data', '@INPUT@'],
+ command: ['gdk-pixbuf-csource', '--static', '--raw', '--stream', '--name=xfsm_chooser_icon_data', '@INPUT@'],
capture: true,
)
diff --color -ruwN source/xfce4-session/xfsm-manager.h source-new/xfce4-session/xfsm-manager.h
--- source/xfce4-session/xfsm-manager.h 2025-12-29 23:51:03.000000000 +0700
+++ source-new/xfce4-session/xfsm-manager.h 2026-05-21 21:54:38.971024148 +0700
@@ -26,6 +26,7 @@
#include <glib-object.h>
#include <libxfce4util/libxfce4util.h>
#include <xfconf/xfconf.h>
+#include <strings.h>
#include "xfsm-client.h"
#include "xfsm-global.h"

View File

@ -0,0 +1,25 @@
[source]
tar = "https://archive.xfce.org/src/xfce/xfce4-settings/4.21/xfce4-settings-4.21.1.tar.xz"
[build]
dependencies = [
"atk",
"cairo",
"gdk-pixbuf",
"glib",
"gtk3",
"libice",
"libsm",
"libwnck3",
"libx11",
"libxfce4ui",
"libxfce4util",
"libxfce4windowing",
"pango",
"garcon",
"xfconf",
]
template = "meson"
mesonflags = [
"-Dwayland=disabled"
]

View File

@ -0,0 +1,53 @@
[source]
tar = "https://archive.xfce.org/src/xfce/xfdesktop/4.20/xfdesktop-4.20.2.tar.bz2"
[build]
dependencies = [
"atk",
"cairo",
"expat",
"fontconfig",
"freetype2",
"fribidi",
"garcon",
"gdk-pixbuf",
"gettext",
"glib",
"gtk3",
"harfbuzz",
"libepoxy",
"libffi",
"libiconv",
"libjpeg",
"libpng",
"libpthread-stubs",
"libsm",
"libnotify",
"libwnck3",
"libx11",
"libxau",
"libxcb",
"libxext",
"libxfce4ui",
"libxfce4util",
"libxfce4windowing",
"libxfixes",
"libxft",
"libxi",
"libxrandr",
"libxrender",
"libxxf86vm",
"mesa-x11",
"pango",
"pcre2",
"pixman",
"shared-mime-info",
"x11proto",
"vte",
"xfconf",
"zlib",
"libexo",
"libyaml",
]
template = "meson"
mesonflags = [
]