peter-nixos/configuration.nix
2024-06-23 07:59:50 -05:00

199 lines
3.8 KiB
Nix

{ config, pkgs, ... }:
let
keys = import ./ssh-keys.nix;
in
{
imports = [
./hardware-configuration.nix
];
networking = {
hostId = "7be305c3";
hostName = "sandy";
networkmanager.enable = true;
};
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
time.timeZone = "America/Chicago";
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
nixpkgs.config.allowUnfree = true;
nix = {
package = pkgs.nixFlakes;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
programs.zsh.enable = true;
services = {
openssh.enable = true;
tailscale.enable = true;
zfs.autoSnapshot.enable = true;
hardware.bolt.enable = true;
nscd.enable = true;
blueman.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
xserver = {
enable = true;
displayManager.lightdm.enable = true;
desktopManager.plasma5.enable = true;
displayManager.defaultSession = "plasmawayland";
displayManager.autoLogin.enable = true;
displayManager.autoLogin.user = "hodgson";
layout = "us";
xkbVariant = "";
};
emacs = {
enable = true;
install = true;
startWithGraphical = true;
};
avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
publish = {
enable = true;
userServices = true;
};
};
printing = {
enable = true;
listenAddresses = [ "*:631" ];
allowFrom = [ "all" ];
browsing = true;
defaultShared = true;
openFirewall = true;
drivers = with pkgs; [
epson-escpr2 epson-escpr epson-201106w
gutenprint
];
};
};
sound.enable = true;
hardware = {
pulseaudio.enable = false;
printers = {
};
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
security = {
rtkit.enable = true;
sudo.wheelNeedsPassword = false;
};
users.users.nshields = {
isNormalUser = true;
shell = pkgs.zsh;
description = "Nikolai Shields";
extraGroups = [ "lp" "docker" "networkmanager" "wheel" "podman" ];
openssh.authorizedKeys.keys = keys.nshields;
};
users.users.benson = {
isNormalUser = true;
shell = pkgs.zsh;
description = "Benson Chu";
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = keys.benson;
};
users.users.hodgson = {
isNormalUser = true;
shell = pkgs.zsh;
description = "Peter Hodgson";
extraGroups = [ "lp" "wheel" ];
openssh.authorizedKeys.keys = keys.hodgson;
};
environment.systemPackages = with pkgs; [
gnome.gnome-tweaks
gnome.networkmanager-openconnect
nss
htop
sssd
nsss
wl-clipboard
unscd
glibc
glib
openconnect
libsForQt5.plasma-thunderbolt
# essential
git
vim
emacs
tmux
signal-desktop
# emacs dependencies
ispell
ripgrep
cmake
gnumake
# browsers
google-chrome
firefox
lynx
# networking
curl
wget
nmap
bind
# Other
racket
ruby
(python311.withPackages (pythonPackages: with pythonPackages; [
urwid
]))
(pkgs.callPackage ./mfcl2690dw/default.nix { })
];
networking.firewall.allowedTCPPorts = [ 22 ];
networking.firewall.allowedUDPPorts = [ ];
networking.firewall.enable = true;
system.stateVersion = "23.11"; # Did you read the comment?
}