From 20e7e88e073e415bfd13de4037628a1d6813dccd Mon Sep 17 00:00:00 2001 From: Val Packett Date: Fri, 5 Dec 2025 05:00:37 -0300 Subject: [PATCH] Update sidebus (now reverse-client to a session bus in the guest) --- flake.lock | 6 +++--- flake.nix | 2 ++ nixosModules/default.nix | 27 +++++++++++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index 818e0f7..0815175 100644 --- a/flake.lock +++ b/flake.lock @@ -162,10 +162,10 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1764921491, - "narHash": "sha256-bGBcDZCNu9Nq0rKnOQ5SmHMm5j9dPjggSVMI5V5XlJg=", + "lastModified": 1764933524, + "narHash": "sha256-yland30CesTKgckWiWNMasfotzTspQzVaDqoKbrC4Fo=", "ref": "main", - "rev": "ea34b7b08c13ca1e189a6282d0d923181db6cfb0", + "rev": "52c3ea7cd36c816e00a6057e91cd945afda177d0", "shallow": true, "type": "git", "url": "https://git.clan.lol/clan/sidebus" diff --git a/flake.nix b/flake.nix index 8e1d432..fa88918 100644 --- a/flake.nix +++ b/flake.nix @@ -90,6 +90,8 @@ muvm = self.packages.${system}.muvm; sidebus-broker = sidebus.packages.${system}.sidebus-broker; }; + + sidebus-agent = sidebus.packages.${system}.sidebus-agent; }; devShells.default = pkgs.callPackage ./devShells { diff --git a/nixosModules/default.nix b/nixosModules/default.nix index 5866fb0..d6cf925 100644 --- a/nixosModules/default.nix +++ b/nixosModules/default.nix @@ -174,7 +174,7 @@ in { PassEnvironment = ["TERM" "MESA_LOADER_DRIVER_OVERRIDE" "MUVM_REMOTE_CONFIG"]; # "KRUN_CONFIG"]; Environment = [ "WAYLAND_DISPLAY=wayland-1" - "DBUS_SESSION_BUS_ADDRESS=unix:path=${runtimeDir}/sidebus.sock" + "DBUS_SESSION_BUS_ADDRESS=unix:path=${runtimeDir}/dbus.sock" "PATH=/run/current-system/sw/bin" ]; User = "appvm"; @@ -236,28 +236,35 @@ in { }; }; - systemd.sockets.sidebus-agent = { + systemd.sockets.session-bus = { enable = true; - description = "D-Bus cross-domain proxy socket"; + description = "D-Bus session bus socket"; wantedBy = ["microvm.target"]; - partOf = ["sidebus-agent.service"]; - listenStreams = [ "${runtimeDir}/sidebus.sock" ]; + partOf = ["session-bus.service"]; + listenStreams = [ "${runtimeDir}/dbus.sock" ]; socketConfig = { SocketUser = "appvm"; SocketGroup = "appvm"; }; }; - systemd.services.sidebus-agent = { + systemd.services.session-bus = { enable = true; - description = "D-Bus cross-domain proxy"; - requires = ["sidebus-agent.socket"]; + description = "D-Bus session bus"; + requires = ["session-bus.socket"]; serviceConfig = { - ImportCredential = "sidebus.port"; - ExecStart = "${sidebus.packages.${system}.sidebus-agent}/bin/sidebus-agent"; + ImportCredential = "sidebus.port"; # inherited by the activated agent.. + ExecStart = "${pkgs.dbus}/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --syslog-only"; # no systemd activation, we don't run a *session* systemd User = "appvm"; Group = "appvm"; }; }; + services.dbus.packages = [ + (pkgs.writeTextDir "/share/dbus-1/services/org.freedesktop.portal.Desktop.service" '' + [D-BUS Service] + Name=org.freedesktop.portal.Desktop + Exec=${sidebus.packages.${system}.sidebus-agent}/bin/sidebus-agent + '') + ]; hardware.graphics.enable = true; hardware.graphics.package = self.packages.${system}.mesa;