From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Wingo Subject: [PATCH] Add GNOME and XFCE desktop services. Date: Wed, 24 Feb 2016 23:14:50 +0100 Message-ID: <8737sh92n9.fsf@pobox.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41244) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYhi3-0002Lz-L1 for guix-devel@gnu.org; Wed, 24 Feb 2016 17:15:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYhhz-0005TH-Jy for guix-devel@gnu.org; Wed, 24 Feb 2016 17:15:03 -0500 Received: from pb-sasl0.int.icgroup.com ([208.72.237.25]:53378 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYhhz-0005T9-ER for guix-devel@gnu.org; Wed, 24 Feb 2016 17:14:59 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl0.pobox.com (Postfix) with ESMTP id 123B243595 for ; Wed, 24 Feb 2016 17:14:59 -0500 (EST) Received: from pb-sasl0.int.icgroup.com (unknown [127.0.0.1]) by pb-sasl0.pobox.com (Postfix) with ESMTP id 093B143593 for ; Wed, 24 Feb 2016 17:14:59 -0500 (EST) Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl0.pobox.com (Postfix) with ESMTPSA id 2A0AE43592 for ; Wed, 24 Feb 2016 17:14:57 -0500 (EST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org --=-=-= Content-Type: text/plain This gets me a little farther but not far enough :) With my polkit patch, which is under upstream discussion but probably will go in in some different form, I can "pkexec ls", allowing me to "ls" as root if I supply the root password. With this patch, I should be able to run this program as the "active" user: no no yes /gnu/store/5l02a25w3gagrxf9nyfayayyiphfmk50-gnome-settings-daemon-3.18.2/libexec/gsd-backlight-helper But: $ pkexec /gnu/store/5l02a25w3gagrxf9nyfayayyiphfmk50-gnome-settings-daemon-3.18.2/libexec/gsd-backlight-helper --set-brightness 300 Error executing command as another user: Not authorized This incident has been reported. So not even an opportunity to enter a password. Evidently polkit doesn't see me as "active". Probably an elogind thing. Anyway, still, going in the right way I think. Andy --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=0001-gnu-services-Add-GNOME-and-XFCE-desktop-services.patch >From 0d3b2b47b9742a5b381cd3e89b12f00951b557e9 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 24 Feb 2016 23:08:58 +0100 Subject: [PATCH] gnu: services: Add GNOME and XFCE desktop services. * gnu/services/desktop.scm () (gnome-desktop-service-type, ) (xfce-desktop-service-type): New variables. (gnome-desktop-service, xfce-desktop-service): New public variables. * gnu/services/desktop.scm (%desktop-services): Add gnome-desktop-service and xfce-desktop-service. --- gnu/services/desktop.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 02bcf1b..2f81a68 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -32,6 +32,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) + #:use-module (gnu packages xfce) #:use-module (gnu packages avahi) #:use-module (gnu packages polkit) #:use-module (gnu packages xdisorg) @@ -51,6 +52,8 @@ polkit-service elogind-configuration elogind-service + gnome-desktop-service + xfce-desktop-service %desktop-services)) ;;; Commentary: @@ -710,6 +713,52 @@ when they log out." ;;; +;;; GNOME desktop service. +;;; + +(define-record-type* gnome-desktop-configuration + make-gnome-desktop-configuration + gnome-desktop-configuration + (gnome-settings-daemon gnome-settings-daemon-package + (default gnome-settings-daemon))) + +(define gnome-desktop-service-type + (service-type + (name 'gnome-desktop) + (extensions + (list (service-extension polkit-service-type + (compose list gnome-settings-daemon-package)))))) + +(define* (gnome-desktop-service #:key (config (gnome-desktop-configuration))) + "Return a service that enables the GNOME desktop to run privileged commands, +like changing the backlight of an LCD, on behalf of a user logged in to a +graphical session." + (service gnome-desktop-service-type config)) + + +;;; +;;; XFCE desktop service. +;;; + +(define-record-type* xfce-desktop-configuration + make-xfce-desktop-configuration + xfce-desktop-configuration + (thunar thunar-package (default thunar))) + +(define xfce-desktop-service-type + (service-type + (name 'xfce-desktop) + (extensions + (list (service-extension polkit-service-type + (compose list thunar-package)))))) + +(define* (xfce-desktop-service #:key (config (xfce-desktop-configuration))) + "Return a service that enables the XFCE desktop to run a file manager as +root, if the user authenticates using the root password." + (service xfce-desktop-service-type config)) + + +;;; ;;; The default set of desktop services. ;;; @@ -717,6 +766,10 @@ when they log out." ;; List of services typically useful for a "desktop" use case. (cons* (slim-service) + ;; Polkit permissions for desktops to control brightness, etc. + (gnome-desktop-service) + (xfce-desktop-service) + ;; Screen lockers are a pretty useful thing and these are small. (screen-locker-service slock) (screen-locker-service xlockmore "xlock") -- 2.6.3 --=-=-=--