blob: 944f080e5eff53ac3d37dd5eac8b1e718cc4f323 (
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
|
;; 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)
#:use-module (guix gexp)
#:use-module (gnu)
#:use-module (gnu packages)
#:use-module (gnu packages gnupg)
#:use-module (gnu home)
#:use-module (gnu home services)
#:use-module (gnu home services dotfiles)
#:use-module (gnu home services shells)
#:use-module (gnu home services desktop)
#:use-module (gnu home services gnupg)
#:use-module (hecate packages emacs)
#:use-module (hecate packages ollama)
#:use-module (hecate packages binaries)
#:use-module (hecate packages hunspell)
#:export (home))
(define thanos/dotfiles-path
(format #f "~a/dotfiles" (getenv "HOME")))
(define thanos/fonts-packages
'("font-jetbrains-mono" "font-iosevka-aile" "font-fira-mono"
"font-google-noto-sans-cjk" "font-iosevka"))
(define thanos/emacs-packages
'("emacs-pgtk" "emacs-nov-el" "emacs-pdf-tools" "emacs-elpy"
"emacs-geiser" "emacs-geiser-guile" "emacs-jabber" "emacs-yeetube"
"emacs-debbugs" "emacs-eshell-git-prompt" "emacs-0x0" "emacs-org-roam"
"emacs-markdown-mode" "emacs-gnosis" "emacs-notmuch"))
(define thanos/python-packages
'("python-next" "python-pip" "python-lsp-server" "python-numpy"))
(define thanos/cl-packages
'("sbcl"))
(home-environment
;; Below is the list of packages that will show up in your
;; Home profile, under ~/.guix-home/profile.
(packages (specifications->packages
(append '("mu" "perl" "tree" "yt-dlp" "ollama-linux-amd64" "librewolf"
"syncthing" "hyfetch" "transmission" "isync" "mpv" "dino"
"git" "fuzzel" "wl-clipboard" "alacritty" "password-store" "curl"
"bind" "nmap" "hunspell" "wtype" "hunspell-dict-en-us" "hunspell-dict-el"
"mlocate" "rsync" "grimshot" "nyxt" "swayidle" "wl-clipboard" "btop"
"net-tools" "gnupg" "texlive" "texlive-collection-latexrecommended"
"libtree" "notmuch" "hugo-bin")
thanos/emacs-packages thanos/cl-packages thanos/python-packages thanos/fonts-packages)))
;; Below is the list of Home services. To search for available
;; services, run 'guix home search KEYWORD' in a terminal.
(services
(list (service home-bash-service-type
(home-bash-configuration
(guix-defaults? #t)
(aliases '(("klight" . "brightnessctl --device='\\''tpacpi::kbd_backlight'\\'' set 1")
("ll" . "ls -lah --color")
("logout" . "pkill -U $USER")
("ls" . "ls --color")
("o" . "emacsclient -n")
("weather" . "curl wttr.in")
("ytd" . "yt-dlp")
("gx" . "guix")))
(bashrc (list (local-file (format #f "~a/bash-prompt.sh" thanos/dotfiles-path)
#:recursive? #f)))))
(service home-dotfiles-service-type
(home-dotfiles-configuration
(directories (list thanos/dotfiles-path))
(excluded '(".*~" ".*\\.swp" "\\.git" "\\.gitignore"
"vimium-options.json" "README" "LICENSE" ".*\\.scm" "__pycache__"
"bash-prompt.sh"))
(layout 'plain)))
;; Env variables
(simple-service 'profile-service-type
home-environment-variables-service-type
'(("VISUAL" . "emacsclient")
("EDITOR" . "emacsclient")
("GTK_THEME" . "Adwaita-dark")
("XDG_CURRENT_DESKTOP" . "sway")
("XDG_SESSION_TYPE" . "wayland")
("BROWSER" . "librewolf")
("XDG_SCREENSHOTS_DIR" . "/home/$USER/Pictures/screenshots/")
("PATH" . "/home/$USER/.local/bin:$PATH")
("DICPATH" . "$DICPATH:/home/$USER/.hunspell.d")))
;; GPG Configuration
(service home-gpg-agent-service-type
(home-gpg-agent-configuration
(pinentry-program
(file-append pinentry-gtk2 "/bin/pinentry-gtk-2"))
(ssh-support? #t)
(default-cache-ttl 28800)
(max-cache-ttl 28800)
(default-cache-ttl-ssh 28800)
(max-cache-ttl-ssh 28800))))))
|