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 # Pour wayland
SDL_VIDEODRIVER=wayland SDL_VIDEODRIVER=wayland
# Session : déjà fait par sway-systemd. Cf. https://github.com/alebastr/sway-systemd/blob/main/src/session.sh # 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_TYPE=wayland
#export XDG_SESSION_DESKTOP=sway #export XDG_SESSION_DESKTOP=sway
# gammastep-indicator n'est plus utilisé dans mon Wayland # 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/* include /etc/sway/config.d/*
# Ajout pour Olivier # 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' emulate sh -c '. ~/.profile'
export PYENV_ROOT="$HOME/.pyenv" # TODO: vérifier si ce code commenté fonctionne
export PATH="$PYENV_ROOT/bin:$PATH" #export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init --path)" #export PATH="$PYENV_ROOT/bin:$PATH"
#eval "$(pyenv init --path)"
# Start X automatically # Start X automatically
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then 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 exec sway
fi fi

View File

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