diff --git a/guix/channels.scm b/guix/channels.scm new file mode 100755 index 0000000..53412cc --- /dev/null +++ b/guix/channels.scm @@ -0,0 +1 @@ +(list (channel (name (quote guix)) (url "https://git.savannah.gnu.org/git/guix.git") (branch "master") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) \ No newline at end of file diff --git a/guix/config.scm b/guix/config.scm new file mode 100755 index 0000000..9f9df57 --- /dev/null +++ b/guix/config.scm @@ -0,0 +1,101 @@ +;; This is an operating system configuration template +;; for a "desktop" setup with GNOME and Xfce where the +;; root partition is encrypted with LUKS, and a swap file. + +(use-modules (gnu) (gnu packages) + (gnu system nss) + (gnu services) + (guix utils)) + +(use-modules + (gnu packages) + (nongnu packages linux) + (nongnu system linux-initrd)) + +(use-service-modules desktop sddm xorg) +(use-package-modules certs gnome) + +(operating-system + (host-name "rex") + (timezone "Europe/Dublin") + (locale "en_GB.utf8") + (kernel linux) + (initrd microcode-initrd) + (firmware (list linux-firmware)) + + ;; 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) + (targets '("/boot/efi")) + (keyboard-layout keyboard-layout))) + + ;; Specify a mapped device for the encrypted root partition. + ;; The UUID is that returned by 'cryptsetup luksUUID'. + (file-systems (append + (list (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + (file-system + (device (uuid "F853-0BDE" 'fat)) + (mount-point "/boot/efi") + (type "vfat"))) + %base-file-systems)) + + ;; Specify a swap file for the system, which resides on the + ;; root file system. + (swap-devices '("/dev/nvme0n1p2")) + + ;; Create user `bob' with `alice' as its initial password. + (users (cons (user-account + (name "jgrogan") + (comment "Primary User") + (group "users") + (supplementary-groups '("wheel" "netdev" + "audio" "video"))) + %base-user-accounts)) + + ;; Add the `students' group + (groups (cons* (user-group + (name "users")) + %base-groups)) + + ;; This is where we specify system-wide packages. + (packages (append (list + ;; for HTTPS access + nss-certs + ;; for user mounts + gvfs) + %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 (if (target-x86-64?) + (append (list (service gnome-desktop-service-type) + (service xfce-desktop-service-type) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)))) + %desktop-services) + + ;; FIXME: Since GDM depends on Rust (gdm -> gnome-shell -> gjs + ;; -> mozjs -> rust) and Rust is currently unavailable on + ;; non-x86_64 platforms, we use SDDM and Mate here instead of + ;; GNOME and GDM. + (append (list (service mate-desktop-service-type) + (service xfce-desktop-service-type) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)) + sddm-service-type)) + %desktop-services))) + + ;; Allow resolution of '.local' host names with mDNS. + (name-service-switch %mdns-host-lookup-nss)) diff --git a/guix/guix-home-config.scm b/guix/guix-home-config.scm new file mode 100755 index 0000000..d5bcb25 --- /dev/null +++ b/guix/guix-home-config.scm @@ -0,0 +1,28 @@ +;; This is a sample Guix Home configuration which can help setup your +;; home directory in the same declarative manner as Guix System. +;; For more information, see the Home Configuration section of the manual. +(define-module (guix-home-config) + #:use-module (gnu home) + #:use-module (gnu home services) + #:use-module (gnu home services shells) + #:use-module (gnu services) + #:use-module (gnu system shadow)) + +(define home-config + (home-environment + (services + (list + ;; Uncomment the shell you wish to use for your user: + ;(service home-bash-service-type) + ;(service home-fish-service-type) + ;(service home-zsh-service-type) + + (service home-files-service-type + `((".guile" ,%default-dotguile) + (".Xdefaults" ,%default-xdefaults))) + + (service home-xdg-configuration-files-service-type + `(("gdb/gdbinit" ,%default-gdbinit) + ("nano/nanorc" ,%default-nanorc))))))) + +home-config \ No newline at end of file