summaryrefslogtreecommitdiff
path: root/x
diff options
context:
space:
mode:
Diffstat (limited to 'x')
-rw-r--r--x/default.nix41
-rw-r--r--x/xorg.conf6
2 files changed, 47 insertions, 0 deletions
diff --git a/x/default.nix b/x/default.nix
new file mode 100644
index 0000000..1807368
--- /dev/null
+++ b/x/default.nix
@@ -0,0 +1,41 @@
+{
+ config,
+}: rec {
+
+ pkgs = (import ../pkgs.nix).stable {};
+
+ innerEnv = pkgs.buildEnv {
+ name = "x-inner-env";
+ paths = [
+ pkgs.xorg.xorgserver
+ pkgs.xorg.xinit
+ pkgs.xorg.xauth
+ pkgs.xorg.xset
+ #pkgs.xorg.xf86inputevdev
+ pkgs.xorg.xf86inputlibinput
+
+ (pkgs.runCommand "xorg-conf-inner" {} ''
+ mkdir -p "$out"/share/X11/xorg.conf.d/
+ cp ${./xorg.conf} "$out"/share/X11/xorg.conf.d/99-loadout.conf
+ '')
+ ];
+ };
+
+ conf = pkgs.runCommand "xorg-conf" {} ''
+ cat >>"$out" <<EOF
+Section "Files"
+ ModulePath "${innerEnv}/lib/xorg/modules"
+EndSection
+EOF
+
+ for f in $(ls ${innerEnv}/share/X11/xorg.conf.d | sort); do
+ cat ${innerEnv}/share/X11/xorg.conf.d/"$f" >> "$out"
+ done
+ '';
+
+ startx = pkgs.writeShellScriptBin "startx" ''
+ export XORGCONFIG=${conf}
+ export PATH=${innerEnv}/bin:$PATH
+ exec startx
+ '';
+}
diff --git a/x/xorg.conf b/x/xorg.conf
new file mode 100644
index 0000000..04f72e6
--- /dev/null
+++ b/x/xorg.conf
@@ -0,0 +1,6 @@
+Section "InputClass"
+ Identifier "system-keyboard"
+ MatchIsKeyboard "on"
+ Option "XkbLayout" "us"
+ Option "XkbOptions" "caps:swapescape"
+EndSection