summaryrefslogtreecommitdiff
path: root/home-configuration.scm
blob: 5e05df80191b4884f46ddf428ef9fd5c942472f2 (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
110
111
112
;; This "home-environment" file can be passed to 'guix home reconfigure'
;; to reproduce the content of your profile.  This is "symbolic": it only
;; specifies package names.  To reproduce the exact same profile, you also
;; need to capture the channels being used, as returned by "guix describe".
;; See the "Replicating Guix" section in the manual.

(define-module (home-configuration))
(use-modules (gnu home)
	     (gnu packages)
	     (gnu services)
	     (guix channels)
	     (guix gexp)
	     (gnu home services)
	     (gnu home services guix)
	     (gnu home services mail)
	     (gnu home services shells))

(define-public %password-store-dir (local-file ".password-store"
					       "password-store"
					       #:recursive? #t))
(define-public
  %my-services
  (list (simple-service 'home-environment-variables-service
			home-environment-variables-service-type
			'(("EDITOR" . "emacsclient")))
	(service home-bash-service-type
		 (home-bash-configuration
		   (aliases '(("egrep" . "egrep --color=auto")
			      ("fgrep" . "fgrep --color=auto")
			      ("grep" . "grep --color=auto")
			      ("l" . "ls -CF")
			      ("la" . "ls -A")
			      ("ll" . "ls -alF")
			      ("ls" . "ls --color=auto")))
		   (bashrc (list (local-file
				  ".bashrc"
				  "bashrc")))
		   (bash-logout (list (local-file
				       ".bash_logout"
				       "bash_logout")))))
	(service home-files-service-type
		 (list
		  (list ".emacs" (local-file ".emacs" "emacs"))
		  (list ".password-store" %password-store-dir)))
	(service home-msmtp-service-type
		 (home-msmtp-configuration
		   (accounts
		    (list
		     (msmtp-account
		       (name "charles@aurox.ch")
		       (configuration
			(msmtp-configuration
			  (auth? #t)
			  (tls? #t)
			  (tls-starttls? #f)
			  (log-file "/home/charles/log/mail/charles@aurox.ch.log")
			  (from "charles@aurox.ch")
			  (host "smtp.migadu.com")
			  (port 465)
			  (user "charles@aurox.ch")
			  (password-eval "pass charles@aurox.ch"))))))
		   (default-account "charles@aurox.ch")))
	(simple-service 'variant-packages-service
			home-channels-service-type
			(list
			 (channel
			   (name 'variant-packages)
			   (branch "main")
			   (url "https://codeberg.org/charlesroelli/channel.git")
			   (introduction
			    (make-channel-introduction
			     "ffc27e1f5f8306faf47098e8cf8e06c610a315de"
			     (openpgp-fingerprint
			      "59B6 65CB 5FC8 1C50 8144  5049 3EEC E33F 63F9 8864"))))))))

(define-public %home-environment (home-environment
  ;; Below is the list of packages that will show up in your
  ;; Home profile, under ~/.guix-home/profile.
  (packages
   (specifications->packages
    (list "dino"
	  "emacs"
	  "emacs-auctex"
	  "emacs-geiser"
	  "emacs-geiser-guile"
	  "emacs-ledger-mode"
	  "glibc-locales"
	  "guile"
	  "password-store"

	  ;; TeX setup from https://guix.gnu.org/manual/1.5.0/en/html_node/Using-TeX-and-LaTeX.html
	  "rubber"
	  "texlive-scheme-basic"
	  "texlive-collection-latexrecommended"
	  "texlive-collection-fontsrecommended"
	  "texlive-babel-french"
	  ;; From "latexextra" collection.
	  "texlive-tabularray"
	  ;; From "binextra" collection.
	  "texlive-texdoc"

	  ;; Extra TeX packages
	  "texlive-soul"
	  )))

  ;; Below is the list of Home services.  To search for available
  ;; services, run 'guix home search KEYWORD' in a terminal.
  (services
   (append %my-services
	   %base-home-services))))

%home-environment