{ config, lib, pkgs, inputs, ... }: { imports = [ ./hardware-configuration.nix ../../profiles/graphical.nix ../../mixins/tailscale.nix ../../mixins/cli.nix ../../mixins/greet.nix ../../mixins/sway.nix ../../mixins/pipewire.nix ../../mixins/multimedia.nix ../../mixins/syncthing.nix # ../../mixins/firefox ../../mixins/firefox/minimum # ../../mixins/firefox/abs ]; config = { boot = { tmp.cleanOnBoot = true; initrd = { supportedFilesystems = ["btrfs"]; availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "usbhid" "snd_usb_audio"]; }; supportedFilesystems = ["ntfs"]; kernelModules = ["kvm-intel" "snd-seq" "snd-rawmidi" "bridge" "hid_logitech_dj" "hid_logitech_hidpp"]; kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; # extraModulePackages = [ config.boot.kernelPackages.rtl8821ce ]; loader = { systemd-boot = { enable = true; }; efi = { canTouchEfiVariables = true; efiSysMountPoint = "/boot"; }; }; }; time.timeZone = lib.mkDefault "Israel"; zramSwap = { enable = true; algorithm = "zstd"; }; systemd.network.networks."10-wlp1s0" = { matchConfig.Name = "wlp1s0"; networkConfig.DHCP = "yes"; dhcpV4Config = { UseDNS = false; }; dhcpV6Config = { UseDNS = false; }; # apparently this is what i need to disable dhcpv6 dns servers, but this breaks my network #ipv6AcceptRAConfig = { # UseDNS = false; # DHCPv6Client = false; #}; }; # # iwd networking stuffs # networking.networkmanager.enable = lib.mkForce false; #networking.wireless.iwd = { # enable = true; # settings = { # Settings.AutoConnect = true; # }; #}; #services.connman = { # enable = true; #wifi.backend = "iwd"; #}; # fucks up wpa_supplicant security.lockKernelModules = lib.mkForce false; networking.wireless = { dbusControlled = true; userControlled.enable = true; enable = true; }; #networking.wireless.dbusControlled = true; # home-manager.users.tzlil.home.packages = []; #networking.wireless.userControlled.enable = true; #networking.wireless.enable = true; # services.tor = { # enable = true; # openFirewall = true; # client.enable = true; # torsocks.enable = true; # }; environment.persistence."/nix/persist" = { directories = [ "/etc/NetworkManager/system-connections" "/var/lib/docker" ]; users.tzlil = { directories = [".config/SchildiChat" ".local/share/Terraria" ".local/share/Steam" ".config/keepassxc" ".local/share/cinny"]; }; }; # mullvad age.secrets.mullvad.file = ../../secrets/mullvad.age; services.mullvad-vpn = { enable = true; }; systemd.services."mullvad-daemon".postStart = let mullvad = config.services.mullvad-vpn.package; in '' while ! ${lib.getExe mullvad} status >/dev/null; do sleep 1; done ${lib.getExe mullvad} account login < ${config.age.secrets.mullvad.path} ${lib.getExe mullvad} auto-connect set on ${lib.getExe mullvad} lockdown-mode set on ${lib.getExe mullvad} tunnel set ipv6 on ''; home-manager.users.tzlil = { services.gnome-keyring = { enable = true; # for nheko components = ["secrets"]; }; home.packages = [ pkgs.nheko pkgs.keepassxc pkgs.gtkcord4 pkgs.cmst pkgs.nheko # (pkgs.stdenv.mkDerivation rec { # name = "pragmata"; # version = "1.0"; # src = ./pragmata; # installPhase = '' # install -D ${src}/Pragmata_Pro_Bold_Italic.otf $out/share/fonts/opentype/Pragmata_Pro_Bold_Italic.otf # install -D ${src}/Pragmata_Pro_Bold.otf $out/share/fonts/opentype/Pragmata_Pro_Bold.otf # install -D ${src}/Pragmata_Pro_Italic.otf $out/share/fonts/opentype/Pragmata_Pro_Italic.otf # install -D ${src}/Pragmata_Pro_Mono_Bold_Italic.otf $out/share/fonts/opentype/Pragmata_Pro_Mono_Bold_Italic.otf # install -D ${src}/Pragmata_Pro_Mono_Bold.otf $out/share/fonts/opentype/Pragmata_Pro_Mono_Bold.otf # install -D ${src}/Pragmata_Pro_Mono_Italic.otf $out/share/fonts/opentype/Pragmata_Pro_Mono_Italic.otf # install -D ${src}/Pragmata_Pro_Mono_Regular.otf $out/share/fonts/opentype/Pragmata_Pro_Mono_Regular.otf # install -D ${src}/Pragmata_Pro_Regular.otf $out/share/fonts/opentype/Pragmata_Pro_Regular.otf # ''; # }) # (pkgs.stdenv.mkDerivation rec { # name = "APL"; # version = "1.0"; # src = pkgs.linkFarm "APL" [ # { # name = "APL333.ttf"; # path = # pkgs.fetchurl # { # url = "https://www.dyalog.com/uploads/files/download.php?file=fonts_and_keyboards/APL333.ttf"; # hash = "sha256-rvwaHOvoU+p9huY7ZGiX5TrWr5XYSBelFm9IU4S6NQ4="; # }; # } # { # name = "APL385.ttf"; # path = # pkgs.fetchurl # { # url = "https://www.dyalog.com/uploads/files/download.php?file=fonts_and_keyboards/Apl385.ttf"; # hash = "sha256-Hs4dom9BCM3tDLSkQd2RbEs6UFy0KqlLgOFxtIBOFwU="; # }; # } # ]; # installPhase = '' # install -D ${src}/APL333.ttf $out/share/fonts/truetype/APL333.ttf # install -D ${src}/APL385.ttf $out/share/fonts/truetype/APL385.ttf # ''; # }) # pkgs.apl386 #(pkgs.cutter.withPlugins (ps: with ps; [rz-ghidra sigdb])) (pkgs.discord.override { withOpenASAR = true; withVencord = true; }) ]; programs.foot.settings.main.font = "APL385 Unicode:size=20"; # programs.qutebrowser = { # enable = true; # settings.colors.webpage.darkmode.enabled = true; # }; #xdg.configFile."keepassxc/keepassxc.ini".text = lib.generators.toINI {} { # General = {ConfigVersion = 2;}; # Browser = { # AlwaysAllowAccess = true; # Enabled = true; # }; # GUI = {ApplicationTheme = "dark";}; #}; home.file.".cache/keepassxc/keepassxc.ini".text = lib.generators.toINI {} { General = {LastActiveDatabase = "${config.services.syncthing.dataDir}/passwords/passwords.kdbx";}; }; home.file.".mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json".text = builtins.toJSON { allowed_extensions = ["keepassxc-browser@keepassxc.org"]; description = "KeePassXC integration with native messaging support"; name = "org.keepassxc.keepassxc_browser"; path = "${pkgs.keepassxc}/bin/keepassxc-proxy"; type = "stdio"; }; }; fonts = { packages = [ (pkgs.stdenv.mkDerivation rec { name = "APL"; version = "1.0"; src = pkgs.linkFarm "APL" [ { name = "APL333.ttf"; path = pkgs.fetchurl { url = "https://www.dyalog.com/uploads/files/download.php?file=fonts_and_keyboards/APL333.ttf"; hash = "sha256-rvwaHOvoU+p9huY7ZGiX5TrWr5XYSBelFm9IU4S6NQ4="; }; } { name = "APL385.ttf"; path = pkgs.fetchurl { url = "https://www.dyalog.com/uploads/files/download.php?file=fonts_and_keyboards/Apl385.ttf"; hash = "sha256-Hs4dom9BCM3tDLSkQd2RbEs6UFy0KqlLgOFxtIBOFwU="; }; } ]; installPhase = '' install -D ${src}/APL333.ttf $out/share/fonts/truetype/APL333.ttf install -D ${src}/APL385.ttf $out/share/fonts/truetype/APL385.ttf ''; }) ]; fontconfig.defaultFonts = { serif = ["APL385 Unicode"]; sansSerif = ["APL385 Unicode"]; monospace = ["APL385 Unicode"]; }; }; programs.steam.enable = true; programs.firejail.wrappedBinaries = { mullvad-browser = { executable = lib.getExe pkgs.mullvad-browser; extraArgs = [ "--env=MOZ_ENABLE_WAYLAND=1" "--env=GTK_THEME=Adwaita:dark" ]; # profile = "${pkgs.firejail}/etc/firejail/firefox.profile"; }; }; # greeter.initialSession = "${pkgs.fish}/bin/fish"; hardware.opengl = { enable = true; extraPackages = with pkgs; [rocm-opencl-icd rocm-opencl-runtime]; driSupport = true; driSupport32Bit = true; }; networking.firewall.allowedTCPPorts = [25565 22753]; services = { power-profiles-daemon.enable = true; thermald.enable = true; tlp = { settings = { CPU_BOOST_ON_AC = 1; CPU_BOOST_ON_BAT = 0; CPU_SCALING_GOVERNOR_ON_AC = "performance"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; }; }; acpid.enable = true; }; services.blueman.enable = true; virtualisation.docker.enable = true; virtualisation.docker.storageDriver = "btrfs"; # rtl sdr hardware.rtl-sdr.enable = true; users.users.tzlil.extraGroups = [ "plugdev" ]; services.udev.packages = [ pkgs.usb-blaster-udev-rules ]; # pragmata # home-manager.users.tzlil.home.packages = [ # ]; }; }