# [XFCE4 + SLIM]Eteindre en mode graphique [RESOLU !]

## FDZ

Bonjour,

Je suis sous Xfce4 + slim. Je démarre directement directement en mode graphique, mais pour sortir, l'icêne "Deconnexion" me donne accès à "Déconnexion" (logique) mais les options "Redémarrer", Eteindre" et "Mise en veille" sont en grisé et inutilisables. Comment faire pour les valider ?

Pour l'instant, je suis obligé pour sortir de lancer une commande console "sudo halt"; efficace, mais pas très pratique ...

[Edit] Ma version de Xorg-server est la 1.15.0 [/Edit]

----------

## nicop

Salut,

As-tu Xfce 4.10 ou 4.11, et as-tu migré sous systemd ?

Sinon quels sont les useflags activés pour xfce4-session et slim ?

Il y a de forte chance que polkit ne fournisse pas les bonnes permissions. Tu peux jeter un coup d'oeil ici : https://forums.gentoo.org/viewtopic-t-984954-start-0.html

----------

## FDZ

Informations complémentaires :

- Version

XFCE4 : xfce-extra/xfce4-vala-4.10.3

slim : x11-misc/slim-1.3.6-r3

xfce4-sessionx : xfce-base/xfce4-session-4.10.1 was built with the following:

                            USE="udev xscreensaver -debug -systemd"

/etc/slim.conf

```
# Path, X server and arguments (if needed)

# Note: -xauth $authfile is automatically appended

default_path        /bin:/usr/bin:/usr/local/bin

default_xserver     /usr/bin/X

xserver_arguments   -nolisten tcp -br -deferglyphs 16 vt07

# Commands for halt, login, etc.

halt_cmd            /sbin/shutdown -h now

reboot_cmd          /sbin/shutdown -r now

console_cmd         /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"

#suspend_cmd        /usr/sbin/suspend

# Full path to the xauth binary

xauth_path         /usr/bin/xauth 

# Xauth file for server

authfile           /var/run/slim.auth

# Activate numlock when slim starts. Valid values: on|off

numlock             on

# Hide the mouse cursor (note: does not work with some WMs).

# Valid values: true|false

# hidecursor          false

# This command is executed after a succesful login.

# you can place the %session and %theme variables

# to handle launching of specific commands in .xinitrc

# depending of chosen session and slim theme

#

# NOTE: if your system does not have bash you need

# to adjust the command according to your preferred shell,

# i.e. for freebsd use:

# login_cmd           exec /bin/sh - ~/.xinitrc %session

login_cmd           exec /bin/bash -login ~/.xinitrc %session

# login_cmd           exec /bin/bash -login /usr/share/slim/Xsession %session

# Commands executed when starting and exiting a session.

# They can be used for registering a X11 session with

# sessreg. You can use the %user variable

#

# sessionstart_cmd   some command

# sessionstop_cmd   some command

sessionstart_cmd   /usr/bin/sessreg -a -l :0.0 %user

sessionstop_cmd     /usr/bin/sessreg -d -l :0.0 %user

# Start in daemon mode. Valid values: yes | no

# Note that this can be overriden by the command line

# options "-d" and "-nodaemon"

daemon   yes

# Available sessions:

# The current chosen session name replaces %session in the login_cmd

# above, so your login command can handle different sessions.

# If no session is chosen (via F1), %session will be an empty string.

# see the xinitrc.sample file shipped with slim sources

#sessions            xfce4,icewm-session,wmaker,blackbox

# Alternatively, read available sessions from a directory of scripts:

#sessiondir           /etc/X11/Sessions

# Or, read available sessions from the xsessions desktop files --

# note that this may provide a full path to the session executable!

sessiondir   /usr/share/xsessions

# Executed when pressing F11 (requires media-gfx/imagemagick for import)

# Alternative is media-gfx/scrot. See Gentoo bug 252241 for more info.

screenshot_cmd      import -window root /slim.png

#screenshot_cmd      scrot /root/slim.png

# welcome message. Available variables: %host, %domain

welcome_msg         Welcome to %host

# Session message. Prepended to the session name when pressing F1

# session_msg         Session: 

# shutdown / reboot messages

shutdown_msg       The system is halting...

reboot_msg         The system is rebooting...

# default user, leave blank or remove this line

# for avoid pre-loading the username.

default_user        francis

# Focus the password field on start when default_user is set

# Set to "yes" to enable this feature

focus_password      no

# Automatically login the default user (without entering

# the password. Set to "yes" to enable this feature

auto_login          yes

# current theme, use comma separated list to specify a set to 

# randomly choose from

current_theme       default

# Lock file, /etc/init.d/xdm expects slim.pid

lockfile            /run/slim.pid

# Log file

logfile             /var/log/slim.log

```

.xinitrc :

```
#exec startxfce4

exec ck-launch-session startxfce4

```

