summaryrefslogtreecommitdiff
path: root/src/os/dbus.zig
blob: 99824db71a3b919221ed0076ecb913a01ad875e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const std = @import("std");
const builtin = @import("builtin");

/// Returns true if the program was launched by D-Bus activation.
///
/// On Linux GTK, this returns true if the program was launched using D-Bus
/// activation. It will return false if Ghostty was launched any other way.
///
/// For other platforms and app runtimes, this returns false.
pub fn launchedByDbusActivation() bool {
    return switch (builtin.os.tag) {
        // On Linux, D-Bus activation sets `DBUS_STARTER_ADDRESS` and
        // `DBUS_STARTER_BUS_TYPE`. If these environment variables are present
        // (no matter the value) we were launched by D-Bus activation.
        .linux => std.posix.getenv("DBUS_STARTER_ADDRESS") != null and
            std.posix.getenv("DBUS_STARTER_BUS_TYPE") != null,

        // No other system supports D-Bus so always return false.
        else => false,
    };
}