summaryrefslogtreecommitdiff
path: root/.config/guix/modules/services/xorg.scm
diff options
context:
space:
mode:
Diffstat (limited to '.config/guix/modules/services/xorg.scm')
-rw-r--r--.config/guix/modules/services/xorg.scm96
1 files changed, 96 insertions, 0 deletions
diff --git a/.config/guix/modules/services/xorg.scm b/.config/guix/modules/services/xorg.scm
new file mode 100644
index 0000000..2795c1c
--- /dev/null
+++ b/.config/guix/modules/services/xorg.scm
@@ -0,0 +1,96 @@
+(define-module (services 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 (gnu packages suckless)
+ #:use-module (ymir)
+ #:export (bd-desktop-system-services
+ bd-desktop-home-services
+ ))
+
+(use-service-modules audio desktop networking
+ sound xorg)
+
+(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 &
+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"))))))