refactor: normalize module namespaces and attrsets

This commit is contained in:
Philipp 2026-08-08 15:30:52 +02:00
commit df02ca7e4e
Signed by: Philipp
GPG key ID: B27C3DE2FD94AFC3
15 changed files with 191 additions and 167 deletions

View file

@ -61,9 +61,9 @@ let
);
overlays = rec {
cinny = import ../overlays/cinny;
cinny = import ../overlays/cinny { inherit namespace; };
redlib-fixed = import ../overlays/redlib-fixed;
technitium-dns-server = import ../overlays/technitium-dns-server;
technitium-dns-server = import ../overlays/technitium-dns-server { inherit namespace; };
packages = packageOverlay;
default =
final: prev:
@ -89,7 +89,7 @@ let
commonSpecialArgs = {
inherit inputs flakeRoot namespace;
lib = lib;
inherit lib;
};
commonHomeSpecialArgs = commonSpecialArgs // {
lib = homeLib;
@ -106,10 +106,12 @@ let
nixpkgs.overlays = [ overlays.default ];
nixpkgs.config.allowUnfree = true;
home-manager.useGlobalPkgs = true;
home-manager.backupFileExtension = "bk-hm";
home-manager.sharedModules = commonHomeModules;
home-manager.extraSpecialArgs = commonHomeSpecialArgs;
home-manager = {
useGlobalPkgs = true;
backupFileExtension = "bk-hm";
sharedModules = commonHomeModules;
extraSpecialArgs = commonHomeSpecialArgs;
};
}
];

View file

