diff --git a/hardware-configuration.nix b/alien-hardware-configuration.nix similarity index 98% rename from hardware-configuration.nix rename to alien-hardware-configuration.nix index 3fafb78..49f014c 100644 --- a/hardware-configuration.nix +++ b/alien-hardware-configuration.nix @@ -13,6 +13,7 @@ boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; + networking.hostName = "alien"; # systemd.services.heat-room = { # description = "Morning room heating"; # after = [ "graphical-session.target" ]; diff --git a/configuration.nix b/default-configuration.nix similarity index 88% rename from configuration.nix rename to default-configuration.nix index 3eca9d7..3f3b304 100644 --- a/configuration.nix +++ b/default-configuration.nix @@ -1,16 +1,11 @@ # 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, inputs, ... }: -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - +{ nixpkgs.config.allowUnfree = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; - programs.hyprland.enable = true; + # programs.hyprland.enable = true; programs.steam = { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play @@ -28,7 +23,6 @@ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - networking.hostName = "alien"; time.timeZone = "America/Toronto"; @@ -73,7 +67,7 @@ programs.waybar = { - enable = true; + enable = false; settings = { mainBar = { layer = "top"; @@ -193,7 +187,7 @@ users.users.jeremy = { isNormalUser = true; - extraGroups = [ "wheel" "docker" "wireshark" "networkmanager" ]; # Enable sudo + extraGroups = [ "wheel" "docker" "wireshark" "adbusers" "plugdev" "networkmanager" ]; shell = pkgs.bash; home = "/home/jeremy"; createHome = true; @@ -228,6 +222,11 @@ mpv # arrr wireshark obs-studio + slack + scrcpy # phone rdp + android-tools # phone rdp + wireguard-tools + blender # drone ]; }; @@ -236,7 +235,6 @@ firefox neovim wget - networkmanager gnome-disk-utility dunst libnotify @@ -252,7 +250,7 @@ bluez # Bluetooth support bluez-tools # Bluetooth tools polkit_gnome - + usbutils # for lsusb xwayland-satellite # xwayland support fuzzel # menu networkmanagerapplet @@ -262,7 +260,7 @@ fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ]; - programs.niri.enable = true; + programs.niri.enable = false; boot.initrd.kernelModules = [ "amdgpu" ]; environment.sessionVariables = { @@ -322,17 +320,17 @@ server.port = 6742; }; services.udisks2.enable = true; # Enable gnome-disks - services.displayManager.sddm.enable = true; # Enable display manager - services.displayManager.sddm.wayland.enable = true; # Wayland + # services.displayManager.sddm.enable = true; # Enable display manager + # services.displayManager.sddm.wayland.enable = true; # Wayland services.mullvad-vpn.package = pkgs.mullvad-vpn; # arr services.resolved.enable = true; # for mullvad # programs.ssh.startAgent = true; # Enable SSH tools - programs.thunar.enable = true; # file manager + # programs.thunar.enable = true; # file manager programs.wireshark.enable = true; - virtualisation.waydroid.enable = true; # android :0 + # virtualisation.waydroid.enable = true; # android :0 nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ @@ -342,6 +340,7 @@ "steam-run" "furmark" "burpsuite" + "slack" ]; # Some programs need SUID wrappers, can be configured further or are @@ -358,7 +357,10 @@ ports = [2121]; settings.X11Forwarding = true; }; + networking.firewall.allowedTCPPorts = [2121]; + networking.networkmanager.enable = true; + programs.nm-applet.enable = true; # Binaries auto linked programs.nix-ld.enable = true; @@ -385,34 +387,27 @@ gobject-introspection ]; - networking.networkmanager = { - enable = true; - wifi.backend = "wpa_supplicant"; # remove the iwd line, this is the default - wifi.powersave = false; - }; - - networking.wireless.enable = false; - # nixpkgs.config.allowUnfree = true; - hardware.enableAllFirmware = true; - services.gnome.gnome-keyring.enable = true; - security.pam.services.login.enableGnomeKeyring = true; - security.polkit.enable = true; + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; + services.gnome.core-apps.enable = true; + services.gnome.core-developer-tools.enable = false; + services.gnome.games.enable = false; + environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ]; - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.extraModprobeConfig = '' - options mt7921e disable_aspm=Y - options cfg80211 ieee80211_regdom="CA" + + # udev rules for pyocd for UTAT + services.udev.extraRules = '' + SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374e", MODE="0666", GROUP="plugdev" + SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="0666", GROUP="plugdev" + SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374f", MODE="0666", GROUP="plugdev" + SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3753", MODE="0666", GROUP="plugdev" ''; - programs.nm-applet.enable = true; - hardware.wirelessRegulatoryDatabase = true; - - # bootloader device - boot.loader.grub.device = "/dev/sda"; + # boot.loader.grub.device = "/dev/sda"; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; @@ -443,4 +438,4 @@ # # 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? -} \ No newline at end of file +} diff --git a/flake.lock b/flake.lock index 5ed5ae7..13dace6 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1775425411, - "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", + "lastModified": 1778606796, + "narHash": "sha256-P2krpSkFVYJ89bgsnAZ9RtQiGwiTW77sfSJp9SEDscM=", "owner": "nix-community", "repo": "home-manager", - "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", + "rev": "e1fd7350f4410972bcb8c42a697d8c924ffe642a", "type": "github" }, "original": { @@ -23,11 +23,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1776067740, - "narHash": "sha256-B35lpsqnSZwn1Lmz06BpwF7atPgFmUgw1l8KAV3zpVQ=", + "lastModified": 1778430510, + "narHash": "sha256-Ti+ZBvW6yrWWAg2szExVTwCd4qOJ3KlVr1tFHfyfi8Q=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7e495b747b51f95ae15e74377c5ce1fe69c1765f", + "rev": "8fd9daa3db09ced9700431c5b7ad0e8ba199b575", "type": "github" }, "original": { @@ -39,11 +39,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "lastModified": 1778443072, + "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", + "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6fec3be..8f9d4ea 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,23 @@ nixosConfigurations."alien" = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ - ./configuration.nix + ./default-configuration.nix + ./alien-hardware-configuration.nix + home-manager.nixosModules.home-manager + { + nixpkgs.overlays = [ + (final: prev: { + ollama = nixpkgs-unstable.legacyPackages.${prev.system}.ollama; + }) + ]; + } + ]; + }; + nixosConfigurations."thinkpad" = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./default-configuration.nix + ./thinkpad-hardware-configuration.nix home-manager.nixosModules.home-manager { nixpkgs.overlays = [ @@ -30,4 +46,4 @@ ]; }; }; -} \ No newline at end of file +} diff --git a/thinkpad-hardware-configuration.nix b/thinkpad-hardware-configuration.nix new file mode 100644 index 0000000..7b27cda --- /dev/null +++ b/thinkpad-hardware-configuration.nix @@ -0,0 +1,39 @@ +# 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 = [ "dm-snapshot" ]; + boot.initrd.luks.devices."cryptroot" = { + device = "/dev/disk/by-uuid/8f79adab-ca08-497b-921a-ee386ad03cfc"; + preLVM = true; + }; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + networking.hostName = "thinkpad"; + + fileSystems."/" = + { device = "/dev/mapper/vg0-root"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/06C1-B3A3"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = + [ { device = "/dev/mapper/vg0-swap"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} +