70 lines
2.1 KiB
Nix
70 lines
2.1 KiB
Nix
# this is the main config which adds saturnOS components to the system
|
|
# everything in this file *should* be portable accross all devices
|
|
# portability failures in this file are a bug and should be reported
|
|
# this file will be used as is by the config script
|
|
# the script will pull updates from this file occasionally
|
|
|
|
{ config, pkgs, lib, ... }:
|
|
{
|
|
imports = [
|
|
./modules # modules are used to add functionality currently not in base nixos, such as pretty hostnames
|
|
# these features may be upstreamed at some point
|
|
|
|
./system # system is for configuration relevant specifically
|
|
# to the system it's running on and not in base saturn
|
|
];
|
|
|
|
# nix options
|
|
nix.settings = {
|
|
experimental-features = "nix-command flakes"; # enables "nix ___" support
|
|
auto-optimise-store = true; # will attempt to reduce size from soft-links
|
|
};
|
|
nix.gc = {
|
|
automatic = true; # enables garbage collection
|
|
dates = "weekly"; # runs weekly
|
|
options = "--delete-older-than 30d"; # all packages / downloaded derivations older than 30d are deleted
|
|
};
|
|
|
|
|
|
# enable gnome
|
|
services.xserver.enable = true;
|
|
services.xserver.displayManager.gdm.enable = true;
|
|
services.xserver.desktopManager.gnome.enable = true;
|
|
|
|
# enable dconf configuration for gnome and other supported applications
|
|
programs.dconf.enable = true;
|
|
|
|
# configure pipewire
|
|
sound.enable = true;
|
|
hardware.pulseaudio.enable = false;
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
};
|
|
|
|
# install packages to the base saturn system
|
|
nixpkgs.config.allowUnfree = true;
|
|
environment.systemPackages = with pkgs; [
|
|
];
|
|
|
|
# set fish as default shell for all users
|
|
users.defaultUserShell = pkgs.fish;
|
|
|
|
# suid wrapper ( for things which need privelidged acccess, or additional configuration )
|
|
programs.gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
pinentryFlavor = "gnome3";
|
|
};
|
|
programs.fish.enable = true;
|
|
|
|
# enable / configure services
|
|
services.printing.enable = true; # printing
|
|
services.openssh.enable = true; # remote shell
|
|
services.flatpak.enable = true; # enables flatpak
|
|
}
|