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
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Provides a set of my preferred ;;
;; program and services for x desktops ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (modules xorg)
#:use-module (gnu)
#:use-module (gnu home services)
#:use-module (gnu home services desktop)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (modules ymir)
#:export (bd-desktop-system-packages
bd-desktop-system-services
bd-desktop-home-services
))
(use-service-modules audio desktop networking
sound xorg)
(use-package-modules
compton ;; picom
emacs ;; emacs
gnome ;; libnotify
image-viewers ;; feh
pulseaudio ;; pavucontrol, pulseaudio,
suckless ;; dmenu
wm ;; dunst
xdisorg ;; xrdb
xorg ;; xf86-input-libinput, xf86-video-fbdev, xinit...
)
(define bd-desktop-system-packages
(list
dmenu
dunst
emacs-next
libnotify
pavucontrol
picom
pulseaudio
feh
xf86-input-libinput
xf86-video-fbdev
xinit
xinput
xmodmap
xorg-server
xrandr
xrdb
xset
xss-lock
))
(define %keyboard-udev-rule
(udev-rule
"90-keyboard-hotplug.rules"
(string-append "ATTR{idVendor}==\"04b4\", ATTR{idProduct}==\"0510\", ACTION==\"add\", RUN+=\"/run/current-system/profile/bin/touch /tmp/keyboard_plugged\" RUN+=\"/run/current-system/profile/bin/chown " username " /tmp/keyboard_plugged\"")))
(define bd-desktop-system-services
(list
(service screen-locker-service-type
(screen-locker-configuration
(name "slock")
(program (file-append slock "/bin/slock"))))
(service x11-socket-directory-service-type)
(udev-rules-service 'keyboard-hotplug %keyboard-udev-rule)
(service pulseaudio-service-type)
(service alsa-service-type)))
(define bd-desktop-home-services
(list
(simple-service 'dotfiles
home-files-service-type
`((".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
"))
(".Xresources"
,(plain-file "Xresources" "
Nsxiv.window.background: #000000
Nsxiv.window.foreground: #FFFFFF
Nsxiv.bar.font: Terminus:size=9
"))
(".xinitrc"
,(plain-file "xinitrc" "
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
# merge in defaults and keymaps
if [ -f \"$userresources\" ]; then
xrdb -merge \"$userresources\"
fi
if [ -f \"$usermodmap\" ]; then
xmodmap \"$usermodmap\"
fi
picom &
# dwmstatus &
eval \"$(ssh-agent -s)\"
# emacs --daemon
xss-lock -- slock &
xset r rate 250 70
xset s 600
touchpad-defaults
xrandr-toggle
xkeyboard-auto &
exec emacs -mm"))
(".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"))))))
|