fix(sway): Load .config/environment.d/envvars.conf in another way

This commit is contained in:
Olivier DOSSMANN 2025-01-10 18:41:18 +01:00
parent 741dd53665
commit 1e8aae0c05
4 changed files with 51 additions and 22 deletions

View File

@ -10,6 +10,8 @@ ELECTRON_OZONE_PLATFORM_HINT=wayland
# Pour wayland
SDL_VIDEODRIVER=wayland
# Session : déjà fait par sway-systemd. Cf. https://github.com/alebastr/sway-systemd/blob/main/src/session.sh
# Regarder dans .config/sway/config, à la fin ça importe /etc/sway/config.d/ qui contient 10-systemd-session.conf qui exécute session.sh
# Ce qui import XDG_SESSION_TYPE, XDG_SESSION_DESKTOP, XDG_CURRENT_DESKTOP, etc.
#export XDG_SESSION_TYPE=wayland
#export XDG_SESSION_DESKTOP=sway
# gammastep-indicator n'est plus utilisé dans mon Wayland

View File

@ -226,6 +226,7 @@ bar 1 {
}
}
# Va lancer notamment session.sh pour les variables XDG_SESSION et touti quanti
include /etc/sway/config.d/*
# Ajout pour Olivier

View File

@ -1,10 +1,28 @@
# .profile permet d'avoir
# 1. TERMINAL (choix d'un terminal par défaut)
# 2. BATPATH (pour la batterie)
# 3. PATH initial # TODO: vraiment nécessaire ?
emulate sh -c '. ~/.profile'
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# TODO: vérifier si ce code commenté fonctionne
#export PYENV_ROOT="$HOME/.pyenv"
#export PATH="$PYENV_ROOT/bin:$PATH"
#eval "$(pyenv init --path)"
# Start X automatically
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
case $HOST in
roc | zou)
: # Exceptions : On ne fait rien pour ces machines qui sont sous Xorg.
;;
*)
# Pour toutes les autres on charge le contenu de .config/environment.d
# Cf. https://wiki.archlinux.org/title/Environment_variables#Per_Wayland_session
# use systemd-environment-d-generator(8) to generate environment, and export those variables
set -o allexport
source <(/usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator)
set +o allexport
;;
esac
exec sway
fi

View File

@ -17,7 +17,7 @@ done
# Pour la batterie des ordinateurs portables (~/bin/battery)
export BATPATH="/sys/class/power_supply/BAT1"
# Permit DBUS to be launched
# Permit DBUS to be launched on i3
if [ "$0" = "/usr/sbin/lightdm-session" -a "$DESKTOP_SESSION" = "i3" ]; then
export $(gnome-keyring-daemon -s)
fi
@ -27,22 +27,30 @@ export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# Démarrage de l'environnement préféré
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
case $HOST in
fuz | fuztest)
variables_file="${HOME}/.config/environment.d/envvars.conf"
if [[ -f "${variables_file}" ]]; then
# charge seulement les lignes sans "#" (non commentées)
for line in `cat "${variables_file}"|grep -Ev '^#'`; do
export "$line"
done
fi
exec sway
;;
*)
: # on ne fait rien, car c'est .xinitrc qui lance i3
;;
esac
fi
## ATTENTION : ce code n'est plus nécessaire pour le moment.
## 1. C'est ZSH (.zprofile) qui va charger SWAY sur les machines Wayland
## 2. C'est le .zprofile qui charge aussi .config/environment.d/envvars.conf
## 3. Dans le cas de Xorg : on a pas besoin de .config/environment.d/envvars.conf
## 4. Dans le cas de Xorg : xinitrc lance i3 # TODO: comment xinitrc se lance ? Par qui ?
## Démarrage de l'environnement préféré
#if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
# case $HOST in
# fuz | fuztest)
# # Cf. https://wiki.archlinux.org/title/Environment_variables#Per_Wayland_session
# variables_file="${HOME}/.config/environment.d/envvars.conf"
# if [[ -f "${variables_file}" ]]; then
# # charge seulement les lignes sans "#" (non commentées)
# for line in `cat "${variables_file}"|grep -Ev '^#'`; do
# export "$line"
# done
# fi
# exec sway
# ;;
# *)
# : # on ne fait rien, car c'est .xinitrc qui lance i3
# ;;
# esac
#fi
# vim: ts=2 sw=2 et nu