ibusManager: Pass on envrionment variables to ibus-daemon
Previously only DISPLAY was being passed on to ibus, which results in issues with missing the WAYLAND_DISPLAY or the DBUS_SESSION_BUS_ADDRESS environemnt variables for example. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2345>
This commit is contained in:
parent
4097f9f836
commit
be52477610
@ -90,11 +90,25 @@ var IBusManager = class {
|
|||||||
this._spawn(Meta.is_wayland_compositor() ? [] : ['--xim']);
|
this._spawn(Meta.is_wayland_compositor() ? [] : ['--xim']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_tryAppendEnv(env, varname) {
|
||||||
|
const value = GLib.getenv(varname);
|
||||||
|
if (value)
|
||||||
|
env.push(`${varname}=${value}`);
|
||||||
|
}
|
||||||
|
|
||||||
_spawn(extraArgs = []) {
|
_spawn(extraArgs = []) {
|
||||||
try {
|
try {
|
||||||
let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
|
let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
|
||||||
let env = [];
|
let env = [];
|
||||||
|
|
||||||
|
this._tryAppendEnv(env, 'DBUS_SESSION_BUS_ADDRESS');
|
||||||
|
this._tryAppendEnv(env, 'WAYLAND_DISPLAY');
|
||||||
|
this._tryAppendEnv(env, 'HOME');
|
||||||
|
this._tryAppendEnv(env, 'LANG');
|
||||||
|
this._tryAppendEnv(env, 'LC_CTYPE');
|
||||||
|
this._tryAppendEnv(env, 'COMPOSE_FILE');
|
||||||
|
this._tryAppendEnv(env, 'DISPLAY');
|
||||||
|
|
||||||
GLib.spawn_async(
|
GLib.spawn_async(
|
||||||
null, cmdLine, env,
|
null, cmdLine, env,
|
||||||
GLib.SpawnFlags.SEARCH_PATH,
|
GLib.SpawnFlags.SEARCH_PATH,
|
||||||
|
Loading…
Reference in New Issue
Block a user