From 9f1b4ee2996bc75ba521e9d80f001c98e379b231 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 20 Feb 2024 13:40:09 +0400 Subject: Set XDG_CURRENT_DESKTOP and XDG_SESSION_TYPE from niri itself --- resources/niri-session | 6 ------ src/main.rs | 13 ++++++++++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/resources/niri-session b/resources/niri-session index fb3121d8..85f6991f 100755 --- a/resources/niri-session +++ b/resources/niri-session @@ -20,12 +20,6 @@ fi # Reset failed state of all user units. systemctl --user reset-failed -# Set the current desktop for xdg-desktop-portal. -export XDG_CURRENT_DESKTOP=niri - -# Ensure the session type is set to Wayland for xdg-autostart apps. -export XDG_SESSION_TYPE=wayland - # Import the login manager environment. systemctl --user import-environment diff --git a/src/main.rs b/src/main.rs index dc491cb8..275d747b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -61,6 +61,11 @@ fn main() -> Result<(), Box> { debug!("running as a session but WAYLAND_DISPLAY is set, removing it"); env::remove_var("WAYLAND_DISPLAY"); } + + // Set the current desktop for xdg-desktop-portal. + env::set_var("XDG_CURRENT_DESKTOP", "niri"); + // Ensure the session type is set to Wayland for xdg-autostart and Qt apps. + env::set_var("XDG_SESSION_TYPE", "wayland"); } let _client = tracy_client::Client::start(); @@ -236,7 +241,13 @@ fn main() -> Result<(), Box> { } fn import_environment() { - let variables = ["WAYLAND_DISPLAY", niri_ipc::SOCKET_PATH_ENV].join(" "); + let variables = [ + "WAYLAND_DISPLAY", + "XDG_CURRENT_DESKTOP", + "XDG_SESSION_TYPE", + niri_ipc::SOCKET_PATH_ENV, + ] + .join(" "); let rv = Command::new("/bin/sh") .args([ -- cgit