;; This is an operating system configuration template ;; for a "desktop" setup with GNOME and Xfce where the ;; root partition is encrypted with LUKS. (use-modules (gnu) (gnu system nss)) (use-service-modules desktop xorg ssh) (use-package-modules certs gnome emacs emacs-xyz databases gdb) (operating-system (host-name "antelope") (timezone "Europe/Paris") (locale "en_US.utf8") ;; Choose US English keyboard layout. The "altgr-intl" ;; variant provides dead keys for accented characters. (keyboard-layout (keyboard-layout "us" "altgr-intl")) ;; Use the UEFI variant of GRUB with the EFI System ;; Partition mounted on /boot/efi. (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (target "/boot/efi") (keyboard-layout keyboard-layout))) ;; Specify a mapped device for the encrypted root partition. ;; The UUID is that returned by 'cryptsetup luksUUID'. (mapped-devices (list (mapped-device (source (uuid "12345678-1234-1234-1234-123456789abc")) (target "my-root") (type luks-device-mapping)))) (file-systems (append (list (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4") (dependencies mapped-devices)) (file-system (device (uuid "1234-ABCD" 'fat)) (mount-point "/boot/efi") (type "vfat"))) %base-file-systems)) (users (cons (user-account (name "bob") (comment "Alice's brother") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video"))) %base-user-accounts)) ;; This is where we specify system-wide packages. (packages (cons* gdb emacs-datetime emacs-dashboard emacs-dash emacs-dash-docs emacs-darkroom emacs-dante emacs-danneskjold-theme emacs-daemons emacs-d-mode emacs-cyberpunk-theme emacs-ctable emacs-csv-mode emacs-crux emacs-counsel-tramp emacs-counsel-projectile emacs-counsel-etags emacs-counsel-dash emacs-constants emacs-compdef emacs-company emacs-company-restclient emacs-company-quickhelp emacs-company-math emacs-company-lua emacs-company-lsp emacs-company-jedi emacs-company-irony emacs-company-flow emacs-company-cabal emacs-company-auctex emacs-commander emacs-column-marker emacs-cnfonts emacs-cmake-font-lock emacs-closql emacs-clojure-mode emacs-cl-print emacs-cl-generic emacs-circe emacs-cider emacs-cdlatex emacs-ccls ;emacs-calfw emacs-buttercup emacs-butler emacs-build-farm emacs-bui emacs-bug-hunter emacs-browse-at-remote emacs-bongo emacs-blimp emacs-biblio emacs-better-defaults emacs-benchmark-init emacs-beginend emacs-bbdb emacs-bash-completion emacs-base16-theme emacs-avy emacs-autothemer emacs-auto-yasnippet emacs-auto-complete emacs-auctex emacs-attrap emacs-atom-one-dark-theme emacs-async emacs-ascii-art-to-unicode emacs-arduino-mode emacs-apheleia emacs-anzu emacs-ansi emacs-annalist emacs-anaphora emacs-amx emacs-ample-regexps emacs-all-the-icons emacs-all-the-icons-dired emacs-alert emacs-alect-themes emacs-ahungry-theme emacs-aggressive-indent emacs-ag emacs-adoc-mode emacs-add-node-modules-path emacs-add-hooks emacs-adaptive-wrap emacs-ace-window emacs-ace-link emacs-ace-jump-mode emacs-academic-phrases emacs-a emacs-2048-game emacs-magit emacs-ws-butler emacs-string-inflection emacs-recutils emacs-grep-a-lot emacs-diff-hl emacs %base-packages)) ;; Add GNOME and Xfce---we can choose at the log-in screen ;; by clicking the gear. Use the "desktop" services, which ;; include the X11 log-in service, networking with ;; NetworkManager, and more. (services (append (list (service gnome-desktop-service-type) (service xfce-desktop-service-type) (service openssh-service-type (openssh-configuration (permit-root-login #t) (allow-empty-passwords? #t))) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout)))) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))