;; This is an operating system configuration template ;; for a "desktop" setup with GNOME and Xfce and awesome. ;; I am using this file as of July 2017 (use-modules (gnu) ;; this is not present in the desktop setup example in the info documentation ;;(guix) (gnu system nss) ;; lots of gnu services can be added via use-service-modules ;;(gnu services mcron) ;;I can include RSR5 modules via (ice-9 someName) ;; for pattern matching ;; (ice-9 match) ) (use-service-modules ;;admin ;;cups ;;databases desktop ;;dict ;;If I include networking I get an error about networking being included twice. ;;If I take it out then my dhcp-client service doesn't work anymore. ;;networking mcron ;; web is for nginx service ;; but for some reason nginx isn't working... web ) ;;base and idutils are for mcron (use-package-modules base certs ;;emacs ;;idutils gnome ;;gnuzilla fonts ;;version-control ;;wm ;;xorg web ) (define updatedb-job ;; Run 'updatedb' at 11AM every day. Here we write the ;; job's action as a Scheme procedure. #~(job '(next-hour '(11)) (lambda () (execl (string-append #$findutils "/bin/updatedb") "updatedb" "--prunepaths=/tmp /var/tmp /gnu/store")))) ;; (define garbage-collector-job ;; ;; Collect garbage at 11am every day. ;; ;; The job's action is a shell command. ;; #~(job "0 11 * * *" ;Vixie cron syntax ;; "guix gc -F 1G")) ;; (define idutils-job ;; ;; Update the index database as user "charlie" at 12:15PM ;; ;; and 19:15PM. This runs from the user's home directory. ;; #~(job '(next-minute-from (next-hour '(12 19)) '(15)) ;; (string-append #$idutils "/bin/mkid src") ;; #:user "wes")) ;; here's how you would define a fish shell variable ;;(define %fishshell #~(string-append #$fish "/bin/fish")) (operating-system (host-name "GuixSD") (timezone "America/Indianapolis") (locale "en_US.UTF-8") ;;blacklist this keyboard module. It might help my mouse to load properly. ;;http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20433 ;;(kernel-arguments '("modprobe.blacklist=usbkdb")) ;;Apparently this bug was fixed...So I shouldn't blacklist it. I'll have to file a bug report. (swap-devices '("/dev/sda3")) ;; 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) (menu-entries (list (menu-entry ;; specify that I want to boot Parabola as well. (label "Parabola") (linux "(hd0,1)/boot/vmlinuz-linux-libre") (linux-arguments '("root=/dev/sda1 ro")) (initrd "(hd0,1)/boot/initramfs-linux-libre.img")))) (target "/dev/sda"))) (file-systems (cons* (file-system (device "my-root") (title 'label) (mount-point "/") (type "ext4")) (file-system (mount-point "/home") (device "/dev/sda4") (type "ext4")) %base-file-systems)) (users (cons* (user-account (name "joshua") (comment "joshua") ;;I need to specify that joshua has the uid of 2000, ;; because the joshua an parabola has a uid of 2000 ;; and guixSD and parabola share /home (uid 2000) (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video" )) (home-directory "/home/joshua")) ;;I'm unable to login as joshua, because some weird issue. ;;I'll try creating a new user and see if that fixes things. (user-account (name "wes") (comment "wes") (uid 2025) (group "users") ;;(shell %fishshell) (supplementary-groups '("wheel" "netdev" "audio" "video")) (home-directory "/home/wes")) %base-user-accounts)) (groups (cons* (user-group (name "users") ;;I need to specify that there is a users group on guixSD. ;; Most of my files in my home directory are owned by the ;; group users. I want that, because then I anyone anyone ;; in the group users, can look at files owned by joshua and ;; wes. (id 2000)) ;; Parabola wheel group has an id of 10 ;; let's make guixSD use the same (user-group (name "wheel") (system? #t) (id 10)) %base-groups)) ;; This is where we specify system-wide packages. (packages (cons* ;;awesome nss-certs ;for HTTPS access ;; I should not put packages like Emacs for icweasel here. ;; the package groups will keep those. ;;fish ;; I seet setxkbmap for swapping caps ;;setxkbmap gvfs ;;for user mounts %base-packages)) ;; Add GNOME -- We can choose at the log-in ;; screen with F1. Use the "desktop" services, which ;; include the X11 log-in service, networking with Wicd, ;; and more. (services (cons* (gnome-desktop-service) ;;make the console use the dvorak keyboard layout (console-keymap-service "dvorak") ;; attempting to make a nginx server ;; (service nginx-service-type ;; (nginx-configuration ;; (server-blocks ;; (list (nginx-server-configuration ;; (server-name '("www.profile.com")) ;; (root "/home/wes/web/www.profile.com") ;; (https-port #f) ;; (ssl-certificate #f) ;; (ssl-certificate-key #f)))))) ;; add a dictionary service ;;(dicod-service) ;;this might not work ;;(dhcp-client-service) ;; rotate logs ;;(service rottlog-service-type (rottlog-configuration)) ;;add a print server, that I'll probably never use ;; to add a printer go to http://localhost:631 ;;(service cups-service-type (cups-configuration)) ;;(mysql-service) ;; run guix gc everyday at 11am (mcron-service (list updatedb-job)) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))