From 7473e324f9ed761d3aee33112b4ca9e06f0c1c80 Mon Sep 17 00:00:00 2001 From: Larra Emily Sarah Date: Mon, 1 Dec 2025 19:25:45 +0100 Subject: [PATCH] first flake commit --- .gitignore | 1 + configuration.nix | 194 ++++++++++++++++++++++++++++++++++++++++++++++ flake.lock | 27 +++++++ flake.nix | 13 ++++ 4 files changed, 235 insertions(+) create mode 100644 .gitignore create mode 100644 configuration.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..577b0a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hardware-configuration.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..b770dbb --- /dev/null +++ b/configuration.nix @@ -0,0 +1,194 @@ +# Edit this configuration file to define what should be installed on your system. Help is available in the +# configuration.nix(5) man page and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +{ imports = + [ # Include the results of the hardware scan. + /etc/nixos/hardware-configuration.nix ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; + + # Use latest kernel. + boot.kernelPackages = pkgs.linuxPackages_latest; + networking.hostName = "ArcticFox"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + ##################### + ## NETWORKING + ##################### + + # Enable networking + networking.networkmanager.enable = true; + + networking.wg-quick.interfaces = { + wg0 = { + address = [ + "10.0.1.8/32" + ]; + peers = [ + { + allowedIPs = [ + "10.0.1.1/32" + ]; + endpoint = "bruynooghe.dev:51820"; + publicKey = "uHP+JhuLp8pcvup6V0LdFyDKsWV3kMD+CeEpqaD8Ag4="; + } + ]; + privateKey = "0ODqC4gxhLvRy5poqRGOx5wtOmtgN6NatcfsEpcGw1c="; + }; + }; + + # Set your time zone. + time.timeZone = "Europe/Brussels"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + # Enable the X11 windowing system. You can disable this if you're only using the Wayland session. + services.xserver.enable = true; + services.xserver.enableTCP = true; + # Enable the KDE Plasma Desktop Environment. + services.displayManager.sddm.enable = true; services.displayManager.sddm.wayland.enable = true; + services.desktopManager.plasma6.enable = true; + + #hyprland + programs.hyprland.enable = true; programs.hyprland.xwayland.enable = true; programs.uwsm.enable = true; + programs.hyprland.withUWSM = true; + + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + + # Configure keymap in X11 + services.xserver.xkb = { layout = "us"; variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound with pipewire. + services.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) + wireplumber.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable = true; + + ################## + ## USERS + ################## + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.sarah = { isNormalUser = true; description = "Sarah"; extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [ + kdePackages.kate thunderbird rustdesk-flutter + ]; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + ################### + ## SYSTEM PACKAGES + ################### + + # List packages installed in system profile. To search, run: $ nix search wget + environment.systemPackages = with pkgs; [ # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget steam alacritty + libva-utils + vesktop + git + tealdear + bat + ]; + + + ################# + ## programs + ################# + + # STEAM + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + gamescopeSession.enable = true; + }; + + programs.gamescope.enable = true; + + # other + programs.firefox.enable = true; + programs.neovim.enable = true; + programs.git = { + enable = true; + user = { + name = "Larra Emily Sarah"; + email = "larra.vanloon@gmail.com"; + }; + }; + + # 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; + + ################################# + ## versioning upgrading cleanup + ################################# + + # This value determines the NixOS release from which the default settings for stateful data, like file locations + # and database versions on your system were taken. It‘s perfectly fine and recommended to leave this value at + # the release version of the first install of this system. Before changing this value read the documentation for + # this option (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "25.05"; # Did you read the comment? system.autoUpgrade.enable = true; + system.autoUpgrade = { + enable = true; + dates = "weekly"; + }; + + # auto cleanup + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 20d"; + }; + nix.settings.auto-optimise-store = true; + + ############# + ### hardware + ############# + + # everything amd gpu + hardware.graphics.enable32Bit = true; hardware.graphics.extraPackages = [ + pkgs.rocmPackages.clr.icd + pkgs.libva + ]; + + + + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.kernelModules = [ "amdgpu" ]; + hardware.amdgpu.overdrive.ppfeaturemask = "0xffffffff"; + + services.hardware.openrgb.enable = true; + + environment.variables = { + SUDO_EDITOR = "nvim"; + }; + + nix.settings.experimental-features = [ "nix-command" "flakes"]; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..c630f97 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1764517877, + "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..af042f5 --- /dev/null +++ b/flake.nix @@ -0,0 +1,13 @@ +{ + description = "A very basic flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = { self, nixpkgs }: { + nixosConfigurations.ArcticFox = nixpkgs.lib.nixosSystem { + modules = [ ./configuration.nix ]; + }; + }; +}