diff --git a/flake.lock b/flake.lock index 9f6e216..ff1f4d6 100644 --- a/flake.lock +++ b/flake.lock @@ -115,6 +115,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743604125, + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -201,7 +222,8 @@ "agenix": "agenix", "lix-module": "lix-module", "nixpkgs": "nixpkgs_2", - "vscode-server": "vscode-server" + "vscode-server": "vscode-server", + "zen-browser": "zen-browser" } }, "systems": { @@ -267,6 +289,27 @@ "repo": "nixos-vscode-server", "type": "github" } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748742977, + "narHash": "sha256-xacIevJ94ZOlNLOcFOAm3PiV7zXZr4G8FD7sJ9jKuz4=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "a9d3d70bc49c513a6e48ab24e279e014ab463bc6", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 821aa70..6a6f201 100644 --- a/flake.nix +++ b/flake.nix @@ -9,10 +9,32 @@ vscode-server.url = "github:nix-community/nixos-vscode-server"; agenix.url = "github:ryantm/agenix"; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, lix-module, vscode-server, agenix }: { + outputs = { self, nixpkgs, lix-module, vscode-server, agenix, zen-browser } @ inputs: { nixosConfigurations = { + focalor = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; system = "x86_64-linux"; }; + modules = [ + ./hosts/focalor + lix-module.nixosModules.default + + vscode-server.nixosModules.default + agenix.nixosModules.default + + ({ config, pkgs, ... }: { + services.vscode-server.enable = true; + services.vscode-server.nodejsPackage = pkgs.nodejs_20; + environment.systemPackages = [ agenix.packages.x86_64-linux.default ]; + }) + ]; + }; + valefar = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ diff --git a/hosts/focalor/default.nix b/hosts/focalor/default.nix new file mode 100644 index 0000000..f0cca5f --- /dev/null +++ b/hosts/focalor/default.nix @@ -0,0 +1,52 @@ +# hosts/valefar/configuration.nix (or default.nix) +{ config, lib, system, pkgs, modulesPath, inputs, ... }: + +{ + imports = [ + # Host-specific hardware + ./hardware.nix + ./secrets.nix + + # Common modules shared across hosts + ../../modules/common/system.nix + ../../modules/common/users.nix + ../../modules/common/services.nix + + # Desktop modules + ../../modules/desktop/core.nix + ../../modules/desktop/sway.nix + + # Services specific to this host + #../../services/xyz.nix + + # Common secrets + #../../host-secrets.nix + ]; + + # pin host platform & microcode + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault + config.hardware.enableRedistributableFirmware; + + networking.hostName = "focalor"; + networking.hostId = "84bdc587"; + + #boot.supportedFilesystems = [ "zfs" ]; + #boot.kernelModules = [ "nct6775" "coretemp" ]; + + #services.zfs.autoScrub.enable = true; + #services.zfs.trim.enable = true; + + environment.systemPackages = with pkgs; [ + #lm_sensors + code-server + ]; + + virtualisation.docker = { + enable = true; + enableOnBoot = true; + package = pkgs.docker.override { + buildGoModule = pkgs.buildGo123Module; + }; + }; +} diff --git a/hosts/focalor/hardware.nix b/hosts/focalor/hardware.nix new file mode 100644 index 0000000..ec76a06 --- /dev/null +++ b/hosts/focalor/hardware.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" "ahci" "uas" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/01c4129c-ace4-495a-941e-c5fa893a0bb4"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/6CCE-47E4"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/3029e270-a5f5-4a97-a29b-f2bc3e3a33a8"; } + ]; + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/focalor/secrets.nix b/hosts/focalor/secrets.nix new file mode 100644 index 0000000..077404a --- /dev/null +++ b/hosts/focalor/secrets.nix @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/modules/common/system.nix b/modules/common/system.nix index 455c98d..4dbaeb8 100644 --- a/modules/common/system.nix +++ b/modules/common/system.nix @@ -1,5 +1,7 @@ { pkgs, config, ... }: { + nixpkgs.config.allowUnfree = true; #because im a gigachad + # boot, networking, locale, stateVersion boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; diff --git a/modules/common/users.nix b/modules/common/users.nix index a139985..3017ff9 100644 --- a/modules/common/users.nix +++ b/modules/common/users.nix @@ -6,6 +6,17 @@ packages = with pkgs; [ tree ]; }; + programs.git = { + enable = true; + config = { + user.name = "waveringana"; + user.email = "ana@nekomimi.pet"; + init = { + defaultBranch = "main"; + }; + }; + }; + security.sudo.enable = true; security.sudo.wheelNeedsPassword = false; } diff --git a/modules/desktop/core.nix b/modules/desktop/core.nix new file mode 100644 index 0000000..31e9485 --- /dev/null +++ b/modules/desktop/core.nix @@ -0,0 +1,16 @@ +{ config, pkgs, system, lib, inputs, ... }: + +{ + environment.systemPackages = with pkgs; [ + ghostty + kitty + vscode + inputs.zen-browser.packages."${system}".default + neofetch + fastfetch + sway-contrib.grimshot + discord + ]; + + environment.sessionVariables.NIXOS_OZONE_WL = "1"; +} diff --git a/modules/desktop/sway.nix b/modules/desktop/sway.nix new file mode 100644 index 0000000..af502bf --- /dev/null +++ b/modules/desktop/sway.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ... }: +{ + environment.systemPackages = with pkgs; [ + grim + wl-clipboard + mako + ]; + + services.gnome.gnome-keyring.enable = true; + + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway"; + user = "greeter"; + }; + }; + }; +}