diff options
author | William Carroll <wpcarro@gmail.com> | 2022-04-13T02·08-0700 |
---|---|---|
committer | wpcarro <wpcarro@gmail.com> | 2022-04-15T19·07+0000 |
commit | d843f0bf4cf27b33c6cf134c4bd3dfd4d646cbc8 (patch) | |
tree | a186713dad4e9b7f3d7bd7279789ca0bbfc7c25d /users/wpcarro/nixos/ava/default.nix | |
parent | a37584a562a4768d9f3c08fb69cb8d7b50b31094 (diff) |
feat(wpcarro/ava): Support new machine r/3953
ava is my new (NixOS!) work machine :) Change-Id: I1f089f00c02519d5d1d93d011f29075d53500e74 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5450 Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
Diffstat (limited to 'users/wpcarro/nixos/ava/default.nix')
-rw-r--r-- | users/wpcarro/nixos/ava/default.nix | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/users/wpcarro/nixos/ava/default.nix b/users/wpcarro/nixos/ava/default.nix new file mode 100644 index 000000000000..238807adb91a --- /dev/null +++ b/users/wpcarro/nixos/ava/default.nix @@ -0,0 +1,105 @@ +{ depot, pkgs, lib, ... }: +{ ... }: + +let + inherit (depot.users) wpcarro; + + wpcarrosEmacs = wpcarro.emacs.nixos { + load = [ ./ava.el ]; + }; + + quasselClient = pkgs.quassel.override { + client = true; + enableDaemon = false; + monolithic = false; + }; +in +{ + imports = [ ./hardware.nix ]; + + # Use the TVL binary cache + tvl.cache.enable = true; + + 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 = "ava"; + networkmanager.enable = true; + interfaces.enp1s0.useDHCP = true; + interfaces.enp3s0.useDHCP = true; + interfaces.wlp2s0.useDHCP = true; + }; + + services = wpcarro.common.services // { + xserver = { + enable = true; + 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 = "${wpcarrosEmacs}/bin/wpcarros-emacs"; + }; + }; + }; + + # Enable sound. + sound.enable = true; + hardware.pulseaudio.enable = true; + + users.mutableUsers = true; + users.users.wpcarro = { + isNormalUser = true; + extraGroups = [ + "networkmanager" + "wheel" + ]; + shell = pkgs.fish; + }; + + security.sudo.wheelNeedsPassword = false; + + fonts = { + fonts = with pkgs; [ + jetbrains-mono + ]; + + fontconfig = { + defaultFonts = { + monospace = [ "JetBrains Mono" ]; + }; + }; + }; + + programs = wpcarro.common.programs; + + environment.variables = { + EDITOR = "emacsclient"; + ALTERNATE_EDITOR = "emacs -q -nw"; + VISUAL = "emacsclient"; + }; + + environment.systemPackages = + wpcarro.common.shell-utils ++ + (with pkgs; [ + alacritty + firefox + google-chrome + pavucontrol + quasselClient + tdesktop + wpcarrosEmacs + xsecurelock + ]); + + system.stateVersion = "21.11"; +} |