summaryrefslogtreecommitdiff
path: root/.config/guix/modules/ymir.scm
blob: 199f14ae9a6bf81d36b6e8e66823ac8d11f99d19 (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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This configuration defines the base-level ;;
;; services for both of my machines.         ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (ymir)
  #:use-module (gnu)
  #:use-module (dwm-custom))
(use-service-modules audio desktop networking ssh xorg file-sharing)

;;;; 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"
                         ;; "nss-certs" ;; was moved to base-packages
                         "pass-otp"
                         "password-store"
                         "pavucontrol"
                         "picom"
                         "pinentry"
                         "pulseaudio"
                         "recutils"
                         "sxiv"
                         "vim"
                         "xmodmap"
                         "xrdb"))
                ,@%base-packages
                ,dwm-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 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 elogind-service-type
              ;;          (elogind-configuration
              ;;           (handle-power-key 'hibernate)
              ;;           (idle-action-seconds (* 5 60))
              ;;           (idle-action 'suspend)))
              (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))))