summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock99
-rw-r--r--flake.nix53
-rw-r--r--home-manager/common.nix1
-rw-r--r--hosts/hardware-configuration/tarrel.nix (renamed from hardware-configuration.nix)0
-rw-r--r--hosts/hardware-configuration/work.nix41
-rw-r--r--hosts/tarrel.nix (renamed from configuration.nix)39
-rw-r--r--hosts/work.nix99
-rw-r--r--modules/compositor.nix (renamed from compositor.nix)0
-rw-r--r--modules/gaming.nix5
-rw-r--r--modules/keyd.nix (renamed from keyd.nix)0
-rw-r--r--modules/nix-settings.nix8
-rw-r--r--modules/packages.nix (renamed from packages.nix)0
-rw-r--r--modules/services.nix (renamed from services.nix)0
-rw-r--r--modules/sunshine.nix (renamed from gaming.nix)5
-rw-r--r--modules/virt.nix (renamed from virt.nix)0
-rw-r--r--networking.nix28
-rw-r--r--nvidia.nix12
17 files changed, 274 insertions, 116 deletions
diff --git a/flake.lock b/flake.lock
index 11325cf..b1a11bb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -82,6 +82,24 @@
"type": "github"
}
},
+ "flake-utils_2": {
+ "inputs": {
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -112,11 +130,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1731295855,
- "narHash": "sha256-PpkEexKnFxd72Z+bRnZqYmaSlNF0ztOIjY+aa/5PKak=",
+ "lastModified": 1731479417,
+ "narHash": "sha256-NZ+Jc9XecxUIC6RBE5TdDo8hKzI704fMBKTz6lEH32w=",
"owner": "helix-editor",
"repo": "helix",
- "rev": "10c3502a89d51e2d074d0d2ca62f85241d6e8c0f",
+ "rev": "6cca98264fe308bd6a4f7f85be2d821b58f60b4a",
"type": "github"
},
"original": {
@@ -190,11 +208,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1731340175,
- "narHash": "sha256-qhkP+XRa1AuKkVrxKDLdK4gby363vH6wEie5tb6rz2E=",
+ "lastModified": 1731425185,
+ "narHash": "sha256-/v5mz2LKOsBjwW9M+2kg0jVhpkFNIAvM/fUDy3OiOj4=",
"owner": "hyprwm",
"repo": "Hyprland",
- "rev": "f5fa84554ffe55e29a397014964238be89ffa54d",
+ "rev": "bb160cfe377da2d2b2e4431a3399fa60114f3911",
"type": "github"
},
"original": {
@@ -371,22 +389,6 @@
"type": "github"
}
},
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1727348695,
- "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
@@ -417,7 +419,7 @@
"home-manager": "home-manager",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
- "zen-browser": "zen-browser"
+ "utils": "utils"
}
},
"rust-overlay": {
@@ -471,6 +473,39 @@
"type": "github"
}
},
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "utils": {
+ "inputs": {
+ "flake-utils": "flake-utils_2"
+ },
+ "locked": {
+ "lastModified": 1722363685,
+ "narHash": "sha256-XCf2PIAT6lH7BwytgioPmVf/wkzXjSKScC4KzcZgb64=",
+ "owner": "gytis-ivaskevicius",
+ "repo": "flake-utils-plus",
+ "rev": "6b10f51ff73a66bb29f3bc8151a59d217713f496",
+ "type": "github"
+ },
+ "original": {
+ "owner": "gytis-ivaskevicius",
+ "repo": "flake-utils-plus",
+ "type": "github"
+ }
+ },
"xdph": {
"inputs": {
"hyprland-protocols": [
@@ -511,24 +546,6 @@
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
- },
- "zen-browser": {
- "inputs": {
- "nixpkgs": "nixpkgs_4"
- },
- "locked": {
- "lastModified": 1727721329,
- "narHash": "sha256-QYlWZwUSwrM7BuO+dXclZIwoPvBIuJr6GpFKv9XKFPI=",
- "owner": "MarceColl",
- "repo": "zen-browser-flake",
- "rev": "e6ab73f405e9a2896cce5956c549a9cc359e5fcc",
- "type": "github"
- },
- "original": {
- "owner": "MarceColl",
- "repo": "zen-browser-flake",
- "type": "github"
- }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index f1542ff..9ff6906 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,31 +1,44 @@
{
- description = "My NixOS Flake";
+ description = "NixOS Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
helix.url = "github:helix-editor/helix/master";
- zen-browser.url = "github:MarceColl/zen-browser-flake";
hyprland.url = "github:hyprwm/Hyprland";
+ utils.url = "github:gytis-ivaskevicius/flake-utils-plus";
};
- outputs = { nixpkgs, home-manager, ... }@inputs: {
- nixosConfigurations.tarrel = nixpkgs.lib.nixosSystem {
- specialArgs = { inherit inputs; };
-
- modules = [
- ./configuration.nix
- ./hardware-configuration.nix
- ./gaming.nix
- ./networking.nix
- ./keyd.nix
- ./services.nix
- ./packages.nix
- ./compositor.nix
- ./nvidia.nix
- ./virt.nix
+ outputs = { self, nixpkgs, utils, home-manager, helix, hyprland }@inputs:
+ utils.lib.mkFlake {
+ inherit self inputs;
+ channelsConfig.allowUnfree = true;
+
+ hostDefaults.modules = [
+ ./modules/compositor.nix
+ ./modules/keyd.nix
+ ./modules/services.nix
+ ./modules/packages.nix
+ ./modules/nix-settings.nix
+ ];
+
+ hosts.work.modules = [
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.jras = import ./home-manager/entrypoints/work.nix;
+
+ home-manager.extraSpecialArgs = { inherit inputs; };
+ }
+
+ ./hosts/work.nix
+ ./modules/gaming.nix
+ ];
+
+ hosts.tarrel.modules = [
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
@@ -34,7 +47,11 @@
home-manager.extraSpecialArgs = { inherit inputs; };
}
+
+ ./hosts/tarrel.nix
+ ./modules/gaming.nix
+ ./modules/virt.nix
+ ./modules/sunshine.nix
];
};
- };
}
diff --git a/home-manager/common.nix b/home-manager/common.nix
index 3fd0327..738b250 100644
--- a/home-manager/common.nix
+++ b/home-manager/common.nix
@@ -7,7 +7,6 @@
# '')
home.packages = [
pkgs.gnumake
- inputs.zen-browser.packages.${pkgs.system}.specific
pkgs.git-crypt
pkgs.maim
pkgs.xkcdpass
diff --git a/hardware-configuration.nix b/hosts/hardware-configuration/tarrel.nix
index 4604fcd..4604fcd 100644
--- a/hardware-configuration.nix
+++ b/hosts/hardware-configuration/tarrel.nix
diff --git a/hosts/hardware-configuration/work.nix b/hosts/hardware-configuration/work.nix
new file mode 100644
index 0000000..9c8c4b1
--- /dev/null
+++ b/hosts/hardware-configuration/work.nix
@@ -0,0 +1,41 @@
+# 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 = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/df469cf1-1acc-4bf4-86e1-ec368e5a96a1";
+ fsType = "ext4";
+ };
+
+ boot.initrd.luks.devices."luks-0f6e3603-084c-4438-9749-36b31b6f226a".device = "/dev/disk/by-uuid/0f6e3603-084c-4438-9749-36b31b6f226a";
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/F0E6-4DF3";
+ fsType = "vfat";
+ options = [ "fmask=0077" "dmask=0077" ];
+ };
+
+ swapDevices = [ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp1s0f0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/configuration.nix b/hosts/tarrel.nix
index df59de9..66279be 100644
--- a/configuration.nix
+++ b/hosts/tarrel.nix
@@ -5,17 +5,27 @@
{ pkgs, ... }:
{
- nix.settings = {
- substituters = ["https://hyprland.cachix.org"];
- trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
- };
-
- nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration/tarrel.nix
+ ];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
+ networking.hostName = "tarrel";
+
+ hardware.opengl.enable = true;
+ services.xserver.videoDrivers = ["nvidia"];
+ hardware.nvidia = {
+ modesetting.enable = true;
+ nvidiaSettings = true;
+ nvidiaPersistenced = true;
+
+ package = config.boot.kernelPackages.nvidiaPackages.stable;
+ };
+
security.rtkit.enable = true;
# Set your time zone.
@@ -65,14 +75,19 @@
environment.pathsToLink = [ "/libexec" ];
+ services.unifi = {
+ enable = true;
+ unifiPackage = pkgs.unifi8;
+ };
+
+ # from: https://help.ui.com/hc/en-us/articles/218506997-Required-Ports-Reference
+ # best put it in a var somewhere
+ networking.networkmanager.enable = true;
+ networking.firewall.allowedTCPPorts = [ 53 8080 8000 443 8443 8880 8843 6789 27117 ];
+ networking.firewall.allowedUDPPorts = [ 53 3478 5514 10001 1900 123];
+ networking.firewall.allowedUDPPortRanges = [ { from = 5656; to = 5699; } ];
- # 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:
diff --git a/hosts/work.nix b/hosts/work.nix
new file mode 100644
index 0000000..db55f87
--- /dev/null
+++ b/hosts/work.nix
@@ -0,0 +1,99 @@
+# 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.
+ ./hardware-configuration/work.nix
+ ];
+
+ hardware.bluetooth.enable = true;
+ hardware.bluetooth.powerOnBoot = true;
+
+ # Bootloader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "work"; # 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";
+
+ # Enable networking
+ networking.networkmanager.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "Europe/Amsterdam";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
+
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "nl_NL.UTF-8";
+ LC_IDENTIFICATION = "nl_NL.UTF-8";
+ LC_MEASUREMENT = "nl_NL.UTF-8";
+ LC_MONETARY = "nl_NL.UTF-8";
+ LC_NAME = "nl_NL.UTF-8";
+ LC_NUMERIC = "nl_NL.UTF-8";
+ LC_PAPER = "nl_NL.UTF-8";
+ LC_TELEPHONE = "nl_NL.UTF-8";
+ LC_TIME = "nl_NL.UTF-8";
+ };
+
+ # Configure keymap in X11
+ services.xserver.xkb = {
+ layout = "us";
+ variant = "";
+ };
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.jras = {
+ isNormalUser = true;
+ description = "Jasper Ras";
+ extraGroups = [ "networkmanager" "wheel" ];
+ packages = with pkgs; [ git helix ];
+ };
+
+ # Allow unfree packages
+ nixpkgs.config.allowUnfree = true;
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ 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;
+
+ # 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 = "24.05"; # Did you read the comment?
+
+}
diff --git a/compositor.nix b/modules/compositor.nix
index 8226842..8226842 100644
--- a/compositor.nix
+++ b/modules/compositor.nix
diff --git a/modules/gaming.nix b/modules/gaming.nix
new file mode 100644
index 0000000..781e12e
--- /dev/null
+++ b/modules/gaming.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }:
+
+{
+ programs.steam.enable = true;
+}
diff --git a/keyd.nix b/modules/keyd.nix
index 6b4e79d..6b4e79d 100644
--- a/keyd.nix
+++ b/modules/keyd.nix
diff --git a/modules/nix-settings.nix b/modules/nix-settings.nix
new file mode 100644
index 0000000..8db69ad
--- /dev/null
+++ b/modules/nix-settings.nix
@@ -0,0 +1,8 @@
+{ ... }:
+{
+ nix.settings = {
+ experimental-features = [ "nix-command" "flakes" ];
+ substituters = ["https://hyprland.cachix.org"];
+ trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
+ };
+}
diff --git a/packages.nix b/modules/packages.nix
index d557a94..d557a94 100644
--- a/packages.nix
+++ b/modules/packages.nix
diff --git a/services.nix b/modules/services.nix
index ad4bfc5..ad4bfc5 100644
--- a/services.nix
+++ b/modules/services.nix
diff --git a/gaming.nix b/modules/sunshine.nix
index 13d2ecb..86e68f4 100644
--- a/gaming.nix
+++ b/modules/sunshine.nix
@@ -1,8 +1,5 @@
-{ config, pkgs, ... }:
-
+{ ... }:
{
- programs.steam.enable = true;
-
services.sunshine = {
enable = true;
autoStart = true;
diff --git a/virt.nix b/modules/virt.nix
index e378c80..e378c80 100644
--- a/virt.nix
+++ b/modules/virt.nix
diff --git a/networking.nix b/networking.nix
deleted file mode 100644
index 9013a3e..0000000
--- a/networking.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ config, pkgs, ... }:
-{
- # 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";
-
-
- # Open ports in the firewall.
- # networking.firewall.allowedTCPPorts = [ ... ];
- # networking.firewall.allowedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
- # networking.firewall.enable = false;
-
- networking.networkmanager.enable = true;
- networking.hostName = "tarrel";
-
- services.unifi = {
- enable = true;
- unifiPackage = pkgs.unifi8;
- };
-
- # from: https://help.ui.com/hc/en-us/articles/218506997-Required-Ports-Reference
- # best put it in a var somewhere
- networking.firewall.allowedTCPPorts = [ 53 8080 8000 443 8443 8880 8843 6789 27117 ];
- networking.firewall.allowedUDPPorts = [ 53 3478 5514 10001 1900 123];
- networking.firewall.allowedUDPPortRanges = [ { from = 5656; to = 5699; } ];
-}
diff --git a/nvidia.nix b/nvidia.nix
deleted file mode 100644
index dde5fc5..0000000
--- a/nvidia.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ config, ... }:
-{
- hardware.opengl.enable = true;
- services.xserver.videoDrivers = ["nvidia"];
- hardware.nvidia = {
- modesetting.enable = true;
- nvidiaSettings = true;
- nvidiaPersistenced = true;
-
- package = config.boot.kernelPackages.nvidiaPackages.stable;
- };
-}