about summary refs log tree commit diff
path: root/machines/x220/configuration.nix
blob: 072ebaa1f8dbfdbb3352c55ec70e7a2d0c63df80 (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
{ pkgs, ... }:

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;

  networking = {
    hostName = "x220";

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

  nixpkgs.config.allowUnfree = true;


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

    # XORG perfs
    dunst xclip
    xwallpaper xdotool

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

    # Audio/Video
    mpd mpc_cli mpv ffmpeg youtube-dl

    # CLIs
    lm_sensors
    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;

  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.wacom = {
    enable = true;
  };

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

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

}