summaryrefslogtreecommitdiff
path: root/guix/home.scm
blob: 503781521d9730d97e4b097cec49cde66a23ff94 (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
;; Welcome to my ~

(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 (gnu home services messaging)
  #:use-module (hecate packages emacs)
  #: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-fira-code" "font-google-noto-sans-cjk" "font-iosevka"))


(define thanos/emacs-packages
  '("emacs-next-pgtk" "emacs-nov-el" "emacs-pdf-tools" "emacs-emms"
    "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" "emacs-password-store"
    "emacs-flycheck-package" "emacs-emojify"))

(define thanos/python-packages
  '("python-next" "python-pip" "python-lsp-server" "python-numpy"
    "tree-sitter-python"))

(home-environment
 (packages (specifications->packages
	    (append '("perl" "yt-dlp" "torbrowser" "icecat" "sbcl" "notmuch"
		      "gcc-toolchain" "sqlite" "hyfetch" "transmission" "isync" "mpv"
		      "steam" "signal-desktop" "git" "fuzzel" "alacritty" "password-store"
		      "curl" "dino" "bind" "nmap" "hunspell" "wtype" "hunspell-dict-en-med"
		      "hunspell-dict-el" "mlocate" "rsync" "grimshot" "swayidle" "htop"
		      "net-tools" "gnupg" "texlive" "texlive-collection-latexrecommended")
		    thanos/emacs-packages thanos/python-packages thanos/fonts-packages)))
 (services
  (list (service home-bash-service-type
                 (home-bash-configuration
		  (guix-defaults? #t)
                  (aliases '(("ll" . "ls -lah --color")
                             ("logout" . "pkill -U $USER")
                             ("ls" . "ls --color")
                             ("o" . "emacsclient -n")
                             ("weather" . "curl wttr.in")
                             ("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)))
        (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" . "icecat")
			  ("XDG_SCREENSHOTS_DIR" . "/home/$USER/Pictures/screenshots/")
			  ("PATH" . "/home/$USER/.local/bin:$PATH")))
	(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))))))