about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2021-12-15T23·40-0500
committerwpcarro <wpcarro@gmail.com>2021-12-16T22·07+0000
commit1ca4c6d2beb5ea42a5b69d91cd84ec3e2011c428 (patch)
treec3328fe2cc1fa06572828c0fe0ff6615861549dd
parentca56cb2d9f3cf325cec61a394e16a8bdaedba4e2 (diff)
feat(wpcarro/marcus): Add marcus to the depot r/3272
me: marcus, meet depot. depot, meet marcus.
Change-Id: Ic6a25ac85e4c7f6dfea2a42b46a4400f92df70a2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4351
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
-rw-r--r--ops/machines/all-systems.nix4
-rw-r--r--users/wpcarro/nixos/default.nix7
-rw-r--r--users/wpcarro/nixos/marcus/default.nix91
-rw-r--r--users/wpcarro/nixos/marcus/hardware.nix32
4 files changed, 134 insertions, 0 deletions
diff --git a/ops/machines/all-systems.nix b/ops/machines/all-systems.nix
index b80436a06c4a..cbcfaf864f5d 100644
--- a/ops/machines/all-systems.nix
+++ b/ops/machines/all-systems.nix
@@ -12,4 +12,8 @@
 
 (with depot.users.grfn.system.system; [
   yeren
+]) ++
+
+(with depot.users.wpcarro.nixos; [
+  marcus
 ])
diff --git a/users/wpcarro/nixos/default.nix b/users/wpcarro/nixos/default.nix
new file mode 100644
index 000000000000..693cbd9ac154
--- /dev/null
+++ b/users/wpcarro/nixos/default.nix
@@ -0,0 +1,7 @@
+{ depot, lib, ... }:
+
+let systemFor = sys: (depot.ops.nixos.nixosFor sys).system;
+in {
+  marcusSystem = systemFor depot.users.wpcarro.nixos.marcus;
+  meta.targets = [ "marcusSystem" ];
+}
diff --git a/users/wpcarro/nixos/marcus/default.nix b/users/wpcarro/nixos/marcus/default.nix
new file mode 100644
index 000000000000..ef1e60bd780d
--- /dev/null
+++ b/users/wpcarro/nixos/marcus/default.nix
@@ -0,0 +1,91 @@
+{ depot, pkgs, lib, ... }:
+{ config, ... }:
+
+let
+  # TODO(wpcarro): Drop dependency on the briefcase concept.
+  wpcarros-emacs = depot.users.wpcarro.emacs.nixos {
+    briefcasePath = "$HOME/depot/users/wpcarro";
+  };
+in {
+  imports = [
+    ./hardware.nix
+  ];
+
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+
+  networking = {
+    # The global useDHCP flag is deprecated, therefore explicitly set to false
+    # here.  Per-interface useDHCP will be mandatory in the future, so this
+    # generated config replicates the default behaviour.
+    useDHCP = false;
+    hostName = "marcus";
+    networkmanager.enable = true;
+    interfaces.enp0s31f6.useDHCP = true;
+    interfaces.wlp0s20f3.useDHCP = true;
+  };
+
+  time.timeZone = "America/New_York";
+
+  services.xserver = {
+    enable = true;
+    libinput = {
+      enable = true;
+      touchpad.naturalScrolling = true;
+      touchpad.tapping = false;
+    };
+    layout = "us";
+    xkbOptions = "caps:escape";
+    displayManager = {
+      # Give EXWM permission to control the session (from tazjin's setup).
+      sessionCommands = "${pkgs.xorg.xhost}/bin/xhost +SI:localhost:$USER";
+      lightdm.enable = true;
+    };
+    windowManager.session = lib.singleton {
+      name = "exwm";
+      start = "${wpcarros-emacs}/bin/wpcarros-emacs";
+    };
+  };
+
+  # Enable sound.
+  sound.enable = true;
+  hardware.pulseaudio.enable = true;
+
+  users.mutableUsers = true;
+  users.users.wpcarro = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.fish;
+  };
+
+  fonts = {
+    fonts = with pkgs; [
+      jetbrains-mono
+    ];
+
+    fontconfig = {
+      defaultFonts = {
+        monospace = [ "JetBrains Mono" ];
+      };
+    };
+  };
+
+  programs.fish.enable = true;
+
+  environment.systemPackages = with pkgs; [
+    alacritty
+    dig
+    direnv
+    fd
+    firefox
+    fzf
+    git
+    ripgrep
+    vim
+    weechat
+    wpcarros-emacs
+    xclip
+  ];
+
+  system.stateVersion = "21.11";
+}
diff --git a/users/wpcarro/nixos/marcus/hardware.nix b/users/wpcarro/nixos/marcus/hardware.nix
new file mode 100644
index 000000000000..2225e9452d80
--- /dev/null
+++ b/users/wpcarro/nixos/marcus/hardware.nix
@@ -0,0 +1,32 @@
+# Do not modify this file!  It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations.  Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+  imports =
+    [ (modulesPath + "/installer/scan/not-detected.nix")
+    ];
+
+  boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
+  boot.initrd.kernelModules = [ ];
+  boot.kernelModules = [ "kvm-intel" ];
+  boot.extraModulePackages = [ ];
+
+  fileSystems."/" =
+    { device = "/dev/disk/by-uuid/b8b911ee-e9b9-40ea-89d6-551f11350e7b";
+      fsType = "ext4";
+    };
+
+  fileSystems."/boot" =
+    { device = "/dev/disk/by-uuid/A7EA-369C";
+      fsType = "vfat";
+    };
+
+  swapDevices =
+    [ { device = "/dev/disk/by-uuid/b87e2b8f-c835-4179-a428-fe466a846df0"; }
+    ];
+
+  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}