mirror of
https://codeberg.org/jopejoe1/nix-conf.git
synced 2025-06-06 21:09:22 +02:00
move nixos modules to nixos-modules
This commit is contained in:
parent
7394c5f317
commit
611796f02e
29 changed files with 225 additions and 7 deletions
33
nixos-modules/asf/default.nix
Normal file
33
nixos-modules/asf/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.asf;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.asf = {
|
||||
enable = lib.mkEnableOption "Enable ASF";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.archisteamfarm = {
|
||||
enable = true;
|
||||
web-ui.enable = true;
|
||||
settings = {
|
||||
LicenseID = "@asfLicenseID@";
|
||||
SteamProtocols = 7;
|
||||
AutoSteamSaleEvent = true;
|
||||
};
|
||||
bots.jopejoe1 = {
|
||||
username = "jopejoe1";
|
||||
enabled = true;
|
||||
passwordFile = "/var/lib/asf/pw";
|
||||
settings = {
|
||||
AutoSteamSaleEvent = true;
|
||||
FarmingOrders = 9;
|
||||
OnlineStatus = 0;
|
||||
RemoteCommunication = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
72
nixos-modules/audio/default.nix
Normal file
72
nixos-modules/audio/default.nix
Normal file
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.audio;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.audio = {
|
||||
enable = lib.mkEnableOption "Enable Audio";
|
||||
sennheiser-hd-660s = lib.mkEnableOption "Equalizer for Sennheiser HD 660S";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
systemWide = false;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
|
||||
wireplumber.enable = true;
|
||||
|
||||
extraConfig.pipewire."30-noise-filter" = {
|
||||
"context.modules" = [
|
||||
{
|
||||
name = "libpipewire-module-filter-chain";
|
||||
args = {
|
||||
"node.description" = "Noise Canceling source";
|
||||
"media.name" = "Noise Canceling source";
|
||||
"filter.graph" = {
|
||||
nodes = [
|
||||
{
|
||||
type = "ladspa";
|
||||
name = "rnnoise";
|
||||
plugin = "${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
|
||||
label = "noise_suppressor_mono";
|
||||
control = {
|
||||
"VAD Threshold (%)" = 50.0;
|
||||
#"VAD Grace Period (ms)" = 0;
|
||||
"Retroactive VAD Grace (ms)" = 50;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
"capture.props" = {
|
||||
"node.name" = "capture.rnnoise_source";
|
||||
"node.passive" = true;
|
||||
"audio.rate" = 48000;
|
||||
};
|
||||
"playback.props" = {
|
||||
"node.name" = "rnnoise_source";
|
||||
"media.class" = "Audio/Source";
|
||||
"audio.rate" = 48000;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [ ./sennheiser-hd660s.nix ];
|
||||
}
|
191
nixos-modules/audio/sennheiser-hd660s.nix
Normal file
191
nixos-modules/audio/sennheiser-hd660s.nix
Normal file
|
@ -0,0 +1,191 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.audio;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.sennheiser-hd-660s {
|
||||
services.pipewire = {
|
||||
extraConfig.pipewire."20-Senheiser-HD660S" = {
|
||||
"context.modules" = [
|
||||
{
|
||||
name = "libpipewire-module-filter-chain";
|
||||
args = {
|
||||
"node.description" = "Senheiser HD 660 S Equaliser";
|
||||
"media.name" = "Senheiser HD 660 S Equaliser";
|
||||
"filter.graph" = {
|
||||
nodes = [
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_1";
|
||||
label = "bq_highshelf";
|
||||
control = {
|
||||
"Freq" = 0.0;
|
||||
"Q" = 1.0;
|
||||
"Gain" = -6.4;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_2";
|
||||
label = "bq_lowshelf";
|
||||
control = {
|
||||
"Freq" = 105.0;
|
||||
"Q" = 0.7;
|
||||
"Gain" = 6.5;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_3";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 178.0;
|
||||
"Q" = 0.49;
|
||||
"Gain" = -3.2;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_4";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 1222.0;
|
||||
"Q" = 2.34;
|
||||
"Gain" = -2.3;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_5";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 5470.0;
|
||||
"Q" = 4.4;
|
||||
"Gain" = -7.3;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_6";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 7899.0;
|
||||
"Q" = 0.68;
|
||||
"Gain" = 6.5;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_7";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 784.0;
|
||||
"Q" = 3.52;
|
||||
"Gain" = -0.4;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_8";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 2250.0;
|
||||
"Q" = 3.58;
|
||||
"Gain" = 1.3;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_9";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 3380.0;
|
||||
"Q" = 2.84;
|
||||
"Gain" = -0.9;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_10";
|
||||
label = "bq_peaking";
|
||||
control = {
|
||||
"Freq" = 6701.0;
|
||||
"Q" = 6.0;
|
||||
"Gain" = 1.2;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "builtin";
|
||||
name = "eq_band_11";
|
||||
label = "bq_highshelf";
|
||||
control = {
|
||||
"Freq" = 10000.0;
|
||||
"Q" = 0.7;
|
||||
"Gain" = -1.1;
|
||||
};
|
||||
}
|
||||
];
|
||||
links = [
|
||||
{
|
||||
output = "eq_band_1:Out";
|
||||
input = "eq_band_2:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_2:Out";
|
||||
input = "eq_band_3:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_3:Out";
|
||||
input = "eq_band_4:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_4:Out";
|
||||
input = "eq_band_5:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_5:Out";
|
||||
input = "eq_band_6:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_6:Out";
|
||||
input = "eq_band_7:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_7:Out";
|
||||
input = "eq_band_8:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_8:Out";
|
||||
input = "eq_band_9:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_9:Out";
|
||||
input = "eq_band_10:In";
|
||||
}
|
||||
{
|
||||
output = "eq_band_10:Out";
|
||||
input = "eq_band_11:In";
|
||||
}
|
||||
];
|
||||
};
|
||||
"audio.channels" = 2;
|
||||
"audio.position" = [
|
||||
"FL"
|
||||
"FR"
|
||||
];
|
||||
"capture.props" = {
|
||||
"node.name" = "effect_input.eq11";
|
||||
"media.class" = "Audio/Sink";
|
||||
};
|
||||
"playback.props" = {
|
||||
"node.name" = "effect_output.eq11";
|
||||
"node.passive" = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
28
nixos-modules/auto-update/default.nix
Normal file
28
nixos-modules/auto-update/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.auto-update;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.auto-update = {
|
||||
enable = lib.mkEnableOption "Enable Auto-Updates";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
randomizedDelaySec = "30min";
|
||||
flake =
|
||||
if config.services.archisteamfarm.enable then
|
||||
"$(${pkgs.coreutils}/bin/rm -rf /var/lib/update-repo && ${lib.getExe pkgs.git} clone git@codeberg.org:jopejoe1/nix-conf.git /var/lib/update-repo -q --depth=1 && ${lib.getExe pkgs.git} -C /var/lib/update-repo am /home/jopejoe1/.config/patches/0001-add-liscense.patch -q)/var/lib/update-repo"
|
||||
else
|
||||
"github:jopejoe1/nix-conf";
|
||||
dates = "hourly";
|
||||
};
|
||||
};
|
||||
}
|
15
nixos-modules/bluetooth/default.nix
Normal file
15
nixos-modules/bluetooth/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.bluetooth;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.bluetooth = {
|
||||
enable = lib.mkEnableOption "Enable Bluetooth";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
};
|
||||
}
|
5
nixos-modules/boot/default.nix
Normal file
5
nixos-modules/boot/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./systemd ];
|
||||
}
|
26
nixos-modules/boot/systemd/default.nix
Normal file
26
nixos-modules/boot/systemd/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.boot.systemd;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.boot.systemd = {
|
||||
enable = lib.mkEnableOption "Enable Systemd boot";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
editor = false;
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
33
nixos-modules/default.nix
Normal file
33
nixos-modules/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ self, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./asf
|
||||
./audio
|
||||
./auto-update
|
||||
./bluetooth
|
||||
./boot
|
||||
./doc
|
||||
./events
|
||||
./kodi
|
||||
./keyboard
|
||||
./local
|
||||
./minecraft-server
|
||||
./moodle-dl
|
||||
./nix
|
||||
./plasma
|
||||
./printing
|
||||
./repo-sync
|
||||
./ssh
|
||||
./steam
|
||||
./sway
|
||||
./users
|
||||
./zerotierone
|
||||
../upstream
|
||||
self.inputs.disko.nixosModules.disko
|
||||
self.inputs.home-manager.nixosModules.home-manager
|
||||
self.inputs.nixos-generators.nixosModules.all-formats
|
||||
self.inputs.sops-nix.nixosModules.sops
|
||||
self.inputs.catppuccin.nixosModules.catppuccin
|
||||
];
|
||||
}
|
39
nixos-modules/doc/default.nix
Normal file
39
nixos-modules/doc/default.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.doc;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.doc = {
|
||||
enable = lib.mkEnableOption "Enable Documentation";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
documentation = {
|
||||
enable = true;
|
||||
doc.enable = true;
|
||||
dev.enable = true;
|
||||
info.enable = true;
|
||||
nixos = {
|
||||
enable = true;
|
||||
includeAllModules = true;
|
||||
options.warningsAreErrors = false;
|
||||
};
|
||||
man = {
|
||||
enable = true;
|
||||
generateCaches = false;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
man-pages
|
||||
man-pages-posix
|
||||
linux-manual
|
||||
];
|
||||
};
|
||||
}
|
58
nixos-modules/events/37c3/default.nix
Normal file
58
nixos-modules/events/37c3/default.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.events."37c3";
|
||||
in
|
||||
{
|
||||
options.events."37c3" = {
|
||||
enable = lib.mkEnableOption "Enable settings for the 37c3 event";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
networking.networkmanager.ensureProfiles.profiles = {
|
||||
"37C3" = {
|
||||
connection = {
|
||||
id = "37C3";
|
||||
type = "wifi";
|
||||
interface-name = "wlan0";
|
||||
};
|
||||
wifi = {
|
||||
mode = "infrastructure";
|
||||
ssid = "37C3";
|
||||
};
|
||||
wifi-security = {
|
||||
auth-alg = "open";
|
||||
key-mgmt = "wpa-eap";
|
||||
};
|
||||
"802-1x" = {
|
||||
anonymous-identity = "37C3";
|
||||
eap = "ttls;";
|
||||
identity = "37C3";
|
||||
password = "37C3";
|
||||
phase2-auth = "mschapv2";
|
||||
};
|
||||
ipv4 = {
|
||||
method = "auto";
|
||||
};
|
||||
ipv6 = {
|
||||
addr-gen-mode = "default";
|
||||
method = "auto";
|
||||
};
|
||||
};
|
||||
networking.wireless.networks."37C3".auth = ''
|
||||
key_mgmt=WPA-EAP
|
||||
eap=TTLS
|
||||
identity="37C3"
|
||||
password="37C3"
|
||||
ca_cert="${
|
||||
builtins.fetchurl {
|
||||
url = "https://letsencrypt.org/certs/isrgrootx1.pem";
|
||||
sha256 = "sha256:1la36n2f31j9s03v847ig6ny9lr875q3g7smnq33dcsmf2i5gd92";
|
||||
}
|
||||
}"
|
||||
altsubject_match="DNS:radius.c3noc.net"
|
||||
phase2="auth=PAP"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
5
nixos-modules/events/default.nix
Normal file
5
nixos-modules/events/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./37c3 ];
|
||||
}
|
32
nixos-modules/keyboard/default.nix
Normal file
32
nixos-modules/keyboard/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.keyboard;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.keyboard = {
|
||||
enable = lib.mkEnableOption "Enable Keyboard";
|
||||
layout = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "us";
|
||||
description = lib.mdDoc "Keyboard Layout.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services = {
|
||||
xserver = {
|
||||
xkb.layout = cfg.layout;
|
||||
};
|
||||
};
|
||||
console = {
|
||||
enable = true;
|
||||
keyMap = cfg.layout;
|
||||
};
|
||||
};
|
||||
}
|
40
nixos-modules/kodi/default.nix
Normal file
40
nixos-modules/kodi/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.kodi;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.kodi = {
|
||||
enable = lib.mkEnableOption "Enable Kodi";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.kodi-wayland ];
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.kodi = {
|
||||
enable = false;
|
||||
package = pkgs.kodi-wayland;
|
||||
};
|
||||
displayManager = {
|
||||
lightdm = {
|
||||
enable = true;
|
||||
autoLogin.timeout = 3;
|
||||
};
|
||||
};
|
||||
};
|
||||
services.displayManager = {
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "jopejoe1";
|
||||
};
|
||||
sddm.enable = lib.mkForce false;
|
||||
};
|
||||
};
|
||||
}
|
53
nixos-modules/local/default.nix
Normal file
53
nixos-modules/local/default.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.local;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.local = {
|
||||
enable = lib.mkEnableOption "Enable Locals";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
xdg = {
|
||||
sounds.enable = config.jopejoe1.gui.enable;
|
||||
mime.enable = true;
|
||||
menus.enable = config.jopejoe1.gui.enable;
|
||||
icons.enable = config.jopejoe1.gui.enable;
|
||||
autostart.enable = true;
|
||||
portal = {
|
||||
enable = config.jopejoe1.gui.enable;
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal ];
|
||||
};
|
||||
};
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_NZ.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
LC_CTYPE = "de_DE.UTF-8";
|
||||
LC_COLLATE = "de_DE.UTF-8";
|
||||
LC_MESSAGES = "en_NZ.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
LOG_ICONS = "true";
|
||||
};
|
||||
|
||||
fonts.fontDir.enable = true;
|
||||
};
|
||||
}
|
28
nixos-modules/minecraft-server/default.nix
Normal file
28
nixos-modules/minecraft-server/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.minecraft-server;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.minecraft-server = {
|
||||
enable = lib.mkEnableOption "Enable Bluetooth";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.minecraft-server = {
|
||||
enable = true;
|
||||
eula = true;
|
||||
openFirewall = true;
|
||||
declarative = true;
|
||||
serverProperties = {
|
||||
difficulty = 3;
|
||||
enable-rcon = true;
|
||||
"rcon.password" = "test";
|
||||
motd = "\\u00A7cWake up to reality! Nothing ever goes as planned in this accursed world.☯";
|
||||
spawn-protection = 0;
|
||||
level-type = "minecraft:amplified";
|
||||
level-name = "amplified_world";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
44
nixos-modules/moodle-dl/default.nix
Normal file
44
nixos-modules/moodle-dl/default.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.moodle-dl;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.moodle-dl = {
|
||||
enable = lib.mkEnableOption "Enable moodle-dl";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.timers."moodle-dl" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "5m";
|
||||
OnUnitActiveSec = "1h";
|
||||
Unit = "moodle-dl.service";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."moodle-dl" = {
|
||||
script = ''
|
||||
moodle-dl --path /var/lib/moodle-dl
|
||||
git -C /var/lib/moodle-dl add .
|
||||
git -C /var/lib/moodle-dl commit -m "moodle-dl updated on `$(date)`"
|
||||
'';
|
||||
path = with pkgs; [
|
||||
openssh
|
||||
moodle-dl
|
||||
git
|
||||
coreutils
|
||||
];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
102
nixos-modules/nix/default.nix
Normal file
102
nixos-modules/nix/default.nix
Normal file
|
@ -0,0 +1,102 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.nix;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.nix = {
|
||||
enable = lib.mkEnableOption "Enable Nix";
|
||||
};
|
||||
options.jopejoe1.gui = {
|
||||
enable = lib.mkEnableOption "Enable GUI";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
nix = {
|
||||
settings = {
|
||||
substituters = lib.mkForce [
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-public-keys = lib.mkForce [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
trusted-users = [ "root" ];
|
||||
sandbox = true;
|
||||
require-sigs = true;
|
||||
max-jobs = "auto";
|
||||
auto-optimise-store = true;
|
||||
allowed-users = [ "*" ];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
warn-dirty = true;
|
||||
use-xdg-base-directories = true;
|
||||
keep-going = true;
|
||||
builders-use-substitutes = true;
|
||||
};
|
||||
distributedBuilds = true;
|
||||
package = pkgs.lix;
|
||||
registry = lib.mkForce (
|
||||
(lib.mapAttrs (_: flake: { inherit flake; })) (
|
||||
(lib.filterAttrs (_: lib.isType "flake")) self.inputs
|
||||
)
|
||||
// {
|
||||
self.flake = self;
|
||||
}
|
||||
);
|
||||
nixPath = lib.mkForce [ "/etc/nix/path" ];
|
||||
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
nvidia.acceptLicense = true;
|
||||
};
|
||||
overlays = [
|
||||
(_self: super: rec {
|
||||
firefox-addons = self.inputs.firefox-addons.packages.${config.nixpkgs.hostPlatform.system};
|
||||
localPkgs = self.outputs.packages.${config.nixpkgs.hostPlatform.system};
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
environment.etc = lib.mapAttrs' (name: value: {
|
||||
name = "nix/path/${name}";
|
||||
value.source = value.flake;
|
||||
}) config.nix.registry;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nix-index
|
||||
nix-prefetch-git
|
||||
nixpkgs-review
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "backup";
|
||||
sharedModules = [
|
||||
self.outputs.homeManagerModules.default
|
||||
self.inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
};
|
||||
|
||||
systemd.services.nix-daemon.serviceConfig.LimitNOFILE = lib.mkForce 1048576000;
|
||||
|
||||
networking.hosts = {
|
||||
"192.168.191.46" = [ "zap" ];
|
||||
"192.168.191.142" = [ "kuraokami" ];
|
||||
};
|
||||
users.mutableUsers = false;
|
||||
};
|
||||
}
|
35
nixos-modules/plasma/default.nix
Normal file
35
nixos-modules/plasma/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.plasma;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.plasma = {
|
||||
enable = lib.mkEnableOption "Enable KDE Plasma";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
libinput.enable = true;
|
||||
|
||||
displayManager.sddm = {
|
||||
enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
desktopManager.plasma6 = {
|
||||
enable = true;
|
||||
enableQt5Integration = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.kdeconnect = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
};
|
||||
}
|
36
nixos-modules/printing/default.nix
Normal file
36
nixos-modules/printing/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.printing;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.printing = {
|
||||
enable = lib.mkEnableOption "Enable Printing";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.printing = {
|
||||
enable = true;
|
||||
webInterface = true;
|
||||
drivers = with pkgs; [ ];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = with pkgs; [ sane-airscan ];
|
||||
};
|
||||
};
|
||||
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
52
nixos-modules/repo-sync/default.nix
Normal file
52
nixos-modules/repo-sync/default.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.repo-sync;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.repo-sync = {
|
||||
enable = lib.mkEnableOption "Enable Repo Sync";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.timers."repo-sync" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "5m";
|
||||
OnUnitActiveSec = "15m";
|
||||
Unit = "repo-sync.service";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."repo-sync" = {
|
||||
script = ''
|
||||
git clone git@codeberg.org:jopejoe1/nix-conf.git /var/lib/repo-sync
|
||||
git -C /var/lib/repo-sync remote add github git@github.com:jopejoe1/nix-conf.git
|
||||
git -C /var/lib/repo-sync remote add gitlab git@gitlab.com:jopejoe1/nix-conf.git
|
||||
git -C /var/lib/repo-sync pull -r github main
|
||||
git -C /var/lib/repo-sync pull -r gitlab main
|
||||
nix flake update /var/lib/repo-sync
|
||||
git -C /var/lib/repo-sync commit -m "flack.lock updated on `$(date)`"
|
||||
git -C /var/lib/repo-sync push origin
|
||||
git -C /var/lib/repo-sync push github
|
||||
git -C /var/lib/repo-sync push gitlab
|
||||
rm -r /var/lib/repo-sync
|
||||
'';
|
||||
path = [
|
||||
pkgs.openssh
|
||||
pkgs.git
|
||||
pkgs.coreutils
|
||||
pkgs.nix
|
||||
];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
27
nixos-modules/ssh/default.nix
Normal file
27
nixos-modules/ssh/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.ssh;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.ssh = {
|
||||
enable = lib.mkEnableOption "Enable ssh";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
banner = "Hackers are in Your System!!!\n";
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "prohibit-password";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
29
nixos-modules/steam/default.nix
Normal file
29
nixos-modules/steam/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.steam;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.steam = {
|
||||
enable = lib.mkEnableOption "Enable Steam";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
extest.enable = true;
|
||||
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
||||
};
|
||||
};
|
||||
}
|
16
nixos-modules/sway/default.nix
Normal file
16
nixos-modules/sway/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.sway;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.sway = {
|
||||
enable = lib.mkEnableOption "Enable Sway";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
8
nixos-modules/users/default.nix
Normal file
8
nixos-modules/users/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./root
|
||||
./jopejoe1
|
||||
];
|
||||
}
|
88
nixos-modules/users/jopejoe1/default.nix
Normal file
88
nixos-modules/users/jopejoe1/default.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.user.jopejoe1;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.user.jopejoe1 = {
|
||||
enable = lib.mkEnableOption "Enable jopejoe1 user";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.jopejoe1 = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.nushell;
|
||||
description = "Johannes Jöns";
|
||||
hashedPassword = "$2b$05$Uk84TY/RHlH8DIigUlFYjeorjTlCMEY9wN2pAcw5BLaPoc7dKiSsC";
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"pipewire"
|
||||
"audio"
|
||||
"adbusers"
|
||||
];
|
||||
uid = 1000;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB8oyMpS2hK3gQXyHIIVS6oilgMpemLmfhKKJ6RBMwUh johannes@joens.email"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP3pKtvhOOjG1pGJq7cVHS5uWy5IP8y1Ra/ENpmJcqOe root@zap"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFEcNAVRN66mfKmaCpxs++0094Eh4mqXkUwDPZPkIIBB johannes@joens.email"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFZDUoC+1lNR2JTY1Q+vhXpuLmKMdVl2OMFLVbQ3cGkw jopejoe1@kuraokami"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKm2igbJ+Ke+dJO3r7wp5ZTreHqC39Sjctca119Bl2yc jopejoe1@zap"
|
||||
];
|
||||
packages =
|
||||
with pkgs;
|
||||
[ ]
|
||||
++ lib.optionals config.jopejoe1.gui.enable [
|
||||
libsForQt5.kate
|
||||
libsForQt5.ark
|
||||
element-desktop
|
||||
mumble
|
||||
libreoffice-qt-fresh
|
||||
|
||||
# Theming
|
||||
catppuccin-kvantum
|
||||
catppuccin-kde
|
||||
#catppuccin-gtk
|
||||
tela-icon-theme
|
||||
vesktop
|
||||
];
|
||||
};
|
||||
home-manager.users.jopejoe1 = {
|
||||
home = {
|
||||
username = config.users.users.jopejoe1.name;
|
||||
homeDirectory = config.users.users.jopejoe1.home;
|
||||
stateVersion = config.system.stateVersion;
|
||||
};
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
};
|
||||
jopejoe1 = {
|
||||
common = {
|
||||
enable = true;
|
||||
gui.enable = config.jopejoe1.gui.enable;
|
||||
fonts = {
|
||||
serif = config.fonts.fontconfig.defaultFonts.serif;
|
||||
sansSerif = config.fonts.fontconfig.defaultFonts.sansSerif;
|
||||
monospace = config.fonts.fontconfig.defaultFonts.monospace;
|
||||
emoji = config.fonts.fontconfig.defaultFonts.emoji;
|
||||
};
|
||||
};
|
||||
nushell.enable = true;
|
||||
git.enable = true;
|
||||
direnv.enable = true;
|
||||
sway.enable = true;
|
||||
firefox.enable = config.jopejoe1.gui.enable;
|
||||
};
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "frappe";
|
||||
accent = "mauve";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
40
nixos-modules/users/root/default.nix
Normal file
40
nixos-modules/users/root/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.user.root;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.user.root = {
|
||||
enable = lib.mkEnableOption "Enable root user";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.root = {
|
||||
hashedPassword = "$2b$05$Uk84TY/RHlH8DIigUlFYjeorjTlCMEY9wN2pAcw5BLaPoc7dKiSsC";
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB8oyMpS2hK3gQXyHIIVS6oilgMpemLmfhKKJ6RBMwUh johannes@joens.email"
|
||||
];
|
||||
};
|
||||
home-manager.users.root = {
|
||||
home = {
|
||||
username = config.users.users.root.name;
|
||||
homeDirectory = config.users.users.root.home;
|
||||
stateVersion = config.system.stateVersion;
|
||||
};
|
||||
jopejoe1 = {
|
||||
common = {
|
||||
enable = true;
|
||||
gui.enable = config.jopejoe1.gui.enable;
|
||||
fonts = {
|
||||
serif = config.fonts.fontconfig.defaultFonts.serif;
|
||||
sansSerif = config.fonts.fontconfig.defaultFonts.sansSerif;
|
||||
monospace = config.fonts.fontconfig.defaultFonts.monospace;
|
||||
emoji = config.fonts.fontconfig.defaultFonts.emoji;
|
||||
};
|
||||
};
|
||||
git.enable = true;
|
||||
direnv.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
24
nixos-modules/zerotierone/default.nix
Normal file
24
nixos-modules/zerotierone/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.jopejoe1.zerotierone;
|
||||
in
|
||||
{
|
||||
options.jopejoe1.zerotierone = {
|
||||
enable = lib.mkEnableOption "Enable zerotierone";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.zerotierone.enable = true;
|
||||
services.zerotierone.joinNetworks = [
|
||||
"9e1948db638e9f93"
|
||||
] ++ lib.optional (config.networking.hostName == "kuraokami") "7c31a21e86f9a75c";
|
||||
services.zerotierone.port = 9993;
|
||||
environment.systemPackages = with pkgs; lib.optional config.jopejoe1.gui.enable moonlight-qt;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue