Modularize stuff better
This commit is contained in:
parent
5b92ddde89
commit
d427be6e4a
20 changed files with 417 additions and 321 deletions
|
@ -1,5 +1,14 @@
|
|||
{ ... }: {
|
||||
services.clamav = {
|
||||
daemon.enable = true;
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.pim.compliance;
|
||||
in {
|
||||
options.pim.compliance.enable = lib.mkEnableOption "compliance";
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.clamav = {
|
||||
daemon.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,38 +1,49 @@
|
|||
{pkgs, ...}: {
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.pim.gnome;
|
||||
in {
|
||||
options.pim.gnome.enable = lib.mkEnableOption "gnome";
|
||||
|
||||
environment = {
|
||||
systemPackages =
|
||||
[
|
||||
pkgs.gnome.gnome-shell-extensions
|
||||
]
|
||||
++ (with pkgs.gnomeExtensions; [
|
||||
pop-shell
|
||||
window-is-ready-remover
|
||||
random-wallpaper
|
||||
workspaces-indicator-by-open-apps
|
||||
]);
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
gnome.excludePackages =
|
||||
(with pkgs; [
|
||||
epiphany
|
||||
gnome-connections
|
||||
gnome-console
|
||||
gnome-tour
|
||||
])
|
||||
++ (with pkgs.gnome; [
|
||||
geary
|
||||
gnome-calendar
|
||||
gnome-clocks
|
||||
gnome-contacts
|
||||
gnome-font-viewer
|
||||
gnome-logs
|
||||
gnome-maps
|
||||
gnome-music
|
||||
seahorse
|
||||
totem
|
||||
yelp
|
||||
gnome-weather
|
||||
]);
|
||||
environment = {
|
||||
systemPackages =
|
||||
[
|
||||
pkgs.gnome.gnome-shell-extensions
|
||||
]
|
||||
++ (with pkgs.gnomeExtensions; [
|
||||
pop-shell
|
||||
window-is-ready-remover
|
||||
random-wallpaper
|
||||
workspaces-indicator-by-open-apps
|
||||
]);
|
||||
|
||||
gnome.excludePackages =
|
||||
(with pkgs; [
|
||||
epiphany
|
||||
gnome-connections
|
||||
gnome-console
|
||||
gnome-tour
|
||||
])
|
||||
++ (with pkgs.gnome; [
|
||||
geary
|
||||
gnome-calendar
|
||||
gnome-clocks
|
||||
gnome-contacts
|
||||
gnome-font-viewer
|
||||
gnome-logs
|
||||
gnome-maps
|
||||
gnome-music
|
||||
seahorse
|
||||
totem
|
||||
yelp
|
||||
gnome-weather
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,14 +2,21 @@
|
|||
inputs,
|
||||
pkgs,
|
||||
flake,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
cfg = config.pim.sops;
|
||||
in {
|
||||
imports = [inputs.sops-nix.nixosModules.sops];
|
||||
options.pim.sops.enable = lib.mkEnableOption "sops";
|
||||
|
||||
environment.systemPackages = with pkgs; [sops];
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [sops];
|
||||
|
||||
sops = {
|
||||
age.keyFile = "/home/pim/.config/sops/age/keys.txt";
|
||||
defaultSopsFile = "${flake}/secrets/secrets.yaml";
|
||||
sops = {
|
||||
age.keyFile = "/home/pim/.config/sops/age/keys.txt";
|
||||
defaultSopsFile = "${flake}/secrets/secrets.yaml";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,35 +1,42 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
cfg = config.pim.stylix;
|
||||
in {
|
||||
imports = [inputs.stylix.nixosModules.stylix];
|
||||
options.pim.stylix.enable = lib.mkEnableOption "stylix";
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
||||
image = "${inputs.nixos-artwork}/wallpapers/nix-wallpaper-binary-blue.png";
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
||||
image = "${inputs.nixos-artwork}/wallpapers/nix-wallpaper-binary-blue.png";
|
||||
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 28;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrainsMono Nerd Font Mono";
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 28;
|
||||
};
|
||||
|
||||
sansSerif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Sans";
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrainsMono Nerd Font Mono";
|
||||
};
|
||||
|
||||
serif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Serif";
|
||||
sansSerif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Sans";
|
||||
};
|
||||
|
||||
serif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Serif";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,10 +1,20 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = [pkgs.gnomeExtensions.tailscale-status];
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.pim.tailscale;
|
||||
in {
|
||||
options.pim.tailscale.enable = lib.mkEnableOption "tailscale";
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [pkgs.gnomeExtensions.tailscale-status];
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
};
|
||||
|
||||
networking.networkmanager.unmanaged = ["tailscale0"];
|
||||
};
|
||||
|
||||
networking.networkmanager.unmanaged = ["tailscale0"];
|
||||
}
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
{...}: {
|
||||
users.users.pim.extraGroups = ["audio"];
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.pim.tidal;
|
||||
in {
|
||||
options.pim.tidal.enable = lib.mkEnableOption "tidal";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.pim.extraGroups = ["audio"];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,48 +2,54 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
networking = {
|
||||
useDHCP = lib.mkDefault true;
|
||||
networkmanager.unmanaged = ["tailscale0"];
|
||||
}: let
|
||||
cfg = config.pim.wireguard;
|
||||
in {
|
||||
options.pim.wireguard.enable = lib.mkEnableOption "wireguard";
|
||||
|
||||
wg-quick.interfaces = {
|
||||
home = {
|
||||
privateKeyFile = config.sops.secrets."wireguard/home/privateKey".path;
|
||||
address = ["10.225.191.4/24"];
|
||||
dns = ["192.168.30.131"];
|
||||
autostart = false;
|
||||
mtu = 1412;
|
||||
peers = [
|
||||
{
|
||||
presharedKeyFile = config.sops.secrets."wireguard/home/presharedKey".path;
|
||||
endpoint = "wg.kun.is:51820";
|
||||
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
}
|
||||
];
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
networking = {
|
||||
useDHCP = lib.mkDefault true;
|
||||
networkmanager.unmanaged = ["tailscale0"];
|
||||
|
||||
home-no-pihole = {
|
||||
privateKeyFile = config.sops.secrets."wireguard/home/privateKey".path;
|
||||
address = ["10.225.191.4/24"];
|
||||
dns = ["192.168.10.1"];
|
||||
autostart = false;
|
||||
mtu = 1412;
|
||||
peers = [
|
||||
{
|
||||
presharedKeyFile = config.sops.secrets."wireguard/home/presharedKey".path;
|
||||
endpoint = "wg.kun.is:51820";
|
||||
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
}
|
||||
];
|
||||
wg-quick.interfaces = {
|
||||
home = {
|
||||
privateKeyFile = config.sops.secrets."wireguard/home/privateKey".path;
|
||||
address = ["10.225.191.4/24"];
|
||||
dns = ["192.168.30.131"];
|
||||
autostart = false;
|
||||
mtu = 1412;
|
||||
peers = [
|
||||
{
|
||||
presharedKeyFile = config.sops.secrets."wireguard/home/presharedKey".path;
|
||||
endpoint = "wg.kun.is:51820";
|
||||
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
home-no-pihole = {
|
||||
privateKeyFile = config.sops.secrets."wireguard/home/privateKey".path;
|
||||
address = ["10.225.191.4/24"];
|
||||
dns = ["192.168.10.1"];
|
||||
autostart = false;
|
||||
mtu = 1412;
|
||||
peers = [
|
||||
{
|
||||
presharedKeyFile = config.sops.secrets."wireguard/home/presharedKey".path;
|
||||
endpoint = "wg.kun.is:51820";
|
||||
publicKey = "fa3mQ7ximJbH7cu2ZbWidto5xBGxEEfWvCCiUDk00Hg=";
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
"wireguard/home/presharedKey" = {};
|
||||
"wireguard/home/privateKey" = {};
|
||||
sops.secrets = {
|
||||
"wireguard/home/presharedKey" = {};
|
||||
"wireguard/home/privateKey" = {};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue