Index: head/GIDs =================================================================== --- head/GIDs +++ head/GIDs @@ -160,7 +160,7 @@ nsd:*:216: anvil:*:217: zap:*:218: -# free: 219 +sddm:*:219: bs:*:220: # free: 221 rtpproxy:*:222: Index: head/UIDs =================================================================== --- head/UIDs +++ head/UIDs @@ -165,7 +165,7 @@ nsd:*:216:216::0:0:NSD DNS Server:/nonexistent:/usr/sbin/nologin anvil:*:217:217::0:0:anvil certificate dropper:/var/db/anvil:/bin/sh zap:*:218:218::0:0:zap user:/usr/local/zap:/bin/sh -# free: 219 +sddm:*:219:219::0:0:SDDM Display Manager user:/usr/local/etc/sddm/home:/usr/sbin/nologin bs:*:220:220::0:0:Big Sister:/usr/local/bigsister:/bin/sh # free: 221 rtpproxy:*:222:222::0:0:& user:/nonexistent:/sbin/nologin Index: head/x11/Makefile =================================================================== --- head/x11/Makefile +++ head/x11/Makefile @@ -296,6 +296,7 @@ SUBDIR += screen-message SUBDIR += scripts SUBDIR += scrnsaverproto + SUBDIR += sddm SUBDIR += sessreg SUBDIR += setlayout SUBDIR += setxkbmap Index: head/x11/kde4-workspace/Makefile =================================================================== --- head/x11/kde4-workspace/Makefile +++ head/x11/kde4-workspace/Makefile @@ -2,7 +2,7 @@ PORTNAME= kde-workspace PORTVERSION= ${KDE4_WORKSPACE_VERSION} -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= x11 kde kde-applications MAINTAINER= kde@FreeBSD.org @@ -129,6 +129,9 @@ post-install: ${LN} -sf ${PREFIX}/bin/startkde ${STAGEDIR}${PREFIX}/bin/startkde4 +# Install kde4.desktop to launch kde4 via sddm. + ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions + ${INSTALL_DATA} ${FILESDIR}/kde4.desktop ${STAGEDIR}${PREFIX}/share/xsessions post-install-GSTREAMER-on: @${HEAD} -1 ${PKGMESSAGE} >> ${PKGMESSAGE} Index: head/x11/kde4-workspace/files/kde4.desktop =================================================================== --- head/x11/kde4-workspace/files/kde4.desktop +++ head/x11/kde4-workspace/files/kde4.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=XSession +Exec=/usr/local/bin/startkde +TryExec=/usr/local/bin/startkde +DesktopNames=KDE +Name=KDE4 Index: head/x11/kde4-workspace/pkg-plist =================================================================== --- head/x11/kde4-workspace/pkg-plist +++ head/x11/kde4-workspace/pkg-plist @@ -2122,3 +2122,4 @@ share/sounds/pop.wav share/wallpapers/stripes.png share/wallpapers/stripes.png.desktop +share/xsessions/kde4.desktop Index: head/x11/sddm/Makefile =================================================================== --- head/x11/sddm/Makefile +++ head/x11/sddm/Makefile @@ -0,0 +1,46 @@ +# $FreeBSD$ + +PORTNAME= sddm +PORTVERSION= 0.14.0 +DISTVERSIONPREFIX= v +CATEGORIES= x11 + +MAINTAINER= kde@FreeBSD.org +COMMENT= QML based login manager + +USES= cmake:outsource desktop-file-utils kde:5 +USE_KDE= ecm +USE_QT5= concurrent core dbus gui linguisttools multimedia network \ + printsupport qml quick script sql webkit widgets \ + buildtools_build qmake_build +USE_XORG= xcb + +CMAKE_ARGS= -DUID_MIN=1000 \ + -DUID_MAX=65000 \ + -DCMAKE_INSTALL_SYSCONFDIR:PATH=${LOCALBASE}/etc +# We need to disable PAM at the moment and use the passwd-based backend; +# the two backend are mutually exclusive, and we have to investigate how +# to make it compatible with OpenPAM. +CMAKE_ARGS+= -DENABLE_PAM:BOOL=FALSE + +USE_RC_SUBR= sddm + +USERS= sddm +GROUPS= sddm + +USE_GITHUB= yes + +post-patch: +# Patch in the correct location for X11 startup files, and make the session start +# script of sddm use the value of ${STARTUP} defined by 90-consolekit + ${REINPLACE_CMD} -e 's#/etc/X11#${LOCALBASE}/etc/X11#g' \ + -e '/exec.*session/s#exec#exec $${STARTUP}#g' \ + ${PATCH_WRKSRC}/data/scripts/Xsession + +post-install: +# Install xsession.desktop to launch .xinitrc via sddm. + ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions + ${INSTALL_DATA} ${FILESDIR}/xinitrc.desktop ${STAGEDIR}${PREFIX}/share/xsessions + ${INSTALL_SCRIPT} ${FILESDIR}/xinit-session ${STAGEDIR}${PREFIX}/share/sddm/scripts + +.include Index: head/x11/sddm/distinfo =================================================================== --- head/x11/sddm/distinfo +++ head/x11/sddm/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1488014449 +SHA256 (sddm-sddm-v0.14.0_GH0.tar.gz) = a551551a6ba324e9c384c89bc63e871de65fea3740eadbea2d63df86045f8205 +SIZE (sddm-sddm-v0.14.0_GH0.tar.gz) = 3367582 Index: head/x11/sddm/files/patch-CMakeLists.txt =================================================================== --- head/x11/sddm/files/patch-CMakeLists.txt +++ head/x11/sddm/files/patch-CMakeLists.txt @@ -0,0 +1,16 @@ +1) On FreeBSD X is normally started on VT9. +2) The shutdown command uses '-p' and not '-P' on FreeBSD. + +--- CMakeLists.txt.orig 2016-08-28 11:54:03 UTC ++++ CMakeLists.txt +@@ -143,8 +143,8 @@ if(SYSTEMD_FOUND) + set(REBOOT_COMMAND "/usr/bin/systemctl reboot") + else() + set(SYSTEMD_FOUND 0) +- set(MINIMUM_VT 7) +- set(HALT_COMMAND "/sbin/shutdown -h -P now") ++ set(MINIMUM_VT 9) ++ set(HALT_COMMAND "/sbin/shutdown -h -p now") + set(REBOOT_COMMAND "/sbin/shutdown -r now") + endif() + add_feature_info("systemd" SYSTEMD_FOUND "systemd support") Index: head/x11/sddm/files/patch-src_common_Configuration.h =================================================================== --- head/x11/sddm/files/patch-src_common_Configuration.h +++ head/x11/sddm/files/patch-src_common_Configuration.h @@ -0,0 +1,39 @@ +Modify the default configuration to fit in to FreeBSD. That is replace '/usr/bin' +with '/usr/local/bin' and so on. +The setting of '$PATH' I find a bit dumb... this should respect the values of the +users profile... + +--- src/common/Configuration.h.orig 2016-08-28 11:54:03 UTC ++++ src/common/Configuration.h +@@ -58,11 +58,11 @@ namespace SDDM { + + // TODO: Not absolutely sure if everything belongs here. Xsessions, VT and probably some more seem universal + Section(X11, +- Entry(ServerPath, QString, _S("/usr/bin/X"), _S("Path to X server binary")); ++ Entry(ServerPath, QString, _S("/usr/local/bin/X"), _S("Path to X server binary")); + Entry(ServerArguments, QString, _S("-nolisten tcp"), _S("Arguments passed to the X server invocation")); +- Entry(XephyrPath, QString, _S("/usr/bin/Xephyr"), _S("Path to Xephyr binary")); +- Entry(XauthPath, QString, _S("/usr/bin/xauth"), _S("Path to xauth binary")); +- Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Directory containing available X sessions")); ++ Entry(XephyrPath, QString, _S("/usr/local/bin/Xephyr"), _S("Path to Xephyr binary")); ++ Entry(XauthPath, QString, _S("/usr/local/bin/xauth"), _S("Path to xauth binary")); ++ Entry(SessionDir, QString, _S("/usr/local/share/xsessions"), _S("Directory containing available X sessions")); + Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); + Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); + Entry(UserAuthFile, QString, _S(".Xauthority"), _S("Path to the Xauthority file")); +@@ -72,13 +72,13 @@ namespace SDDM { + ); + + Section(Wayland, +- Entry(SessionDir, QString, _S("/usr/share/wayland-sessions"), _S("Directory containing available Wayland sessions")); ++ Entry(SessionDir, QString, _S("/usr/local/share/wayland-sessions"), _S("Directory containing available Wayland sessions")); + Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); + Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); + ); + + Section(Users, +- Entry(DefaultPath, QString, _S("/bin:/usr/bin:/usr/local/bin"), _S("Default $PATH for logged in users")); ++ Entry(DefaultPath, QString, _S("/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"), _S("Default $PATH for logged in users")); + Entry(MinimumUid, int, UID_MIN, _S("Minimum user id for displayed users")); + Entry(MaximumUid, int, UID_MAX, _S("Maximum user id for displayed users")); + Entry(HideUsers, QStringList, QStringList(), _S("Comma-separated list of users that should not be listed")); Index: head/x11/sddm/files/patch-src_daemon_CMakeLists.txt =================================================================== --- head/x11/sddm/files/patch-src_daemon_CMakeLists.txt +++ head/x11/sddm/files/patch-src_daemon_CMakeLists.txt @@ -0,0 +1,23 @@ +This patch does two things: +1) Add the include directories for 'libxcb' to the compiler search directories, +2) Remove VirtualTerminal.cpp from the sources that need to be built. + see also 'patch-src_daemon_Display.cpp' + +--- src/daemon/CMakeLists.txt.orig 2016-08-28 11:54:03 UTC ++++ src/daemon/CMakeLists.txt +@@ -3,6 +3,7 @@ include_directories( + "${CMAKE_SOURCE_DIR}/src/auth" + ) + include_directories("${CMAKE_BINARY_DIR}/src/common") ++include_directories("${LIBXCB_INCLUDE_DIR}") + + set(DAEMON_SOURCES + ${CMAKE_SOURCE_DIR}/src/common/Configuration.cpp +@@ -26,7 +27,6 @@ set(DAEMON_SOURCES + SeatManager.cpp + SignalHandler.cpp + SocketServer.cpp +- VirtualTerminal.cpp + ) + + qt5_add_dbus_adaptor(DAEMON_SOURCES "${CMAKE_SOURCE_DIR}/data/interfaces/org.freedesktop.DisplayManager.xml" "DisplayManager.h" SDDM::DisplayManager) Index: head/x11/sddm/files/patch-src_daemon_Display.cpp =================================================================== --- head/x11/sddm/files/patch-src_daemon_Display.cpp +++ head/x11/sddm/files/patch-src_daemon_Display.cpp @@ -0,0 +1,39 @@ +VirtualTerminal for Wayland is only present on Linux at the moment. +As we are only interested in an X11 session at the moment, we therefore +can hide it behind a Q_OS_LINUX. + +--- src/daemon/Display.cpp.orig 2016-08-28 11:54:03 UTC ++++ src/daemon/Display.cpp +@@ -30,7 +30,9 @@ + #include "Greeter.h" + #include "Utils.h" + #include "SignalHandler.h" ++#if defined(Q_OS_LINUX) + #include "VirtualTerminal.h" ++#endif + + #include + #include +@@ -280,8 +282,10 @@ namespace SDDM { + + // create new VT for Wayland sessions otherwise use greeter vt + int vt = terminalId(); ++#if defined(Q_OS_LINUX) + if (session.xdgSessionType() == QLatin1String("wayland")) + vt = VirtualTerminal::setUpNewVt(); ++#endif + m_lastSession.setVt(vt); + + QProcessEnvironment env; +@@ -321,9 +325,11 @@ namespace SDDM { + stateConfig.Last.Session.setDefault(); + stateConfig.save(); + ++#if defined(Q_OS_LINUX) + // switch to the new VT for Wayland sessions + if (m_lastSession.xdgSessionType() == QLatin1String("wayland")) + VirtualTerminal::jumpToVt(m_lastSession.vt()); ++#endif + + if (m_socket) + emit loginSucceeded(m_socket); Index: head/x11/sddm/files/patch-src_greeter_UserModel.cpp =================================================================== --- head/x11/sddm/files/patch-src_greeter_UserModel.cpp +++ head/x11/sddm/files/patch-src_greeter_UserModel.cpp @@ -0,0 +1,12 @@ +Call 'setpwent' to rewind to the beginning of the passwd database. + +--- src/greeter/UserModel.cpp.orig 2016-07-10 21:26:13 UTC ++++ src/greeter/UserModel.cpp +@@ -55,6 +55,7 @@ namespace SDDM { + const QString defaultFace = QStringLiteral("%1/.face.icon").arg(facesDir); + + struct passwd *current_pw; ++ setpwent(); + while ((current_pw = getpwent()) != nullptr) { + + // skip entries with uids smaller than minimum uid Index: head/x11/sddm/files/patch-src_helper_UserSession.cpp =================================================================== --- head/x11/sddm/files/patch-src_helper_UserSession.cpp +++ head/x11/sddm/files/patch-src_helper_UserSession.cpp @@ -0,0 +1,12 @@ +Include '' as 'errno' is used. + +--- src/helper/UserSession.cpp.orig 2016-07-06 14:00:10 UTC ++++ src/helper/UserSession.cpp +@@ -25,6 +25,7 @@ + + #include + #include ++#include + #include + #include + #include Index: head/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp =================================================================== --- head/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp +++ head/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp @@ -0,0 +1,46 @@ +Implement password authentication on FreeBSD. +This needs review :) + +--- src/helper/backend/PasswdBackend.cpp.orig 2016-07-06 14:00:10 UTC ++++ src/helper/backend/PasswdBackend.cpp +@@ -27,8 +27,13 @@ + + #include + #include ++#if defined(Q_OS_LINUX) + #include + #include ++#endif ++#if defined(Q_OS_FREEBSD) ++#include ++#endif + + namespace SDDM { + PasswdBackend::PasswdBackend(HelperApp *parent) +@@ -72,6 +77,17 @@ namespace SDDM { + return false; + } + ++#if defined(Q_OS_FREEBSD) ++ if (!*pw->pw_passwd) ++ { ++ //empty password ++ return true; ++ } ++ char *crypted = crypt(qPrintable(password), pw->pw_passwd); ++ if (0 == strcmp(crypted, pw->pw_passwd)) { ++ return true; ++ } ++#else + struct spwd *spw = getspnam(pw->pw_name); + if (!spw) { + qWarning() << "[Passwd] Could get passwd but not shadow"; +@@ -85,7 +101,7 @@ namespace SDDM { + if (0 == strcmp(crypted, spw->sp_pwdp)) { + return true; + } +- ++#endif + m_app->error(QStringLiteral("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION); + return false; + } Index: head/x11/sddm/files/sddm.in =================================================================== --- head/x11/sddm/files/sddm.in +++ head/x11/sddm/files/sddm.in @@ -0,0 +1,75 @@ +#!/bin/sh +# $FreeBSD$ +# +# PROVIDE: sddm +# REQUIRE: LOGIN cleanvar moused syscons dbus hald +# KEYWORD: shutdown +# +# Add the following to /etc/rc.conf to start SDDM at boot time: +# +# sddm_enable="YES" + +. /etc/rc.subr + +name=sddm +rcvar=sddm_enable + +load_rc_config ${name} + +: ${sddm_lang="en_US"} # .UTF-8 suffix will be added later to comply with locale format + +command="/usr/local/bin/sddm" +pidfile="/var/run/sddm.pid" +start_cmd="sddm_start" +stop_cmd="sddm_stop" + +# Creates /etc/sddm.conf after `sddm --example-config` if it's not there already. +sddm_genconf() +{ + if [ ! -r /etc/sddm.conf ]; then + echo "Generating SDDM configuration." + ${command} --example-config > /etc/sddm.conf + fi +} + +sddm_start() +{ + echo "Starting ${name}." + local iter + sddm_genconf + + ( iter=0 + while ! ps -axoargs | grep "^/usr/libexec/getty" | grep -qv grep > /dev/null 2>&1; do + if [ ${iter} -eq 60 ]; then + break + fi + sleep 1 + iter=$((${iter} + 1)) + done + + if checkyesno hald_enable; then + if [ ! -x /usr/local/sbin/hald ]; then + err 1 "Hald does not seem to be installed." + fi + + iter=0 + while [ ${iter} -lt 60 ] && + !pgrep -f "^/usr/local/sbin/hald" > /dev/null 2>&1; do + sleep 1 + iter=$((${iter} + 1)) + done + fi + + LANG=${sddm_lang}.UTF-8 ${command} ${sddm_flags} ) & +} + +# Only takes the user back to the sddm screen when run from X +sddm_stop() +{ + echo "Stopping ${name}." + /bin/kill -9 $(/bin/cat "${pidfile}") + pkill -9 -U ${name} + pkill -9 X +} + +run_rc_command "$1" Index: head/x11/sddm/files/xinit-session =================================================================== --- head/x11/sddm/files/xinit-session +++ head/x11/sddm/files/xinit-session @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Runs the user's .xinitrc (at this point, .xsession has already +# been sourced). + +RC="$HOME/.xinitrc" + +test -f "$RC" || exit 1 + +test -x "$RC" && exec "$RC" +test -f "$RC" && exec /bin/sh "$RC" + Index: head/x11/sddm/files/xinitrc.desktop =================================================================== --- head/x11/sddm/files/xinitrc.desktop +++ head/x11/sddm/files/xinitrc.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=XSession +Exec=/usr/local/share/sddm/scripts/xinit-session +TryExec=/usr/local/share/sddm/scripts/xinit-session +DesktopNames=User Session +Name=User Session Index: head/x11/sddm/pkg-descr =================================================================== --- head/x11/sddm/pkg-descr +++ head/x11/sddm/pkg-descr @@ -0,0 +1,3 @@ +QML based X11 and Wayland display manager. + +WWW: https://github.com/sddm/sddm Index: head/x11/sddm/pkg-plist =================================================================== --- head/x11/sddm/pkg-plist +++ head/x11/sddm/pkg-plist @@ -0,0 +1,164 @@ +bin/sddm +bin/sddm-greeter +etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf +etc/pam.d/sddm +etc/pam.d/sddm-autologin +etc/pam.d/sddm-greeter +etc/sddm.conf +%%QT_QMLDIR%%/SddmComponents/Background.qml +%%QT_QMLDIR%%/SddmComponents/Button.qml +%%QT_QMLDIR%%/SddmComponents/Clock.qml +%%QT_QMLDIR%%/SddmComponents/ComboBox.qml +%%QT_QMLDIR%%/SddmComponents/ImageButton.qml +%%QT_QMLDIR%%/SddmComponents/LayoutBox.qml +%%QT_QMLDIR%%/SddmComponents/Menu.qml +%%QT_QMLDIR%%/SddmComponents/PasswordBox.qml +%%QT_QMLDIR%%/SddmComponents/PictureBox.qml +%%QT_QMLDIR%%/SddmComponents/TextBox.qml +%%QT_QMLDIR%%/SddmComponents/TextConstants.qml +%%QT_QMLDIR%%/SddmComponents/qmldir +%%QT_QMLDIR%%/SddmComponents/warning.png +libexec/sddm-helper +%%DATADIR%%/faces/.face.icon +%%DATADIR%%/faces/root.face.icon +%%DATADIR%%/flags/ae.png +%%DATADIR%%/flags/am.png +%%DATADIR%%/flags/ar.png +%%DATADIR%%/flags/at.png +%%DATADIR%%/flags/az.png +%%DATADIR%%/flags/be.png +%%DATADIR%%/flags/bg.png +%%DATADIR%%/flags/bh.png +%%DATADIR%%/flags/br.png +%%DATADIR%%/flags/by.png +%%DATADIR%%/flags/ca.png +%%DATADIR%%/flags/ch.png +%%DATADIR%%/flags/cu.png +%%DATADIR%%/flags/cz.png +%%DATADIR%%/flags/de.png +%%DATADIR%%/flags/dj.png +%%DATADIR%%/flags/dk.png +%%DATADIR%%/flags/dz.png +%%DATADIR%%/flags/ee.png +%%DATADIR%%/flags/eg.png +%%DATADIR%%/flags/es.png +%%DATADIR%%/flags/eu.png +%%DATADIR%%/flags/fi.png +%%DATADIR%%/flags/fr.png +%%DATADIR%%/flags/gb.png +%%DATADIR%%/flags/ge.png +%%DATADIR%%/flags/gr.png +%%DATADIR%%/flags/hr.png +%%DATADIR%%/flags/hu.png +%%DATADIR%%/flags/il.png +%%DATADIR%%/flags/in.png +%%DATADIR%%/flags/iq.png +%%DATADIR%%/flags/is.png +%%DATADIR%%/flags/it.png +%%DATADIR%%/flags/jo.png +%%DATADIR%%/flags/jp.png +%%DATADIR%%/flags/km.png +%%DATADIR%%/flags/kr.png +%%DATADIR%%/flags/kw.png +%%DATADIR%%/flags/la.png +%%DATADIR%%/flags/lb.png +%%DATADIR%%/flags/lt.png +%%DATADIR%%/flags/lv.png +%%DATADIR%%/flags/ly.png +%%DATADIR%%/flags/ma.png +%%DATADIR%%/flags/mk.png +%%DATADIR%%/flags/mn.png +%%DATADIR%%/flags/mx.png +%%DATADIR%%/flags/nl.png +%%DATADIR%%/flags/no.png +%%DATADIR%%/flags/om.png +%%DATADIR%%/flags/pl.png +%%DATADIR%%/flags/ps.png +%%DATADIR%%/flags/pt.png +%%DATADIR%%/flags/qa.png +%%DATADIR%%/flags/qc.png +%%DATADIR%%/flags/ro.png +%%DATADIR%%/flags/ru.png +%%DATADIR%%/flags/sa.png +%%DATADIR%%/flags/sd.png +%%DATADIR%%/flags/se.png +%%DATADIR%%/flags/si.png +%%DATADIR%%/flags/sk.png +%%DATADIR%%/flags/so.png +%%DATADIR%%/flags/sr.png +%%DATADIR%%/flags/sy.png +%%DATADIR%%/flags/th.png +%%DATADIR%%/flags/tn.png +%%DATADIR%%/flags/tr.png +%%DATADIR%%/flags/ua.png +%%DATADIR%%/flags/uk.png +%%DATADIR%%/flags/un.png +%%DATADIR%%/flags/us.png +%%DATADIR%%/flags/uy.png +%%DATADIR%%/flags/vn.png +%%DATADIR%%/flags/ye.png +%%DATADIR%%/flags/yu.png +%%DATADIR%%/flags/zz.png +%%DATADIR%%/scripts/Xsession +%%DATADIR%%/scripts/Xsetup +%%DATADIR%%/scripts/Xstop +%%DATADIR%%/scripts/wayland-session +%%DATADIR%%/scripts/xinit-session +%%DATADIR%%/themes/elarun/Main.qml +%%DATADIR%%/themes/elarun/README +%%DATADIR%%/themes/elarun/angle-down.png +%%DATADIR%%/themes/elarun/elarun.jpg +%%DATADIR%%/themes/elarun/images/background.png +%%DATADIR%%/themes/elarun/images/lock.png +%%DATADIR%%/themes/elarun/images/login_active.png +%%DATADIR%%/themes/elarun/images/login_normal.png +%%DATADIR%%/themes/elarun/images/rectangle.png +%%DATADIR%%/themes/elarun/images/rectangle_overlay.png +%%DATADIR%%/themes/elarun/images/session_normal.png +%%DATADIR%%/themes/elarun/images/system_hibernate.png +%%DATADIR%%/themes/elarun/images/system_reboot.png +%%DATADIR%%/themes/elarun/images/system_shutdown.png +%%DATADIR%%/themes/elarun/images/system_suspend.png +%%DATADIR%%/themes/elarun/images/system_switch_user.png +%%DATADIR%%/themes/elarun/images/user_icon.png +%%DATADIR%%/themes/elarun/metadata.desktop +%%DATADIR%%/themes/elarun/theme.conf +%%DATADIR%%/themes/maldives/LICENSE +%%DATADIR%%/themes/maldives/Main.qml +%%DATADIR%%/themes/maldives/README +%%DATADIR%%/themes/maldives/angle-down.png +%%DATADIR%%/themes/maldives/background.jpg +%%DATADIR%%/themes/maldives/maldives.jpg +%%DATADIR%%/themes/maldives/metadata.desktop +%%DATADIR%%/themes/maldives/rectangle.png +%%DATADIR%%/themes/maldives/theme.conf +%%DATADIR%%/translations/ar.qm +%%DATADIR%%/translations/ca.qm +%%DATADIR%%/translations/cs.qm +%%DATADIR%%/translations/de.qm +%%DATADIR%%/translations/es.qm +%%DATADIR%%/translations/et.qm +%%DATADIR%%/translations/fi.qm +%%DATADIR%%/translations/fr.qm +%%DATADIR%%/translations/hu.qm +%%DATADIR%%/translations/it.qm +%%DATADIR%%/translations/ja.qm +%%DATADIR%%/translations/ko.qm +%%DATADIR%%/translations/lt.qm +%%DATADIR%%/translations/lv.qm +%%DATADIR%%/translations/nb.qm +%%DATADIR%%/translations/nn.qm +%%DATADIR%%/translations/pl.qm +%%DATADIR%%/translations/pt_BR.qm +%%DATADIR%%/translations/pt_PT.qm +%%DATADIR%%/translations/ro.qm +%%DATADIR%%/translations/ru.qm +%%DATADIR%%/translations/sr.qm +%%DATADIR%%/translations/sr@ijekavian.qm +%%DATADIR%%/translations/sr@ijekavianlatin.qm +%%DATADIR%%/translations/sr@latin.qm +%%DATADIR%%/translations/sv.qm +%%DATADIR%%/translations/tr.qm +%%DATADIR%%/translations/zh_CN.qm +%%DATADIR%%/translations/zh_TW.qm +share/xsessions/xinitrc.desktop