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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Provides a set of my preferred ;;
;; program and services for desktops ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (modules xorg)
#:use-module (gnu)
#:use-module (gnu home services)
#:use-module (gnu home services desktop)
#:use-module (gnu home services shells)
#:use-module (guix gexp)
#:use-module (guix packages)
#:export (bd-desktop-system-packages
bd-desktop-system-services
bd-desktop-home-services))
(use-service-modules admin audio avahi dbus
desktop networking
sound xorg)
(use-package-modules
image ;; flameshot,
suckless ;; dmenu,
gnome ;; libnotify,
pulseaudio ;; pavucontrol, pulseaudio,
compton ;; picom
image-viewers ;; sxiv, feh
xorg ;; xprop, xf86-input-libinput, xf86-video-fbdev, xinit...
xdisorg ;; xdotool
)
(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
(list
dmenu
flameshot
libnotify
pavucontrol
picom
pulseaudio
sxiv
xprop
dwm-package
feh
xdotool
xf86-input-libinput
xf86-video-fbdev
xinit
xmodmap
xorg-server
xrdb
xset
))
(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)))
(define bd-desktop-home-services
(list
(simple-service 'dotfiles
home-files-service-type
`((".Xresources"
,(plain-file "Xresources" "
Sxiv.background: #000000
Sxiv.foreground: #00C0FF
"))
(".Xmodmap"
,(plain-file "Xmodmap" "
clear lock
clear control
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
keycode 37 = Hyper_L
keycode 66 = Control_L
add control = Control_L Control_R
add mod1 = Alt_L Alt_R Meta_L
add mod2 = Num_Lock
add mod3 = Hyper_L
add mod4 = Super_L Super_R
add mod5 = Mode_switch ISO_Level3_Shift
"))
(".xinitrc"
,(plain-file "xinitrc" "
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f \"$userresources\" ]; then
xrdb -merge \"$userresources\"
fi
if [ -f \"$usermodmap\" ]; then
xmodmap \"$usermodmap\"
fi
# start some programs
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x \"$f\" ] && . \"$f\"
done
unset f
fi
picom &
dwmstatus &
emacs --daemon
set-bg
xset r rate 250 70
exec dwm"))
(".config/gtk-2.0/settings.ini"
,(plain-file "settings.ini" "
[Settings]
gtk-application-prefer-dark-theme=1\n"))
(".config/gtk-3.0/settings.ini"
,(plain-file "settings.ini" "
[Settings]
gtk-application-prefer-dark-theme=1\n"))))))
|