From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Nikolaev Subject: Customize %desktop-services. Date: Thu, 12 May 2016 22:45:28 +0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c3897271f9ac0532aa6651 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43059) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b0wY8-0008An-Tz for help-guix@gnu.org; Thu, 12 May 2016 15:45:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b0wY6-0004m5-Bj for help-guix@gnu.org; Thu, 12 May 2016 15:45:31 -0400 Received: from mail-lb0-x241.google.com ([2a00:1450:4010:c04::241]:35580) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b0wY5-0004lw-L3 for help-guix@gnu.org; Thu, 12 May 2016 15:45:30 -0400 Received: by mail-lb0-x241.google.com with SMTP id mx9so2103726lbb.2 for ; Thu, 12 May 2016 12:45:28 -0700 (PDT) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org --001a11c3897271f9ac0532aa6651 Content-Type: text/plain; charset=UTF-8 Hi. I want my config.scm to be short. Here is my services section: (services (cons* ;;(dhcp-client-service) (lsh-service #:port-number 2222) (gnome-desktop-service) (xfce-desktop-service) (console-keymap-service "ru") %desktop-services)) But if I add slim-service with my configuration (slim-service #:allow-empty-passwords? #f #:auto-login? #f #:startx (xorg-start-command #:configuration-file (xorg-configuration-file #:extra-config (list libinput.conf) #:drivers '("radeon" "vesa") #:resolutions '((1366 768) (1024 768))))) I'll get guix system: error: service 'xorg-server' provided more than once Because %desktop-services already includes slim-service: ;;guix.git/tree/gnu/services/desktop.scm (define %desktop-services ;; List of services typically useful for a "desktop" use case. (cons* (slim-service) ... So I put service list from desktop.scm and get this monster: (services (cons* ;;(dhcp-client-service) (lsh-service #:port-number 2222) (gnome-desktop-service) (xfce-desktop-service) (console-keymap-service "ru") (slim-service #:allow-empty-passwords? #f #:auto-login? #f #:startx (xorg-start-command #:configuration-file (xorg-configuration-file #:extra-config (list libinput.conf) #:drivers '("radeon" "vesa") #:resolutions '((1366 768) (1024 768))))) (screen-locker-service slock) (screen-locker-service xlockmore "xlock") (avahi-service) (wicd-service) (udisks-service) (upower-service) (colord-service) (geoclue-service) (polkit-service) (elogind-service) (dbus-service) (ntp-service) ;; %desktop-services)) %base-services)) What if I want to custome some service from %base-services? My service list would become too long to be readable. How do I write something that works like "take %desktop-services, but redefine (slim-service) with my definiton of (slim-service ...)"? Dmitry Nikolaev --001a11c3897271f9ac0532aa6651 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+PGRpdj48ZGl2PjxkaXY+PGRpdj5IaS4gSSB3 YW50IG15IGNvbmZpZy5zY20gdG8gYmUgc2hvcnQuIEhlcmUgaXMgbXkgc2VydmljZXMgc2VjdGlv bjo8YnI+PGJyPihzZXJ2aWNlcyAoY29ucyogOzsoZGhjcC1jbGllbnQtc2VydmljZSk8YnI+wqDC oMKgIMKgwqAgKGxzaC1zZXJ2aWNlICM6cG9ydC1udW1iZXIgMjIyMik8YnI+wqDCoMKgIMKgwqAg KGdub21lLWRlc2t0b3Atc2VydmljZSk8YnI+wqDCoMKgIMKgwqAgKHhmY2UtZGVza3RvcC1zZXJ2 aWNlKTxicj7CoMKgwqAgwqDCoCAoY29uc29sZS1rZXltYXAtc2VydmljZSAmcXVvdDtydSZxdW90 Oyk8YnI+wqDCoMKgIMKgwqAgJWRlc2t0b3Atc2VydmljZXMpKTxicj48YnI+PC9kaXY+QnV0IGlm IEkgYWRkIHNsaW0tc2VydmljZSB3aXRoIG15IGNvbmZpZ3VyYXRpb248YnI+PGJyPihzbGltLXNl cnZpY2UgIzphbGxvdy1lbXB0eS1wYXNzd29yZHM/ICNmICM6YXV0by1sb2dpbj8gI2Y8YnI+wqDC oMKgIMKgwqDCoMKgwqAgIzpzdGFydHggKHhvcmctc3RhcnQtY29tbWFuZDxicj7CoMKgwqAgwqDC oMKgIMKgwqDCoCAjOmNvbmZpZ3VyYXRpb24tZmlsZSAoeG9yZy1jb25maWd1cmF0aW9uLWZpbGU8 YnI+wqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqDCoMKgICM6ZXh0cmEt Y29uZmlnIChsaXN0IGxpYmlucHV0LmNvbmYpPGJyPsKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDC oCDCoMKgwqAgwqDCoMKgwqDCoCAjOmRyaXZlcnMgJiMzOTsoJnF1b3Q7cmFkZW9uJnF1b3Q7ICZx dW90O3Zlc2EmcXVvdDspPGJyPsKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDC oMKgwqDCoCAjOnJlc29sdXRpb25zPGJyPsKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKg wqAgwqDCoMKgwqDCoCAmIzM5OygoMTM2NiA3NjgpICgxMDI0IDc2OCkpKSkpPGJyPjxicj48L2Rp dj5JJiMzOTtsbCBnZXQ8YnI+PGJyPmd1aXggc3lzdGVtOiBlcnJvcjogc2VydmljZSAmIzM5O3hv cmctc2VydmVyJiMzOTsgcHJvdmlkZWQgbW9yZSB0aGFuIG9uY2U8YnI+PGJyPjwvZGl2PkJlY2F1 c2UgJWRlc2t0b3Atc2VydmljZXMgYWxyZWFkeSBpbmNsdWRlcyBzbGltLXNlcnZpY2U6PGJyPjxi cj47O2d1aXguZ2l0L3RyZWUvZ251L3NlcnZpY2VzL2Rlc2t0b3Auc2NtPGJyPjxwcmU+PGNvZGU+ KGRlZmluZSAlZGVza3RvcC1zZXJ2aWNlcw0KICA7OyBMaXN0IG9mIHNlcnZpY2VzIHR5cGljYWxs eSB1c2VmdWwgZm9yIGEgJnF1b3Q7ZGVza3RvcCZxdW90OyB1c2UgY2FzZS4NCiAgKGNvbnMqIChz bGltLXNlcnZpY2UpPGJyPi4uLjxicj48L2NvZGU+PC9wcmU+PGJyPjwvZGl2PlNvIEkgcHV0IHNl cnZpY2UgbGlzdCBmcm9tIGRlc2t0b3Auc2NtIGFuZCBnZXQgdGhpcyBtb25zdGVyOjxicj48YnI+ KHNlcnZpY2VzIChjb25zKiA7OyhkaGNwLWNsaWVudC1zZXJ2aWNlKTxicj7CoMKgwqAgwqDCoCAo bHNoLXNlcnZpY2UgIzpwb3J0LW51bWJlciAyMjIyKTxicj7CoMKgwqAgwqDCoCAoZ25vbWUtZGVz a3RvcC1zZXJ2aWNlKTxicj7CoMKgwqAgwqDCoCAoeGZjZS1kZXNrdG9wLXNlcnZpY2UpPGJyPsKg wqDCoCDCoMKgIChjb25zb2xlLWtleW1hcC1zZXJ2aWNlICZxdW90O3J1JnF1b3Q7KTxicj7CoMKg wqAgwqDCoCAoc2xpbS1zZXJ2aWNlICM6YWxsb3ctZW1wdHktcGFzc3dvcmRzPyAjZiAjOmF1dG8t bG9naW4/ICNmPGJyPsKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgIzpzdGFydHggKHhvcmctc3RhcnQt Y29tbWFuZDxicj7CoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoCAjOmNvbmZpZ3VyYXRp b24tZmlsZSAoeG9yZy1jb25maWd1cmF0aW9uLWZpbGU8YnI+wqDCoMKgIMKgwqDCoCDCoMKgwqAg wqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgIzpleHRyYS1jb25maWcgKGxpc3QgbGliaW5w dXQuY29uZik8YnI+wqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDC oMKgIMKgIzpkcml2ZXJzICYjMzk7KCZxdW90O3JhZGVvbiZxdW90OyAmcXVvdDt2ZXNhJnF1b3Q7 KTxicj7CoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqAj OnJlc29sdXRpb25zPGJyPsKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKg IMKgwqDCoCDCoCYjMzk7KCgxMzY2IDc2OCkgKDEwMjQgNzY4KSkpKSk8YnI+wqDCoMKgIMKgwqAg KHNjcmVlbi1sb2NrZXItc2VydmljZSBzbG9jayk8YnI+wqDCoMKgIMKgwqAgKHNjcmVlbi1sb2Nr ZXItc2VydmljZSB4bG9ja21vcmUgJnF1b3Q7eGxvY2smcXVvdDspPGJyPsKgwqDCoCDCoMKgIChh dmFoaS1zZXJ2aWNlKTxicj7CoMKgwqAgwqDCoCAod2ljZC1zZXJ2aWNlKTxicj7CoMKgwqAgwqDC oCAodWRpc2tzLXNlcnZpY2UpPGJyPsKgwqDCoCDCoMKgICh1cG93ZXItc2VydmljZSk8YnI+wqDC oMKgIMKgwqAgKGNvbG9yZC1zZXJ2aWNlKTxicj7CoMKgwqAgwqDCoCAoZ2VvY2x1ZS1zZXJ2aWNl KTxicj7CoMKgwqAgwqDCoCAocG9sa2l0LXNlcnZpY2UpPGJyPsKgwqDCoCDCoMKgIChlbG9naW5k LXNlcnZpY2UpPGJyPsKgwqDCoCDCoMKgIChkYnVzLXNlcnZpY2UpPGJyPsKgwqDCoCDCoMKgIChu dHAtc2VydmljZSk8YnI+wqDCoMKgIMKgwqAgOzsgJWRlc2t0b3Atc2VydmljZXMpKTxicj7CoMKg wqAgwqDCoCAlYmFzZS1zZXJ2aWNlcykpPGJyPjxicj48L2Rpdj5XaGF0IGlmIEkgd2FudCB0byBj dXN0b21lIHNvbWUgc2VydmljZSBmcm9tICViYXNlLXNlcnZpY2VzPyBNeSBzZXJ2aWNlIGxpc3Qg d291bGQgYmVjb21lIHRvbyBsb25nIHRvIGJlIHJlYWRhYmxlLjxicj48YnI+PC9kaXY+SG93IGRv IEkgd3JpdGUgc29tZXRoaW5nIHRoYXQgd29ya3MgbGlrZSAmcXVvdDt0YWtlICVkZXNrdG9wLXNl cnZpY2VzLCBidXQgcmVkZWZpbmUgKHNsaW0tc2VydmljZSkgd2l0aCBteSBkZWZpbml0b24gb2Yg KHNsaW0tc2VydmljZSAuLi4pJnF1b3Q7Pzxicj48YnI+PC9kaXY+RG1pdHJ5IE5pa29sYWV2PGJy PjwvZGl2Pg0K --001a11c3897271f9ac0532aa6651--