;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; This configuration defines the base-level ;; ;; services for both of my machines. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-module (ymir) #:use-module (gnu) #:use-module (dwm-custom) #:use-module (gnu packages suckless) #:use-module (gnu services) #:use-module (gnu services admin) #:use-module (gnu services audio) #:use-module (gnu services avahi) #:use-module (gnu services dbus) #:use-module (gnu services desktop) #:use-module (gnu services file-sharing) #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module (gnu services ssh) #:use-module (gnu services xorg) ) ;;;; user (define-public username "bdunahu") (define user (user-account (name username) (comment username) (group "users") (home-directory (string-append "/home/" username)) (supplementary-groups '("audio" "netdev" "transmission" "video" "wheel")))) ;;;; base os (define-public ymir (operating-system (host-name "ymir") (locale "en_US.utf8") (timezone "America/Denver") (keyboard-layout (keyboard-layout "us")) (kernel-arguments (list "quiet")) ;; 'root' is implicit (users (cons* user %base-user-accounts)) ;; grub (uefi) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout keyboard-layout))) ;; packages installed system-wide. (packages `(,@(map specification->package '( "cryptsetup" "curl" "dmenu" "emacs" "git" "gtk+" "icecat" "imagemagick" "libnotify" "mpd" "mpd-mpc" "pass-otp" "password-store" "pavucontrol" "pinentry" "pulseaudio" "recutils" "sxiv" "vim" )) ,@%base-packages ,dwm-packages)) ;; base system services. (services (cons* (service openssh-service-type (openssh-configuration (x11-forwarding? #t) (permit-root-login 'prohibit-password) (password-authentication? #f))) (service tor-service-type) (service transmission-daemon-service-type) (service mpd-service-type (mpd-configuration (user user) (music-directory "~/Personal/mpd/music") (playlist-directory "~/Personal/mpd/playlist") (default-port 6600))) (service screen-locker-service-type (screen-locker-configuration (name "slock") (program (file-append slock "/bin/slock")))) ;; so that non-root users in the wheel group can ;; perform administrative tasks (similar to "sudo"). polkit-wheel-service ;; The global fontconfig cache directory can sometimes contain ;; stale entries, possibly referencing fonts that have been GC'd, ;; so mount it read-only. fontconfig-file-system-service (service network-manager-service-type) (service wpa-supplicant-service-type) ; needed by NetworkManager ;; (simple-service 'network-manager-applet ;; profile-service-type ;; (list network-manager-applet)) (service modem-manager-service-type) (service usb-modeswitch-service-type) ;; The D-Bus clique. (service avahi-service-type) (service udisks-service-type) (service upower-service-type) (service accountsservice-service-type) (service cups-pk-helper-service-type) (service colord-service-type) (service geoclue-service-type) (service polkit-service-type) (service elogind-service-type (elogind-configuration (handle-power-key 'hibernate) (idle-action-seconds (* 5 60)) (idle-action 'suspend))) (service dbus-root-service-type) (service ntp-service-type) (service x11-socket-directory-service-type) (service pulseaudio-service-type) (service alsa-service-type) %base-services)) ;; OVERRIDE ME (file-systems (cons* (file-system (mount-point "/") (device "none") (type "tmpfs") (check? #f)) %base-file-systems))))