Split system config into tons of modules!

This commit is contained in:
Emmet 2023-06-20 22:08:25 -05:00
parent 74c00ca4ef
commit 8262f63886
21 changed files with 266 additions and 180 deletions

7
system/app/flatpak.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
# Need some flatpaks
services.flatpak.enable = true;
xdg.portal.enable = true;
}

7
system/app/gamemode.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
# Feral GameMode
environment.systemPackages = [ pkgs.gamemode ];
programs.gamemode.enable = true;
}

View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
# Bluetooth
hardware.bluetooth.enable = true;
services.blueman.enable = true;
}

View file

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
# OpenGL
hardware.opengl.enable = true;
}

View file

@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [ pkgs.openrgb-with-all-plugins ];
# OpenRGB setup
services.hardware.openrgb = {
enable = true;
motherboard = "amd";
};
}

View file

@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [ pkgs.auto-cpufreq ];
systemd.services.auto-cpufreq.enable = true;
services.upower.enable = true;
systemd.services.upower.enable = true;
}

View file

@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
# Enable printing
services.printing.enable = true;
services.avahi.enable = true;
services.avahi.nssmdns = true;
services.avahi.openFirewall = true;
}

View file

@ -0,0 +1,9 @@
{ config, blocklist-hosts, pkgs, ... }:
let blocklist = builtins.readFile "${blocklist-hosts}/alternates/gambling-porn/hosts";
in
{
networking.extraHosts = ''
"${blocklist}"
'';
}

16
system/security/doas.nix Normal file
View file

@ -0,0 +1,16 @@
{ config, myName, pkgs, ... }:
{
# Doas instead of sudo
security.doas.enable = true;
security.sudo.enable = false;
security.doas.extraRules = [{
users = [ "${myName}" ];
keepEnv = true;
persist = true;
}];
environment.systemPackages = [
(pkgs.writeScriptBin "sudo" ''exec doas "$@"'')
];
}

View file

@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
# Firewall
networking.firewall.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
}

11
system/security/gpg.nix Normal file
View file

@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
}

View file

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
environment.systemPackages = [ pkgs.openvpn ];
environment.etc.openvpn.source = "${pkgs.update-resolv-conf}/libexec/openvpn";
}

10
system/security/sshd.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
# Enable incoming ssh
services.openssh = {
enable = true;
openFirewall = true;
# TODO authorizedKeysFiles = "";
};
}

12
system/wm/dbus.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
services.dbus = {
enable = true;
packages = [ pkgs.dconf ];
};
programs.dconf = {
enable = true;
};
}

17
system/wm/fonts.nix Normal file
View file

@ -0,0 +1,17 @@
{ config, pkgs, ... }:
{
# Fonts are nice to have
fonts.fonts = with pkgs; [
# Fonts
(nerdfonts.override { fonts = [ "Inconsolata" ]; })
powerline
inconsolata
inconsolata-nerdfont
iosevka
font-awesome
ubuntu_font_family
terminus_font
];
}

View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
services.gnome = {
gnome-keyring.enable = true;
};
}

13
system/wm/pipewire.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, pkgs, ... }:
{
# Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
}

35
system/wm/x11.nix Normal file
View file

@ -0,0 +1,35 @@
{ config, pkgs, ... }:
{
imports = [ ./pipewire.nix
./dbus.nix
./gnome-keyring.nix
./fonts.nix
];
# Configure X11
services.xserver = {
enable = true;
layout = "us";
xkbVariant = "";
xkbOptions = "caps:escape";
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
};
displayManager = {
lightdm.enable = true;
defaultSession = "none+xmonad";
sessionCommands = ''
xset -dpms
xset s blank
xset r rate 350 50
xset s 300
${pkgs.lightlocker}/bin/light-locker --idle-hint &
'';
};
libinput = {
touchpad.disableWhileTyping = true;
};
};
}

20
system/wm/xmonad.nix Normal file
View file

@ -0,0 +1,20 @@
{ config, pkgs, ... }:
{
# import X11
imports = [ ./x11.nix
./pipewire.nix
./dbus.nix
];
# Setup XMonad
services.xserver = {
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
};
displayManager = {
defaultSession = "none+xmonad";
};
};
}