about summary refs log tree commit diff
path: root/machines/x220/configuration.nix
blob: 9fa9f994b0489444bcb22fd06b8f69f124b3ffb5 (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{ pkgs, lib, ... }:

let
  busybox_utils = pkgs.stdenv.mkDerivation {
    name = "strings";
    unpackPhase = "true";
    installPhase = ''
      mkdir -p $out/bin
      cp ${pkgs.busybox}/bin/strings $out/bin/strings
      cp ${pkgs.busybox}/bin/telnet $out/bin/telnet
    '';
  };
in
  {

    imports = [
      ../base.nix
      ../pl.nix
      ../../modules/larbs.nix
      ../../modules/internet.nix
      ../../modules/dockd.nix
      ../../modules/trackpad.nix
      ../../modules/agetty.nix
    ];

    boot.plymouth.enable = true;
    boot.binfmt.emulatedSystems = [ "aarch64-linux" ];

    networking = {
      hostName = "x220";

      networkmanager = {
        enable = true;
        wifi.backend = "iwd";
      };
    };

    nixpkgs.config.allowUnfree = true;


    environment.systemPackages = with pkgs; [
      discord
    # Basic tools
    groff file ssh-ident busybox_utils

    # XORG perfs
    dunst

    # UI apps
    zathura sxiv pulsemixer
    lynx lf arandr wpa_supplicant_gui
    system-config-printer libreoffice
    vscodium abook

    # Audio/Video
    mpd mpc_cli mpv ffmpeg youtube-dl

    # CLIs
    gitAndTools.gh docker-compose xsel
    bc libnotify
    pamixer maim killall
    quickserve ueberzug chafa

    # Thinkpad utils
    nur.repos.pn.dockd acpi tpacpi-bat

    wineStaging

  ];

  fonts.fonts = with pkgs; [
    roboto-slab
  ];

  programs.gnupg = {
    agent = {
      enable = true;
      enableSSHSupport = true;
      pinentryFlavor = "gnome3";
    };
  };

  programs.browserpass.enable = true;
  programs.dockd.enable = true;

  virtualisation.docker.enable = true;
  # systemd.services.docker.enable = false;

  services.udev.packages = [ pkgs.libu2f-host ];

  services.pcscd.enable = true;

  services.agetty = {
    defaultUser = "pn";
  };

  services.printing = {
    enable = true;
    drivers = [ pkgs.epson_201207w ];
  };
  hardware.sane.enable = true;

  services.cron.enable = true;
  # services.fcron.enable = true;

  services.acpid.enable = true;

  # Battery
  services.tlp.enable = true;

  services.xserver = {
    videoDrivers = [ "intel" ];
    deviceSection = ''
      Option "DIR" "2"
      Option "TearFree" "true"
    '';
  };

  services.xserver.wacom = {
    enable = true;
  };

  users.users.pn.extraGroups = [ "docker" "scanner" "lp" ];

  security.pam.u2f = {
    enable = true;
    cue = true;
    interactive = true;
    #control = "required";
    #control = "requisite";
  };

}