{ config, config', pkgs, lib, inputs, ... }: { nixpkgs = { config = { permittedInsecurePackages = [ "python-2.7.18.6" "electron-24.8.6" "electron-25.9.0" ]; allowUnfree = true; }; overlays = [ inputs.nur.overlay inputs.neovim-nightly-overlay.overlay ]; }; boot = { loader = { systemd-boot = { enable = true; memtest86.enable = true; }; efi.canTouchEfiVariables = true; }; kernelPackages = pkgs.linuxPackages_xanmod_latest; extraModulePackages = with config.boot.kernelPackages; [ ddcci-driver ]; kernelModules = [ "ddcci" ]; initrd.kernelModules = [ "amdgpu" ]; kernelParams = [ "video=eDP-1:2560x1440@165" "video=HDMI-A-1:2560x1440@144" ]; }; networking = { hostName = config'.hostname; networkmanager = { enable = true; dns = "systemd-resolved"; }; firewall.checkReversePath = "loose"; }; services.resolved.enable = true; # don't wait for network to boot faster # https://old.reddit.com/r/NixOS/comments/vdz86j/how_to_remove_boot_dependency_on_network_for_a systemd = { targets.network-online.wantedBy = lib.mkForce []; # default is [ "multi-user.target" ] services.NetworkManager-wait-online.wantedBy = lib.mkForce []; # default is [ "network-online.target" ] }; time.timeZone = "Europe/Warsaw"; nix = { settings = { experimental-features = [ "flakes" "nix-command" ]; max-jobs = 3; cores = 4; auto-optimise-store = true; keep-outputs = true; keep-derivations = true; substituters = [ "https://nix-community.cachix.org" "https://nixpkgs-wayland.cachix.org" "https://viperml.cachix.org" ]; trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=" ]; }; }; virtualisation = { libvirtd = { enable = true; onBoot = "ignore"; qemu = { ovmf.enable = true; runAsRoot = false; swtpm.enable = true; }; }; }; networking.firewall.trustedInterfaces = [ "virbr0" ]; programs.dconf.enable = true; security.sudo.package = pkgs.sudo.override { withInsults = true; }; security.polkit.enable = true; users.users.${config'.username} = { isNormalUser = true; extraGroups = [ "wheel" "networkmanager" "libvirtd" ]; }; environment = { sessionVariables = { MOZ_ENABLE_WAYLAND = "1"; MOZ_DRM_DEVICE = "/dev/dri/card0"; CHROME_EXECUTABLE = "${pkgs.ungoogled-chromium}/bin/chromium"; #NIXOS_OZONE_WL = "1"; #WLR_DRM_DEVICES = "/dev/dri/card0:/dev/dri/card1"; #DRI_PRIME = "1"; }; }; services = { blueman.enable = true; mullvad-vpn = { enable = true; package = pkgs.mullvad-vpn; }; pcscd.enable = true; udisks2.enable = true; dbus.enable = true; fwupd = { enable = true; }; ratbagd.enable = true; }; programs.gnupg.agent = { enable = true; pinentryFlavor = "qt"; enableSSHSupport = true; }; services.btrfs = { autoScrub = { enable = true; interval = "weekly"; }; }; services.psd = { enable = true; resyncTimer = "30m"; }; services.journald = { extraConfig = '' SystemMaxUse=100M ''; }; services.udev = { packages = with pkgs; [ yubikey-personalization ]; }; # this makes usb devices autosuspend #powerManagement.powertop.enable = true; programs.kdeconnect.enable = true; programs.noisetorch.enable = true; myOptions = { other = { home-manager = { enable = true; enableDirenv = true; }; }; programs = { git = { enable = true; userName = "jacekpoz"; userEmail = "jacekpoz@cock.li"; signingKey = "0EEE6B0C9A8CC06820E59C3894E812A8B12AAE3C"; defaultBranch = "master"; }; starship.enable = true; zsh = { enable = true; extraAliases = { #u = "nh os switch \"/home/jacek/niksos\" -H niks -- --use-remote-sudo"; #us = "NIX_SSHOPTS='-t' nh os switch \"/home/jacek/niksos\" -H chmura -- --use-remote-sudo --target-host chmura"; u = "nixos-rebuild switch --flake \"/home/jacek/niksos#niks\" -L --use-remote-sudo"; us = "NIX_SSHOPTS='-t' nixos-rebuild switch --flake \"/home/jacek/niksos#chmura\" -L --use-remote-sudo --target-host chmura"; }; profiling = false; }; anyrun.enable = true; armcord.enable = true; vesktop.enable = true; btop.enable = true; firefox = { enable = true; defaultSearchEngine = "NotASearx"; searchEngines = { "NotASearx" = { url = "https://search.notashelf.dev/search?q={searchTerms}"; faviconUrl = "https://search.notashelf.dev/favicon.ico"; aliases = [ "!sx" ]; }; "NixOS Packages" = { url = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; aliases = [ "!np" ]; }; "NixOS Options" = { url = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; aliases = [ "!no" ]; }; "NixOS Wiki" = { url = "https://nixos.wiki/index.php?search={searchTerms}"; faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; aliases = [ "!nw" ]; }; "Home Manger Option Search" = { url = "https://mipmip.github.io/home-manager-option-search?query={searchTerms}"; faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; aliases = [ "!hm" ]; }; "Arch Wiki" = { url = "https://wiki.archlinux.org/index.php?search={searchTerms}"; faviconUrl = "https://archlinux.org/favicon.ico"; aliases = [ "!aw" ]; }; "Gentoo Wiki" = { url = "https://wiki.gentoo.org/index.php?search={searchTerms}"; faviconUrl = "https://www.gentoo.org/favicon.ico"; aliases = [ "!gw" ]; }; "Debian Wiki" = { url = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}"; faviconUrl = "https://www.debian.org/favicon.ico"; aliases = [ "!dw" ]; }; }; }; foot.enable = true; mpv.enable = true; osu = { enable = true; enableStable = true; }; neovim.enable = true; swaylock.enable = true; waybar.enable = true; zathura.enable = true; hyprland = { enable = true; startupSound = ./mathis.m4a; }; helix.enable = true; newsboat.enable = true; }; themes = { cursor = { enable = true; package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; size = 24; }; gtk = { enable = true; package = pkgs.catppuccin-gtk; name = "Catppuccin-Mocha-Standard-Green-Dark"; variant = "mocha"; accentColour = "green"; iconTheme = { name = "Papirus-Dark"; package = pkgs.catppuccin-papirus-folders; }; }; qt = { enable = true; package = pkgs.catppuccin-kde; name = "Catppuccin-Mocha-Dark"; variant = "mocha"; accentColour = "green"; }; }; services = { asusd.enable = true; dunst.enable = true; mpd.enable = true; greetd = { enable = true; greeter = "gtkgreet"; launchOptions = [ "Hyprland" "sway" "zsh" "reboot" "shutdown now" ]; }; ssh = { daemon.enable = false; agent = { enable = true; hostAliases = { "github" = { hostName = "github.com"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/githubkey"; }; "git.dupa.edu.pl" = { hostName = "git.dupa.edu.pl"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/gitdupaedupl"; }; "codeberg" = { hostName = "codeberg.org"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/codeberg"; }; "gitlab" = { hostName = "gitlab.com"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/gitlab"; }; "aur" = { hostName = "aur.archlinux.org"; user = "aur"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/aur"; }; "jacekpoz" = { hostName = "git.jacekpoz.pl"; user = "forgejo"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/jacekpoz"; }; "chmura" = { hostName = "192.168.15.2"; user = "chmura"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/chmura"; }; "chmura2" = { hostName = "jacekpoz.pl"; user = "chmura"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/chmura"; }; "malina" = { hostName = "192.168.15.3"; user = "malina"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/malina"; }; "outfoxxed" = { hostName = "git.outfoxxed.me"; identityFile = "${config.home-manager.users.${config'.username}.home.homeDirectory}/.ssh/outfoxxed"; }; }; }; }; pipewire.enable = true; }; }; system.stateVersion = "23.11"; }