start-cosmic: update values of existing env vars
I could not find any consistent documentation on _which_ environment
variables a DE should populate. GNOME just imports everything[0] from
the current DE-startup-session. KDE imports some DE and KDE specific
variables but again, this isn't defined anywhere (that I could find)
on places like <freedesktop.org>. So instead, lets just update
existing ones.
[0]: d14f6db15e
This commit is contained in:
parent
957fd526cb
commit
de27085e49
1 changed files with 19 additions and 1 deletions
|
|
@ -54,8 +54,26 @@ if [ -d "/run/user/$(id -u)/keyring" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if command -v systemctl >/dev/null; then
|
if command -v systemctl >/dev/null; then
|
||||||
# set environment variables for new units started by user service manager
|
# Import some variables that we explicitly want to have available
|
||||||
|
# in the user session.
|
||||||
systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP DCONF_PROFILE SSH_AUTH_SOCK
|
systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP DCONF_PROFILE SSH_AUTH_SOCK
|
||||||
|
|
||||||
|
# For environment variables already imported into the user's
|
||||||
|
# session, if the value imported differs from the value in this
|
||||||
|
# environment, update it.
|
||||||
|
existing_env_vars=( $(systemctl --user show-environment | tr '\n' ' ') )
|
||||||
|
for env_var in "${existing_env_vars[@]}"; do
|
||||||
|
env_var_name="$(echo "${env_var}" | awk -F '=' '{print $1}')"
|
||||||
|
env_var_val_str_to_compare="${env_var_name}=${!env_var_name:-}"
|
||||||
|
|
||||||
|
if [[ "${env_var}" != "${env_var_val_str_to_compare}" ]]; then
|
||||||
|
# Update only if the value in current environment is non-empty
|
||||||
|
env_var_unassigned_str="${env_var_name}="
|
||||||
|
if [[ "${env_var_val_str_to_compare}" != "${env_var_unassigned_str}" ]]; then
|
||||||
|
systemctl --user import-environment "${env_var_name}" ||:
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run cosmic-session
|
# Run cosmic-session
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue