From 98e7d20168a63ef5bb94b3c9557d2c048fafeb4d Mon Sep 17 00:00:00 2001 From: Sk7Str1p3 Date: Sat, 2 May 2026 14:26:35 +0300 Subject: [PATCH] hosts(fennecBox): initial --- hosts/fennecBox/about.nix | 7 + hosts/fennecBox/configuration.nix | 206 ++++++++++++++++++++++++++++++ hosts/fennecBox/font.toml | 103 +++++++++++++++ hosts/fennecBox/hardware.nix | 71 ++++++++++ 4 files changed, 387 insertions(+) create mode 100644 hosts/fennecBox/about.nix create mode 100755 hosts/fennecBox/configuration.nix create mode 100644 hosts/fennecBox/font.toml create mode 100644 hosts/fennecBox/hardware.nix diff --git a/hosts/fennecBox/about.nix b/hosts/fennecBox/about.nix new file mode 100644 index 0000000..81a3847 --- /dev/null +++ b/hosts/fennecBox/about.nix @@ -0,0 +1,7 @@ +{ + name = "fennecBox"; + users = [ + "Sk7Str1p3" + ]; + headless = false; +} diff --git a/hosts/fennecBox/configuration.nix b/hosts/fennecBox/configuration.nix new file mode 100755 index 0000000..766cda4 --- /dev/null +++ b/hosts/fennecBox/configuration.nix @@ -0,0 +1,206 @@ +# 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. + ../../modules/os/boot/plymouth.nix + ../../users + ]; + + boot.loader.grub = { + enable = true; + efiSupport = true; + device = "nodev"; + copyKernels = true; + }; + boot.loader.efi = { + efiSysMountPoint = "/boot/efi"; + canTouchEfiVariables = true; + }; + + fonts.packages = + let + iosevka = + (pkgs.iosevka.override { + privateBuildPlan = builtins.readFile ./font.toml; + set = "Custom"; + }).overrideAttrs + (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.nerd-font-patcher ]; + postInstall = '' + mkdir -p $out/share/fonts/truetype/{iosevka,iosevka-nerd} + mv $out/share/fonts/truetype/*.ttf $out/share/fonts/truetype/iosevka/ + for f in $out/share/fonts/truetype/iosevka/*.ttf; do + nerd-font-patcher --complete --outputdir $out/share/fonts/truetype/iosevka-nerd/ $f + done + ''; + }); + in + [ + iosevka + ]; + fonts.fontconfig = { + defaultFonts = { + serif = [ "Iosevka Custom" ]; + sansSerif = [ "Iosevka Custom" ]; + monospace = [ "Iosevka Custom" ]; + }; + }; + + programs.direnv.enable = true; + + programs.throne = { + enable = true; + tunMode = { + enable = true; + setuid = true; + }; + }; + + nix.settings.substituters = lib.mkForce [ "https://cache.nixos.kz" ]; + + # Use latest kernel. + boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_18; + + networking.hostName = "fennecBox"; # Define your hostname. + + # Configure network connections interactively with nmcli or nmtui. + networking.networkmanager.enable = true; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + # Enable the X11 windowing system. + hardware.graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + libva-vdpau-driver + libvdpau-va-gl + ]; + extraPackages32 = [ pkgs.pkgsi686Linux.libva ]; + }; + hardware.nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.latest; + powerManagement.enable = true; + open = true; + nvidiaSettings = true; + modesetting.enable = true; + }; + nixpkgs.config.allowUnfree = true; + services.xserver.videoDrivers = [ "nvidia" ]; + + nix.settings.experimental-features = [ + "flakes" + "nix-command" + ]; + + # Enable the GNOME Desktop Environment. + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; + programs.hyprland = { + enable = true; + withUWSM = true; + systemd.setPath.enable = true; + }; + services.userborn.enable = true; + + # Configure keymap in X11 + # services.xserver.xkb.layout = "us"; + # services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable sound. + # services.pulseaudio.enable = true; + # OR + services.pipewire = { + enable = true; + pulse.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + # users.users.alice = { + # isNormalUser = true; + # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + # packages = with pkgs; [ + # tree + # ]; + # }; + + # programs.firefox.enable = true; + + # List packages installed in system profile. + # You can use https://search.nixos.org/ to find more packages (and options). + environment.systemPackages = with pkgs; [ + vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + + ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.11"; # Did you read the comment? + +} diff --git a/hosts/fennecBox/font.toml b/hosts/fennecBox/font.toml new file mode 100644 index 0000000..568943f --- /dev/null +++ b/hosts/fennecBox/font.toml @@ -0,0 +1,103 @@ +[buildPlans.IosevkaCustom] +family = "Iosevka Custom" +spacing = "normal" +serifs = "sans" +noCvSs = true +exportGlyphNames = false + +[buildPlans.IosevkaCustom.variants.design] +one = "base" +six = "closed-contour" +seven = "bend-serifless" +eight = "crossing-asymmetric" +nine = "closed-contour" +zero = "tall-slashed" +capital-g = "toothless-corner-inward-serifed-hooked" +capital-i = "short-serifed" +capital-j = "serifless" +capital-k = "curly-serifless" +capital-q = "crossing-baseline" +capital-r = "curly-serifless" +capital-w = "straight-vertical-sides-serifless" +capital-x = "curly-serifless" +capital-y = "curly-serifless" +capital-z = "curly-serifless" +a = "single-storey-earless-rounded-serifed" +b = "toothless-rounded-serifless" +d = "toothless-rounded-serifless" +e = "rounded" +f = "tailed" +g = "single-storey-earless-corner" +i = "tailed" +j = "serifless" +k = "curly-top-left-serifed" +l = "flat-tailed" +m = "earless-corner-double-arch-serifless" +n = "earless-rounded-straight-serifless" +p = "earless-rounded-serifless" +q = "earless-corner-diagonal-tailed-serifless" +r = "earless-rounded-serifless" +u = "toothless-rounded-serifless" +x = "semi-chancery-curly-serifless" +y = "straight-turn-serifless" +z = "curly-serifless" +lower-eth = "curly-bar" +capital-gamma = "serifless" +lower-eta = "earless-rounded-serifless" +lower-theta = "capsule" +lower-iota = "semi-tailed" +lower-lambda = "curly-tailed-turn" +lower-mu = "toothless-rounded-serifless" +lower-xi = "rounded" +lower-chi = "chancery" +cyrl-a = "single-storey-earless-rounded-serifed" +cyrl-ve = "standard-serifless" +cyrl-capital-zhe = "curly" +cyrl-zhe = "curly" +cyrl-capital-ka = "curly-serifless" +cyrl-ka = "curly-serifless" +cyrl-er = "earless-rounded-serifless" +cyrl-capital-u = "curly-turn-serifless" +cyrl-u = "curly-turn-serifless" +cyrl-ef = "split-serifless" +cyrl-che = "standard" +cyrl-yeri = "cursive" +cyrl-yery = "cursive" +cyrl-capital-ya = "curly-serifless" +cyrl-ya = "curly-serifless" +caret = "high" +paren = "large-contour" +ampersand = "upper-open" +at = "fourfold" +dollar = "interrupted" +cent = "open" +percent = "rings-continuous-slash" +pilcrow = "low" +micro-sign = "toothless-rounded-serifless" +decorative-angle-brackets = "tall" +lig-ltgteq = "slanted" + +[buildPlans.IosevkaCustom.ligations] +inherits = "dlig" + +[buildPlans.IosevkaCustom.weights.Regular] +shape = 400 +menu = 400 +css = 400 + +[buildPlans.IosevkaCustom.weights.Bold] +shape = 700 +menu = 700 +css = 700 + +[buildPlans.IosevkaCustom.slopes.Upright] +angle = 0 +shape = "upright" +menu = "upright" +css = "normal" + +[buildPlans.IosevkaCustom.slopes.Italic] +angle = 9.4 +shape = "italic" +menu = "italic" +css = "italic" diff --git a/hosts/fennecBox/hardware.nix b/hosts/fennecBox/hardware.nix new file mode 100644 index 0000000..bb6f2e6 --- /dev/null +++ b/hosts/fennecBox/hardware.nix @@ -0,0 +1,71 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usbhid" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/f0b96e4b-4822-4d15-b314-2f9fa2587b5b"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + #boot.initrd.luks.devices."NixOS".device = "/dev/disk/by-uuid/182fcd31-011d-43d5-8ba6-51c65f65aebc"; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/f0b96e4b-4822-4d15-b314-2f9fa2587b5b"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + #fileSystems."/boot" = { + # device = "/dev/disk/by-uuid/ba2b7318-3fac-4452-9fce-554628c6e3d2"; + # fsType = "btrfs"; + #}; + + fileSystems."/boot/efi" = { + device = "/dev/disk/by-uuid/4035-B369"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; + + #fileSystems."/media" = { + # device = "/dev/mapper/gms"; + # fsType = "btrfs"; + # options = [ "subvol=main" ]; + #}; + + #boot.initrd.luks.devices."games".device = "/dev/disk/by-uuid/7374899f-0686-47ee-b50c-4befe77a75d2"; + #boot.initrd.luks.devices."swap".device = "/dev/disk/by-uuid/87840706-1153-4fb8-8b24-64cbed77da30"; + + swapDevices = [ + #{ device = "/dev/mapper/swap"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}