Fork of pop-os/cosmic-session @ upstream

This commit is contained in:
d
2026-08-10 08:00:21 +07:00
commit 78d361446d
27 changed files with 4506 additions and 0 deletions
+315
View File
@@ -0,0 +1,315 @@
[Default Applications]
text/plain=com.system76.CosmicEdit.desktop
text/css=com.system76.CosmicEdit.desktop
text/javascript=com.system76.CosmicEdit.desktop
text/markdown=com.system76.CosmicEdit.desktop
text/mathml=com.system76.CosmicEdit.desktop
text/rust=com.system76.CosmicEdit.desktop
text/x-c++hdr=com.system76.CosmicEdit.desktop
text/x-c++src=com.system76.CosmicEdit.desktop
text/x-csrc=com.system76.CosmicEdit.desktop
text/x-chdr=com.system76.CosmicEdit.desktop
text/x-dtd=com.system76.CosmicEdit.desktop
text/x-java=com.system76.CosmicEdit.desktop
text/x-javascript=com.system76.CosmicEdit.desktop
text/x-makefile=com.system76.CosmicEdit.desktop
text/x-moc=com.system76.CosmicEdit.desktop
text/x-pascal=com.system76.CosmicEdit.desktop
text/x-patch=com.system76.CosmicEdit.desktop
text/x-perl=com.system76.CosmicEdit.desktop
text/x-php=com.system76.CosmicEdit.desktop
text/x-python=com.system76.CosmicEdit.desktop
text/x-sql=com.system76.CosmicEdit.desktop
text/x-tcl=com.system76.CosmicEdit.desktop
text/x-tex=com.system76.CosmicEdit.desktop
text/xml=com.system76.CosmicEdit.desktop
application/javascript=com.system76.CosmicEdit.desktop
application/x-cgi=com.system76.CosmicEdit.desktop
application/x-javascript=com.system76.CosmicEdit.desktop
application/x-perl=com.system76.CosmicEdit.desktop
application/x-php=com.system76.CosmicEdit.desktop
application/x-python=com.system76.CosmicEdit.desktop
application/x-shellscript=com.system76.CosmicEdit.desktop
application/xml=com.system76.CosmicEdit.desktop
application/xml-dtd=com.system76.CosmicEdit.desktop
inode/directory=com.system76.CosmicFiles.desktop
inode/mount-point=com.system76.CosmicFiles.desktop
application/mxf=com.system76.CosmicPlayer.desktop
application/ogg=com.system76.CosmicPlayer.desktop
application/ram=com.system76.CosmicPlayer.desktop
application/sdp=com.system76.CosmicPlayer.desktop
application/smil=com.system76.CosmicPlayer.desktop
application/smil+xml=com.system76.CosmicPlayer.desktop
application/vnd.ms-wpl=com.system76.CosmicPlayer.desktop
application/vnd.rn-realmedia=com.system76.CosmicPlayer.desktop
application/x-extension-m4a=com.system76.CosmicPlayer.desktop
application/x-extension-mp4=com.system76.CosmicPlayer.desktop
application/x-flac=com.system76.CosmicPlayer.desktop
application/x-flash-video=com.system76.CosmicPlayer.desktop
application/x-matroska=com.system76.CosmicPlayer.desktop
application/x-netshow-channel=com.system76.CosmicPlayer.desktop
application/x-ogg=com.system76.CosmicPlayer.desktop
application/x-quicktime-media-link=com.system76.CosmicPlayer.desktop
application/x-quicktimeplayer=com.system76.CosmicPlayer.desktop
application/x-shorten=com.system76.CosmicPlayer.desktop
application/x-smil=com.system76.CosmicPlayer.desktop
application/xspf+xml=com.system76.CosmicPlayer.desktop
audio/3gpp=com.system76.CosmicPlayer.desktop
audio/ac3=com.system76.CosmicPlayer.desktop
audio/AMR=com.system76.CosmicPlayer.desktop
audio/AMR-WB=com.system76.CosmicPlayer.desktop
audio/basic=com.system76.CosmicPlayer.desktop
audio/flac=com.system76.CosmicPlayer.desktop
audio/midi=com.system76.CosmicPlayer.desktop
audio/mp4=com.system76.CosmicPlayer.desktop
audio/mpeg=com.system76.CosmicPlayer.desktop
audio/mpegurl=com.system76.CosmicPlayer.desktop
audio/ogg=com.system76.CosmicPlayer.desktop
audio/prs.sid=com.system76.CosmicPlayer.desktop
audio/vnd.rn-realaudio=com.system76.CosmicPlayer.desktop
audio/x-ape=com.system76.CosmicPlayer.desktop
audio/x-flac=com.system76.CosmicPlayer.desktop
audio/x-gsm=com.system76.CosmicPlayer.desktop
audio/x-it=com.system76.CosmicPlayer.desktop
audio/x-m4a=com.system76.CosmicPlayer.desktop
audio/x-matroska=com.system76.CosmicPlayer.desktop
audio/x-mod=com.system76.CosmicPlayer.desktop
audio/x-mp3=com.system76.CosmicPlayer.desktop
audio/x-mpeg=com.system76.CosmicPlayer.desktop
audio/x-mpegurl=com.system76.CosmicPlayer.desktop
audio/x-ms-asf=com.system76.CosmicPlayer.desktop
audio/x-ms-asx=com.system76.CosmicPlayer.desktop
audio/x-ms-wax=com.system76.CosmicPlayer.desktop
audio/x-ms-wma=com.system76.CosmicPlayer.desktop
audio/x-musepack=com.system76.CosmicPlayer.desktop
audio/x-pn-aiff=com.system76.CosmicPlayer.desktop
audio/x-pn-au=com.system76.CosmicPlayer.desktop
audio/x-pn-realaudio=com.system76.CosmicPlayer.desktop
audio/x-pn-realaudio-plugin=com.system76.CosmicPlayer.desktop
audio/x-pn-wav=com.system76.CosmicPlayer.desktop
audio/x-pn-windows-acm=com.system76.CosmicPlayer.desktop
audio/x-realaudio=com.system76.CosmicPlayer.desktop
audio/x-real-audio=com.system76.CosmicPlayer.desktop
audio/x-sbc=com.system76.CosmicPlayer.desktop
audio/x-scpls=com.system76.CosmicPlayer.desktop
audio/x-speex=com.system76.CosmicPlayer.desktop
audio/x-tta=com.system76.CosmicPlayer.desktop
audio/x-vorbis=com.system76.CosmicPlayer.desktop
audio/x-vorbis+ogg=com.system76.CosmicPlayer.desktop
audio/x-wav=com.system76.CosmicPlayer.desktop
audio/x-wavpack=com.system76.CosmicPlayer.desktop
audio/x-xm=com.system76.CosmicPlayer.desktop
image/vnd.rn-realpix=com.system76.CosmicPlayer.desktop
image/x-pict=com.system76.CosmicPlayer.desktop
misc/ultravox=com.system76.CosmicPlayer.desktop
text/google-video-pointer=com.system76.CosmicPlayer.desktop
text/x-google-video-pointer=com.system76.CosmicPlayer.desktop
video/3gpp=com.system76.CosmicPlayer.desktop
video/dv=com.system76.CosmicPlayer.desktop
video/fli=com.system76.CosmicPlayer.desktop
video/flv=com.system76.CosmicPlayer.desktop
video/mp2t=com.system76.CosmicPlayer.desktop
video/mp4=com.system76.CosmicPlayer.desktop
video/mp4v-es=com.system76.CosmicPlayer.desktop
video/mpeg=com.system76.CosmicPlayer.desktop
video/msvideo=com.system76.CosmicPlayer.desktop
video/ogg=com.system76.CosmicPlayer.desktop
video/quicktime=com.system76.CosmicPlayer.desktop
video/vivo=com.system76.CosmicPlayer.desktop
video/vnd.divx=com.system76.CosmicPlayer.desktop
video/vnd.rn-realvideo=com.system76.CosmicPlayer.desktop
video/vnd.vivo=com.system76.CosmicPlayer.desktop
video/webm=com.system76.CosmicPlayer.desktop
video/x-anim=com.system76.CosmicPlayer.desktop
video/x-avi=com.system76.CosmicPlayer.desktop
video/x-flc=com.system76.CosmicPlayer.desktop
video/x-fli=com.system76.CosmicPlayer.desktop
video/x-flic=com.system76.CosmicPlayer.desktop
video/x-flv=com.system76.CosmicPlayer.desktop
video/x-m4v=com.system76.CosmicPlayer.desktop
video/x-matroska=com.system76.CosmicPlayer.desktop
video/x-mpeg=com.system76.CosmicPlayer.desktop
video/x-ms-asf=com.system76.CosmicPlayer.desktop
video/x-ms-asx=com.system76.CosmicPlayer.desktop
video/x-msvideo=com.system76.CosmicPlayer.desktop
video/x-ms-wm=com.system76.CosmicPlayer.desktop
video/x-ms-wmv=com.system76.CosmicPlayer.desktop
video/x-ms-wmx=com.system76.CosmicPlayer.desktop
video/x-ms-wvx=com.system76.CosmicPlayer.desktop
video/x-nsv=com.system76.CosmicPlayer.desktop
video/x-ogm+ogg=com.system76.CosmicPlayer.desktop
video/x-theora+ogg=com.system76.CosmicPlayer.desktop
video/x-totem-stream=com.system76.CosmicPlayer.desktop
x-content/video-dvd=com.system76.CosmicPlayer.desktop
x-content/video-vcd=com.system76.CosmicPlayer.desktop
x-content/video-svcd=com.system76.CosmicPlayer.desktop
x-scheme-handler/pnm=com.system76.CosmicPlayer.desktop
x-scheme-handler/mms=com.system76.CosmicPlayer.desktop
x-scheme-handler/net=com.system76.CosmicPlayer.desktop
x-scheme-handler/rtp=com.system76.CosmicPlayer.desktop
x-scheme-handler/rtsp=com.system76.CosmicPlayer.desktop
x-scheme-handler/mmsh=com.system76.CosmicPlayer.desktop
x-scheme-handler/uvox=com.system76.CosmicPlayer.desktop
x-scheme-handler/icy=com.system76.CosmicPlayer.desktop
x-scheme-handler/icyx=com.system76.CosmicPlayer.desktop
application/x-cd-image=com.system76.Popsicle.desktop
application/x-raw-disk-image=com.system76.Popsicle.desktop
application/x-raw-disk-image-xz-compressed=com.system76.Popsicle.desktop
application/x-debian-package=com.system76.CosmicStore.desktop
application/vnd.debian.binary-package=com.system76.CosmicStore.desktop
application/vnd.flatpak.ref=com.system76.CosmicStore.desktop
x-scheme-handler/appstream=com.system76.CosmicStore.desktop
x-scheme-handler/mime=com.system76.CosmicStore.desktop
image/bmp=org.gnome.eog.desktop
image/gif=org.gnome.eog.desktop
image/jpeg=org.gnome.eog.desktop
image/jpg=org.gnome.eog.desktop
image/pjpeg=org.gnome.eog.desktop
image/png=org.gnome.eog.desktop
image/svg+xml=org.gnome.eog.desktop
image/svg+xml-compressed=org.gnome.eog.desktop
image/x-bmp=org.gnome.eog.desktop
image/x-gray=org.gnome.eog.desktop
image/x-icb=org.gnome.eog.desktop
image/x-ico=org.gnome.eog.desktop
image/x-pcx=org.gnome.eog.desktop
image/x-png=org.gnome.eog.desktop
image/x-portable-anymap=org.gnome.eog.desktop
image/x-portable-bitmap=org.gnome.eog.desktop
image/x-portable-graymap=org.gnome.eog.desktop
image/x-portable-pixmap=org.gnome.eog.desktop
image/x-xbitmap=org.gnome.eog.desktop
image/x-xpixmap=org.gnome.eog.desktop
image/vnd.wap.wbmp=org.gnome.eog.desktop
image/g3fax=gimp.desktop
image/x-compressed-xcf=gimp.desktop
image/x-fits=gimp.desktop
image/x-icon=gimp.desktop
image/x-psd=gimp.desktop
image/x-sgi=gimp.desktop
image/x-sun-raster=gimp.desktop
image/x-tga=gimp.desktop
image/x-xcf=gimp.desktop
image/x-xwindowdump=gimp.desktop
application/pdf=org.gnome.Evince.desktop
application/x-bzpdf=org.gnome.Evince.desktop
application/x-gzpdf=org.gnome.Evince.desktop
application/postscript=org.gnome.Evince.desktop
application/x-bzpostscript=org.gnome.Evince.desktop
application/x-gzpostscript=org.gnome.Evince.desktop
image/x-eps=org.gnome.Evince.desktop
image/x-bzeps=org.gnome.Evince.desktop
image/x-gzeps=org.gnome.Evince.desktop
application/x-dvi=org.gnome.Evince.desktop
application/x-bzdvi=org.gnome.Evince.desktop
application/x-gzdvi=org.gnome.Evince.desktop
image/vnd.djvu=org.gnome.Evince.desktop
image/tiff=org.gnome.Evince.desktop
application/x-cbr=org.gnome.Evince.desktop
application/x-cbz=org.gnome.Evince.desktop
application/x-cb7=org.gnome.Evince.desktop
application/x-7z-compressed=org.gnome.FileRoller.desktop
application/x-7z-compressed-tar=org.gnome.FileRoller.desktop
application/x-ace=org.gnome.FileRoller.desktop
application/x-alz=org.gnome.FileRoller.desktop
application/x-ar=org.gnome.FileRoller.desktop
application/x-arj=org.gnome.FileRoller.desktop
application/x-bzip=org.gnome.FileRoller.desktop
application/x-bzip-compressed-tar=org.gnome.FileRoller.desktop
application/x-bzip1=org.gnome.FileRoller.desktop
application/x-bzip1-compressed-tar=org.gnome.FileRoller.desktop
application/x-cabinet=org.gnome.FileRoller.desktop
application/x-compress=org.gnome.FileRoller.desktop
application/x-compressed-tar=org.gnome.FileRoller.desktop
application/x-cpio=org.gnome.FileRoller.desktop
application/x-deb=org.gnome.FileRoller.desktop
application/x-ear=org.gnome.FileRoller.desktop
application/x-gtar=org.gnome.FileRoller.desktop
application/x-gzip=org.gnome.FileRoller.desktop
application/x-java-archive=org.gnome.FileRoller.desktop
application/x-lha=org.gnome.FileRoller.desktop
application/x-lhz=org.gnome.FileRoller.desktop
application/x-lzip=org.gnome.FileRoller.desktop
application/x-lzip-compressed-tar=org.gnome.FileRoller.desktop
application/x-lzma=org.gnome.FileRoller.desktop
application/x-lzma-compressed-tar=org.gnome.FileRoller.desktop
application/x-lzop=org.gnome.FileRoller.desktop
application/x-lzop-compressed-tar=org.gnome.FileRoller.desktop
application/x-rar=org.gnome.FileRoller.desktop
application/x-rar-compressed=org.gnome.FileRoller.desktop
application/x-rpm=org.gnome.FileRoller.desktop
application/x-rzip=org.gnome.FileRoller.desktop
application/x-tar=org.gnome.FileRoller.desktop
application/x-tarz=org.gnome.FileRoller.desktop
application/x-stuffit=org.gnome.FileRoller.desktop
application/x-war=org.gnome.FileRoller.desktop
application/x-xz=org.gnome.FileRoller.desktop
application/x-xz-compressed-tar=org.gnome.FileRoller.desktop
application/x-zip=org.gnome.FileRoller.desktop
application/x-zip-compressed=org.gnome.FileRoller.desktop
application/x-zoo=org.gnome.FileRoller.desktop
application/zip=org.gnome.FileRoller.desktop
multipart/x-zip=org.gnome.FileRoller.desktop
application/x-font-ttf=org.gnome.font-viewer.desktop
application/x-font-pcf=org.gnome.font-viewer.desktop
application/x-font-type1=org.gnome.font-viewer.desktop
application/x-font-otf=org.gnome.font-viewer.desktop
text/html=firefox-esr.desktop;firefox.desktop;
application/xhtml+xml=firefox-esr.desktop;firefox.desktop;
application/rss+xml=firefox-esr.desktop;firefox.desktop;
application/rdf+xml=firefox-esr.desktop;firefox.desktop;
x-scheme-handler/http=firefox-esr.desktop;firefox.desktop;
x-scheme-handler/https=firefox-esr.desktop;firefox.desktop;
application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop
application/vnd.oasis.opendocument.spreadsheet-flat-xml=libreoffice-calc.desktop
application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop
application/vnd.sun.xml.calc=libreoffice-calc.desktop
application/vnd.sun.xml.calc.template=libreoffice-calc.desktop
application/msexcel=libreoffice-calc.desktop
application/vnd.ms-excel=libreoffice-calc.desktop
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop
application/vnd.ms-excel.sheet.macroenabled.12=libreoffice-calc.desktop
application/vnd.openxmlformats-officedocument.spreadsheetml.template=libreoffice-calc.desktop
application/vnd.ms-excel.template.macroenabled.12=libreoffice-calc.desktop
application/vnd.ms-excel.sheet.binary.macroenabled.12=libreoffice-calc.desktop
application/x-dbf=libreoffice-calc.desktop
text/spreadsheet=libreoffice-calc.desktop
application/vnd.oasis.opendocument.graphics=libreoffice-draw.desktop
application/vnd.oasis.opendocument.graphics-flat-xml=libreoffice-draw.desktop
application/vnd.oasis.opendocument.graphics-template=libreoffice-draw.desktop
application/vnd.sun.xml.draw=libreoffice-draw.desktop
application/vnd.sun.xml.draw.template=libreoffice-draw.desktop
application/vnd.visio=libreoffice-draw.desktop
application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop
application/vnd.oasis.opendocument.presentation-flat-xml=libreoffice-impress.desktop
application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop
application/vnd.sun.xml.impress=libreoffice-impress.desktop
application/vnd.sun.xml.impress.template=libreoffice-impress.desktop
application/mspowerpoint=libreoffice-impress.desktop
application/vnd.ms-powerpoint=libreoffice-impress.desktop
application/vnd.openxmlformats-officedocument.presentationml.presentation=libreoffice-impress.desktop
application/vnd.ms-powerpoint.presentation.macroenabled.12=libreoffice-impress.desktop
application/vnd.openxmlformats-officedocument.presentationml.template=libreoffice-impress.desktop
application/vnd.ms-powerpoint.template.macroenabled.12=libreoffice-impress.desktop
application/vnd.openxmlformats-officedocument.presentationml.slide=libreoffice-impress.desktop
application/vnd.openxmlformats-officedocument.presentationml.slideshow=libreoffice-impress.desktop
application/vnd.oasis.opendocument.formula=libreoffice-math.desktop
application/vnd.sun.xml.math=libreoffice-math.desktop
application/vnd.oasis.opendocument.text=libreoffice-writer.desktop
application/vnd.oasis.opendocument.text-flat-xml=libreoffice-writer.desktop
application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop
application/vnd.oasis.opendocument.text-web=libreoffice-writer.desktop
application/vnd.oasis.opendocument.text-master=libreoffice-writer.desktop
application/vnd.sun.xml.writer=libreoffice-writer.desktop
application/vnd.sun.xml.writer.template=libreoffice-writer.desktop
application/vnd.sun.xml.writer.global=libreoffice-writer.desktop
eapplication/vnd.ms-word=libreoffice-writer.desktop
application/x-doc=libreoffice-writer.desktop
application/x-hwp=libreoffice-writer.desktop
application/vnd.wordperfect=libreoffice-writer.desktop
application/wordperfect=libreoffice-writer.desktop
application/vnd.lotus-wordpro=libreoffice-writer.desktop
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop
application/vnd.ms-word.document.macroenabled.12=libreoffice-writer.desktop
application/vnd.openxmlformats-officedocument.wordprocessingml.template=libreoffice-writer.desktop
application/vnd.ms-word.template.macroenabled.12=libreoffice-writer.desktop
+12
View File
@@ -0,0 +1,12 @@
[Unit]
Description=Cosmic Session Target
Documentation=man:systemd.special(7)
BindsTo=graphical-session.target
Before=graphical-session.target
Wants=graphical-session-pre.target
After=graphical-session-pre.target
Wants=xdg-desktop-autostart.target
Before=xdg-desktop-autostart.target
+7
View File
@@ -0,0 +1,7 @@
[Desktop Entry]
Name=COSMIC
Comment=This session logs you into the COSMIC desktop
Comment[sv]=Denna session loggar in dig till skrivbordsmiljön COSMIC
Exec=/usr/bin/start-cosmic
Type=Application
DesktopNames=COSMIC
+2
View File
@@ -0,0 +1,2 @@
user-db:cosmic
user-db:user
+114
View File
@@ -0,0 +1,114 @@
#!/bin/bash
set -e
# From: https://people.debian.org/~mpitt/systemd.conf-2016-graphical-session.pdf
if command -v systemctl >/dev/null; then
# robustness: if the previous graphical session left some failed units,
# reset them so that they don't break this startup
for unit in $(systemctl --user --no-legend --state=failed --plain list-units | cut -f1 -d' '); do
partof="$(systemctl --user show -p PartOf --value "$unit")"
for target in cosmic-session.target graphical-session.target; do
if [ "$partof" = "$target" ]; then
systemctl --user reset-failed "$unit"
break
fi
done
done
fi
# use the user's preferred shell to acquire environment variables
# see: https://github.com/pop-os/cosmic-session/issues/23
if [ -n "${SHELL}" ]; then
# --in-login-shell: our flag to indicate that we don't need to recurse any further
if [ "${1}" != "--in-login-shell" ]; then
# `exec -l`: like `login`, prefixes $SHELL with a hyphen to start a login shell
exec bash -c "exec -l '${SHELL}' -c '${0} --in-login-shell'"
fi
fi
export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:=COSMIC}"
export XDG_SESSION_DESKTOP="${XDG_SESSION_DESKTOP:=COSMIC}"
export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:=wayland}"
export _JAVA_AWT_WM_NONREPARENTING=1
export GDK_BACKEND=wayland,x11
export MOZ_ENABLE_WAYLAND=1
export QT_QPA_PLATFORM="wayland;xcb"
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_ENABLE_HIGHDPI_SCALING=1
export DCONF_PROFILE=cosmic
# Set the QT platform theme to CuteCosmic. Fallback to qt6ct if CuteCosmic is not installed.
if [ -z "$QT_QPA_PLATFORMTHEME" ]; then
export QT_QPA_PLATFORMTHEME=cosmic
for QT_PLUGIN_PATH in /usr/lib{*,/*}/qt6/plugins; do
if [ -f "${QT_PLUGIN_PATH}/platformthemes/libcutecosmictheme.so" ]; then
# CuteCosmic found, no need for a fallback.
export QT_QPA_PLATFORMTHEME=cosmic
break
elif [ -f "${QT_PLUGIN_PATH}/platformthemes/libqt6ct.so" ] || [ -f "${QT_PLUGIN_PATH}/platformthemes/libqt5ct.so" ]; then
# Fallback to qt6ct, but keep looking for CuteCosmic.
# Note that "qt5ct" is compatible with both qt5ct and qt6ct.
export QT_QPA_PLATFORMTHEME=qt5ct
fi
done
fi
# Start gnome keyring components if the daemon is active
# -> check if /run/user/$UID/keyring exists
if [ -d "/run/user/$(id -u)/keyring" ]; then
# Use PATH lookup instead of hardcoding /usr/bin
if command -v gnome-keyring-daemon >/dev/null 2>&1; then
eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh > /dev/null 2>&1)"
else
echo "gnome-keyring-daemon not found in PATH" >&2
fi
# Only set SSH_AUTH_SOCK if the socket actually exists. Either
# set the correct one, or don't set one at all. Don't set the
# wrong value.
if [ -S "/run/user/$(id -u)/gcr/ssh" ]; then
export SSH_AUTH_SOCK="/run/user/$(id -u)/gcr/ssh"
elif [ -S "/run/user/$(id -u)/keyring/ssh" ]; then
export SSH_AUTH_SOCK="/run/user/$(id -u)/keyring/ssh"
fi
fi
if command -v systemctl >/dev/null; then
# 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
# For environment variables already imported into the user's
# session, if the value imported differs from the value in this
# environment, update it.
mapfile -t existing_env_vars < <(systemctl --user show-environment)
for env_var in "${existing_env_vars[@]}"; do
env_var_name="${env_var%%=*}"
env_var_value=${!env_var_name:-}
# Skip current iteration if the environment variable's value
# in the current envionment is unset.
if [[ -z "${env_var_value}" ]]; then
continue
fi
env_var_val_str_to_compare="${env_var_name}=${env_var_value}"
env_var_val_str_to_compare_ansi_c_quoted="${env_var_name}=\$'$(printf '%q' "${env_var_value}")'"
if [[ "${env_var}" == "${env_var_val_str_to_compare}" ]]; then
continue
elif [[ "${env_var}" == "${env_var_val_str_to_compare_ansi_c_quoted}" ]]; then
continue
fi
systemctl --user import-environment "${env_var_name}" ||:
done
fi
# Run cosmic-session
if [[ -z "${DBUS_SESSION_BUS_ADDRESS}" ]]; then
exec /usr/bin/dbus-run-session -- /usr/bin/cosmic-session
else
exec /usr/bin/cosmic-session
fi