J'ai tenté d'appliquer les solutions proposées dans ce forum et dans d'autres, sans succès. Je n'ai pas voulu changer les permissions. 

Voici les groupes dont je suis membre :

```
francis@localhost ~ $ grep francis /etc/group

lp:x:7:lp,francis

wheel:x:10:root,francis

audio:x:18:francis

cdrom:x:19:francis

cdrw:x:80:francis

usb:x:85:francis

users:x:100:francis

francis:x:1000:

```

{edit] Le bouton (hard) d'extinction du PC n'a aucun effet [/edit]

----------

## xaviermiller

Hello,

Essaie sans .xinitrc, mais en définissant une variable XSESSION="xfce4" dans /etc/env.d

----------

## FDZ

Merci Xavier !. J'avais déjà dans /etc/env.d/90xsession "XSESSION="Xfce4"", J'ai rectifié en passant en minuscule :"XSESSION="xfce4"" et j'ai commenté mon ./xinitrc.

D'autre part, je m'insurge contre un conseil donné par ailleurs, de rajouter dans /etc/sudoers la ligne 

```
%users ALL = NOPASSWD:/usr/lib64/xfce4/session/xfsm-shutdown-helper
```

et de rajouter l'utilisateur courant au groupe users : cette manip permet aux membres du groupe users d'utiliser la commande "sudo usr/lib64/xfce4/session/xfsm-shutdown-helper" mais ne libère pas les icones ! D'autant qu'un utilisateur courant du PC (le mien en l'occurence), déjà membre du groupe wheel qui dispose de toutes les prérogatives d'administrateur a donc déjà la permission rajoutée par cette modif !

M'enfin, ce n'est qu'une manip inutile et/ou superflue, qui n'apporte pas grand chose et ne présente pas de risque à priori.

?? Après sortie de session, impossible de se reconnecter ! J'ai du passer en tty1 et remettre en service mon fichier .xinitrc pour retrouver la situation antérieure ....

NB : pas possible de se connecter en root ! Est-ce voulu (genre la fameuse assertion micro$oft "it's not a bug, it's by design !") ?

[Edit] Rectification : je ne peux pas me connecter en root à partir de la page de démarrage obtenue en sortant de la session courante, mais j'y parviens avec un simple "startx" à partir de tty1; et dans ce cas les icônes concernées sont bien actives.[/Edit]

----------

## USTruck

Bonjour,

Je n'utilise pas xfce/slim, je parle donc peut-être a côté de la plaque.

D'après :

https://forums.gentoo.org/viewtopic-t-948572-highlight-xfce+slim.html

Il faut complier avec le use : consolekit (pas oublier rc-update add consolekit default) et cela devrait fonctionner

Et confirmé par le wiki xfce (en Anglais) http://wiki.gentoo.org/wiki/Xfce/HOWTO

----------

## FDZ

Bonjour USTruck

Question de noob : comment je fais pour forcer la compil avec consolekit ?

----------

## USTruck

Bonjour,

Pour forcer, il y a deux solutions

La plus simple, ajoute le use 'consolkit' au /etc/portage/make.conf

emerge -uDNav world etc ...

A moins que tu aie du temps ...

-------------------------------------

emerge -epv world | grep 'consolekit'

les builds qui ont consolekit en USE, voir si tu as besoin de consolekit pour celle-ci et noter app/build (

ebuild R ] sys-auth/consolekit-0.4.6 USE="acl pam policykit -debug -doc (-selinux) -systemd-units {-test}" 0 kB => sys-auth/consolekit)

Pour chaque build noté, les ajouter au fichier /etc/portage/package.use et ajouter consolekit ce qui devient, ici avec consolekit :

sys-auth/consolekit debug-doc  #  'ajout doc debug

quand terminé : emerge -uDN world et portage fait le reste

Edit : j'avais oublier ; euse -I : utilitaire faisant partie du paquet gentoolkit, avec -I (i majuscule) affiche info en rapport avec le USE mais aussi les paquets installé qui sont impacté si on ajoute le use. 

euse -I consolekit

T'affiche les builds, plus qu'a les noter et ajouter au fichier /etc/portage/package.use

----------

## FDZ

Bon, j'ai ajouté "consolekit" aux options use de make.conf, puis lancé "emerge -uDNav world " après avoir rajouté les options demandées dans package.use. J'ai aussi lancé "rc-update add consolekit default" mais tout ça n'a rien changé (du moins en apparence)

----------

## FDZ

Je me suis peut-être un peu avancé quand je me suis insurgé vis-à-vis de l'option d'utiliser sudoers : cette manip est décrite là :http://wiki.xfce.org/fr/faq, et il n'est pas besoin d'utiliser explicitement sudo vu l'option "nopasswd". Cependant, du moins chez moi, ladite manip ne fonctionne pas.

