another reorg; add options for full or minimal helix install

This commit is contained in:
2025-02-08 17:27:13 +00:00
parent ea4e20e990
commit 99768f0b4a
25 changed files with 265 additions and 394 deletions

View File

@@ -0,0 +1,36 @@
# 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`).
{ inputs, ... }:
{
imports =
[
../../configuration/base.nix
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.disko.nixosModules.default
./disk-config.nix
inputs.home-manager.nixosModules.default
../../configuration/modules/laptop.nix
];
networking.hostName = "starlite"; # Define your hostname.
# Define a user account. Don't forget to set a password with passwd.
users.users.worble = {
initialPassword = "password";
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
linger = true;
};
home-manager.useGlobalPkgs = true;
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"worble" = import ./home.nix;
};
};
}

View File

@@ -0,0 +1,37 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1M";
end = "128M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "btrfs";
extraArgs = [ "-f" ]; # Override existing partition
mountpoint = "/";
mountOptions = [ "compress=zstd" "noatime" ];
};
};
};
};
};
};
};
}

View File

@@ -0,0 +1,27 @@
# 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, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_usb_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
# 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.enp0s20f0u1u3.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

76
devices/starlite/home.nix Normal file
View File

@@ -0,0 +1,76 @@
{ pkgs, ... }:
{
imports = [
../../home-manager/fonts.nix
../../home-manager/terminal.nix
../../home-manager/firefox/firefox.nix
../../home-manager/development/vscode.nix
];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#starlite";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos";
home.username = "worble";
home.homeDirectory = "/home/worble";
home.stateVersion = "24.05";
home.packages = with pkgs;[
# general
thunderbird
keepassxc
qbittorrent
libreoffice-qt
joplin-desktop
obsidian
# media
strawberry-qt6
jellyfin-media-player
# comms
teamspeak_client
vesktop
];
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
# Let Home Manager install and manage itself.
programs = {
home-manager.enable = true;
chromium = {
enable = true;
package = pkgs.brave;
};
mpv = {
enable = true;
config = {
screenshot-directory = "~/Pictures/";
screenshot-template = "%F/%F_snapshot_%P";
};
};
};
}