Pour Ubuntu 14.04 et 16.04 (Unity)
Utilisez gsettings
pour désactiver la plupart des éléments de menu dans le menu de session de l'indicateur et utilisez systemctl
pour désactiver la capacité de suspension elle-même au niveau du système systemd. Cette solution n'est cependant pas parfaite.
Comment désactiver les éléments de menu
Pour commencer, recherchez les clés pertinentes à l'aide de la commande gsettings
et filtrez avec la commande grep
. Utilisez "session" et "menu" comme mots-clés à filtrer deux fois.
$ gsettings list-recursively | grep session | grep menu
com.canonical.indicator.session suppress-logout-menuitem false
com.canonical.indicator.session force-restart-menuitem false
com.canonical.indicator.session suppress-restart-menuitem false
com.canonical.indicator.session suppress-shutdown-menuitem false
com.canonical.indicator.session user-show-menu true
Ensuite, utilisez gsettings
pour définir les clés pertinentes avec une valeur opposée aux valeurs actuelles, c'est-à-dire que "false" devient "true", vice versa. Exécutez les commandes suivantes, une par une.
$ gsettings set com.canonical.indicator.session suppress-shutdown-menuitem true
$ gsettings set com.canonical.indicator.session suppress-restart-menuitem true
$ gsettings set com.canonical.indicator.session suppress-logout-menuitem true
$ gsettings set com.canonical.indicator.session user-show-menu false
Pour que la clé suppress-logout-menuitem
prenne effet, l'utilisateur peut avoir besoin de recharger le bureau Unity (exécutez la commande unity
dans Terminal ou dans l'invite de commande HUD, pas besoin de vous déconnecter ou autre).
Et c'est tout ce qu'il faut faire pour masquer la plupart des éléments de menu.
En suivant les étapes ci-dessus, tous les éléments de menu sont maintenant masqués dans le menu de session de l'indicateur, sauf l'élément de menu "Suspend". Il y a un bug ouvert concernant l'impossibilité de masquer l'élément de menu Suspend. Confirmer et s'y abonner peut encourager sa résolution.
Étant donné que l'élément de menu ne peut pas être supprimé directement, la solution la plus simple suivante est de désactiver toute suspension au niveau du système.
Comment désactiver la suspension dans Ubuntu 14.04 (Unity, upstart)
Dans la version 14.04, il existe plusieurs façons de désactiver la suspension, c'est-à-dire modifier les fichiers de configuration pour polkit-1
ou pm-utils
. Mais il n'y a aucune clarification sur celle qui fonctionnera réellement correctement.
Comment désactiver la suspension dans Ubuntu 16.04 (Unity, systemd)
Dans la version 16.04, désactivez toute suspension avec systemd comme noté sur le Wiki Debian.
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink from /etc/systemd/system/sleep.target to /dev/null.
Created symlink from /etc/systemd/system/suspend.target to /dev/null.
Created symlink from /etc/systemd/system/hibernate.target to /dev/null.
Created symlink from /etc/systemd/system/hybrid-sleep.target to /dev/null.
La commande systemctl
prendra effet immédiatement. Pas besoin de redémarrer ou autre.
Par conséquent, chaque fois que l'élément de menu "Suspend" est cliqué, le système ne se met pas en veille mais provoque uniquement l'extinction de l'écran et le retour à l'écran de connexion (effet similaire à "Verrouiller l'écran").
Contournement pour un problème connu après la suspension
Même sans suspension réelle, le même problème connu se posera lors de la reprise de la session actuelle : Network manager ne se réveille pas après la suspension. La solution de contournement est de redémarrer le service.
$ sudo systemctl restart network-manager.service
Le gestionnaire de réseau sera redémarré et la mise en réseau sera à nouveau disponible.
Testé et fonctionnant dans Ubuntu 16.04 (Unity), fraîchement installé dans VirtualBox.