refactor: normalize module namespaces and attrsets
This commit is contained in:
parent
aa1a527d2b
commit
df02ca7e4e
15 changed files with 191 additions and 167 deletions
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
namespace,
|
||||
...
|
||||
}:
|
||||
with lib.${namespace};
|
||||
{
|
||||
awesome-flake = {
|
||||
${namespace} = {
|
||||
cli = {
|
||||
fish = enabled;
|
||||
git = enabled;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
environment.plasma6.excludePackages = [ ] ++ excludePackages ++ cfg.extraExcludePackages;
|
||||
environment.plasma6.excludePackages = excludePackages ++ cfg.extraExcludePackages;
|
||||
|
||||
networking.networkmanager = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.'";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
final: prev:
|
||||
_final: prev:
|
||||
|
||||
let
|
||||
redlibSrc = prev.fetchFromGitHub {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ with lib.${namespace};
|
|||
];
|
||||
};
|
||||
|
||||
awesome-flake = {
|
||||
${namespace} = {
|
||||
services = {
|
||||
ssh = enabled;
|
||||
cinny = enabled;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ with lib.${namespace};
|
|||
enable = true;
|
||||
};
|
||||
|
||||
awesome-flake = {
|
||||
${namespace} = {
|
||||
services = {
|
||||
ssh = enabled;
|
||||
technitium-dns-server = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue