# 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 = [ "amdgpu" "zfs" ]; 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; [ bc bespokesynth bintools cardinal cargo conntrack-tools curl dmenu dict dig dmidecode easyeffects encfs enscript evince feh ffmpeg file flac fldigi fluidsynth foot fortune fping gcr geeqie geonkick #gimp-with-plugins gimp git go godot_4 google-authenticator google-chrome gv helm i3 i3status imagemagick inkscape inxi iotop ipcalc iperf jq lame libreoffice libva-utils lilypond-unstable-with-fonts lshw lsof mame mariadb mednafen mednaffe mesa-demos mkvtoolnix mpv mutt netcat-openbsd nix-index nmap ntfs3g oath-toolkit openldap openssl (pass.withExtensions (ext: with ext; [pass-otp])) pass patchelf pavucontrol pciutils picom polkit_gnome polyphone poppler_utils powertop psmisc pv pwgen qemu_kvm qpwgraph qrencode qsynth radeontop rdesktop read-edid reaper recode rosegarden rustc samplv1 sfizz sg3_utils signal-desktop speedtest-cli sqlite sshfs st stoken surge #surge-XT sxiv synthv1 sysstat tcpdump tigervnc traceroute tree tshark turbovnc unrar unzip usbutils vapoursynth vdpauinfo vim vlc vmpk vocproc vulkan-tools wavpack wget whois winetricks wineWowPackages.stagingFull wireguard-tools x11vnc x265 xclip xdotool xorg.xdpyinfo xscreensaver xsnow yabridge yabridgectl yoshimi zig zip zynaddsubfx ]; i18n.defaultLocale = "en_US.UTF-8"; networking.hostId = "8425e349"; networking.hostName = "ginaz"; networking.networkmanager.enable = true; networking.nftables.enable = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; 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.pam.services = { chfn.googleAuthenticator.enable = true; chsh.googleAuthenticator.enable = true; cups.googleAuthenticator.enable = true; lightdm.googleAuthenticator.enable = true; login.googleAuthenticator.enable = true; other.googleAuthenticator.enable = true; sshd.googleAuthenticator.enable = true; su.googleAuthenticator.enable = true; sudo.googleAuthenticator.enable = true; vlock.googleAuthenticator.enable = true; xlock.googleAuthenticator.enable = true; xscreensaver.googleAuthenticator.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; openFirewall = 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.udev.extraRules = '' SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="2500",MODE:="0666" SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3000",MODE:="0666" SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3010",MODE:="0666" SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3020",MODE:="0666" SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3030",MODE:="0666" ''; 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; videoDrivers = [ "amdgpu" ]; xkb.layout = "us"; xkb.options = "caps:super,compose:ralt"; }; services.zfs.autoScrub.enable = true; services.zfs.trim.enable = 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" ]; }; }