make nix-ld more modular

This commit is contained in:
Daylin Morgan 2024-07-07 14:32:46 -05:00
parent 05b1c15ec1
commit 922fe7de73
Signed by: daylin
GPG key ID: 950D13E9719334AD
4 changed files with 130 additions and 94 deletions

View file

@ -1,28 +1,27 @@
{ enableAttrs, ... }: { enabled, ... }:
{ {
oizys = oizys = {
(enableAttrs [ vpn = enabled;
"vpn" desktop = enabled;
"desktop" hyprland = enabled;
"hyprland" chrome = enabled;
"chrome" docker = enabled;
"docker" nix-ld = enabled // {
"nix-ld" overkill = enabled;
"vbox"
"backups"
])
// {
languages = [
"misc"
"nim"
"node"
"nushell"
"python"
"roc"
"tex"
"zig"
];
}; };
vbox = enabled;
backups = enabled;
languages = [
"misc"
"nim"
"node"
"nushell"
"python"
"roc"
"tex"
"zig"
];
};
services.restic.backups.gdrive = { services.restic.backups.gdrive = {
user = "daylin"; user = "daylin";

View file

@ -29,13 +29,14 @@ let
} }
) )
]; ];
specialArgs = { specialArgs = {
inherit inherit
inputs inputs
lib lib
self self
enabled; enabled
}; ;
};
}; };
mkSystem = mkSystem =
hostName: hostName:

View file

@ -5,68 +5,109 @@
... ...
}: }:
let let
inherit (lib) mkEnableOption mkIf; inherit (lib)
mkEnableOption
mkIf
mkOption
literalExpression
types
;
cfg = config.oizys.nix-ld; cfg = config.oizys.nix-ld;
# https://github.com/NixOS/nixpkgs/blob/a4f437f0f5db62e6bcd7979c10eab177dd0fa188/nixos/modules/programs/nix-ld.nix#L44-L59
defaultLibraries = with pkgs; [
zlib
zstd
stdenv.cc.cc
curl
openssl
attr
libssh
bzip2
libxml2
acl
libsodium
util-linux
xz
systemd
];
# https://github.com/Mic92/dotfiles/blob/340152bdf4bd193269474426ca5d90c479aae0b7/nixos/modules/nix-ld.nix#L7-L58
overkillLibraries = with pkgs; [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
curl
dbus
expat
fontconfig
freetype
fuse3
gdk-pixbuf
glib
gtk3
icu
libGL
libappindicator-gtk3
libdrm
libglvnd
libnotify
libpulseaudio
libunwind
libusb1
libuuid
libxkbcommon
mesa
nspr
nss
openssl
pango
pipewire
stdenv.cc.cc
systemd
vulkan-loader
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
xorg.libxshmfence
zlib
];
in in
{ {
options.oizys.nix-ld.enable = mkEnableOption "enable nix-ld support"; options.oizys.nix-ld = {
config = mkIf cfg.enable { enable = mkEnableOption "enable nix-ld support";
programs.nix-ld.enable = true; extra-libraries = mkOption {
type = types.listOf types.package;
description = "Libraries that automatically become available to all programs.";
default = [ ];
defaultText = literalExpression "baseLibraries derived from systemd and nix dependencies.";
};
overkill.enable = mkEnableOption "enable overkill list of libraries";
# Packages that need at least something in this list:
# Geneious Prime
# list from https://github.com/Mic92/dotfiles/blob/cb180bdd3805b373e556a93ccb275b7f0f902a3b/nixos/modules/nix-ld.nix#L9C3-L60C5
programs.nix-ld.libraries = with pkgs; [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
curl
dbus
expat
fontconfig
freetype
fuse3
gdk-pixbuf
glib
gtk3
icu
libGL
libappindicator-gtk3
libdrm
libglvnd
libnotify
libpulseaudio
libunwind
libusb1
libuuid
libxkbcommon
mesa
nspr
nss
openssl
pango
# pipewire
stdenv.cc.cc
systemd
vulkan-loader
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
xorg.libxshmfence
zlib
];
}; };
config =
mkIf cfg.enable
{
programs.nix-ld.enable = true;
programs.nix-ld.libraries =
defaultLibraries ++ cfg.extra-libraries ++ (if cfg.overkill.enable then overkillLibraries else [ ]);
};
} }

View file

@ -2,11 +2,6 @@
## oizys ## oizys
- [ ] make interoperable with a single command so first installation can be ran by root as:
```sh
nix --extra-experimental-features 'flakes nix-command' run "github:daylinmorgan/oiyzs" switch --host <host>
```
## software ## software
- [ ] lid closed does not engage hyprlock? - [ ] lid closed does not engage hyprlock?