about summary refs log tree commit diff
path: root/machines/x220/configuration.nix
diff options
context:
space:
mode:
Diffstat (limited to 'machines/x220/configuration.nix')
-rw-r--r--machines/x220/configuration.nix123
1 files changed, 123 insertions, 0 deletions
diff --git a/machines/x220/configuration.nix b/machines/x220/configuration.nix
new file mode 100644
index 0000000..072ebaa
--- /dev/null
+++ b/machines/x220/configuration.nix
@@ -0,0 +1,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";
+  };
+
+}