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 =
(enableAttrs [
"vpn"
"desktop"
"hyprland"
"chrome"
"docker"
"nix-ld"
"vbox"
"backups"
])
// {
languages = [
"misc"
"nim"
"node"
"nushell"
"python"
"roc"
"tex"
"zig"
];
oizys = {
vpn = enabled;
desktop = enabled;
hyprland = enabled;
chrome = enabled;
docker = enabled;
nix-ld = enabled // {
overkill = enabled;
};
vbox = enabled;
backups = enabled;
languages = [
"misc"
"nim"
"node"
"nushell"
"python"
"roc"
"tex"
"zig"
];
};
services.restic.backups.gdrive = {
user = "daylin";

View file

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

View file

@ -5,68 +5,109 @@
...
}:
let
inherit (lib) mkEnableOption mkIf;
inherit (lib)
mkEnableOption
mkIf
mkOption
literalExpression
types
;
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
{
options.oizys.nix-ld.enable = mkEnableOption "enable nix-ld support";
config = mkIf cfg.enable {
programs.nix-ld.enable = true;
options.oizys.nix-ld = {
enable = mkEnableOption "enable nix-ld support";
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
- [ ] 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
- [ ] lid closed does not engage hyprlock?