aboutsummaryrefslogtreecommitdiff
;; This is an operating system configuration template
;; for a "desktop" setup with Plasma.

(use-modules (gnu) (gnu system nss) (srfi srfi-1))
(use-service-modules desktop sddm xorg ssh)
(use-package-modules gnome ssh admin fonts)
(use-package-modules qt xorg tmux linux)

(operating-system
  (host-name "plasma")
  (timezone "Asia/Shanghai")
  (locale "en_US.utf8")

  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
  ;; is the label of the target root file system.
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets (list "/dev/sdX"))))

  (file-systems (cons (file-system
                        (device "my-root")
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  (users (cons (user-account
                (name "plasma")
                (password (crypt "plasma" "$6$abc"))
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video")))
               %base-user-accounts))

  ;; This is where we specify system-wide packages.
  (packages (cons* neofetch
                   htop
                   tmux
                   xprop
                   strace
                   %base-packages))

  (services (cons*
             ;; for debug
             ;; (simple-service
             ;;  'add-qt-debug-env
             ;;  session-environment-service-type
             ;;  '(("QT_MESSAGE_PATTERN"
             ;;     . "[[%{time process} %{type}] %{appname}: %{category} %{function} - %{message}]")
             ;;    ("QT_DEBUG_PLUGINS" . "1")
             ;;    ("QML_IMPORT_TRACE" . "1")))
             (service openssh-service-type
                      (openssh-configuration
                       (openssh openssh-sans-x)
                       (port-number 2222)))
             (service plasma-desktop-service-type)
             (service sddm-service-type
                      (sddm-configuration
                       (theme "breeze")))

             ;; Remove GDM if it's among %DESKTOP-SERVICES; on other
             ;; architectures, %DESKTOP-SERVICES contains SDDM instead.
             (remove (lambda (service)
                       (memq (service-kind service)
                             (list gdm-service-type sddm-service-type)))
                     %desktop-services)))
  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))

