summaryrefslogtreecommitdiff
path: root/users/marekpasnikowski.scm
blob: 54e01d57a7bbd3d62f9d896970fdb1685ee23541 (about) (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
(define-module (users marekpasnikowski)
  #:use-module (gnu home)		      ; home-environment
  #:use-module (gnu home services)	      ; home-profile-service-type
                                              ; home-xdg-configuration-files-service-type
  #:use-module (gnu home services shells)     ; home-fish-service-type
  #:use-module (gnu packages emacs)	      ; emacs
  #:use-module (gnu packages emacs-xyz)	      ; emacs-org-roam
					      ; emacs-paredit
  #:use-module (gnu packages librewolf)	      ; librewolf
  #:use-module (gnu packages shells)	      ; fish
  #:use-module (gnu packages version-control) ; git
  #:use-module (gnu services)		      ; service
					      ; simple-service
  #:use-module (gnu system shadow)	      ; user-account
  #:use-module (guix gexp)		      ; file-append
  #:use-module (suweren home)		      ; %suweren-home-services
  )

;; string
(define-public marekpasnikowski-username
  "marek")

;; (string) ->
;; record user-account
(define-public (marekpasnikowski-account supplementary-groups*)
  (let ((fish (file-append fish "/bin/fish")))
    (user-account (name marekpasnikowski-username)
		  (group "users")
		  (supplementary-groups supplementary-groups*)
		  (shell fish))))

;; string
(define-public user
  "marekpasnikowski")

;; record home-environment
(define-public marekpasnikowski-home-environment
  (lambda (system)
    (let* ((gitconfig-file (local-file "marekpasnikowski-gitconfig")) ; TODO modularize
	   (gitignore-file (local-file "marekpasnikowski-gitignore")) ; TODO review the contents

	   (gitconfig (list "git/config"
			    gitconfig-file))
	   (gitignore (list "git/ignore"
			    gitignore-file))

	   (emacs-packages (list emacs
				 emacs-org-roam
				 emacs-paredit))
	   (git-configuration-files (list gitconfig
					  gitignore))
	   (git-packages (list git))

	   (emacs-software (simple-service 'emacs-packages
					   home-profile-service-type
					   emacs-packages))
	   (fish (service home-fish-service-type))
	   (git-configuration (simple-service 'git-configuration
					      home-xdg-configuration-files-service-type
					      git-configuration-files))
	   (git-software (simple-service 'git-packages
					 home-profile-service-type
					 git-packages))

	   (%suweren-home-services* (%suweren-home-services system
							    user))
	   (user-services (list ;; emacs-configuration
			   emacs-software
			   fish
			   git-configuration
			   git-software))

	   (services* (append %suweren-home-services*
			      user-services)))
      (home-environment (services services*)))))