Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37496713
en ru br
ALT Linux repositórios
S:4.18.3-alt2
5.0: 4.6.1-alt1
4.1: 4.4.3-alt0.M41.1
4.0: 4.4.2-alt0.M40
3.0: 4.2.2-alt1

Group :: Desktop gráfico/XFce
RPM: xfce4-session

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: xfce4-session-4.18.3-alt2.patch
Download


 configure.ac.in              |  1 +
 scripts/xflock4              |  5 ++++-
 scripts/xinitrc.in.in        | 31 ++++++++++++++++++++++++-------
 xfce.desktop.in              |  2 +-
 xfce4-session/Makefile.am    |  2 ++
 xfce4-session/xfsm-manager.c |  5 +++++
 xfce4-session/xfsm-startup.c |  5 +++--
 7 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/configure.ac.in b/configure.ac.in
index e592c5b2..5d85c63b 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -107,6 +107,7 @@ XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.66.0])
 XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.66.0])
 XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [2.66.0])
 XDT_CHECK_PACKAGE([LIBWNCK], [libwnck-3.0], [3.10])
+XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.72])
 XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.12.0])
 
 dnl Check for Polkit/PolicyKit
diff --git a/scripts/xflock4 b/scripts/xflock4
index 9c54f34b..636c064a 100755
--- a/scripts/xflock4
+++ b/scripts/xflock4
@@ -22,6 +22,8 @@
 #  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 #
 
+XFCE4_SCREENSAVER="xfce4-screensaver-command"
+
 # Wait a bit so that user have time to raise finger from a key if
 # the script is run in terminal.
 [ -t 0 ] && sleep 1
@@ -39,12 +41,13 @@ if [ -n "$LOCK_CMD" ]; then
 fi
 
 # Try our screensaver first
-xfce4-screensaver-command --lock </dev/null 2>/dev/null && exit
+$XFCE4_SCREENSAVER --lock </dev/null 2>/dev/null && exit
 
 # This list should be kept in sync with XfceScreensaver (libxfce4ui)
 xdg-screensaver lock </dev/null 2>/dev/null && exit
 for lock_cmd in \
     xscreensaver-command \
+    mate-screensaver-command \
     light-locker-command
 do
     $lock_cmd --lock </dev/null 2>/dev/null && exit
diff --git a/scripts/xinitrc.in.in b/scripts/xinitrc.in.in
index ff044edf..fd1ed741 100755
--- a/scripts/xinitrc.in.in
+++ b/scripts/xinitrc.in.in
@@ -53,6 +53,9 @@ fi
 # For now, start with an empty list
 XRESOURCES=""
 
+# ~/.Xresources contains overrides to the above
+test -r "$HOME/.Xresources" && XRESOURCES="$XRESOURCES $HOME/.Xresources"
+
 # Has to go prior to merging Xft.xrdb, as its the "Defaults" file
 test -r "@_sysconfdir_@/xdg/xfce4/Xft.xrdb" && XRESOURCES="$XRESOURCES @_sysconfdir_@/xdg/xfce4/Xft.xrdb"
 test -r $HOME/.Xdefaults && XRESOURCES="$XRESOURCES $HOME/.Xdefaults"
@@ -69,9 +72,6 @@ fi
 # merge in X cursor settings
 test -r "$BASEDIR/Xcursor.xrdb" && XRESOURCES="$XRESOURCES $BASEDIR/Xcursor.xrdb"
 
-# ~/.Xresources contains overrides to the above
-test -r "$HOME/.Xresources" && XRESOURCES="$XRESOURCES $HOME/.Xresources"
-
 # load all X resources (adds /dev/null to avoid an empty list that would hang the process)
 cat /dev/null $XRESOURCES | xrdb -merge -
 
@@ -79,16 +79,32 @@ cat /dev/null $XRESOURCES | xrdb -merge -
 test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap
 
 # if XAUTHLOCALHOSTNAME is not set in systemd user session, starting of xfce4-notifyd, DISPLAY etc. will fail
-if command -v systemctl >/dev/null 2>&1 && systemctl --user list-jobs >/dev/null 2>&1; then # user session is running
-  dbus-update-activation-environment --systemd XAUTHLOCALHOSTNAME=$XAUTHLOCALHOSTNAME
+SYSTEMCTL=systemctl
+if /sbin/sd_booted >/dev/null && \
+	command -v "$SYSTEMCTL" >/dev/null 2>&1 && "$SYSTEMCTL" --user list-jobs >/dev/null 2>&1; then # user session is running
+  dbus-update-activation-environment --systemd XAUTHLOCALHOSTNAME=$XAUTHLOCALHOSTNAME XDG_SEAT="$XDG_SEAT" XDG_SEAT_PATH="$XDG_SEAT_PATH"
 fi
 
