commit 2b35ab4d5bd4f43176efa85c1e7293e1bef64d5e
parent 0385213faf4ddb2ae5e59f8a4ef944a24c19b10e
Author: Vineet Kumar <git@vineetk.net>
Date: Fri, 20 Mar 2026 20:59:02 -0400
demiurge, home: switch back to xorg+exwm with custom xorg-server package for drivers
Diffstat:
3 files changed, 79 insertions(+), 16 deletions(-)
diff --git a/epistemia/files/sx/.config/sx/sxrc b/epistemia/files/sx/.config/sx/sxrc
@@ -0,0 +1,9 @@
+#!/bin/sh
+export PATH=$HOME/bin:$HOME/.guix-home/profile/bin:$HOME/.guix-home/profile/sbin:/run/privileged/bin:$HOME/.config/guix/current/bin:$HOME/.guix-profile/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
+export _JAVA_AWT_WM_NONREPARENTING=1
+
+emacsclient -e '(list)' >/dev/null 2>&1 || emacs --daemon
+
+xhost +SI:localuser:$USER
+
+exec emacsclient -c -e '(exwm-wm-mode)'
diff --git a/epistemia/home/config.scm b/epistemia/home/config.scm
@@ -33,12 +33,12 @@
#:use-module (epistemia packages audio)
#:use-module (epistemia packages emacs)
#:use-module (epistemia packages minecraft)
+ #:use-module (epistemia packages xorg)
#:use-module (nongnu packages game-client)
#:use-module (gnu home services)
#:use-module (gnu home services desktop)
#:use-module (gnu home services dotfiles)
#:use-module (gnu home services sound)
- #:use-module (gnu home services sway)
#:use-module (guix channels)
#:use-module (guix packages)
#:use-module (guix gexp)
@@ -99,11 +99,15 @@
guile-colorized
guile-readline
- ;; wayland
- slurp
- grim
- wl-clipboard
- wlr-randr
+ ;; xorg
+ scrot
+ sx
+ xauth
+ xclip
+ xhost
+ xorg-server-with-drivers
+ xrandr
+ xsel
;; email
isync
@@ -145,7 +149,7 @@
("AGE_PUB" . "${AGE_KEY}.pub")
("KASI_DIR" . "/data/kasi")
("KASI_EXT" . "age")
- ("KASI_CLIPBOARD" . "wl-copy")
+ ("KASI_CLIPBOARD" . "xsel -ib")
("KASI_DECRYPT" . "age -d -i $AGE_KEY")
("KASI_ENCRYPT" . "age -R $AGE_PUB")
("CRAWL_DIR" . "$XDG_DATA_HOME/crawl")))
@@ -158,15 +162,6 @@
(mkdir-p runtime-dir)
(chmod runtime-dir #o700)))))
(service home-dbus-service-type)
- (service home-sway-service-type
- (sway-configuration
- (startup-programs '("emacs --daemon"
- "emacsclient -c"
- "qutebrowser"))
- (inputs
- (list (sway-input
- (identifier "type:pointer")
- (extra-content '("accel_profile flat")))))))
(service home-pipewire-service-type
(home-pipewire-configuration
(enable-pulseaudio? #t)))
diff --git a/epistemia/packages/xorg.scm b/epistemia/packages/xorg.scm
@@ -0,0 +1,59 @@
+(define-module (epistemia packages xorg)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xorg))
+
+(define-public xorg-server-with-drivers
+ (package
+ (inherit xorg-server)
+ (name "xorg-server-with-drivers")
+ (arguments
+ (substitute-keyword-arguments (package-arguments xorg-server)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'install 'install-modules-conf
+ (lambda _
+ ;; Add Xorg module paths so drivers in inputs are found.
+ (call-with-output-file
+ (string-append #$output "/share/X11/xorg.conf.d/00-modules.conf")
+ (lambda (port)
+ (display
+ (string-append
+ "Section \"Files\"\nModulePath \""
+ #$output "/lib/xorg/modules,"
+ #$(this-package-input "xf86-input-libinput") "/lib/xorg/modules,"
+ #$(this-package-input "xf86-input-wacom") "/lib/xorg/modules,"
+ #$(this-package-input "xf86-video-amdgpu") "/lib/xorg/modules\"\n"
+ "EndSection\n")
+ port)))
+ (call-with-output-file
+ (string-append #$output "/share/X11/xorg.conf.d/10-input.conf")
+ (lambda (port)
+ (display
+ (string-append
+ "Section \"InputClass\"\n"
+ " Identifier \"keyboards\"\n"
+ " MatchIsKeyboard \"on\"\n"
+ " Driver \"libinput\"\n"
+ "EndSection\n"
+ "\n"
+ "Section \"InputClass\"\n"
+ " Identifier \"mice\"\n"
+ " MatchIsPointer \"on\"\n"
+ " Driver \"libinput\"\n"
+ " Option \"AccelProfile\" \"flat\"\n"
+ " Option \"AccelSpeed\" \"0\"\n"
+ "EndSection\n"
+ "\n"
+ "Section \"InputClass\"\n"
+ " Identifier \"wacom\"\n"
+ " MatchDriver \"wacom\"\n"
+ " Driver \"wacom\"\n"
+ "EndSection\n")
+ port)))))))))
+ (inputs (modify-inputs (package-inputs xorg-server)
+ (append xf86-input-libinput
+ xf86-input-wacom
+ xf86-video-amdgpu)))))