summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lass@xerxes.r>2019-08-27 16:56:19 +0200
committerlassulus <lass@xerxes.r>2019-08-27 16:56:19 +0200
commitc0e4269e6a6518b6a648d250c437b59460caa6e9 (patch)
tree1730f3300c18420fda66f31e8183260cd9e9012a
parentb7daacf31efea112e2d845e5d2c49e4ded26b739 (diff)
l xerxes.r: support most of the hardware
-rw-r--r--lass/1systems/xerxes/config.nix70
-rw-r--r--lass/1systems/xerxes/physical.nix24
2 files changed, 78 insertions, 16 deletions
diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix
index b577b31b..2d25bc88 100644
--- a/lass/1systems/xerxes/config.nix
+++ b/lass/1systems/xerxes/config.nix
@@ -35,10 +35,6 @@
displayManager.lightdm.autoLogin.user = "lass";
};
- boot.blacklistedKernelModules = [
- "xpad"
- ];
-
krebs.syncthing = {
folders = {
the_playlist = {
@@ -54,4 +50,70 @@
umask = "0007";
};
};
+
+ boot.blacklistedKernelModules = [ "xpad" ];
+ systemd.services.xboxdrv = {
+ wantedBy = [ "multi-user.target" ];
+ script = ''
+ ${pkgs.xboxdrv.overrideAttrs(o: {
+ patches = [ (pkgs.fetchurl {
+ url = "https://patch-diff.githubusercontent.com/raw/xboxdrv/xboxdrv/pull/251.patch";
+ sha256 = "17784y20mxqrlhgvwvszh8lprxrvgmb7ah9dknmbhj5jhkjl8wq5";
+ }) ];
+ })}/bin/xboxdrv --type xbox360 --dbus disabled -D
+ '';
+ };
+
+ programs.adb.enable = true;
+
+ services.logind.lidSwitch = "ignore";
+ services.acpid = {
+ enable = true;
+ lidEventCommands = ''
+ export DISPLAY=:${toString config.services.xserver.display}
+ case "$1" in
+ "button/lid LID close")
+ ${pkgs.xorg.xinput}/bin/xinput disable 'pointer: Mouse for Windows'
+ ${pkgs.xorg.xinput}/bin/xinput disable 'keyboard: Mouse for Windows'
+ ${pkgs.acpilight}/bin/xbacklight -get > /tmp/pre_lid_brightness
+ ${pkgs.acpilight}/bin/xbacklight -set 0
+ ;;
+ "button/lid LID open")
+ ${pkgs.xorg.xinput}/bin/xinput enable 'pointer: Mouse for Windows'
+ ${pkgs.xorg.xinput}/bin/xinput enable 'keyboard: Mouse for Windows'
+ ${pkgs.acpilight}/bin/xbacklight -set $(cat /tmp/pre_lid_brightness)
+ ;;
+ esac
+ '';
+ };
+
+ systemd.services.suspend-again = {
+ after = [ "suspend.target" ];
+ requiredBy = [ "suspend.target" ];
+ # environment = {
+ # DISPLAY = ":${toString config.services.xserver.display}";
+ # };
+ serviceConfig = {
+ ExecStart = pkgs.writeDash "suspend-again" ''
+ ${pkgs.gnugrep}/bin/grep -q closed /proc/acpi/button/lid/LID0/state
+ if [ "$?" -eq 0 ]; then
+ echo 'wakeup with closed lid'
+ ${pkgs.systemd}/bin/systemctl suspend
+ fi
+ '';
+ Type = "simple";
+ };
+ };
+
+ hardware.bluetooth.enable = true;
+ hardware.pulseaudio.package = pkgs.pulseaudioFull;
+ # hardware.pulseaudio.configFile = pkgs.writeText "default.pa" ''
+ # load-module module-bluetooth-policy
+ # load-module module-bluetooth-discover
+ # ## module fails to load with
+ # ## module-bluez5-device.c: Failed to get device path from module arguments
+ # ## module.c: Failed to load module "module-bluez5-device" (argument: ""): initialization failed.
+ # # load-module module-bluez5-device
+ # # load-module module-bluez5-discover
+ # '';
}
diff --git a/lass/1systems/xerxes/physical.nix b/lass/1systems/xerxes/physical.nix
index f88578e1..5d60dfc4 100644
--- a/lass/1systems/xerxes/physical.nix
+++ b/lass/1systems/xerxes/physical.nix
@@ -17,6 +17,7 @@
boot.blacklistedKernelModules = [
"goodix"
];
+
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.initrd.luks.devices.crypted.device = "/dev/sda3";
@@ -27,11 +28,6 @@
"boot.shell_on_fail"
];
- services.xserver.displayManager.sessionCommands = ''
- (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output eDP-1 --rotate right)
- (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1)
- '';
-
fileSystems."/" = {
device = "rpool/root";
fsType = "zfs";
@@ -76,11 +72,15 @@
IdleActionSec=300
'';
- services.xserver.extraConfig = ''
- Section "Device"
- Identifier "Intel Graphics"
- Driver "Intel"
- Option "TearFree" "true"
- EndSection
- '';
+ services.xserver = {
+ videoDrivers = [ "intel" ];
+ deviceSection = ''
+ Option "TearFree" "true"
+ '';
+ displayManager.sessionCommands = ''
+ echo nonono > /tmp/xxyy
+ (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output eDP1 --rotate right)
+ (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1)
+ '';
+ };
}