Compare commits

...

3 Commits

15 changed files with 135 additions and 80 deletions

View File

@@ -5,47 +5,71 @@
inputs, inputs,
... ...
}: { }: {
imports = [ imports = [
inputs.autoaspm.nixosModules.default inputs.autoaspm.nixosModules.default
]; ];
# set timezone
time.timeZone = "America/Chicago";
nix = {
# garbage collect & remove builds older then 14 days
gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 14d";
persistent = true;
};
# optimise nix store, dedupe and such
optimise = {
automatic = true;
dates = [ "daily" ];
};
# the goats
settings.experimental-features = lib.mkDefault [
"nix-command"
"flakes"
];
};
# allow proprietary packages
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
# power management
services.autoaspm.enable = true;
powerManagement.powertop.enable = true;
# things are better this way
users.defaultUserShell = pkgs.zsh;
# base system package install list # base system package install list
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget wget
curl curl
dig dig
nmap
rsync rsync
iperf3
jq
git git
age age
fzf
cifs-utils
neofetch
usbutils
pciutils
python3
vim vim
lf ncdu
btop btop
powertop powertop
dig iotop
cifs-utils
usbutils
pciutils
lm_sensors
]; ];
# set timezone # nice to have passwordless sudo
time.timeZone = "America/Chicago";
# allow proprietary packages
nixpkgs.config.allowUnfree = true;
# power management
services.autoaspm.enable = true;
powerManagement.powertop.enable = true;
# enable flakes
nix.settings.experimental-features = ["nix-command" "flakes"];
users.defaultUserShell = pkgs.zsh;
# passwordless rebuild
security.sudo = { security.sudo = {
extraRules = [ extraRules = [
{ {

View File

@@ -1,8 +1,15 @@
{ pkgs, config, lib, modulesPath, inputs, stable_pkgs, unstable_pkgs, ... }:
{ {
imports = pkgs,
[ # Include the results of the hardware scan. config,
lib,
modulesPath,
inputs,
stable_pkgs,
unstable_pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
#./hardware-configuration.nix #./hardware-configuration.nix
../../nixos ../../nixos
@@ -11,10 +18,7 @@
../../../modules/system ../../../modules/system
]; ];
home-manager.users.blake.imports = [ # home grown nixos modules
../../../users/blake/hosts/yveltal.nix
];
system = { system = {
ssh.enable = true; ssh.enable = true;
sops.enable = true; sops.enable = true;
@@ -26,13 +30,11 @@
vendor = "intel"; vendor = "intel";
}; };
}; };
desktop = { desktop = {
pipewire.enable = true; pipewire.enable = true;
hypr.enable = true; hypr.enable = true;
greetd.enable = true; greetd.enable = true;
}; };
gaming = { gaming = {
steam.enable = true; steam.enable = true;
lutris.enable = true; lutris.enable = true;
@@ -41,7 +43,13 @@
mangohud.enable = true; mangohud.enable = true;
}; };
# import home grown host specific home-manager modules
home-manager.users.blake.imports = [
../../../users/blake/hosts/yveltal.nix
];
# fix power buttons # fix power buttons
# move this to a laptops file at some point
services.logind.settings.Login = { services.logind.settings.Login = {
HandlePowerKey = "suspend-then-hibernate"; HandlePowerKey = "suspend-then-hibernate";
HandleLidSwitch = "suspend-then-hibernate"; HandleLidSwitch = "suspend-then-hibernate";
@@ -53,53 +61,47 @@
# boot (systemd is growing on me) # boot (systemd is growing on me)
boot = { boot = {
kernelModules = [ "kvm-intel" ]; kernelModules = ["kvm-intel"];
extraModulePackages = [ ]; extraModulePackages = [];
loader = { loader = {
systemd-boot.enable = true; # systemd your pretty cool ya know systemd-boot.enable = true; # systemd your pretty cool ya know
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
initrd = { initrd = {
systemd.enable = true; # better logging systemd.enable = true; # better logging
availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" ]; availableKernelModules = ["xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod"];
kernelModules = [ ]; kernelModules = [];
}; };
}; };
# setup hostname and networking stack # setup hostname and networking stack
services.resolved = {
enable = true;
fallbackDns = [ "1.1.1.1" "9.9.9.9" ];
dnsovertls = "opportunistic";
};
networking = { networking = {
hostName = "yveltal"; # hostname hostName = "yveltal"; # hostname
useDHCP = lib.mkDefault true; useDHCP = lib.mkDefault true;
interfaces = { interfaces = {
wlp0s20f3.useDHCP = lib.mkDefault true; wlp0s20f3.useDHCP = lib.mkDefault true;
}; };
firewall = {
enable = true;
allowedTCPPorts = [22];
allowedUDPPorts = [51820]; # wireguard
};
networkmanager = { networkmanager = {
enable = true; # the goat enable = true; # the goat
dns = "systemd-resolved"; # the backup dancer! dns = "systemd-resolved"; # the backup dancer!
}; };
}; };
services.resolved = {
enable = true;
fallbackDns = ["1.1.1.1" "9.9.9.9"];
dnsovertls = "opportunistic";
};
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
# Open ports in the firewall.
networking.firewall.allowedTCPPorts = [
22
];
networking.firewall.allowedUDPPorts = [ 51820 ];
# Or disable the firewall altogether.
networking.firewall.enable = true;
system.stateVersion = "25.05"; # stays here : ) system.stateVersion = "25.05"; # stays here : )
# hardware shit # hardware shit
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -4,24 +4,36 @@
config, config,
... ...
}: let }: let
cfg = config.dots.media_tools; cfg = config.dots.media-tools;
in { in {
imports = [ imports = [
./mpv
./nsxiv
./obs
./gimp ./gimp
./krita
./audacity ./audacity
./krita
./kdenlive ./kdenlive
]; ];
options.dots.media_tools = { options.dots.media-tools = {
enable = lib.mkEnableOption "enables all programs by default"; enable = lib.mkEnableOption "enables all programs by default";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
dots = { dots = {
audacity.enable = lib.mkDefault true; mpv.enable = lib.mkDefault true;
nsxiv.enable = lib.mkDefault true;
obs.enable = lib.mkDefault true;
gimp.enable = lib.mkDefault true; gimp.enable = lib.mkDefault true;
audacity.enable = lib.mkDefault true;
krita.enable = lib.mkDefault true; krita.enable = lib.mkDefault true;
kdenlive.enable = lib.mkDefault true; kdenlive.enable = lib.mkDefault true;
}; };
home.packages = with pkgs; [
mediainfo
ffmpeg_6
imagemagick
];
}; };
} }

View File

@@ -0,0 +1,23 @@
{
pkgs,
lib,
config,
...
}: let
program = "obs";
cfg = config.dots.${program};
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# enable with home-manager
programs.obs-studio = {
enable = true;
plugins = [];
};
};
}

View File

@@ -7,6 +7,9 @@
cfg = config.dots.programs; cfg = config.dots.programs;
in { in {
imports = [ imports = [
./_media-tools
./_browsers
./thunderbird ./thunderbird
./libreoffice ./libreoffice
./gnucash ./gnucash
@@ -14,13 +17,8 @@ in {
./bitwarden ./bitwarden
./zathura ./zathura
./discord ./discord
./mpv
./nsxiv
./slippi ./slippi
./media_tools
./browsers
]; ];
options.dots.programs = { options.dots.programs = {
@@ -29,21 +27,19 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
dots = { dots = {
media-tools.enable = lib.mkDefault true;
browsers.enable = lib.mkDefault true;
thunderbird.enable = lib.mkDefault true; thunderbird.enable = lib.mkDefault true;
libreoffice.enable = lib.mkDefault true; libreoffice.enable = lib.mkDefault true;
gnucash.enable = lib.mkDefault true; gnucash.enable = lib.mkDefault true;
qalculate.enable = lib.mkDefault true; qalculate.enable = lib.mkDefault true;
bitwarden.enable = lib.mkDefault true; bitwarden.enable = lib.mkDefault true;
discord.enable = lib.mkDefault true; discord.enable = lib.mkDefault true;
zathura.enable = lib.mkDefault true; zathura.enable = lib.mkDefault true;
mpv.enable = lib.mkDefault true;
nsxiv.enable = lib.mkDefault true;
slippi.enable = lib.mkDefault true; slippi.enable = lib.mkDefault true;
media_tools.enable = lib.mkDefault true;
browsers.enable = lib.mkDefault true;
}; };
}; };
} }

View File

@@ -30,9 +30,7 @@ in
stateVersion = "25.05"; stateVersion = "25.05";
packages = with pkgs; [ packages = with pkgs; [
ripgrep ripgrep
iperf3
p7zip p7zip
imagemagick
sops sops
usbutils usbutils
]; ];