summaryrefslogtreecommitdiffstats
path: root/lass/1systems/xerxes/config.nix
blob: 2d25bc88a55d8af3164d7245f32308b67a7f247e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
{ config, lib, pkgs, ... }:

{
  imports = [
    <stockholm/lass>

    <stockholm/lass/2configs/retiolum.nix>
    <stockholm/lass/2configs/exim-retiolum.nix>
    <stockholm/lass/2configs/baseX.nix>
    <stockholm/lass/2configs/browsers.nix>
    <stockholm/lass/2configs/programs.nix>
    <stockholm/lass/2configs/network-manager.nix>
    <stockholm/lass/2configs/syncthing.nix>
    <stockholm/lass/2configs/games.nix>
    <stockholm/lass/2configs/steam.nix>
    <stockholm/lass/2configs/wine.nix>
    <stockholm/lass/2configs/fetchWallpaper.nix>
    <stockholm/lass/2configs/nfs-dl.nix>
    <stockholm/lass/2configs/pass.nix>
    <stockholm/lass/2configs/mail.nix>
  ];

  krebs.build.host = config.krebs.hosts.xerxes;

  environment.shellAliases = {
    deploy = pkgs.writeDash "deploy" ''
      set -eu
      export SYSTEM="$1"
      $(nix-build $HOME/sync/stockholm/lass/krops.nix --no-out-link --argstr name "$SYSTEM" -A deploy)
    '';
  };

  services.xserver = {
    displayManager.lightdm.autoLogin.enable = true;
    displayManager.lightdm.autoLogin.user = "lass";
  };

  krebs.syncthing = {
    folders = {
      the_playlist = {
        path = "/home/lass/tmp/the_playlist";
        peers = [ "mors" "phone" "prism" "xerxes" ];
      };
    };
  };
  krebs.permown = {
    "/home/lass/tmp/the_playlist" = {
      owner = "lass";
      group = "syncthing";
      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
  # '';
}