NB : le binaire exécutable "xfsm-shutdown-helper" est en mode 755, donc exécutable par tout le monde, non ? Alors pourquoi changer ainsi sudoers ? 

modification obsolète ?

----------

## USTruck

Bonjour,

Un avis tout personnel, qui n'engage que moi, j'aime pas sudo du coup je ne l'utilise pas et ne peut donc t'aider a sont propos.

As-tu démarré consolekit (/etc/init.d/consolekit start) ou redémarré le systeme ?

As-tu vérifier que ton utilisateur fait partie des bon groupes (par rapport au faq xfce ...)

Enfin, et pour terminer, si tu mets consolekit dans /etc/portage/make.conf, il n'y a pas besoin de mettre les builds dans le package.use ....c'est l'un ou l'autre ...

Make.conf : se rapporte a tout le système

package.use : se rapporte a un build en particulier ...

Exemple : dans make.conf le use  -java est indiqué, la personne ne VEUT pas avoir de java sur le système

mais voila, il est obligé d'utiliser java pour un travail avec la db de libreoffice .... la solution : package.use ou l'on indique 'java' pour libreoffice.

Java sera installé, mais 'lié' qu'a libreoffice, tout le reste ne saura pas l'utiliser puisque pas compilé avec support java  (du moins si liée a la compilation, si liaison dynamique il trouvera les libs et binaire java )

Si tu mets consolekit dans make.conf, pas besoin de l'indiqué pour les builds dans package.use

----------

## FDZ

Merci USTruck pour ces informations que ja garde précieusement sous le coude gauche. En ce qui concerne les quelques lignes que j'ai rajoutées à package.use, c'étaient des options demandées quand j'ai lancé une première fois "emerge -uDNav world" et ça n'était pas forcément en liaison avec consolekit.

En ce qui concerne mon problème, l'origine semblerait plutot être du coté de slim, comme il est dit là [url]emerge -uDNav world[/url].

Je vais tenter comme dans ce post de virer slim et le remplacer par gdm. Bien entendu, je reviens vous tenir au courant !

----------

## xaviermiller

as-tu bien compilé slim avec les bons USE ?

```
emerge -pv slim
```

----------

## FDZ

J'ai installé slim en suivant le wiki, je suppose que c'étaient les bons use ... sinon comment savoir si ce sont les bons ?

Dans le doute, j'ai recompilé et ça donne 

```
francis@localhost ~ $ sudo emerge -pv slim

Mot de passe : 

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] x11-misc/slim-1.3.6-r3  USE="branding* consolekit* pam" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

!!! The following installed packages are masked:

- sys-power/upower-0.9.23::gentoo (masked by: package.mask)

/usr/portage/profiles/base/package.mask:

# Rick Farina <zerochaos@gentoo.org> (6 Jun 2013)

# Pm-utils based hibernate and suspend support has discontinued.

# For continued support, use the upower-pm-utils fork or systemd.

# Systemd users can switch to a systemd profile or unmask <sys-power/upower-0.99.0

# Openrc users can "emerge -C upower && emerge -1 upower-pm-utils"

For more information, see the MASKED PACKAGES section in the emerge

man page or refer to the Gentoo Handbook.

```

----------

## xaviermiller

Donne-les nous STP, on a trop peu d'information précise, on n'est pas Madame Irma...

----------

## FDZ

1- les "use" de make.conf :

```
USE="-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar udev X gtk ncurses nls pm-utils consolekit -ambiance (-ioctl) -libnotify -mac4lin"

```

2- mon package.use :

```
x11-base/xorg-server udev

>=gnome-base/gvfs-1.18.3 udisks

>=sys-auth/consolekit-0.4.6 policykit

=virtual/udev-208-r1 gudev

=sys-fs/udev-208 gudev

=dev-lang/python-2.7.5-r3 sqlite

=media-libs/libpng-1.6.8 apng

=app-text/ghostscript-gpl-9.10-r2 cups

=dev-libs/libxml2-2.9.1-r1 python

>=media-libs/libpng-1.6.10 apng

=media-libs/harfbuzz-0.9.23 icu

=media-libs/speex-1.2_rc1 ogg

=xfce-extra/xfce4-vala-4.10.3 ~amd64

=sys-fs/udev-212-r1 gudev

>=dev-libs/libxml2-2.9.1-r4 python

=dev-lang/python-2.7.6 sqlite

>=virtual/udev-208-r2 gudev

gnome-base/gnome-session branding

```

J'hésite encore à installer gdm : j'avais opté pour "xfce4 + slim" pour des raisons de taille, mais il me semble que gnome n'est pas un exemple dans ce domaine ...

[Edit] J'ai vu que slim.conf pouvait influer, le voici :

