From 3d3629b97fbb1e8a04692e6ebcf42a87107beb3a Mon Sep 17 00:00:00 2001 From: Seven Of Aces Date: Tue, 20 Aug 2024 10:27:45 -0700 Subject: [PATCH] modified: flake.lock modified: flake.nix modified: hosts/blackstar/nixos/configuration.nix modified: hosts/shared/nixos/shared_config.nix new file: modules/default.nix new file: modules/desktop/apps/art.nix new file: modules/desktop/apps/cad.nix new file: modules/desktop/apps/cam.nix new file: modules/desktop/apps/chat.nix new file: modules/desktop/apps/code.nix new file: modules/desktop/apps/godot.nix new file: modules/desktop/apps/minecraft.nix new file: modules/desktop/apps/xiv.nix new file: modules/system/audio.nix new file: modules/system/boot/grub.nix new file: modules/system/locale.nix new file: modules/system/network.nix modified: pkgs/default.nix --- flake.lock | 36 +++--- flake.nix | 1 + hosts/blackstar/nixos/configuration.nix | 157 +++++++++--------------- hosts/shared/nixos/shared_config.nix | 86 +++++++++++-- modules/default.nix | 18 +++ modules/desktop/apps/art.nix | 16 +++ modules/desktop/apps/cad.nix | 19 +++ modules/desktop/apps/cam.nix | 15 +++ modules/desktop/apps/chat.nix | 16 +++ modules/desktop/apps/code.nix | 26 ++++ modules/desktop/apps/godot.nix | 16 +++ modules/desktop/apps/minecraft.nix | 18 +++ modules/desktop/apps/xiv.nix | 15 +++ modules/system/audio.nix | 27 ++++ modules/system/boot/grub.nix | 43 +++++++ modules/system/locale.nix | 20 +++ modules/system/network.nix | 4 + pkgs/default.nix | 3 +- 18 files changed, 408 insertions(+), 128 deletions(-) create mode 100644 modules/default.nix create mode 100644 modules/desktop/apps/art.nix create mode 100644 modules/desktop/apps/cad.nix create mode 100644 modules/desktop/apps/cam.nix create mode 100644 modules/desktop/apps/chat.nix create mode 100644 modules/desktop/apps/code.nix create mode 100644 modules/desktop/apps/godot.nix create mode 100644 modules/desktop/apps/minecraft.nix create mode 100644 modules/desktop/apps/xiv.nix create mode 100644 modules/system/audio.nix create mode 100644 modules/system/boot/grub.nix create mode 100644 modules/system/locale.nix create mode 100644 modules/system/network.nix diff --git a/flake.lock b/flake.lock index 811f919..be7e203 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1723271337, - "narHash": "sha256-IUnCQ0xo0sJRhHbsXVDQ9ULpiQrkxbavmVOilhAXdlk=", + "lastModified": 1724135364, + "narHash": "sha256-DuPnJXOeigXK8xQdP6BBc6MqJ9p4TzvNUqSrB2P1GQ4=", "owner": "nix-community", "repo": "fenix", - "rev": "ca0a8350f4c278204475112dd600ba6f0d09110e", + "rev": "b6a1c29a8f460af63f66cad2b5acf3b78867603e", "type": "github" }, "original": { @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1723015306, - "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", + "lastModified": 1723986931, + "narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=", "owner": "nix-community", "repo": "home-manager", - "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", + "rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671", "type": "github" }, "original": { @@ -43,11 +43,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1722987190, - "narHash": "sha256-68hmex5efCiM2aZlAAEcQgmFI4ZwWt8a80vOeB/5w3A=", + "lastModified": 1723938990, + "narHash": "sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "21cc704b5e918c5fbf4f9fff22b4ac2681706d90", + "rev": "c42fcfbdfeae23e68fc520f9182dde9f38ad1890", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1723175592, - "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", + "lastModified": 1723991338, + "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", + "rev": "8a3354191c0d7144db9756a74755672387b702ba", "type": "github" }, "original": { @@ -85,11 +85,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1723195244, - "narHash": "sha256-UdydOPxlUpEE+uparyCgxTCSumwCn2URpxPm70G1K+Q=", + "lastModified": 1724088625, + "narHash": "sha256-vgSBWgUKRyT0ZRZYj43GZkZzPEKgNodCuX/uofqlPsc=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "56f63dfd8aeebf80e3fc87894fa3d5a40f98a329", + "rev": "979e3b54f70f6f231c117a5d628b98106e5c7d31", "type": "github" }, "original": { @@ -106,11 +106,11 @@ ] }, "locked": { - "lastModified": 1723256423, - "narHash": "sha256-9iDTrfVM+mbcad31a47oqW8t8tfSA4C/si6F8F2DO/w=", + "lastModified": 1724120436, + "narHash": "sha256-/MvfxTjco5UDBF6SEvwyeXrXwZG7nz7/mDVreQNKsWg=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "615cfd85b4d9c51811a8d875374268fab5bd4089", + "rev": "48e61fe824f5823e4f3f15dd9a75c19c63649269", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9ae4c0a..8b166b5 100644 --- a/flake.nix +++ b/flake.nix @@ -31,6 +31,7 @@ self, rust-overlay, nixpkgs, + nixpkgs-unstable, fenix, home-manager, ... diff --git a/hosts/blackstar/nixos/configuration.nix b/hosts/blackstar/nixos/configuration.nix index 32b352d..03686ad 100644 --- a/hosts/blackstar/nixos/configuration.nix +++ b/hosts/blackstar/nixos/configuration.nix @@ -8,9 +8,6 @@ pkgs, ... }: { - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - # You can import other NixOS modules here imports = [ # If you want to use modules your own flake exports (from modules/nixos): @@ -28,8 +25,27 @@ # Shared config ../../shared/nixos/shared_config.nix + + ../../../modules ]; + modules = { + desktop.apps = { + godot.enable = true; + cad.enable = true; + cam.enable = true; + code.enable = true; + art.enable = true; + xiv.enable = true; + minecraft.enable = true; + chat.enable = true; + }; + system.boot.grub.enable = true; + }; + + #boot.loader.systemd-boot.enable = true; + #boot.loader.efi.canTouchEfiVariables = true; + nixpkgs = { # You can add overlays here overlays = [ @@ -83,16 +99,13 @@ }; }; - # FIXME: Add the rest of your current configuration - # Enable networking - networking.networkmanager.enable = true; - services.xserver.enable = true; services.xserver = { - layout = "us"; - xkbVariant = ""; + xkb = { + variant = ""; + layout = "us"; + }; }; - services.xserver.videoDrivers = ["nvidia"]; # Enable the KDE Plasma Desktop Environment. services.displayManager.sddm.enable = true; @@ -112,102 +125,21 @@ # Be sure to change it (using passwd) after rebooting! isNormalUser = true; # TODO: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc) - extraGroups = ["wheel" "networkmanager"]; + extraGroups = ["wheel" "networkmanager" "docker"]; }; }; - # This setups a SSH server. Very important if you're setting up a headless system. - # Feel free to remove if you don't need it. - services.openssh = { - enable = true; - settings = { - # Opinionated: forbid root login through SSH. - PermitRootLogin = "no"; - # Opinionated: use keys only. - # Remove if you want to SSH using passwords - PasswordAuthentication = false; - }; - }; - - # Set your time zone. - time.timeZone = "America/Los_Angeles"; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "24.05"; - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - - - hardware.opengl = { - enable = true; - - ## radv: an open-source Vulkan driver from freedesktop - driSupport = true; - driSupport32Bit = true; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - - hardware.nvidia = { - modesetting.enable = true; - - powerManagement.finegrained = false; - - nvidiaSettings = true; - - package = config.boot.kernelPackages.nvidiaPackages.latest; - }; - # Programs installed for all users - environment.systemPackages = with pkgs; [ + /*environment.systemPackages = with pkgs; [ # art aseprite krita # code - rustc rustup# Rust - # pkgs.rust-bin.stable.latest.default - jetbrains.intellij - jetbrains.rider - jetbrains.clion - jetbrains.pycharm-professional - jetbrains.datagrip - jetbrains.webstorm - vim - python3 - lua - git # game steam @@ -221,12 +153,15 @@ (blender.override { cudaSupport = true; }) + openscad # other discord + onlyoffice-bin + google-chrome # sys utils - gnupg ffmpeg unzip + gnupg ffmpeg unzip mpv hyfetch dbeaver-bin @@ -235,16 +170,38 @@ element-desktop python311 python311Packages.pip + webkitgtk + libxkbcommon + ];*/ - ]; + #environment.variables = { + # PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig"; + # LD_LIBRARY_PATH="${pkgs.wayland}/lib:$LD_LIBRARY_PATH"; + #}; - programs.nix-ld.enable = true; + services.xserver.videoDrivers = ["nvidia"]; - environment.variables = { - PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig"; + hardware.opengl = { + enable = true; + + ## radv: an open-source Vulkan driver from freedesktop + driSupport = true; + driSupport32Bit = true; }; - programs.git.enable = true; + # Enable CUPS to print documents. + services.printing.enable = true; - programs.firefox.enable = true; + + hardware.nvidia = { + modesetting.enable = true; + + powerManagement.finegrained = false; + + nvidiaSettings = true; + + package = config.boot.kernelPackages.nvidiaPackages.latest; + }; + + virtualisation.docker.enable = true; } diff --git a/hosts/shared/nixos/shared_config.nix b/hosts/shared/nixos/shared_config.nix index a0ed58a..da1f53d 100644 --- a/hosts/shared/nixos/shared_config.nix +++ b/hosts/shared/nixos/shared_config.nix @@ -10,10 +10,10 @@ # code cargo rustc # Rust - jetbrains.rider jetbrains.pycharm-professional vim - python3 + python311 + python311Packages.pip lua git # (vscode-with-extensions.override { @@ -40,20 +40,88 @@ #}) vscode.fhs blockbench + wine + bottles + # other discord nodejs_22 + obs-studio + # sys utils gnupg ffmpeg unzip mpv gparted + libappindicator-gtk3 ]; + + programs.nix-ld.enable = true; + programs.firefox.enable = true; - services.postgresql = { - enable = true; - ensureDatabases = [ "test" ]; - authentication = pkgs.lib.mkOverride 10 '' - #type database DBuser auth-method - local all all trust - ''; + ## System security tweaks + # sets hidepid=2 on /proc (make process info visible only to owning user) + # NOTE Was removed on nixpkgs-unstable because it doesn't do anything + # security.hideProcessInformation = true; + + # tmpfs = /tmp is mounted in ram. Doing so makes temp file management speedy + # on ssd systems and more secure (and volatile)! Because it's wiped on reboot. + boot.tmp.useTmpfs = lib.mkDefault true; + # If not using tmpfs, which is naturally purged on reboot, we must clean it + # /tmp ourselves. /tmp should be volatile storage! + boot.tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs); + + # Fix a security hole in place for backwards compatibility. See desc in + # nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix + boot.loader.systemd-boot.editor = lib.mkDefault false; + + boot.kernel.sysctl = { + # The Magic SysRq key is a key combo that allows users connected to the + # system console of a Linux kernel to perform some low-level commands. + # Disable it, since we don't need it, and is a potential security concern. + "kernel.sysrq" = 0; + + ## TCP hardening + # Prevent bogus ICMP errors from filling up logs. + "net.ipv4.icmp_ignore_bogus_error_responses" = 1; + # Reverse path filtering causes the kernel to do source validation of + # packets received from all interfaces. This can mitigate IP spoofing. + "net.ipv4.conf.default.rp_filter" = 1; + "net.ipv4.conf.all.rp_filter" = 1; + # Do not accept IP source route packets (we're not a router) + "net.ipv4.conf.all.accept_source_route" = 0; + "net.ipv6.conf.all.accept_source_route" = 0; + # Don't send ICMP redirects (again, we're not a router) + "net.ipv4.conf.all.send_redirects" = 0; + "net.ipv4.conf.default.send_redirects" = 0; + # Refuse ICMP redirects (MITM mitigations) + "net.ipv4.conf.all.accept_redirects" = 0; + "net.ipv4.conf.default.accept_redirects" = 0; + "net.ipv4.conf.all.secure_redirects" = 0; + "net.ipv4.conf.default.secure_redirects" = 0; + "net.ipv6.conf.all.accept_redirects" = 0; + "net.ipv6.conf.default.accept_redirects" = 0; + # Protects against SYN flood attacks + "net.ipv4.tcp_syncookies" = 1; + # Incomplete protection again TIME-WAIT assassination + "net.ipv4.tcp_rfc1337" = 1; + + ## TCP optimization + # TCP Fast Open is a TCP extension that reduces network latency by packing + # data in the sender’s initial TCP SYN. Setting 3 = enable TCP Fast Open for + # both incoming and outgoing connections: + "net.ipv4.tcp_fastopen" = 3; + # Bufferbloat mitigations + slight improvement in throughput & latency + "net.ipv4.tcp_congestion_control" = "bbr"; + "net.core.default_qdisc" = "cake"; + }; + boot.kernelModules = [ "tcp_bbr" ]; + + # Harden SSH client + programs.ssh = { + # Known vulnerability. See + # https://security.stackexchange.com/questions/110639/how-exploitable-is-the-recent-useroaming-ssh-vulnerability + extraConfig = '' + Host * + UseRoaming no + ''; }; } \ No newline at end of file diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..98ce19a --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,18 @@ +{ inputs, pkgs, config, ... }: +{ + imports = [ + ./desktop/apps/godot.nix + ./desktop/apps/cad.nix + ./desktop/apps/cam.nix + ./desktop/apps/code.nix + ./desktop/apps/art.nix + ./desktop/apps/xiv.nix + ./desktop/apps/chat.nix + ./desktop/apps/minecraft.nix + + ./system/boot/grub.nix + ./system/audio.nix + ./system/locale.nix + ./system/network.nix + ]; +} \ No newline at end of file diff --git a/modules/desktop/apps/art.nix b/modules/desktop/apps/art.nix new file mode 100644 index 0000000..b8ad4b7 --- /dev/null +++ b/modules/desktop/apps/art.nix @@ -0,0 +1,16 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.art; +in { + options.modules.desktop.apps.art = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + aseprite + krita + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/cad.nix b/modules/desktop/apps/cad.nix new file mode 100644 index 0000000..9ec71f6 --- /dev/null +++ b/modules/desktop/apps/cad.nix @@ -0,0 +1,19 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.cad; +in { + options.modules.desktop.apps.cad = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + (blender.override { + cudaSupport = true; + }) + openscad + freecad + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/cam.nix b/modules/desktop/apps/cam.nix new file mode 100644 index 0000000..ed7e21b --- /dev/null +++ b/modules/desktop/apps/cam.nix @@ -0,0 +1,15 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.cam; +in { + options.modules.desktop.apps.cam = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + prusa-slicer + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/chat.nix b/modules/desktop/apps/chat.nix new file mode 100644 index 0000000..532c2c6 --- /dev/null +++ b/modules/desktop/apps/chat.nix @@ -0,0 +1,16 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.chat; +in { + options.modules.desktop.apps.chat = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + discord + element-app + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/code.nix b/modules/desktop/apps/code.nix new file mode 100644 index 0000000..1df9290 --- /dev/null +++ b/modules/desktop/apps/code.nix @@ -0,0 +1,26 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.code; +in { + options.modules.desktop.apps.code = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs.unstable; [ + rustc rustup # Rust + # pkgs.rust-bin.stable.latest.default + jetbrains.idea-ultimate + jetbrains.rider + jetbrains.clion + jetbrains.pycharm-professional + jetbrains.datagrip + jetbrains.webstorm + vim + python3 + lua + git + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/godot.nix b/modules/desktop/apps/godot.nix new file mode 100644 index 0000000..7920e3e --- /dev/null +++ b/modules/desktop/apps/godot.nix @@ -0,0 +1,16 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.godot; +in { + options.modules.desktop.apps.godot = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs.unstable; [ + godot_4 + godot_4-export-templates + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/minecraft.nix b/modules/desktop/apps/minecraft.nix new file mode 100644 index 0000000..bb56307 --- /dev/null +++ b/modules/desktop/apps/minecraft.nix @@ -0,0 +1,18 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.minecraft; +in { + options.modules.desktop.apps.minecraft = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + modrinth-app + ]; + environment.variables = { + WEBKIT_DISABLE_DMABUF_RENDERER=1; + }; + }; +} \ No newline at end of file diff --git a/modules/desktop/apps/xiv.nix b/modules/desktop/apps/xiv.nix new file mode 100644 index 0000000..daf9d4b --- /dev/null +++ b/modules/desktop/apps/xiv.nix @@ -0,0 +1,15 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.apps.xiv; +in { + options.modules.desktop.apps.xiv = { + enable = mkBoolOpt false; + }; + + config = mkIf cfg.enable { + user.packages = with pkgs; [ + xivlauncher + ]; + }; +} \ No newline at end of file diff --git a/modules/system/audio.nix b/modules/system/audio.nix new file mode 100644 index 0000000..425adc4 --- /dev/null +++ b/modules/system/audio.nix @@ -0,0 +1,27 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.system.audio; +in { + options.modules.system.audio = { + enable = mkBoolOpt true; + }; + + config = mkIf cfg.enable { + # Enable sound with pipewire. + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + #jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + }; +} \ No newline at end of file diff --git a/modules/system/boot/grub.nix b/modules/system/boot/grub.nix new file mode 100644 index 0000000..2994e95 --- /dev/null +++ b/modules/system/boot/grub.nix @@ -0,0 +1,43 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.system.boot.grub; +in { + options.modules.system.boot.grub = { + enable = mkBoolOpt true; + }; + + config = mkIf cfg.enable { + boot.loader = { + grub = { + enable = true; + useOSProver = true; + efiSupport = true; + fsIdentifier = "label"; + devices = [ "nodev" ]; + extraEntries = '' + menuentry "Reboot" { + reboot + } + menuentry "Poweroff" { + halt + } + ''; + theme = pkgs.stdenv.mkDerivation { + pname = "distro-grub-themes"; + version = "3.1"; + src = pkgs.fetchFromGitHub { + owner = "AdisonCavani"; + repo = "distro-grub-themes"; + rev = "v3.1"; + hash = "sha256-ZcoGbbOMDDwjLhsvs77C7G7vINQnprdfI37a9ccrmPs="; + }; + installPhase = "cp -r customize/nixos $out"; + }; + }; + efi = { + canTouchEfiVariables = true; + }; + }; + }; +} \ No newline at end of file diff --git a/modules/system/locale.nix b/modules/system/locale.nix new file mode 100644 index 0000000..dfb7fbb --- /dev/null +++ b/modules/system/locale.nix @@ -0,0 +1,20 @@ +{ lib, config, options, pkgs, ... }: +{ + # Set your time zone. + time.timeZone = "America/Los_Angeles"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; +} \ No newline at end of file diff --git a/modules/system/network.nix b/modules/system/network.nix new file mode 100644 index 0000000..cd19b3b --- /dev/null +++ b/modules/system/network.nix @@ -0,0 +1,4 @@ +{ lib, config, options, pkgs, ... }: +{ + networking.networkmanager.enable = true; +} \ No newline at end of file diff --git a/pkgs/default.nix b/pkgs/default.nix index 1688710..12ef4b2 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,6 @@ # Custom packages, that can be defined similarly to ones from nixpkgs # You can build them using 'nix build .#example' pkgs: { - # example = pkgs.callPackage ./example { }; + # example = pkgs.callPackage ./example { };; + custom_godot = pkgs.callPackage ./custom_godot {}; } \ No newline at end of file