aboutsummaryrefslogtreecommitdiff
path: root/nixos/general.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/general.nix')
-rw-r--r--nixos/general.nix74
1 files changed, 74 insertions, 0 deletions
diff --git a/nixos/general.nix b/nixos/general.nix
new file mode 100644
index 0000000..f02e889
--- /dev/null
+++ b/nixos/general.nix
@@ -0,0 +1,74 @@
+{ inputs, outputs, lib, config, pkgs, ... }: {
+ nixpkgs = {
+ overlays = [
+ outputs.overlays.additions
+ outputs.overlays.modifications
+ outputs.overlays.unstable-packages
+ outputs.overlays.emacs-overlay
+
+ # You can also add overlays exported from other flakes:
+ # neovim-nightly-overlay.overlays.default
+ ];
+ config = {
+ allowUnfree = true;
+ };
+ };
+ nix = {
+ # This will add each flake input as a registry
+ # To make nix3 commands consistent with your flake
+ registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
+
+ # This will additionally add your inputs to the system's legacy channels
+ # Making legacy nix commands consistent as well, awesome!
+ nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
+
+ gc = {
+ automatic = true;
+ dates = "weekly";
+ };
+
+ settings = {
+ # Enable flakes and new 'nix' command
+ experimental-features = "nix-command flakes";
+ # Deduplicate and optimize nix store
+ auto-optimise-store = true;
+ };
+ };
+ networking.networkmanager = {
+ enable = true;
+ };
+ networking.firewall.enable = false;
+ networking.nftables.enable = true;
+ boot.loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ audio.enable = true;
+ wireplumber.enable = true;
+ alsa.enable = true;
+ pulse.enable = true;
+ jack.enable = true;
+ };
+ environment.systemPackages = with pkgs; [
+ vim
+ git
+ ];
+ services.udisks2 = {
+ enable = true;
+ mountOnMedia = true;
+ };
+ programs.dconf.enable = true;
+ i18n.defaultLocale = "ru_RU.UTF-8";
+ programs.fish.enable = true;
+ users.users = {
+ jerpo = {
+ isNormalUser = true;
+ shell = pkgs.fish;
+ extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" "input" "adbusers" ];
+ };
+ };
+
+}