summaryrefslogtreecommitdiff
path: root/.config/guix/modules/desktop.scm
blob: e2c6cc92bebb59b7020d2d5a02ba07efa455c8ec (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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Provides a set of my preferred    ;;
;; program and services for desktops ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(define-module (desktop)
  #:use-module (gnu)
  #:use-module (gnu home services)
  #:use-module (gnu home services shells)
  #:use-module (gnu packages image)
  #:use-module (gnu packages suckless)
  #:use-module (gnu packages xorg)
  #:use-module (gnu services)
  #:use-module (gnu services admin)
  #:use-module (gnu services audio)
  #:use-module (gnu services avahi)
  #:use-module (gnu services dbus)
  #:use-module (gnu services desktop)
  #:use-module (gnu services networking)
  #:use-module (gnu services sound)
  #:use-module (gnu services xorg)
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:export (bd-desktop-system-packages
            bd-desktop-system-services))

(define programs
  '(
    "dmenu"
    "flameshot"
    "font-google-noto-emoji"
    "gimp"
    "icecat"
    "imagemagick"
    "libnotify"
    "librewolf"
    "mpv"
    "pavucontrol"
    "picom"
    "pulseaudio"
    "sxiv"
    "xprop"
    "zathura"
    "zathura-pdf-poppler"
    ))

(define x-server
  '(
    "feh"
    "ffmpeg"
    "gtk+"
    "xdotool"
    "xf86-input-libinput"
    "xf86-video-fbdev"
    "xinit"
    "xmodmap"
    "xorg-server"
    "xrdb"
    "xset"
    ))

(define dwm-package
  (package
    (inherit dwm)
    (name "bdunahu-dwm")
    (inputs (modify-inputs (package-inputs dwm)))
    (source (local-file "dwm" #:recursive? #t))))

(define bd-desktop-system-packages
  `(,@(map specification->package
           (append!
            programs
            x-server
            ))
    ,dwm-package
    ))

(define bd-desktop-system-services
  (list
   (service screen-locker-service-type
            (screen-locker-configuration
             (name "slock")
             (program (file-append slock "/bin/slock"))))

   ;; so that non-root users in the wheel group can
   ;; perform administrative tasks (similar to "sudo").
   polkit-wheel-service
   ;; The global fontconfig cache directory can sometimes contain
   ;; stale entries, possibly referencing fonts that have been GC'd,
   ;; so mount it read-only.
   fontconfig-file-system-service

   (service network-manager-service-type)
   (service wpa-supplicant-service-type) ; needed by NetworkManager
   (service modem-manager-service-type)
   (service usb-modeswitch-service-type)

   ;; The D-Bus clique.
   (service avahi-service-type)
   (service udisks-service-type)
   (service upower-service-type)
   (service accountsservice-service-type)
   (service cups-pk-helper-service-type)
   (service colord-service-type)
   (service geoclue-service-type)
   (service polkit-service-type)
   (service elogind-service-type
            (elogind-configuration
             (handle-power-key 'hibernate)
             ;;  (idle-action-seconds (* 5 60))
             ;;  (idle-action 'suspend)
             ))
   (service dbus-root-service-type)

   (service ntp-service-type)

   (service x11-socket-directory-service-type)

   (service pulseaudio-service-type)
   (service alsa-service-type)))