diff options
| -rwxr-xr-x | resources/niri-session | 6 | ||||
| -rw-r--r-- | 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<dyn std::error::Error>> { 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<dyn std::error::Error>> { } 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([ |
