# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { config, lib, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; boot.initrd.kernelModules = [ "zfs" ]; #boot.initrd.postDeviceCommands = ''zpool import -lf rpool''; boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; boot.loader.efi.canTouchEfiVariables = true; boot.loader.generationsDir.copyKernels = true; boot.loader.systemd-boot.enable = true; boot.supportedFilesystems = [ "zfs" ]; boot.zfs.devNodes = "/dev/disk/by-label"; documentation.dev.enable = true; documentation.man.enable = true; environment.shells = with pkgs; [ zsh ]; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ curl dmenu feh geeqie git i3 i3status netcat-openbsd pass passExtensions.pass-otp pavucontrol polkit_gnome reaper signal-desktop st stoken vim wget xdotool xorg.xdpyinfo xscreensaver ]; i18n.defaultLocale = "en_US.UTF-8"; networking.hostId = "8425e349"; networking.hostName = "ginaz"; networking.networkmanager.enable = true; networking.nftables.enable = true; nixpkgs.config.allowUnfree = true; programs.atop.enable = true; programs.firefox.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; programs.iftop.enable = true; programs.mtr.enable = true; programs.nm-applet.enable = true; programs.steam.enable = true; programs.tmux.enable = true; programs.zsh.enable = true; security.polkit = { enable = true; extraConfig = '' polkit.addRule(function(action, subject) { if ( subject.isInGroup("users") && ( action.id == "org.freedesktop.login1.reboot" || action.id == "org.freedesktop.login1.reboot-multiple-sessions" || action.id == "org.freedesktop.login1.power-off" || action.id == "org.freedesktop.login1.power-off-multiple-sessions" ) ) { return polkit.Result.YES; } }) ''; }; security.rtkit.enable = true; services.blueman.enable = true; services.openssh = { enable = true; settings.PasswordAuthentication = false; settings.KbdInteractiveAuthentication = false; settings.PermitRootLogin = "yes"; }; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; services.printing.enable = true; services.xserver = { displayManager.defaultSession = "xsession"; displayManager.lightdm = { enable = true; extraSeatDefaults = ''greeter-hide-users=true''; }; displayManager.session = [ { manage = "desktop"; name = "xsession"; start = ''exec $HOME/.xsession''; } ]; enable = true; libinput.enable = true; xkb.layout = "us"; xkb.options = "caps:super,compose:ralt"; }; services.zfs.autoScrub.enable = true; services.zfs.trim.enable = true; system.copySystemConfiguration = true; system.stateVersion = "23.11"; systemd = { user.services.polkit-gnome-authentication-agent-1 = { description = "polkit-gnome-authentication-agent-1"; wantedBy = [ "graphical-session.target" ]; wants = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; }; time.timeZone = "America/Los_Angeles"; users.groups.nipsy.gid = 1000; users.users.nipsy = { isNormalUser = true; group = "nipsy"; home = "/home/nipsy"; description = "Mark Nipper"; extraGroups = [ "wheel" "networkmanager" ]; #packages = with pkgs; [ # firefox # tree #]; shell = pkgs.zsh; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbKppxX6GF88fAfXJZR4ZcPzwopi7TAy+v/dmWso+7f nipsy@arrakis.bitgnome.net" ]; }; users.users.root = { shell = pkgs.zsh; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbKppxX6GF88fAfXJZR4ZcPzwopi7TAy+v/dmWso+7f nipsy@arrakis.bitgnome.net" ]; }; }