diff options
Diffstat (limited to 'users/wpcarro/nixos/marcus/default.nix')
-rw-r--r-- | users/wpcarro/nixos/marcus/default.nix | 91 |
1 files changed, 91 insertions, 0 deletions
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"; +} |