@ -1,12 +1,11 @@
{
lib,
pkgs,
namespace,
...
}:
with lib.${namespace};
{
awesome-flake = {
${namespace} = {
cli = {
fish = enabled;
git = enabled;

View file

@ -20,44 +20,46 @@ in
config = mkIf cfg.enable {
home.packages = [ inputs.deploy-rs.packages.${pkgs.stdenv.hostPlatform.system}.default ];
programs.fish = {
enable = true;
shellAliases = {
nix-aquarius = "deploy ${flakeRoot}#aquarius";
nix-blarm = "deploy ${flakeRoot}#blarm";
nix-dns = "deploy --targets ${flakeRoot}#dns-1 ${flakeRoot}#dns-2";
cd = "z";
ls = "exa --icons";
l = "exa";
programs = {
fish = {
enable = true;
shellAliases = {
nix-aquarius = "deploy ${flakeRoot}#aquarius";
nix-blarm = "deploy ${flakeRoot}#blarm";
nix-dns = "deploy --targets ${flakeRoot}#dns-1 ${flakeRoot}#dns-2";
cd = "z";
ls = "exa --icons";
l = "exa";
};
plugins = [
{
name = "fzf";
src = pkgs.fishPlugins.fzf.src;
}
{
name = "hydro";
src = pkgs.fishPlugins.hydro.src;
}
{
name = "sponge";
src = pkgs.fishPlugins.sponge.src;
}
{
name = "z";
src = pkgs.fishPlugins.z.src;
}
];
};
plugins = [
{
name = "fzf";
src = pkgs.fishPlugins.fzf.src;
}
{
name = "hydro";
src = pkgs.fishPlugins.hydro.src;
}
{
name = "sponge";
src = pkgs.fishPlugins.sponge.src;
}
{
name = "z";
src = pkgs.fishPlugins.z.src;
}
];
};
programs.zoxide = {
enable = true;
enableFishIntegration = true;
};
zoxide = {
enable = true;
enableFishIntegration = true;
};
programs.eza = {
enable = true;
enableFishIntegration = true;
eza = {
enable = true;
enableFishIntegration = true;
};
};
};

View file

@ -39,7 +39,7 @@ in
};
};
environment.plasma6.excludePackages = [ ] ++ excludePackages ++ cfg.extraExcludePackages;
environment.plasma6.excludePackages = excludePackages ++ cfg.extraExcludePackages;
networking.networkmanager = {
enable = true;

View file

@ -17,12 +17,66 @@ in
};
config = mkIf cfg.enable {
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
services = {
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
extraConfig.pipewire = {
"90-nullsink" = {
"context.object" = [
{
factory = "adapter";
args = {
"factory.name" = "support.null-audio-sink";
"node.name" = "Null Sink";
"media.class" = "Audio/Sink";
"audio.position" = "[ FL FR ]";
"monitor.channel-volumes" = "true";
"monitor.passthrough" = "true";
"adapter.auto-port-config" = {
"mode" = "dsp";
"monitor" = "true";
"position" = "preserve";
};
};
}
];
};
"90-loopback" = {
"context.modules" = [
{
name = "libpipewire-module-loopback";
args = {
"node.description" = "Scarlett 2i2 Loopback";
"capture.props" = {
"node.name" = "Scarlett_2i2_Loopback";
"media.class" = "Audio/Sink";
"audio.position" = "[ FL FR ]";
};
"playback.props" = {
"node.name" = "playback.Scarlett_2i2_Loopback";
"audio.position" = "[ AUX0 AUX1 ]";
"target.object" = "alsa_output.usb-Focusrite_Scarlett_2i2_USB-00.pro-output-0";
"stream.dont-reconnect" = "true";
"node.dont-reconnect" = "false";
"node.passive" = "true";
};
};
}
];
};
};
};
udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1235", ATTR{idProduct}=="8202", TEST=="power/control", ATTR{power/control}="on"
'';
pulseaudio.enable = false;
};
xdg.portal = {
@ -34,11 +88,6 @@ in
extraPortals = with pkgs; [ kdePackages.xdg-desktop-portal-kde ];
};
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1235", ATTR{idProduct}=="8202", TEST=="power/control", ATTR{power/control}="on"
'';
services.pulseaudio.enable = false;
environment.systemPackages =
with pkgs;
[
@ -47,52 +96,6 @@ in
twitch-hls-client
]
++ cfg.extra-packages;
services.pipewire.extraConfig.pipewire = {
"90-nullsink" = {
"context.object" = [
{
factory = "adapter";
args = {
"factory.name" = "support.null-audio-sink";
"node.name" = "Null Sink";
"media.class" = "Audio/Sink";
"audio.position" = "[ FL FR ]";
"monitor.channel-volumes" = "true";
"monitor.passthrough" = "true";
"adapter.auto-port-config" = {
"mode" = "dsp";
"monitor" = "true";
"position" = "preserve";
};
};
}
];
};
"90-loopback" = {
"context.modules" = [
{
name = "libpipewire-module-loopback";
args = {
"node.description" = "Scarlett 2i2 Loopback";
"capture.props" = {
"node.name" = "Scarlett_2i2_Loopback";
"media.class" = "Audio/Sink";
"audio.position" = "[ FL FR ]";
};
"playback.props" = {
"node.name" = "playback.Scarlett_2i2_Loopback";
"audio.position" = "[ AUX0 AUX1 ]";
"target.object" = "alsa_output.usb-Focusrite_Scarlett_2i2_USB-00.pro-output-0";
"stream.dont-reconnect" = "true";
"node.dont-reconnect" = "false";
"node.passive" = "true";
};
};
}
];
};
};
};
}

View file

@ -1,5 +1,4 @@
{
options,
config,
lib,
pkgs,
@ -17,26 +16,37 @@ in
};
config = mkIf cfg.enable {
programs.steam = {
enable = true;
gamescopeSession.enable = true;
protontricks.enable = true;
remotePlay.openFirewall = true;
programs = {
steam = {
enable = true;
extest.enable = true;
gamescopeSession.enable = true;
protontricks.enable = true;
remotePlay.openFirewall = true;
extraPackages = with pkgs; [
steamtinkerlaunch
proton-ge-bin
mangohud
];
};
extraCompatPackages = with pkgs; [
proton-ge-bin
steamtinkerlaunch
];
programs.gamemode = {
enable = true;
settings = {
general.renice = 10;
custom = {
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started.'";
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended.'";
extraPackages = with pkgs; [
mangohud
];
};
gamescope = {
capSysNice = true;
enableWsi = true;
};
gamemode = {
enable = true;
settings = {
general.renice = 10;
custom = {
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started.'";
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended.'";
};
};
};
};

View file

@ -68,7 +68,6 @@ in
noto-fonts-cjk-serif
noto-fonts-color-emoji
nerd-fonts.hack
#(pkgs.awesome-flake.ttf-ms-win11.override { acceptEula = true; })
]
++ cfg.fonts;
};

View file

@ -1,5 +1,6 @@
{ namespace }:
final: prev: {
awesome-flake = (prev.awesome-flake or { }) // {
${namespace} = (prev.${namespace} or { }) // {
cinny = prev.cinny-unwrapped.overrideAttrs (_old: rec {
pname = "cinny-unwrapped";
version = "dev";

View file

@ -1,4 +1,4 @@
final: prev:
_final: prev:
let
redlibSrc = prev.fetchFromGitHub {

View file

@ -1,16 +1,6 @@
{ namespace }:
final: prev: {
awesome-flake = (prev.awesome-flake or { }) // {
technitium-dns-server = prev.technitium-dns-server.overrideAttrs (_old: rec {
pname = "technitium-dns-server";
version = "13.6.0";
src = final.fetchFromGitHub {
owner = "TechnitiumSoftware";
repo = "DnsServer";
tag = "v${version}";
hash = "sha256-2OSuLGWdaiiPxyW0Uvq736wHKa7S3CHv79cmZZ86GRE=";
name = "${pname}-${version}";
};
});
${namespace} = (prev.${namespace} or { }) // {
inherit (final) technitium-dns-server;
};
}

View file

@ -48,12 +48,16 @@ with lib.${namespace};
];
};
services.openssh.settings.PasswordAuthentication = false;
services.openssh.settings.PermitRootLogin = "no";
services = {
openssh.settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
};
services.cron = enabled;
cron = enabled;
};
awesome-flake = {
${namespace} = {
services = {
ssh = enabled;
technitium-dns-server = enabled;

View file

@ -9,30 +9,35 @@
firewall.enable = true;
};
systemd.network.enable = true;
services.resolved.enable = true;
systemd.network.networks."99-ignore-wg" = {
matchConfig.Name = "wg*";
networkConfig = {
ConfigureWithoutCarrier = true;
};
linkConfig = {
Unmanaged = "yes";
};
};
systemd.network = {
enable = true;
systemd.network.networks."10-end0" = {
matchConfig.Name = "end0";
networkConfig.DHCP = "yes";
networks = {
"99-ignore-wg" = {
matchConfig.Name = "wg*";
networkConfig = {
ConfigureWithoutCarrier = true;
};
linkConfig = {
Unmanaged = "yes";
};
};
dhcpV4Config = {
UseDNS = true;
UseRoutes = true;
};
"10-end0" = {
matchConfig.Name = "end0";
networkConfig.DHCP = "yes";
dhcpV6Config = {
UseDNS = true;
dhcpV4Config = {
UseDNS = true;
UseRoutes = true;
};
dhcpV6Config = {
UseDNS = true;
};
};
};
};

View file

@ -40,7 +40,7 @@ with lib.${namespace};
];
};
awesome-flake = {
${namespace} = {
services = {
ssh = enabled;
cinny = enabled;

View file

@ -1,6 +1,5 @@
{
lib,
pkgs,
namespace,
...
}:
@ -12,6 +11,9 @@ with lib.${namespace};
boot = {
binfmt.emulatedSystems = [ "aarch64-linux" ];
initrd.kernelModules = [ "amdgpu" ];
kernelParams = [ "amd_pstate=active" ];
kernel.sysctl."vm.max_map_count" = 2147483642;
loader = {
efi.canTouchEfiVariables = true;
systemd-boot = {
@ -53,7 +55,14 @@ with lib.${namespace};
services.teamviewer.enable = true;
services.flatpak.enable = true;
awesome-flake = {
zramSwap = {
enable = true;
algorithm = "zstd";
memoryPercent = 50;
priority = 100;
};
${namespace} = {
cli = {
neovim = enabled;
eza = enabled;

View file

@ -31,7 +31,7 @@ with lib.${namespace};
enable = true;
};
awesome-flake = {
${namespace} = {
services = {
ssh = enabled;
technitium-dns-server = {