aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/config/rincewind.scm
blob: 7b58931033730339566c012f7fa6a65e410607d9 (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
129
130
131
(define-module (oni home config rincewind)
  #:use-module (gnu home services guix)
  #:use-module (gnu home services)
  #:use-module (gnu home)
  #:use-module (gnu packages commencement)
  #:use-module (gnu packages emacs)
  #:use-module (gnu packages emacs-xyz)
  #:use-module (gnu packages file-systems)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages music)
  #:use-module (gnu packages video)
  #:use-module (gnu packages)
  #:use-module (gnu services)
  #:use-module (guix channels)
  #:use-module (guix derivations)
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:use-module (guix store)
  #:use-module (guix transformations)
  #:use-module (oni home config common)
  #:use-module (oni home services dunst)
  #:use-module (oni home services emacs)
  #:use-module (oni home services environment)
  #:use-module (oni home services flameshot)
  #:use-module (oni home services kdeconnect)
  #:use-module (oni home services polybar)
  #:use-module (oni home services rofi)
  #:use-module (oni home services syncthing)
  #:use-module (oni home services zsh)
  #:use-module (oni packages count-emails)
  #:use-module (oni packages hlwm-run-or-raise)
  #:use-module (oni packages inbox-size)
  #:use-module (oni packages notmuch-collect-tasks)
  #:use-module (oni packages notmuch-tag-mailinglists)
  #:use-module (oni packages pick-random-wallpaper)
  #:use-module (oni packages shutdown-rofi)
  #:use-module (oni packages mpd-random-albums)
  #:use-module (oni home services mpd)
  #:use-module (oop goops))

(define (with-master-branch package)
  "Apply a transformation to PACKAGE so that it uses the master branch."
  ((options->transformation
    `((with-branch . ,(string-append (package-name package) "=master"))))
   package))

(home-environment
 (packages (list mpv mpv-mpris easytag
                 (specification->package+output "glibc-locales")
                 (specification->package+output "font-fantasque-sans")
                 (specification->package+output "font-comic-neue")
                 hlwm-run-or-raise
                 pick-random-wallpaper
                 notmuch-collect-tasks
                 notmuch-tag-mailinglists
                 (inbox-size emacs-next)
                 count-emails
                 shutdown-rofi
                 emacs-org-roam
                 emacs-vterm
                 fakeroot               ; Needed for build arch packages
                 tmsu
                 mpd-random-albums
                 ))

 (services
  (list
   home-environment-service
   home-rofi-default-service
   home-dunst-default-service
   home-redshift-service
   home-xbindkeys-service
   home-zsh-service
   home-guile-service
   home-xmodmap-service
   home-openssh-service
   home-kitty-service

   ;; This has to be the first extension because it needs to be added to the
   ;; configuration last.
   (service home-zsh-syntax-highlighting-service-type)
   (service home-zsh-autosuggestions-service-type)

   (simple-service 'my-channel-service
                   home-channels-service-type
                   (list
                    (channel
                     (name 'oni)
                     (url "https://git.sr.ht/~ryuslash/guix-packages")
                     (introduction
                      (make-channel-introduction
                       "646573578b7adfbff415645fed201269076cebf6"
                       (openpgp-fingerprint
                        "061C C5C4 D936 C9A8 AECC  1A17 7D5C 407B 4350 25C1"))))
                    (channel
                     (name 'guix-gaming-games)
                     (url "https://gitlab.com/guix-gaming-channels/games.git")
                     (introduction
                      (make-channel-introduction
                       "c23d64f1b8cc086659f8781b27ab6c7314c5cca5"
                       (openpgp-fingerprint
                        "50F3 3E2E 5B0C 3D90 0424  ABE8 9BDC F497 A4BB CC7F"))))))

   (service home-polybar-service-type
            (home-polybar-configuration
             (bar "rincewind")))

   (service home-kdeconnect-service-type)
   (service home-syncthing-service-type)

   (service home-emacs-service-type
            (home-emacs-configuration
             (package emacs-next)))

   (service home-flameshot-service-type)

   (service home-mpd-service-type
            (home-mpd-configuration
             (music-directory "~/music")
             (playlist-directory "~/music/playlists")
             (log-file "~/.local/share/mpd/mpd.log")
             (pid-file "~/.local/share/mpd/mpd.pid")
             (db-file "~/.local/share/mpd/mpd.db")
             (state-file "~/.local/share/mpd/mpdstate")
             (audio-outputs
              (list (make <home-mpd-audio-output> #:type "pulse" #:name "MPD Pulse")
                    (make <home-mpd-audio-output>
                      #:type "fifo"
                      #:name "Visualizer"
                      #:path "/tmp/mpd.fifo"
                      #:format "44100:16:2"))))))))