refactor: organizing some imports

This commit is contained in:
gwg313 2024-09-11 13:59:52 -04:00
parent c4f7a64329
commit db319ed5af
Signed by: gwg313
GPG key ID: 60FF63B4826B7400
8 changed files with 184 additions and 95 deletions

View file

@ -1,5 +1,9 @@
{lib, ...}: { {lib, ...}: {
imports = [./thunar.nix]; imports = [
./thunar.nix
./steam.nix
];
thunar.enable = lib.mkDefault true; thunar.enable = lib.mkDefault true;
steam.enable = lib.mkDefault false;
} }

View file

@ -4,44 +4,48 @@
pkgs, pkgs,
... ...
}: { }: {
hardware.opengl.driSupport32Bit = true; options = {
steam.enable = lib.mkEnableOption "Enables steam";
nixpkgs.config.packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs:
with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
}; };
programs.steam = { config = lib.mkIf config.steam.enable {
enable = true; hardware.opengl.driSupport32Bit = true;
remotePlay.openFirewall = true;
gamescopeSession = { nixpkgs.config.packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs:
with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
};
programs.steam = {
enable = true; enable = true;
args = [ remotePlay.openFirewall = true;
"-F fsr" gamescopeSession = {
"-f" enable = true;
]; args = [
"-F fsr"
"-f"
];
};
}; };
};
environment.sessionVariables = { environment.sessionVariables = {
# Proton GE flag # Proton GE flag
WINE_FULLSCREEN_FSR = "1"; WINE_FULLSCREEN_FSR = "1";
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [protonup];
protonup };
];
} }

View file

@ -1,9 +1,21 @@
{...}: { {
services.blueman.enable = true; config,
hardware.bluetooth = { lib,
enable = true; ...
powerOnBoot = true; }: {
options = {
bluetooth.enable = lib.mkEnableOption "Enables Bluetooth";
}; };
services.upower = {enable = true;}; config = lib.mkIf config.bluetooth.enable {
services.blueman.enable = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
services.upower = {
enable = true;
};
};
} }

13
common/nixos/default.nix Normal file
View file

@ -0,0 +1,13 @@
{lib, ...}: {
imports = [
./common.nix
./laptop.nix
./nfs.nix
./restic.nix
./ssh/default.nix
];
laptop.enable = lib.mkDefault false;
nfs.enable = lib.mkDefault false;
restic.enable = lib.mkDefault true;
}

View file

@ -1,8 +1,20 @@
{...}: { {
config,
lib,
...
}: {
imports = [./bluetooth.nix]; imports = [./bluetooth.nix];
# enable's backlight switching options = {
programs.light.enable = true; laptop.enable = lib.mkEnableOption "Enables Laptop options";
};
# use TLP for power management config = lib.mkIf config.laptop.enable {
services.tlp.enable = true; # enable's backlight switching
programs.light.enable = true;
# use TLP for power management
services.tlp.enable = true;
bluetooth.enable = true;
};
} }

View file

