diff options
Diffstat (limited to 'users/aspen/system/system/modules')
-rw-r--r-- | users/aspen/system/system/modules/common.nix | 97 | ||||
-rw-r--r-- | users/aspen/system/system/modules/desktop.nix | 19 | ||||
-rw-r--r-- | users/aspen/system/system/modules/development.nix | 15 | ||||
-rw-r--r-- | users/aspen/system/system/modules/fcitx.nix | 10 | ||||
-rw-r--r-- | users/aspen/system/system/modules/fonts.nix | 13 | ||||
-rw-r--r-- | users/aspen/system/system/modules/laptop.nix | 23 | ||||
-rw-r--r-- | users/aspen/system/system/modules/reusable/README.org | 2 | ||||
-rw-r--r-- | users/aspen/system/system/modules/rtlsdr.nix | 17 | ||||
-rw-r--r-- | users/aspen/system/system/modules/sound.nix | 16 | ||||
-rw-r--r-- | users/aspen/system/system/modules/tvl.nix | 35 | ||||
-rw-r--r-- | users/aspen/system/system/modules/wireshark.nix | 9 | ||||
-rw-r--r-- | users/aspen/system/system/modules/xserver.nix | 16 |
12 files changed, 272 insertions, 0 deletions
diff --git a/users/aspen/system/system/modules/common.nix b/users/aspen/system/system/modules/common.nix new file mode 100644 index 0000000000..3eaeb2efc6 --- /dev/null +++ b/users/aspen/system/system/modules/common.nix @@ -0,0 +1,97 @@ +{ config, lib, pkgs, ... }: + +let + + depot = import ../../../../.. { }; + +in + +with lib; + +{ + boot = { + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + tmp.cleanOnBoot = true; + }; + + networking.useDHCP = false; + networking.networkmanager.enable = true; + systemd.services.NetworkManager-wait-online.enable = lib.mkForce false; + systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false; + + i18n = { + defaultLocale = "en_US.UTF-8"; + }; + + time.timeZone = lib.mkDefault "America/New_York"; + + environment.systemPackages = with pkgs; [ + wget + vim + zsh + git + w3m + libnotify + file + lm_sensors + dnsutils + htop + man-pages + man-pages-posix + ]; + + documentation.dev.enable = true; + documentation.man.generateCaches = true; + + services.openssh = { + enable = true; + settings = { X11Forwarding = true; }; + }; + + users.users.aspen.openssh.authorizedKeys.keys = + [ depot.users.aspen.keys.main ]; + + programs.ssh.startAgent = true; + + networking.firewall.enable = mkDefault false; + + users.mutableUsers = true; + programs.zsh.enable = true; + environment.pathsToLink = [ "/share/zsh" ]; + users.users.aspen = { + isNormalUser = true; + initialPassword = "password"; + extraGroups = [ + "wheel" + "networkmanager" + "audio" + ]; + shell = pkgs.zsh; + }; + + nix = { + settings.trusted-users = [ "aspen" ]; + distributedBuilds = true; + + gc = { + automatic = true; + dates = mkDefault "weekly"; + options = "--delete-older-than 30d"; + }; + }; + + services.udev.packages = with pkgs; [ + yubikey-personalization + ]; + + services.pcscd.enable = true; + + services.udev.extraRules = '' + # UDEV rules for Teensy USB devices + ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666" + KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666" + ''; +} diff --git a/users/aspen/system/system/modules/desktop.nix b/users/aspen/system/system/modules/desktop.nix new file mode 100644 index 0000000000..9a5fc825e1 --- /dev/null +++ b/users/aspen/system/system/modules/desktop.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./xserver.nix + ./fonts.nix + ./sound.nix + ./kernel.nix + ]; + + programs.nm-applet.enable = true; + + users.users.aspen.extraGroups = [ + "audio" + "video" + ]; + + services.geoclue2.enable = true; +} diff --git a/users/aspen/system/system/modules/development.nix b/users/aspen/system/system/modules/development.nix new file mode 100644 index 0000000000..bd5e326b2e --- /dev/null +++ b/users/aspen/system/system/modules/development.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +{ + virtualisation.docker.enable = true; + users.users.aspen.extraGroups = [ "docker" ]; + + security.pam.loginLimits = [ + { + domain = "aspen"; + type = "soft"; + item = "nofile"; + value = "65535"; + } + ]; +} diff --git a/users/aspen/system/system/modules/fcitx.nix b/users/aspen/system/system/modules/fcitx.nix new file mode 100644 index 0000000000..812f598f9f --- /dev/null +++ b/users/aspen/system/system/modules/fcitx.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, ... }: + +{ + i18n.inputMethod = { + enabled = "fcitx"; + fcitx.engines = with pkgs.fcitx-engines; [ + cloudpinyin + ]; + }; +} diff --git a/users/aspen/system/system/modules/fonts.nix b/users/aspen/system/system/modules/fonts.nix new file mode 100644 index 0000000000..598336790a --- /dev/null +++ b/users/aspen/system/system/modules/fonts.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: +{ + fonts = { + packages = with pkgs; [ + nerdfonts + noto-fonts-emoji + twitter-color-emoji + weather-icons + ]; + + fontconfig.defaultFonts.emoji = [ "Twitter Color Emoji" ]; + }; +} diff --git a/users/aspen/system/system/modules/laptop.nix b/users/aspen/system/system/modules/laptop.nix new file mode 100644 index 0000000000..89c880973d --- /dev/null +++ b/users/aspen/system/system/modules/laptop.nix @@ -0,0 +1,23 @@ +{ config, lib, pkgs, ... }: + +{ + services.logind = { + powerKey = "hibernate"; + powerKeyLongPress = "poweroff"; + lidSwitch = "suspend-then-hibernate"; + lidSwitchExternalPower = "ignore"; + }; + + systemd.sleep.extraConfig = '' + HibernateDelaySec=30m + SuspendState=mem + ''; + + services.tlp.enable = true; + + services.upower = { + enable = true; + criticalPowerAction = "Hibernate"; + percentageAction = 3; + }; +} diff --git a/users/aspen/system/system/modules/reusable/README.org b/users/aspen/system/system/modules/reusable/README.org new file mode 100644 index 0000000000..34d9bfdcb7 --- /dev/null +++ b/users/aspen/system/system/modules/reusable/README.org @@ -0,0 +1,2 @@ +This directory contains things I'm eventually planning on contributing upstream +to nixpkgs diff --git a/users/aspen/system/system/modules/rtlsdr.nix b/users/aspen/system/system/modules/rtlsdr.nix new file mode 100644 index 0000000000..ce58ebb0dc --- /dev/null +++ b/users/aspen/system/system/modules/rtlsdr.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +{ + + environment.systemPackages = with pkgs; [ + rtl-sdr + ]; + + services.udev.packages = with pkgs; [ + rtl-sdr + ]; + + # blacklist for rtl-sdr + boot.blacklistedKernelModules = [ + "dvb_usb_rtl28xxu" + ]; +} diff --git a/users/aspen/system/system/modules/sound.nix b/users/aspen/system/system/modules/sound.nix new file mode 100644 index 0000000000..07a67a1ec4 --- /dev/null +++ b/users/aspen/system/system/modules/sound.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: + +{ + # Enable sound. + sound.enable = true; + hardware.pulseaudio.enable = true; + + environment.systemPackages = with pkgs; [ + pulseaudio-ctl + paprefs + pasystray + pavucontrol + ]; + + hardware.pulseaudio.package = pkgs.pulseaudioFull; +} diff --git a/users/aspen/system/system/modules/tvl.nix b/users/aspen/system/system/modules/tvl.nix new file mode 100644 index 0000000000..f91315fc79 --- /dev/null +++ b/users/aspen/system/system/modules/tvl.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, ... }: + +{ + nix = { + buildMachines = [{ + hostName = "whitby.tvl.fyi"; + sshUser = "aspen"; + sshKey = "/root/.ssh/id_rsa"; + system = "x86_64-linux"; + maxJobs = 64; + supportedFeatures = [ "big-parallel" "kvm" "nixos-test" "benchmark" ]; + }]; + + extraOptions = '' + builders-use-substitutes = true + ''; + + settings = { + substituters = [ + "https://cache.nixos.org" + ]; + trusted-substituters = [ + "https://cache.nixos.org" + "ssh://nix-ssh@whitby.tvl.fyi" + ]; + }; + }; + + programs.ssh.knownHosts.whitby = { + extraHostNames = [ "whitby" "whitby.tvl.fyi" "49.12.129.211" ]; + publicKeyFile = pkgs.writeText "whitby.pub" '' + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNh/w4BSKov0jdz3gKBc98tpoLta5bb87fQXWBhAl2I + ''; + }; +} diff --git a/users/aspen/system/system/modules/wireshark.nix b/users/aspen/system/system/modules/wireshark.nix new file mode 100644 index 0000000000..b233d40041 --- /dev/null +++ b/users/aspen/system/system/modules/wireshark.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + programs.wireshark = { + enable = true; + package = pkgs.wireshark; + }; + users.users.aspen.extraGroups = [ "wireshark" ]; +} diff --git a/users/aspen/system/system/modules/xserver.nix b/users/aspen/system/system/modules/xserver.nix new file mode 100644 index 0000000000..f78edb207e --- /dev/null +++ b/users/aspen/system/system/modules/xserver.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: +{ + # Enable the X11 windowing system. + services.xserver = { + enable = true; + xkb.layout = "us"; + + libinput.enable = true; + + displayManager = { + defaultSession = "none+i3"; + }; + + windowManager.i3.enable = true; + }; +} |