initial commit for module-refactor

This commit is contained in:
pagedmov
2024-11-01 21:01:52 -04:00
parent 7bee6ebce5
commit ff2535e7a7
62 changed files with 2819 additions and 2670 deletions

View File

@@ -1,29 +1,34 @@
{...}: {
environment.etc."issue".text = ''
{lib, config, ...}: {
options = {
issue.enable = lib.mkEnableOption "enables custom /etc/issue splash screen for the tty";
};
config = lib.mkIf config.issue.enable {
environment.etc."issue".text = ''
\e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m\e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m \e[38;5;27m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;81m \e[38;5;27m\e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m \e[38;5;27m \e[38;5;81m
\e[38;5;27m \e[38;5;81m
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
\e[1;32mContact\e[0m: kylerclay@proton.me
470-403-8522
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
\e[1;32mContact\e[0m: kylerclay@proton.me
470-403-8522
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
'';
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
'';
};
}

View File

@@ -0,0 +1,21 @@
{lib, config, ... }: {
options = {
nixSettings.enable = lib.mkEnableOption "enables my nixos settings";
};
config = lib.mkIf config.nixSettings.enable {
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
};
}

View File

@@ -1,24 +1,30 @@
{
pkgs,
self,
lib,
config,
...
}: {
environment.systemPackages = [
(
pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "JetBrains Mono Nerd Font";
fontSize = "14";
loginBackground = true;
background = "${self}/assets/wallpapers/dark-waves.jpg";
}
)
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
options = {
sddmOpts.enable = lib.mkEnableOption "enables custom sddm configuration";
};
config = lib.mkIf config.sddmOpts.enable {
environment.systemPackages = [
(
pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "JetBrains Mono Nerd Font";
fontSize = "14";
loginBackground = true;
background = "${self}/assets/wallpapers/dark-waves.jpg";
}
)
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
};
};
}

View File

@@ -2,44 +2,51 @@
pkgs,
scheme,
wallpaper,
lib,
config,
...
}: {
stylix = {
enable = true;
base16Scheme = scheme;
image = wallpaper;
polarity = "dark";
autoEnable = true;
opacity.terminal = 0.5;
targets = {
console.enable = true;
feh.enable = true;
grub.enable = true;
gtk.enable = true;
nixos-icons.enable = true;
};
cursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
};
fonts = {
monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
options = {
stylixOpts.enable = lib.mkEnableOption "enables custom stylix options";
};
config = lib.mkIf config.stylixOpts.enable {
stylix = {
enable = true;
base16Scheme = scheme;
image = wallpaper;
polarity = "dark";
autoEnable = true;
opacity.terminal = 0.5;
targets = {
console.enable = true;
feh.enable = true;
grub.enable = true;
gtk.enable = true;
nixos-icons.enable = true;
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
cursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
};
sizes = {
desktop = 10;
applications = 14;
terminal = 14;
popups = 16;
fonts = {
monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrains Mono Nerd Font";
};
sizes = {
desktop = 10;
applications = 14;
terminal = 14;
popups = 16;
};
};
};
};

View File

@@ -1,8 +1,14 @@
{pkgs, ...}: {
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.configurationLimit = 10;
kernelPackages = pkgs.linuxPackages_latest;
{pkgs, lib, config, ...}: {
options = {
# make this enabled by default!!!
bootLoader.enable = lib.mkEnableOption "enables bootloader config";
};
config = lib.mkIf config.bootLoader.enable {
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.configurationLimit = 10;
kernelPackages = pkgs.linuxPackages_latest;
};
};
}

View File

@@ -10,5 +10,6 @@
}: {
imports =
[(import ./bootloader.nix)]
++ [(import ./network.nix)];
++ [(import ./network.nix)]
++ [(import ./powerprofiles.nix)];
}

View File

@@ -1,20 +1,24 @@
{host, ...}: let
{host, lib, config, ...}: let
desktop = host == "oganesson";
in {
networking = {
networkmanager.enable = true;
hostName =
if desktop
then "oganesson"
else "mercury";
hosts = {
"192.168.1.201" = ["glasshaus"];
"192.168.1.111" = ["argon"];
"192.168.1.223" = ["mercury"];
};
firewall = {
enable = true;
allowedTCPPorts = [30000];
options = {
networkModule.enable = lib.mkEnableOption "enables network configuration";
};
config = lib.mkIf config.networkModule.enable {
networking = {
networkmanager.enable = true;
hostName =
if desktop
then "oganesson"
else "mercury";
hosts = {
"192.168.1.201" = ["xenon"];
"192.168.1.111" = ["argon"];
"192.168.1.223" = ["mercury"];
};
firewall = {
enable = true;
};
};
};
}

View File

@@ -0,0 +1,51 @@
{lib, config, ... }: {
options = {
powerProfiles.enable = lib.mkEnableOption "enables power profiles";
};
config = lib.mkIf config.powerProfiles.enable {
services = {
keyd = {
enable = true;
keyboards.default = {
ids = ["*"];
settings.main = {
capslock = "esc";
};
};
};
power-profiles-daemon.enable = true;
upower = {
enable = true;
percentageLow = 20;
percentageCritical = 5;
percentageAction = 3;
criticalPowerAction = "PowerOff";
};
tlp.settings = {
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1;
CPU_HWP_DYN_BOOST_ON_AC = 1;
CPU_HWP_DYN_BOOST_ON_BAT = 1;
PLATFORM_PROFILE_ON_AC = "performance";
PLATFORM_PROFILE_ON_BAT = "performance";
INTEL_GPU_MIN_FREQ_ON_AC = 500;
INTEL_GPU_MIN_FREQ_ON_BAT = 500;
# INTEL_GPU_MAX_FREQ_ON_AC=0;
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
PCIE_ASPM_ON_AC = "default";
PCIE_ASPM_ON_BAT = "powersupersave";
};
};
};

View File

@@ -18,5 +18,6 @@ in {
++ [(import ./programs.nix)]
++ [(import ./services.nix)]
++ [(import ./nixvim)]
++ [(import ./module-test.nix)]
++ desktop_modules;
}

View File

@@ -1,5 +1,10 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
snes9x-gtk
];
{lib, config, pkgs, ...}: {
options = {
gamingPkgs.enable = lib.mkEnableOption "enables gaming packages";
};
config = lib.mkIf config.gamingPkgs.enable {
environment.systemPackages = with pkgs; [
snes9x-gtk
];
};
}

View File

@@ -1,6 +1,11 @@
{...}: {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
{lib, config, ...}: {
options = {
steamOpts.enable = lib.mkEnableOption "enables steam configuration";
};
config = lib.mkIf config.steamOpts.enable {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
};
}

View File

@@ -0,0 +1,11 @@
{ pkgs, lib, config, ... }:
{
options = {
testmodule.enable = lib.mkEnableOption "enables test module";
};
config = lib.mkIf config.testmodule.enable {
environment.systemPackages = with pkgs; [
hello
];
};
}

View File

@@ -1,79 +1,79 @@
{
pkgs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
alejandra
alsa-lib
alsa-utils
bc
cava
cabal-install
clang
clang-tools
cliphist
cmake
fail2ban
feh
ffmpeg-full
fuse
git
gnumake
gst_all_1.gstreamer
htop
hyprland
hyprland-workspaces
hyprpicker
imagemagick
inetutils
kitty
libclang
libcxx
lolcat
lsof
lua-language-server
luarocks
mesa
mpd
mullvad
mesa
neofetch
nh
nix-index
nix-output-monitor
nix-prefetch-scripts
nixos-option
nix-search-cli
nvd
openssl
p7zip
jq
pamixer
parted
pavucontrol
pkg-config
playerctl
protonmail-bridge
protontricks
pyright
socat
sox
stress
tor
tree
unrar
unzip
usbutils
vim
vscode-langservers-extracted
vulkan-loader
wget
wine
wl-clipboard
xpad
libnotify
file
libvirt-glib
];
{lib, config, pkgs, inputs, ... }: {
options = {
sysPkgs.enable = lib.mkEnableOption "enables default system packages";
};
config = lib.mkIf config.sysPkgs.enable {
environment.systemPackages = with pkgs; [
alejandra
alsa-lib
alsa-utils
bc
cava
cabal-install
clang
clang-tools
cliphist
cmake
fail2ban
feh
ffmpeg-full
fuse
git
gnumake
gst_all_1.gstreamer
htop
hyprland-workspaces
hyprpicker
imagemagick
inetutils
kitty
libclang
libcxx
lolcat
lsof
lua-language-server
luarocks
mesa
mpd
mullvad
mesa
neofetch
nh
nix-index
nix-output-monitor
nix-prefetch-scripts
nixos-option
nix-search-cli
nvd
openssl
p7zip
jq
pamixer
parted
pavucontrol
pkg-config
playerctl
protonmail-bridge
protontricks
pyright
socat
sox
stress
tor
tree
unrar
unzip
usbutils
vim
vscode-langservers-extracted
vulkan-loader
wget
wine
wl-clipboard
xpad
libnotify
file
libvirt-glib
];
};
}

View File

@@ -1,17 +1,22 @@
{pkgs, ...}: {
programs = {
hyprland.enable = true;
zsh.enable = true;
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
ffmpeg-full
];
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
{lib, config, pkgs, ...}: {
options = {
sysProgs.enable = lib.mkEnableOption "enables default system programs";
};
config = lib.mkIf config.sysProgs.enable {
programs = {
hyprland.enable = true;
zsh.enable = true;
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
ffmpeg-full
];
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
};
}

View File

@@ -1,19 +1,24 @@
{...}: {
services = {
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
udev.enable = true;
dbus.enable = true;
mullvad-vpn.enable = true;
blueman.enable = true;
openssh = {
enable = true;
allowSFTP = true;
{lib, config, ...}: {
options = {
sysServices.enable = lib.mkEnableOption "enables default system services";
};
config = lib.mkIf config.sysServices.enable {
services = {
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
udev.enable = true;
dbus.enable = true;
mullvad-vpn.enable = true;
blueman.enable = true;
openssh = {
enable = true;
allowSFTP = true;
};
};
};
}

View File

@@ -1,4 +1,9 @@
{username, ...}: {
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
{lib, config, username, ...}: {
options = {
virtOpts.enable = lib.mkEnableOption "enables virtualization";
};
config = lib.mkIf config.virtOpts.enable {
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
};
}