burra/system.scm

96 lines
3.7 KiB
Scheme

(use-modules (gnu)
((gnu packages anthy) #:select (anthy))
((gnu packages certs) #:select (nss-certs))
((gnu packages gnome) #:select (gvfs))
((gnu packages file-systems) #:select (davfs2))
((gnu packages ibus) #:select (ibus ibus-anthy))
((gnu packages wm) #:select (i3-wm))
((gnu services desktop) #:select (xfce-desktop-service-type))
((gnu services pam-mount) #:select (pam-mount-service-type pam-mount-configuration))
((gnu services xorg) #:select (set-xorg-configuration xorg-configuration))
(gnu system))
(define %utils
(list anthy davfs2 gvfs i3-wm ibus ibus-anthy nss-certs))
(define (install-to root-fs)
(operating-system
(locale "fr_FR.utf8")
(timezone "Europe/Paris")
(keyboard-layout (keyboard-layout "fr" "bepo" #:options '("ctrl:swapcaps")))
(host-name "stub")
(users (cons* (user-account
(name "kook")
(comment "Grou-grou")
(group "users")
(home-directory "/home")
(supplementary-groups
'("wheel" "netdev" "audio" "video" "kvm")))
%base-user-accounts))
(packages
(append %utils %base-packages))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(targets '("/boot/efi"))
(keyboard-layout keyboard-layout)))
(file-systems
(cons (file-system
(mount-point "/")
(device root-fs)
(type "ext4"))
%base-file-systems))))
(define pam-audio
(service pam-limits-service-type
(list
(pam-limits-entry "@audio" 'both 'rtprio 99)
(pam-limits-entry "@audio" 'both 'memlock 'unlimited))))
(define (pam-mount userName device)
(service pam-mount-service-type
(pam-mount-configuration
(rules `((debug (@ (enable "0")))
(volume (@ (user ,userName)
(fstype "crypt")
(path ,device)
(mountpoint "/home/")))
(mntoptions (@ (allow ,(string-join
'("nosuid" "nodev" "loop"
"encryption" "fsck" "nonempty"
"allow_root" "allow_other")
","))))
(mntoptions (@ (require "nosuid,nodev")))
(logout (@ (wait "0")
(hup "0")
(term "no")
(kill "no")))
(mkmountpoint (@ (enable "1")
(remove "false"))))))))
(define (desktop-environment keyboard-layout)
(list
(service xfce-desktop-service-type)
(set-xorg-configuration
(xorg-configuration (keyboard-layout keyboard-layout)))))
(define (ssh-only authorized-keys)
(service openssh-service-type
(openssh-configuration
(password-authentication? #f)
(permit-root-login #f)
(authorized-keys authorized-keys))))
(define nonguix
(lambda (services)
(modify-services services
(guix-service-type
config =>
(guix-configuration
(inherit config)
(substitute-urls
(append (list "https://substitutes.nonguix.org")
%default-substitute-urls))
(authorized-keys
(append (list (local-file "./nonguix.signing-key.scm"))
%default-authorized-guix-keys)))))))