;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 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 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 ")) (".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 & eval \"$(ssh-agent -s)\" emacs --daemon xss-lock -- slock & set-bg xset r rate 250 70 xset s 600 touchpad-defaults xrandr-toggle xkeyboard-auto & 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"))))))