;; Local Variables:
;; mode: scheme
;; End:
8b6c77746da7b7417d958f00d01dc6'>Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge 2023-04-21doc: Update openssh-host documentation....* doc/guix.texi (Secure Shell): Update openssh-host documentation to match the code. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Saku Laesvuori 2023-04-21home: services: openssh: Add configuration option for jump proxies...Add a new 'proxy' field to openssh-host to allow ProxyCommand or ProxyJump, but not both, to be configured. Configuring both would cause the serialization order to determine which one is used. Deprecate the 'proxy-command' field because the 'proxy' field replaces it. * gnu/home/services/ssh.scm (proxy-jump->string, proxy-command-or-jump-list?, serialize-proxy-command-or-jump-list, sanitize-proxy-command): New procedure. (proxy-jump, proxy-command): New record type. (openssh-host)[proxy-command]: Mark field as deprecated because OpenSSH can't have ProxyCommand and ProxyJump configured at the same time. * doc/guix.texi (Secure Shell): Update to match the changes to the service. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Saku Laesvuori 2023-04-21services: syslog: Add a reload action....* gnu/services/base.scm (syslog-service-type) [actions]: Add a reload action. * doc/guix.texi (Base Services): Document it. Maxim Cournoyer 2023-04-14Merge branch 'master' into core-updates....Conflicts: gnu/local.mk gnu/packages/build-tools.scm gnu/packages/certs.scm gnu/packages/check.scm gnu/packages/compression.scm gnu/packages/cups.scm gnu/packages/fontutils.scm gnu/packages/gnuzilla.scm gnu/packages/guile.scm gnu/packages/ibus.scm gnu/packages/image-processing.scm gnu/packages/linux.scm gnu/packages/music.scm gnu/packages/nss.scm gnu/packages/pdf.scm gnu/packages/python-xyz.scm gnu/packages/qt.scm gnu/packages/ruby.scm gnu/packages/shells.scm gnu/packages/tex.scm gnu/packages/video.scm gnu/packages/vulkan.scm gnu/packages/web.scm gnu/packages/webkit.scm gnu/packages/wm.scm Maxim Cournoyer 2023-04-13doc: Fix various typos....* doc/guix.texi: Fix typos. Florian Pelz 2023-04-11services: nginx: Make logging level configurable....* gnu/services/web.scm (<nginx-configuration>)[log-level]: New field. (assert-valid-log-level): New procedure. (default-nginx-config): Make log-level configurable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-04-10doc: Regarding SSL certs, clarify when we write about Guix System....Rationale: Even though the section 'X.509 Certificates' is part of the System Configuration chapter, readers might also come here from a cross-reference when reading about Application Setup on a foreign distro. * doc/guix.texi (System Configuration)[X.509 Certificates]: Clarify. Florian Pelz 2023-04-08home: Add gpg-agent service....* gnu/home/services/gnupg.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (GNU Privacy Guard): New node. (Secure Shell): Link to it. Ludovic Courtès 2023-04-06environment: Add '--nesting'....* guix/scripts/environment.scm (show-environment-options-help) (%options): Add '--nesting'. (options/resolve-packages): Handle it. (launch-environment/container): Add #:nesting? and honor it. [nesting-mappings]: New procedure. (guix-environment*): Add support for '--nesting'. * guix/scripts/shell.scm (profile-cached-gc-root): Special-case 'nesting?'. * tests/guix-environment-container.sh: Test it. * doc/guix.texi (Invoking guix shell): Document it. Ludovic Courtès 2023-04-03doc: Add a reference to a page explaining consensus decision making....This is to make explicit something which until now had always been implicit. * doc/contributing.texi (Commit Access): Mention that committers are expected to employ consensus decision making. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer 2023-04-02services: mympd: Use records for user and group fields....* gnu/services/audio.scm (%mympd-user, %mympd-group) (mympd-user-sanitizer, mympd-group-sanitizer): New variables. (mympd-configuration)[user]: Use user-account as value type. Sanitize via mympd-user-sanitizer. [group]: Use user-group as value type. Sanitize via mympd-group-sanitizer. (mympd-serialize-configuration): Adjust accordingly. (mympd-accounts): Likewise. * doc/guix.texi (Audio Services)[myMPD]: Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Bruno Victal 2023-04-02services: mpd: Use proper records for user and group fields....Deprecate using strings for these fields and prefer user-account (resp. user-group) instead to avoid duplication within account-service-type. Fixes #61570 <https://issues.guix.gnu.org/61570>. * gnu/services/audio.scm (%mpd-user, %mpd-group) (mpd-serialize-user-account, mpd-serialize-user-group) (mpd-user-sanitizer, mpd-group-sanitizer): New variables. (mpd-configuration)[user]: Use user-account as value type. Sanitize via mpd-user-sanitizer. [group]: Use user-group as value type. Sanitize via mpd-group-sanitizer. (mpd-shepherd-service): Adjust accordingly. (mpd-accounts): Likewise. * doc/guix.texi (Audio Services)[Music Player Daemon]: Likewise. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Bruno Victal 2023-04-02services: configuration: Add user-defined sanitizer support....This changes the 'custom-serializer' field into a generic 'extra-args' field that can be extended to support new literals. Within extra-args, the literals 'sanitizer' and 'serializer' allow for user-defined sanitization and serialization procedures respectively. The 'empty-serializer' was also added as a literal to be used as before. To prevent confusion between the new “explicit” style of specifying a sanitizer, and the old “implicit” style, the latter has been deprecated, and a warning is issued if it is encountered. * gnu/services/configuration.scm (define-configuration-helper): Rename 'custom-serializer' to 'extra-args'. Add support for literals 'sanitizer', 'serializer' and 'empty-serializer'. Rename procedure 'field-sanitizer' to 'default-field-sanitizer' to avoid syntax clash. Only define default field sanitizers if user-defined ones are absent. (normalize-extra-args): New variable. (<configuration-field>)[sanitizer]: New field. * doc/guix.texi (Complex Configurations): Document the newly added literals. * tests/services/configuration.scm: Add tests for the new literals. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Bruno Victal 2023-03-30services: pam-limits-service-type: Deprecate file-like object support in favo......* doc/guix.texi (Base Services): Document it. * gnu/local.mk: Register test. * gnu/services/base.scm (pam-limits-service-type): Accept both lists and file-like objects. Deprecate file-like object support. * gnu/tests/pam.scm: New file. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-30services: base: Deprecate 'pam-limits-service' procedure....* doc/guix.texi (Base Services): Replace pam-limits-service with pam-limits-service-type. * gnu/packages/benchmark.scm (python-locust)[description]: Update index anchor to manual. * gnu/services/base.scm (pam-limits-service-type): Set default value. (pam-limits-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-26doc: Properly document 'replace' clause of 'modify-inputs'....* doc/guix.texi (Defining Package Variants): Add 'replace' to the reference of 'modify-inputs' clauses. Ludovic Courtès 2023-03-24services: mpd: Set PulseAudio-related variables....These variables are necessary for PulseAudio to work properly out-of-the-box for 'non-interactive' users. * doc/guix.texi (Audio Services): Update environment-variables field description for mpd-configuration data type. * gnu/services/audio.scm (mpd-configuration)[environment-variables]: Set PULSE_CLIENTCONFIG and PULSE_CONFIG environment variables to the system-wide PulseAudio configuration. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-24services: audio: Remove redundant list-of-string? predicate....Use list-of-strings? predicate defined in (gnu services configuration). * gnu/services/audio.scm (list-of-string?): Remove predicate. (mpd-serialize-list-of-string): Rename procedure to ... (mpd-serialize-list-of-strings): ... this. (mpd-configuration)[environment-variables]: Switch to list-of-strings. [endpoints]: Switch to maybe-list-of-strings. (mympd-ip-acl)[allow, deny]: Switch to list-of-strings. (mympd-serialize-configuration): Rename serialize-list-of-string to serialize-list-of-strings. * doc/guix.texi (Audio Services): Update it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-23doc: Mention Python 2 packages should not be added anymore....* doc/contributing.texi (Python Modules): Mention Python 2 packages should not be added anymore. Maxim Cournoyer 2023-03-22services: Add fstrim-service-type....* gnu/services/linux.scm (fstrim-service-type): New variable. (fstrim-mcron-job, serialize-fstrim-configuration) (fstrim-serialize-list-of-strings, fstrim-serialize-boolean): New procedure. (mcron-time?): New predicate. (fstrim-configuration): New record. * doc/guix.texi (Linux Services): Document new fstrim-service-type. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-21doc: Document how to use specific package outputs in code....* doc/guix.texi (Packages with Multiple Outputs): Provide an example of selecting a package's output in Scheme. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Karl Hallsby 2023-03-21scripts: refresh: Add -T option....* doc/guix.texi (Invoking guix refresh): Document the -T option. * guix/scripts/refresh.scm (%options): Add the -T flag. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> jgart 2023-03-21services: mcron: Add log-file and date-format fields....* doc/guix.texi (Scheduled Job Execution): Document it. * gnu/services/mcron.scm (mcron-configuration)[log-file, date-format]: New field. (mcron-shepherd-services): Add log-file and date-format support. Use file-append instead of string-append. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-21services: mcron: Restyle mcron-configuration....* doc/guix.texi (Scheduled Job Execution): Sync doc with source. * gnu/services/mcron.scm (mcron-configuration): Restyle. [log-format]: Fix incorrectly formatted text. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-21doc: Clarify special-files-service-type expected value....* doc/guix.texi (Services, Base Services): Clarify special-files-service-type expected value. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Bruno Victal 2023-03-20Merge remote-tracking branch 'origin/master' into core-updatesAndreas Enge 2023-03-17services: dict: Deprecate 'dicod-service' procedure....* doc/guix.texi (Miscellaneous Services): Remove 'dicod-service' mention. * gnu/services/dict.scm (dicod-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-17home: services: Add home-xmodmap-service-type....* gnu/home/services/desktop.scm (home-xmodmap-service-type) (home-xmodmap-configuration): New variables; (serialize-xmodmap-configuration) (xmodmap-shepherd-service): New procedures; * doc/guix.texi (Desktop Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> conses 2023-03-17doc: Use 'mount --rbind' for chroot instructions....This was reported by a user in #guix. It's at least necessary for /sys, to have the /sys/firmware/efivars location available insinde the chroot when using an UEFI system. * doc/guix.texi (Chrooting into an existing system): Replace --bind argument with --rbind Suggested-by: Josselin Poiret <dev@jpoiret.xyz> Maxim Cournoyer 2023-03-17home: services: ssh-agent: Handle setting of SSH_AUTH_SOCK....* gnu/home/services/ssh.scm (home-ssh-agent-environment-variables): New procedure. (home-ssh-agent-service-type): Use it as ahome-environment-service type extension. * doc/guix.texi (Secure Shell): Remove advice about, and examples of setting SSH_AUTH_SOCK. Jan (janneke) Nieuwenhuizen 2023-03-16doc: Use @defvar instead of @defvr for Scheme variables....Suggested by mirai via IRC, see also https://issues.guix.gnu.org/60634 * doc/guix.texi (Build Systems) (Secure Shell) (Messaging Home Services) (Media Home Services): Use @defvar instead of @defvr for Scheme variables. Jan (janneke) Nieuwenhuizen 2023-03-16home: services: ssh-agent: Remove host-side use of (shepherd support)....This is a followup to 2c2f382e757d5eef39e8460a20ac75a1b1f8b22e, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/ssh.scm (<home-ssh-agent-configuration>)[socket-directory]: Change value to a gexp. (home-ssh-agent-services): Change 'socket-file' and 'command' to a gexp. Add 'modules' field to 'shepherd-service'. * doc/guix.texi (Secure Shell): Adjust accordingly. Ludovic Courtès 2023-03-16gnu: home: services: Add home-kodi-service-type....* gnu/home/services/media.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Media Home Services): Document it in new subsection. Jan (janneke) Nieuwenhuizen 2023-03-16gnu: home: services: Add home-znc-service-type....* gnu/home/services/messaging.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Messaging Home Services): Document it in new subsection. Jan (janneke) Nieuwenhuizen 2023-03-16gnu: home: services: Add home-ssh-agent-service-type....* gnu/home/services/ssh.scm: (<home-ssh-agent-configuration>): New type. (home-ssh-agent-services): New procedure. (home-ssh-agent-service-type): New variable. * doc/guix.texi (Secure Shell): Document it. Jan (janneke) Nieuwenhuizen 2023-03-16doc: Document 'shebang' for 'guix shell'....* doc/guix.texi (Invoking guix shell): Add a note mentioning how to use 'shebang'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Simon Tournier 2023-03-16home: services: Add home-unclutter-service-type....* gnu/home/services/desktop.scm (home-unclutter-configuration) (home-unclutter-service-type): New variables; (home-unclutter-shepherd-service): New procedure; * doc/guix.texi (Desktop Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> conses 2023-03-13doc: Use @defmac and @defspec for macros....* doc/guix.texi (package Reference, Defining Package Variants) (Build Utilities, The Store Monad, G-Expressions, operating-system Reference) (Service Reference, Complex Configurations): Use @defmac and @defspec for macros. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-13doc: Use @defun for procedures....* doc/guix.texi (Inferiors, Defining Packages, package Reference) (origin Reference, Defining Package Variants, Writing Manifests) (Build Utilities, Search Paths, The Store, Derivations, The Store Monad) (G-Expressions, File Systems, Keyboard Layout, Base Services, X Window) (Desktop Services, File-Sharing Services, Web Services, Virtualization Services) (Version Control Services, Miscellaneous Services, Initial RAM Disk) (Bootloader Configuration, Service Reference, Shepherd Services) (Complex Configurations): Use @defun for procedures. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-13doc: Fix incorrect @deffn usage for data types....* doc/guix.texi (Web Services): Fix incorrect @deffn usage for data types. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-13doc: Fix incorrect @deffn usage for service-types....* doc/guix.texi (Networking Services): Fix incorrect @deffn usage for service-types. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-13packages: 'package-input-rewriting/spec' ignores hidden packages....The primary motivation is to support things like: guix build guix --with-input=guile=guile-next without triggering a rebuild of (@@ (gnu packages commencement) guile-final) and similar things. It is also consistent with package name resolution on the command line: a package that cannot be named cannot be replaced. * guix/packages.scm (package-input-rewriting/spec)[rewrite]: When P is hidden, return it as-is. * tests/packages.scm ("package-input-rewriting/spec, hidden package"): New test. * doc/guix.texi (Defining Package Variants): Update. (Package Transformation Options): Update '--with-input' example. Ludovic Courtès 2023-03-13doc: %desktop-services: Fix incorrect description....The Name Service Switch service is configured in operating-system. * doc/guix.texi (Desktop Services): Fix incorrect description for %desktop-services. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-13services: dns: Extend dnsmasq-configuration....* gnu/service/dns.scm: (<dnsmasq-configuration>)[servers-file]: Add. (<dnsmasq-configuration>)[tftp-secure?]: Fix typo in parameter name. * doc/guix.texi: Document (<dnsmasq-configuration>)[servers-file]. Signed-off-by: Andrew Tropin <andrew@trop.in> Sergey Trofimov