From 1ca4c6d2beb5ea42a5b69d91cd84ec3e2011c428 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Wed, 15 Dec 2021 18:40:44 -0500 Subject: feat(wpcarro/marcus): Add marcus to the depot 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 --- ops/machines/all-systems.nix | 4 ++ users/wpcarro/nixos/default.nix | 7 +++ users/wpcarro/nixos/marcus/default.nix | 91 +++++++++++++++++++++++++++++++++ users/wpcarro/nixos/marcus/hardware.nix | 32 ++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 users/wpcarro/nixos/default.nix create mode 100644 users/wpcarro/nixos/marcus/default.nix create mode 100644 users/wpcarro/nixos/marcus/hardware.nix diff --git a/ops/machines/all-systems.nix b/ops/machines/all-systems.nix index b80436a06c..cbcfaf864f 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 0000000000..693cbd9ac1 --- /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 0000000000..ef1e60bd78 --- /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 0000000000..2225e9452d --- /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; +} -- cgit 1.4.1