```
# Path, X server and arguments (if needed)

# Note: -xauth $authfile is automatically appended

default_path        /bin:/usr/bin:/usr/local/bin

default_xserver     /usr/bin/X

xserver_arguments   -nolisten tcp -br -deferglyphs 16 vt07

# Commands for halt, login, etc.

halt_cmd            /sbin/shutdown -h now

reboot_cmd          /sbin/shutdown -r now

console_cmd         /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"

#suspend_cmd        /usr/sbin/suspend

# Full path to the xauth binary

xauth_path         /usr/bin/xauth

# Xauth file for server

authfile           /var/run/slim.auth

# Activate numlock when slim starts. Valid values: on|off

numlock             on

```

[/Edit]

----------

## nicop

 *Quote:*   

> [ebuild   R    ] x11-misc/slim-1.3.6-r3  USE="branding* consolekit* pam" 0 kB

 

Les astérisques (*) à côté des uses montre que ta version actuellement installée n'est pas compilée avec le support de consolekit.

Il faut que tu recompile le paquet. 

Pour vérifier que ça vient bien de slim :

- garde ton .xinitrc avec : 

```
exec ck-launch-session startxfce4 
```

- vérifie que consolekit est bien lancé

- lance startx

- vérifie si tes icônes apparaissent et donne-nous le résultat de 

```
ck-list-sessions
```

-----

EDIT :

Tant qu'on y est vérifie aussi que pambase est bien compilé avec consolekit, donne le résultat de : 

```
cat /etc/pam.d/system-login
```

----------

## xaviermiller

Fais un 

```
emerge -DuNav @world
```

----------

## FDZ

 *XavierMiller wrote:*   

> Fais un 
> 
> ```
> emerge -DuNav @world
> ```
> ...

 

Ça me propose 242 programmes à recompiler ! Ça tourne ...

@nicop :

```
francis@localhost ~ $ ck-list-sessions

Session2:

   unix-user = '1000'

   realname = '(null)'

   seat = 'Seat3'

   session-type = ''

   active = FALSE

   x11-display = ':0.0'

   x11-display-device = '/dev/tty7'

   display-device = ''

   remote-host-name = ''

   is-local = FALSE

   on-since = '2014-06-18T08:24:18.023608Z'

   login-session-id = '2'

```

et 

```
francis@localhost ~ $ cat /etc/pam.d/system-login

auth      required   pam_tally2.so onerr=succeed

auth      required   pam_shells.so 

auth      required   pam_nologin.so 

auth      include      system-auth

             

account      required   pam_access.so 

account      required   pam_nologin.so 

account      include      system-auth

account      required   pam_tally2.so onerr=succeed 

 

password   include      system-auth

 

session         optional        pam_loginuid.so

session      required   pam_env.so 

session      optional   pam_lastlog.so silent 

session      include      system-auth

session      optional   pam_motd.so motd=/etc/motd

session      optional   pam_mail.so

```

----------

## nicop

```
emerge -DuNav @world
```

 devrait règler le problème. PAM et Slim n'étaient pas compilés avec le support de consolekit.

Après la mise à jour, mets bien à jour les fichiers de configuration avec etc-update (ou équivalent).

Après ça, /etc/pam.d/system-login devrait contenir une ligne avec "pam_ck_connector.so".

----------

## FDZ

 *nicop wrote:*   

> 
> 
> ```
> emerge -DuNav @world
> ```
> ...

 

Merci nicop, je vos que tu confirme l'avis de Xavier. Ca tourne depuis dejà quelques heures, on en est à 170 sur 242 ...

----------

## xaviermiller

Il faut penser à mettre à jour régulièrement, pas simplement installer un nouveau paquet de temps en temps  :Wink: 

----------

## FDZ

Merci xavier, je m'en souviendrai.

La compil est maintenant terminée, mais 

```
localhost ~ # sudo /etc/pam.d/system-login

sudo: /etc/pam.d/system-login: command not found

```

[of course, system-login n'est pas exécutable !!!]

pam n'était pas installé ? [mais si :]

A part ça, rien de neuf, on verra après reboot

----------

## FDZ

Les surprises du reboot :

Je me retrouve d'abord sur un érann de login alors que j'avais auparavant configuré le bousin pour un autologon. Pas grave, je peux refaire, passons !

Je me logue donc en single user et là, j'obtiens un superbe écran noir ! Je passe en tty1 et lance un startx en admin : ça tourne !

Je ressors de cette session et tente un login graphique en user (startx en mode single user) : écran noir !? J'éteins le PC et passe à autre chose.

Plus tard, je relance la machine : écran de login => login en user => écran noir, j’attends un peu plus que la dernière fois ... Et là bingo ! Je retrouve mon écran graphique : Et les options de sortie sont validées ! (sauf"Changer d'utilisateur" et "Suspendre", mais je n'utilise pas ces options).

Donc : problème résolu ! 

Merci à tous !   :Very Happy: 

----------

