mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-12-22 01:50:44 -06:00
make nix-ld more modular
This commit is contained in:
parent
05b1c15ec1
commit
922fe7de73
4 changed files with 130 additions and 94 deletions
|
@ -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";
|
||||
|
|
|
@ -29,13 +29,14 @@ let
|
|||
}
|
||||
)
|
||||
];
|
||||
specialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
lib
|
||||
self
|
||||
enabled;
|
||||
};
|
||||
specialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
lib
|
||||
self
|
||||
enabled
|
||||
;
|
||||
};
|
||||
};
|
||||
mkSystem =
|
||||
hostName:
|
||||
|
|
|
@ -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 [ ]);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
5
todo.md
5
todo.md
|
@ -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?
|
||||
|
|
Loading…
Reference in a new issue