@ -1,33 +1,68 @@
{...}: { {
fileSystems = { config,
"/media" = { lib,
device = "192.168.10.2:/mnt/tank/media"; ...
fsType = "nfs"; }: {
options = ["x-systemd.automount" "noauto" "x-systemd.after=network-online.target" "x-systemd.mount-timeout=90"]; options = {
}; nfs.enable = lib.mkEnableOption "Enables NFS and sets up mounts";
};
"/books" = { config = lib.mkIf config.nfs.enable {
device = "192.168.10.2:/mnt/tank/books"; fileSystems = {
fsType = "nfs"; "/media" = {
options = ["x-systemd.automount" "noauto" "x-systemd.after=network-online.target" "x-systemd.mount-timeout=90"]; device = "192.168.10.2:/mnt/tank/media";
}; fsType = "nfs";
options = [
"x-systemd.automount"
"noauto"
"x-systemd.after=network-online.target"
"x-systemd.mount-timeout=90"
];
};
"/music" = { "/books" = {
device = "192.168.10.2:/mnt/tank/music"; device = "192.168.10.2:/mnt/tank/books";
fsType = "nfs"; fsType = "nfs";
options = ["x-systemd.automount" "noauto" "x-systemd.after=network-online.target" "x-systemd.mount-timeout=90"]; options = [
}; "x-systemd.automount"
"noauto"
"x-systemd.after=network-online.target"
"x-systemd.mount-timeout=90"
];
};
"/projects" = { "/music" = {
device = "192.168.10.2:/mnt/tank/projects"; device = "192.168.10.2:/mnt/tank/music";
fsType = "nfs"; fsType = "nfs";
options = ["x-systemd.automount" "noauto" "x-systemd.after=network-online.target" "x-systemd.mount-timeout=90"]; options = [
}; "x-systemd.automount"
"noauto"
"x-systemd.after=network-online.target"
"x-systemd.mount-timeout=90"
];
};
"/backups" = { "/projects" = {
device = "192.168.10.2:/mnt/tank/backups"; device = "192.168.10.2:/mnt/tank/projects";
fsType = "nfs"; fsType = "nfs";
options = ["x-systemd.automount" "noauto" "x-systemd.after=network-online.target" "x-systemd.mount-timeout=90"]; options = [
"x-systemd.automount"
"noauto"
"x-systemd.after=network-online.target"
"x-systemd.mount-timeout=90"
];
};
"/backups" = {
device = "192.168.10.2:/mnt/tank/backups";
fsType = "nfs";
options = [
"x-systemd.automount"
"noauto"
"x-systemd.after=network-online.target"
"x-systemd.mount-timeout=90"
];
};
}; };
}; };
} }

View file

@ -1,21 +1,33 @@
{ {
config, config,
lib,
user, user,
... ...
}: { }: {
sops.secrets.restic_key = { options = {
owner = config.users.users.${user}.name; restic.enable = lib.mkEnableOption "Enables Restic";
}; };
services.restic.backups = { config = lib.mkIf config.nfs.enable {
backups = { sops.secrets.restic_key = {
user = "${user}"; owner = config.users.users.${user}.name;
repository = "/backups"; };
initialize = true;
passwordFile = "${config.sops.secrets.restic_key.path}"; services.restic.backups = {
paths = ["/home/${user}/repos" "/home/${user}/Documents" "/home/${user}/.local/share/password-store" "/home/${user}/.local/share/buku"]; backups = {
timerConfig = { user = "${user}";
onCalendar = "saturday 23:00"; repository = "/backups";
initialize = true;
passwordFile = "${config.sops.secrets.restic_key.path}";
paths = [
"/home/${user}/repos"
"/home/${user}/Documents"
"/home/${user}/.local/share/password-store"
"/home/${user}/.local/share/buku"
];
timerConfig = {
onCalendar = "saturday 23:00";
};
}; };
}; };
}; };

View file

@ -5,7 +5,6 @@
outputs, outputs,
lib, lib,
config, config,
pkgs,
user, user,
... ...
}: { }: {
@ -14,21 +13,14 @@
# If you want to use modules your own flake exports (from modules/nixos): # If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example # outputs.nixosModules.example
../../common/nixos/common.nix ../../common/nixos/common.nix
../../common/nixos/laptop.nix
../../common/networking/default.nix
../../common/nixos/bluetooth.nix
../../common/nixos/restic.nix
../../common/nixos/ssh/ssh.nix
../../common/gui/steam.nix
../../common/nixos/ssh/ssh_client.nix
../../common/nixos/ssh/ssh_guard.nix
../../common/gui/hyprland.nix ../../common/gui/hyprland.nix
../../common/gui/default.nix
../../common/style/stylix.nix ../../common/style/stylix.nix
../../common/virtualization/default.nix ../../common/nixos/sysctl
../../common/nixos/sysctl/default.nix
../../common/networking ../../common/networking
../../common/nixos
../../common/gui
../../common/virtualization
./auditd.nix ./auditd.nix
./kernel.nix ./kernel.nix
@ -49,6 +41,11 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
laptop.enable = true;
nfs.enable = true;
ssh.enable = true;
ssh_guard.enable = true;
# Bootloader. # Bootloader.
boot = { boot = {
loader = { loader = {