# 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'). { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ./local.nix ./services/create-run-postgresql.nix ]; # Enabled for profiling with clj-async-profiler #boot.kernel.sysctl = { # "kernel.kptr_restrict" = 0; # "perf_event_paranoid" = 1; #}; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Networking setup networking.firewall.enable = false; networking.hostName = "john"; # Enable NetworkManager networking.networkmanager.enable = true; nix = { autoOptimiseStore = true; extraOptions = '' keep-derivations = true keep-outputs = true ''; }; # Allow unfree proprietary packages such as spotify or vscode nixpkgs.config.allowUnfree = true; # System-wide packages environment.systemPackages = with pkgs; [ jmtpfs # System utilities ark git usbutils unzip vim wget # Gnome specifics and utilities gnome.gnome-tweaks gnomeExtensions.dash-to-panel gnomeExtensions.tray-icons-reloaded ]; programs.gnupg.agent = { enable = true; enableSSHSupport = true; pinentryFlavor = "curses"; }; environment.gnome.excludePackages = with pkgs; [ gnome.geary ]; environment.interactiveShellInit = '' if [ ! -f ~/.config/nixpkgs/config.nix ] then mkdir -p ~/.config/nixpkgs/ echo '{ allowUnfree = true; }' > ~/.config/nixpkgs/config.nix fi ''; #fileSystems."/mnt/mm" = { # device = "192.168.10.157:/Multimedia"; # fsType = "nfs"; # options = [ # "x-systemd.automount" "noauto" # ]; #}; # List services that you want to enable: services.create-run-postgresql.enable = true; services.cron = { enable = true; }; services.fstrim.enable = true; services.gvfs.enable = true; # Limit journal size services.journald = { extraConfig = "SystemMaxUse=500M"; }; services.nix-serve = { enable = true; secretKeyFile = "/var/nix-serve/secret"; }; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound. sound.enable = true; # Enable BT hardware.bluetooth.enable = true; # For Epic Game Store hardware.opengl.driSupport32Bit = true; # Enable pulseaudio with BT support hardware.pulseaudio = { enable = true; package = pkgs.pulseaudioFull; }; services.syncthing = { enable = true; overrideDevices = true; overrideFolders = true; configDir = "/home/john/.config/syncthing"; dataDir = "/home/john"; group = "users"; user = "john"; devices = { "desktop-john" = { id = "PNA44M7-KL6MPG7-KSP6B4K-WWQLZGZ-4KEHCKE-P5C4KFQ-D5P5WO5-NYUF2QE"; }; # "laptop-john" = { id = "DEVICE-ID-GOES-HERE"; }; }; folders = { "Documents" = { path = "/home/john/Documents"; devices = [ "desktop-john" #"laptop-john" ]; }; "src" = { path = "/home/john/src"; devices = [ "desktop-john" #"laptop-john" ]; }; }; }; services.udev.packages = with pkgs; [ gnome3.gnome-settings-daemon ]; # Enable the X11 windowing system. services.xserver.enable = true; services.xserver.layout = "us"; services.xserver.xkbOptions = "grp:win_space_toggle"; services.xserver.xkbVariant = "dvorak"; # Enable touchpad support. # It is needed to explicitly disable libinput if we want to use synaptics services.xserver.libinput.enable = false; # Enable Lenovo/IBM touchpad support services.xserver.synaptics.enable = true; # Enable for Gnome Desktop Environment services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; services.xserver.displayManager.autoLogin = { enable = true; user = "john"; }; # Set your time zone. time.timeZone = "America/Chicago"; programs.steam.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.john = { isNormalUser = true; uid = 1000; createHome = true; home = "/home/john"; extraGroups = [ "wheel" "networkmanager" ]; }; virtualisation = { podman = { enable = true; # Create a `docker` alias for podman, to use it as a drop-in replacement dockerCompat = true; }; }; # This value determines the NixOS release with which your system is to be # compatible, in order to avoid breaking some software such as database # servers. You should change this only after NixOS release notes say you # should. system.stateVersion = "21.11"; # Did you read the comment? }