mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-25 13:16:11 +03:00

Related to #7433 This extracts our "launched from desktop" logic into a config option. The default value is detection using the same logic as before, but now this can be overridden by the user. This also adds the systemd and dbus activation sources from #7433. There are a number of reasons why we decided to do this: 1. It automatically gets us caching since the configuration is only loaded once (per reload, a rare occurrence). 2. It allows us to override the logic when testing. Previously, we had to do more complex environment faking to get the same behavior. 3. It forces exhaustive switches in any desktop handling code, which will make it easier to ensure valid behaviors if we introduce new launch sources (as we are in #7433). 4. It lowers code complexity since callsites don't need to have N `launchedFromX()` checks and can use a single value.
63 lines
2.3 KiB
Zig
63 lines
2.3 KiB
Zig
//! The "os" package contains utilities for interfacing with the operating
|
|
//! system. These aren't restricted to syscalls or low-level operations, but
|
|
//! also OS-specific features and conventions.
|
|
|
|
const dbus = @import("dbus.zig");
|
|
const desktop = @import("desktop.zig");
|
|
const env = @import("env.zig");
|
|
const file = @import("file.zig");
|
|
const flatpak = @import("flatpak.zig");
|
|
const homedir = @import("homedir.zig");
|
|
const locale = @import("locale.zig");
|
|
const mouse = @import("mouse.zig");
|
|
const openpkg = @import("open.zig");
|
|
const pipepkg = @import("pipe.zig");
|
|
const resourcesdir = @import("resourcesdir.zig");
|
|
const systemd = @import("systemd.zig");
|
|
|
|
// Namespaces
|
|
pub const args = @import("args.zig");
|
|
pub const cgroup = @import("cgroup.zig");
|
|
pub const hostname = @import("hostname.zig");
|
|
pub const i18n = @import("i18n.zig");
|
|
pub const passwd = @import("passwd.zig");
|
|
pub const xdg = @import("xdg.zig");
|
|
pub const windows = @import("windows.zig");
|
|
pub const macos = @import("macos.zig");
|
|
pub const shell = @import("shell.zig");
|
|
|
|
// Functions and types
|
|
pub const CFReleaseThread = @import("cf_release_thread.zig");
|
|
pub const TempDir = @import("TempDir.zig");
|
|
pub const getEnvMap = env.getEnvMap;
|
|
pub const appendEnv = env.appendEnv;
|
|
pub const appendEnvAlways = env.appendEnvAlways;
|
|
pub const prependEnv = env.prependEnv;
|
|
pub const getenv = env.getenv;
|
|
pub const setenv = env.setenv;
|
|
pub const unsetenv = env.unsetenv;
|
|
pub const launchedFromDesktop = desktop.launchedFromDesktop;
|
|
pub const launchedByDbusActivation = dbus.launchedByDbusActivation;
|
|
pub const launchedBySystemd = systemd.launchedBySystemd;
|
|
pub const desktopEnvironment = desktop.desktopEnvironment;
|
|
pub const rlimit = file.rlimit;
|
|
pub const fixMaxFiles = file.fixMaxFiles;
|
|
pub const restoreMaxFiles = file.restoreMaxFiles;
|
|
pub const allocTmpDir = file.allocTmpDir;
|
|
pub const freeTmpDir = file.freeTmpDir;
|
|
pub const isFlatpak = flatpak.isFlatpak;
|
|
pub const FlatpakHostCommand = flatpak.FlatpakHostCommand;
|
|
pub const home = homedir.home;
|
|
pub const expandHome = homedir.expandHome;
|
|
pub const ensureLocale = locale.ensureLocale;
|
|
pub const clickInterval = mouse.clickInterval;
|
|
pub const open = openpkg.open;
|
|
pub const OpenType = openpkg.Type;
|
|
pub const pipe = pipepkg.pipe;
|
|
pub const resourcesDir = resourcesdir.resourcesDir;
|
|
pub const ShellEscapeWriter = shell.ShellEscapeWriter;
|
|
|
|
test {
|
|
_ = i18n;
|
|
}
|