summaryrefslogtreecommitdiff
path: root/home-configuration.scm
blob: c1f092c328c439d88cfc16018fc4318680f5e282 (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
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
(define-module (aisaka-home-configuration)
  #:use-module (gnu home)
  #:use-module (gnu home services)
  #:use-module (gnu home services shells)
  #:use-module (gnu packages)
  #:use-module (gnu services)
  #:use-module (guix gexp))

(define config-prefix
  "/home/marek/src/guix-config/")

(define home-env-vars
  '(("EDITOR" . "emacs")
    ("NVM_DIR" . "$HOME/src/nvm")
    ("GUILE_AUTO_COMPILE" . "0")))

(define pull-guix
  "guix pull ")

(define pull-guix-
  "pull-guix --allow-downgrades --disable-authentication")

(define reconfigure-home
  (string-append "guix home reconfigure "
		 config-prefix
		 "home-configuration.scm"))

(define reconfigure-home-
  (string-append reconfigure-home
		 "--allow-downgrades"))

(define home-aliases
  `(("grep" . "grep --color=auto")
    ("ll" . "ls -l")
    ("ls" . "ls -p --color=auto")
    ("pull-guix" . ,pull-guix)
    ("pull-guix-" . ,pull-guix-)
    ("reconfigure-home" . ,reconfigure-home)
    ("reconfigure-home-" . ,reconfigure-home-)
    ("reconfigure-system" . (string-append "sudo guix system reconfigure "
					   ,config-prefix
					   "system-configuration.scm"))
    ("reconfigure-system-" . "reconfigure-system --allow-downgrades")
    ("system-update" . "pull-guix && reconfigure-system && reconfigure-home")
    ("system-update-" . "pull-guix- && reconfigure-system- && reconfigure-home-")))

(define bash-profile-target
  (string-append config-prefix
		 ".bash_profile"))

(define bash-profile
  (local-file bash-profile-target
	      "bash_profile"))

(define home-bash-profile
  `(,bash-profile))

(define bashrc-target
  (string-append config-prefix
		 ".bashrc"))

(define bashrc
  (local-file bashrc-target
	      "bashrc"))

(define home-bashrc
  `(,bashrc))

(define bash-configuration
  (home-bash-configuration (environment-variables home-env-vars)
			   (aliases home-aliases)
			   (bash-profile home-bash-profile)
			   (bashrc home-bashrc)))

(define home-bash-service
  (service home-bash-service-type
	   bash-configuration))

(define emacs-init
  (local-file "emacs.el"))

(define gsad-source
  (local-file "guix-shell-authorized-directories"))

(define ssh-config
  (local-file "ssh.config"))

(define home-files
  `((".config/guix/shell-authorized-directories" ,gsad-source)
    (".emacs" ,emacs-init)
    (".ssh/config" ,ssh-config)))

(define dot-files-service
  (simple-service 'dot-files
		  home-files-service-type
		  home-files))

(define home-services
  `(,home-bash-service
    ,dot-files-service))

(home-environment (packages (map (compose list
					  specification->package+output)
				 '("cpupower"
				   "dconf-editor"
				   "emacs-no-x"
				   "emacs-ac-geiser"
				   "emacs-aggressive-indent"
				   "emacs-geiser"
				   "emacs-geiser-guile"
				   "emacs-iedit"
				   "emacs-multiple-cursors"
				   "emacs-paredit"
				   "font-google-noto"
				   "git"
				   "git-lfs"
				   "gnome-tweaks"
				   "gnupg"
				   "icecat"
				   "jami"
				   "libreoffice"
				   "pwgen"
				   "seahorse"
				   "sicp"
				   "trezor-agent"
				   "unzip"
				   "zip")))
		  (services home-services))