about summary refs log tree commit diff
path: root/machines/aszlig/dnyarri.nix
blob: fcd625138183198eb5d08ac47ffe5ead508a152a (plain) (blame)
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
{ pkgs, lib, ... }:

{
  vuizvui.user.aszlig.profiles.workstation.enable = true;

  nix.maxJobs = 8;

  boot = {
    initrd = {
      mdadmConf = ''
        ARRAY /dev/md0 metadata=1.2 UUID=f5e9de04:89efc509:4e184fcc:166b0b67
        ARRAY /dev/md1 metadata=0.90 UUID=b85aa8be:cea0faf2:7abcbee8:eeae037b
      '';
      luks.devices = [
        { name = "system_crypt";
          device = "/dev/md1";
          preLVM = true;
        }
      ];
    };

    loader.grub.devices = [
      "/dev/disk/by-id/ata-ST31500541AS_5XW0AMNH"
      "/dev/disk/by-id/ata-ST31500541AS_6XW0M217"
    ];
  };

  environment.systemPackages = [ pkgs.paperwork ];

  # This is very ugly and I really want to avoid non-free packages on all
  # of my workstations. But right now I need to get rid of useless paper.
  nixpkgs.config = {
    allowUnfreePredicate = pkg: let
      inherit (builtins.parseDrvName pkg.name) name;
    in lib.hasSuffix "-hplip" name && lib.hasPrefix "python" name;
    packageOverrides = super: {
      hplip = super.hplip.override { withPlugin = true; };
    };
    # whitelist insecure webkitgtk
    permittedInsecurePackages = [
      "webkitgtk-2.4.11"
    ];
  };

  hardware.sane.enable = true;
  hardware.sane.extraBackends = [ pkgs.hplip ];

  vuizvui.user.aszlig.system.kernel.enable = true;
  hardware.enableAllFirmware = true;

  networking.hostName = "dnyarri";

  fileSystems = {
    "/boot" = {
      label = "boot";
      fsType = "ext2";
    };
    "/" = {
      device = "/dev/shofixti/root";
      fsType = "xfs";
    };
  };

  powerManagement.powerUpCommands = ''
    ${pkgs.hdparm}/sbin/hdparm -B 255 /dev/disk/by-id/ata-ST31500541AS_5XW0AMNH
    ${pkgs.hdparm}/sbin/hdparm -B 255 /dev/disk/by-id/ata-ST31500541AS_6XW0M217
  '';

  swapDevices = lib.singleton {
    device = "/dev/shofixti/swap";
  };

  users.users.aszlig.extraGroups = [
    "scanner"
    # TODO: Try to avoid this, but as there is only a single user using audio
    # on this machine, it's okay for now. But remember that this will break
    # heavily, should there be another user accessing the audio devices.
    "audio"
  ];

  services.synergy.client.enable = true;
  services.synergy.client.serverAddress = "mmrnmhrm";

  services.kmscon.enable = true;

  systemd.services."synergy-client".serviceConfig.CPUSchedulingPolicy = "rr";
  systemd.services."synergy-client".serviceConfig.CPUSchedulingPriority = 50;

  services.xserver.videoDrivers = [ "ati" ];
  services.xserver.xrandrHeads = [ "HDMI-0" "DVI-0" ];

  vuizvui.user.aszlig.services.i3.reverseHeads = true;
  vuizvui.user.aszlig.services.i3.workspaces."6" = {
    label = "Chromium";
    assign = lib.singleton { class = "^Chromium(?:-browser)?\$"; };
  };
}