summaryrefslogtreecommitdiff
path: root/.config/guix/modules/ymir.scm
blob: f5f7f57231ac8ea5295d01e288cb181a57b89e60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This configuration defines the base-level ;;
;; services for both of my machines.         ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (ymir)
  #:use-module (gnu))
(use-service-modules audio desktop networking ssh 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"
                                      "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 (append (map specification->package
                          '("cryptsetup"
                            "curl"
                            "emacs"
                            "emacs-desktop-environment"
                            "emacs-exwm"
                            "git"
                            "imagemagick"
                            "mpd"
                            "mpd-mpc"
                            "nss-certs"
                            "picom"
                            "pulseaudio"
                            "vim"
                            "xmodmap"))
                     %base-packages))

   ;; base system services.
   (services
    (append (list
             (service openssh-service-type
                      (openssh-configuration
                       (x11-forwarding? #t)
                       (permit-root-login 'prohibit-password)
                       (password-authentication? #f)))
             (service tor-service-type)
             (service mpd-service-type
                      (mpd-configuration
                       (user user)
                       (music-directory "~/Personal/mpd/music")
                       (playlist-directory "~/Personal/mpd/playlist")
                       (default-port 6600)))
             (set-xorg-configuration
              (xorg-configuration (keyboard-layout keyboard-layout))))

            ;; This is the default list of services we
            ;; are appending to.
            %desktop-services))

   ;; OVERRIDE ME
   (file-systems (cons*
                  (file-system
                   (mount-point "/")
                   (device "none")
                   (type "tmpfs")
                   (check? #f))
                  %base-file-systems))))