summaryrefslogtreecommitdiffstats
path: root/systems/default.nix
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2023-09-23 15:41:49 -0400
committerJon Santmyer <jon@jonsantmyer.com>2023-09-23 15:41:49 -0400
commit4abb25ea7d3876899e641a8a16281203bd164d53 (patch)
tree8b47a0381776df3eb441cd6f31b15341d99847da /systems/default.nix
downloadnix-config-4abb25ea7d3876899e641a8a16281203bd164d53.tar.gz
nix-config-4abb25ea7d3876899e641a8a16281203bd164d53.tar.bz2
nix-config-4abb25ea7d3876899e641a8a16281203bd164d53.zip
initial config for all 3 systems
Diffstat (limited to 'systems/default.nix')
-rw-r--r--systems/default.nix160
1 files changed, 160 insertions, 0 deletions
diff --git a/systems/default.nix b/systems/default.nix
new file mode 100644
index 0000000..eadf5c5
--- /dev/null
+++ b/systems/default.nix
@@ -0,0 +1,160 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ inputs, outputs, config, hostname, username, lib, pkgs, stateVersion, ... }:
+
+{
+ imports =
+ [
+ ./${hostname}
+ ../users/jon.nix
+ ];
+
+ boot = {
+ tmp.cleanOnBoot = true;
+ initrd.verbose = false;
+ };
+
+ nix = {
+ registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
+
+ nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
+
+ settings = {
+ experimental-features = "nix-command flakes";
+ auto-optimise-store = true;
+ };
+
+ gc = {
+ automatic = true;
+ dates = "Fri";
+ };
+ };
+
+ networking.hostName = hostname; # Define your hostname.
+ networking.useDHCP = lib.mkDefault true;
+ networking.networkmanager.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "America/New_York";
+
+ i18n.defaultLocale = "en_US.UTF-8";
+ i18n.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";
+ };
+
+ # Configure X11
+ services.xserver = {
+ enable = true;
+ layout = "us";
+ xkbVariant = "";
+
+ displayManager = {
+ sddm.enable = true;
+ defaultSession = "none+awesome";
+ };
+
+ windowManager.awesome = {
+ enable = true;
+ luaModules = with pkgs.luaPackages; [
+ luarocks
+ luadbi-mysql
+ ];
+ };
+ };
+
+ sound.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+
+ security.rtkit.enable = true;
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [
+ arandr
+ binutils
+ clang-tools
+ gcc
+ gnutar
+ gnumake
+ gdb
+ unzip
+ wget
+ ];
+
+ fonts.packages = with pkgs; [
+ fira-code
+ fira-code-symbols
+ font-awesome
+ liberation_ttf
+ noto-fonts
+ noto-fonts-cjk
+ noto-fonts-emoji
+ (nerdfonts.override { fonts = [ "FiraCode" ]; } )
+ ];
+
+ programs.zsh.enable = true;
+ users.defaultUserShell = pkgs.zsh;
+
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ };
+
+ services.mpd = {
+ enable = true;
+ musicDirectory = "/var/mus";
+ extraConfig = ''
+audio_output {
+ type "alsa"
+ name "My ALSA"
+ mixer_type "hardware"
+ mixer_device "device"
+ mixer_control "PCM"
+}
+ '';
+ network.listenAddress = "any";
+ };
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ # programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ # services.openssh.enable = true;
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = stateVersion; # Did you read the comment?
+
+}