+# Migrate from old ALT-specific Xfce xkb settings (/Default/XkbOption property)
+# to the new upstream's propeties (/Default/XkbOptions/Group, /Default/XkbOptions/Compose)
+XFCONF_QUERY_CMD="xfconf-query -c keyboard-layout"
+old_xkb_options="$($XFCONF_QUERY_CMD -p /Default/XkbOption 2>/dev/null)"
+if [ -n "$old_xkb_options" ]; then
+    $XFCONF_QUERY_CMD -p /Default/XkbOption --reset
+    xkb_option_grp="$(printf %s "$old_xkb_options" | sed -n -r 's/.*(grp:[^[:blank:],]+).*/\1/p')"
+    [ -z "$xkb_option_grp" ] ||
+        $XFCONF_QUERY_CMD -p /Default/XkbOptions/Group --create --type=string --set="$xkb_option_grp"
+    xkb_option_compose="$(printf %s "$old_xkb_options" | sed -n -r 's/.*(compose:[^[:blank:],]+).*/\1/p')"
+    [ -z "$xkb_option_compose" ] ||
+        $XFCONF_QUERY_CMD -p /Default/XkbOptions/Compose --create --type=string --set="$xkb_option_compose"
+fi
 
 # check if we start xfce4-session with ck-launch-session. this is only
 # required for starting from a console, not a login manager
 if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then
-  if command -v ck-launch-session >/dev/null 2>&1; then
-    exec ck-launch-session xfce4-session
+  CK_LAUNCH_SESSION=ck-launch-session
+  if command -v $CK_LAUNCH_SESSION >/dev/null 2>&1; then
+    exec $CK_LAUNCH_SESSION xfce4-session
   else
     echo
     echo "You have tried to start Xfce with consolekit support, but"
@@ -102,5 +118,6 @@ else
   exec xfce4-session
 fi
 
+
 # if we got here, then exec failed
 exit 1
diff --git a/xfce.desktop.in b/xfce.desktop.in
index 58fb274f..0b509675 100644
--- a/xfce.desktop.in
+++ b/xfce.desktop.in
@@ -2,7 +2,7 @@
 Version=1.0
 _Name=Xfce Session
 _Comment=Use this session to run Xfce as your desktop environment
-Exec=startxfce4
+Exec=/usr/bin/startxfce4
 Icon=
 Type=Application
 DesktopNames=XFCE
diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
index 5cbbd2ec..c7804503 100644
--- a/xfce4-session/Makefile.am
+++ b/xfce4-session/Makefile.am
@@ -79,6 +79,7 @@ xfce4_session_CFLAGS =							\
 	$(POLKIT_CFLAGS)						\
 	$(XFCONF_CFLAGS)						\
 	$(GMODULE_CFLAGS)						\
+	$(DBUS_GLIB_CFLAGS)							\
 	$(PLATFORM_CFLAGS)
 
 xfce4_session_LDFLAGS =							\
@@ -95,6 +96,7 @@ xfce4_session_LDADD =							\
 	$(GMODULE_LIBS)							\
 	$(GIO_LIBS)								\
 	$(LIBWNCK_LIBS)							\
+	$(DBUS_GLIB_LIBS)							\
 	$(POLKIT_LIBS)							\
 	$(XFCONF_LIBS)							\
 	$(LIBM)
diff --git a/xfce4-session/xfsm-manager.c b/xfce4-session/xfsm-manager.c
index 79917625..028b70d7 100644
--- a/xfce4-session/xfsm-manager.c
+++ b/xfce4-session/xfsm-manager.c
@@ -1268,6 +1268,11 @@ xfsm_manager_save_yourself_global (XfsmManager     *manager,
                                    NULL);
               g_error_free (error);
             }
+          else
+            {
+              /* Restore XKB settings */
+              g_spawn_command_line_async ("xfce4-fixkeyboard", NULL);
+            }
 
           /* at this point, either we failed to suspend/hibernate/hybrid sleep/switch user,
            * or we successfully did and we've been woken back
diff --git a/xfce4-session/xfsm-startup.c b/xfce4-session/xfsm-startup.c
index f093e0d7..4e58e1da 100644
--- a/xfce4-session/xfsm-startup.c
+++ b/xfce4-session/xfsm-startup.c
@@ -247,7 +247,8 @@ xfsm_startup_init (XfconfChannel *channel)
         g_warning ("No GPG agent found");
     }
 
-  if (xfconf_channel_get_bool (channel, "/startup/ssh-agent/enabled", TRUE))
+  /* ALT specific: ssh-agent should be launched from /etc/X11/profile.d/ssh-agent.sh */
+  if (xfconf_channel_get_bool (channel, "/startup/ssh-agent/enabled", FALSE))
     {
       ssh_agent = xfconf_channel_get_string (channel, "/startup/ssh-agent/type", NULL);
 
@@ -272,7 +273,7 @@ xfsm_startup_init (XfconfChannel *channel)
       g_free (ssh_agent);
     }
 
-  if (G_LIKELY (ssh_agent_path != NULL || gpgagent_ssh_enabled))
+  if (G_UNLIKELY (ssh_agent_path != NULL || gpgagent_ssh_enabled))
     {
       agentpid = xfsm_ssh_agent_pid (g_getenv ("SSH_AGENT_PID"));
 
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009