143 lines
5.8 KiB
Nix
143 lines
5.8 KiB
Nix
{ config, lib, pkgs, ... }:
|
||
let
|
||
conf = config.services.nix-fhs;
|
||
inherit (lib) mkOption mkEnableOption types;
|
||
in
|
||
{
|
||
options.services.nix-fhs = with lib; {
|
||
enable = mkEnableOption "nix-fhs module";
|
||
gui.enable = mkEnableOption "图形/GUI/多媒体/视频相关库";
|
||
|
||
# 在这里定义其他选项
|
||
extraPackages = mkOption {
|
||
type = types.listOf types.package;
|
||
default = [ ];
|
||
example = [ pkgs.gcc pkgs.gdb ];
|
||
description = "额外的nix-ld库";
|
||
};
|
||
};
|
||
|
||
config = lib.mkIf conf.enable {
|
||
# NixOS 系统级配置
|
||
programs.nix-ld = {
|
||
enable = true;
|
||
|
||
# 这里可以添加其他nix-ld相关的配置
|
||
libraries = with pkgs;[
|
||
bzip2 # 高质量的数据压缩库
|
||
cups # 通用Unix打印系统,提供打印功能
|
||
curlWithGnuTls # 使用GnuTLS的URL传输库,用于网络请求
|
||
dbus # 进程间通信系统,用于应用程序之间的通信
|
||
dbus-glib # D-Bus的GLib绑定
|
||
e2fsprogs # ext2/3/4文件系统工具
|
||
expat # XML解析库
|
||
fontconfig # 字体配置和自定义库
|
||
freetype # 字体渲染引擎
|
||
fribidi # Unicode双向文本算法实现
|
||
fuse # 用户空间文件系统接口
|
||
fuse3 # FUSE的第3版,用户空间文件系统接口
|
||
gmp # GNU多精度算术库
|
||
icu # 国际化组件,提供Unicode和全球化支持
|
||
keyutils.lib # Linux密钥管理工具库
|
||
libcap # POSIX能力库
|
||
libgcrypt # GNU加密库
|
||
libgpg-error # GnuPG错误报告库
|
||
libidn # 国际化域名库
|
||
libpng12 # PNG图像编解码库1.2版本
|
||
libsamplerate # 音频采样率转换库
|
||
libuuid # UUID生成和解析库
|
||
libxcrypt-legacy # 旧版密码哈希库
|
||
libxml2 # XML解析和生成库
|
||
nspr # Netscape可移植运行时
|
||
nss # 网络安全服务
|
||
openssl # 安全套接字层库
|
||
p11-kit # PKCS#11模块加载库
|
||
pixman # 像素操作库
|
||
python3 # Python编程语言解释器
|
||
stdenv.cc.cc # 标准C编译器
|
||
tbb # 英特尔线程构建块库
|
||
udev # 设备管理器
|
||
] ++
|
||
(lib.optionals conf.gui.enable [
|
||
atk # 辅助技术工具包,提供辅助功能支持
|
||
cairo # 2D图形渲染库,支持多种输出设备
|
||
desktop-file-utils # 用于处理桌面条目文件的工具
|
||
gdk-pixbuf # 图像加载库,GNOME的一部分
|
||
glib # 通用工具库,提供数据结构处理、移植等功能
|
||
gtk2 # 图形用户界面工具包第2版
|
||
gtk3 # 图形用户界面工具包第3版
|
||
harfbuzz # 文本整形引擎
|
||
pango # 文本布局和渲染库
|
||
alsa-lib # 高级Linux声音架构库,提供音频功能
|
||
flac # 无损音频编解码器
|
||
libcanberra # 声音主题规范的实现
|
||
libjack2 # JACK音频连接套件第2版
|
||
libmikmod # 模块音乐库
|
||
libogg # Ogg多媒体容器格式库
|
||
libvorbis # Vorbis音频编解码库
|
||
speex # 语音压缩格式
|
||
freeglut # OpenGL实用工具包,用于创建OpenGL上下文
|
||
glew110 # OpenGL扩展加载库1.10版本
|
||
gst_all_1.gst-plugins-base # GStreamer基础插件集
|
||
gst_all_1.gst-plugins-ugly # GStreamer非自由插件集
|
||
gst_all_1.gstreamer # 多媒体框架
|
||
libGL # OpenGL库
|
||
libGLU # OpenGL实用工具库
|
||
librsvg # SVG渲染库
|
||
libtheora # Theora视频编解码库
|
||
libtiff # TIFF图像编解码库
|
||
libvdpau # 视频解码和呈现API
|
||
libvpx # VP8/VP9视频编解码库
|
||
mesa # 开源OpenGL实现
|
||
vulkan-loader # Vulkan图形API加载器
|
||
wayland # 显示服务器协议
|
||
at-spi2-atk # 辅助技术服务提供者接口,连接ATK和AT-SPI
|
||
at-spi2-core # 辅助技术服务提供者接口核心组件
|
||
libappindicator-gtk2 # 应用程序指示器库,用于系统托盘图标
|
||
libcaca # 彩色ASCII艺术库
|
||
libclang.lib # Clang编译器库
|
||
libdbusmenu # D-Bus菜单库
|
||
libjpeg # JPEG图像编解码库
|
||
libudev0-shim # 旧版udev库兼容层
|
||
libusb1 # USB设备访问库
|
||
mesa # 开源OpenGL实现
|
||
]) ++
|
||
(lib.optionals (lib.versionAtLeast config.system.stateVersion "25.05") [
|
||
pkgs.libgbm # 通用缓冲区管理库,25.05之前包含在mesa中
|
||
]) ++ (
|
||
if config.services.xserver.enable then
|
||
[
|
||
xorg.libICE # X11 Inter-Client Exchange库
|
||
xorg.libSM # X11会话管理库
|
||
xorg.libX11 # X11客户端库
|
||
xorg.libXScrnSaver # X11屏幕保护扩展库
|
||
xorg.libXcomposite # X11合成扩展库
|
||
xorg.libXcursor # X11光标管理库
|
||
xorg.libXdamage # X11损坏扩展库
|
||
xorg.libXext # X11通用扩展库
|
||
xorg.libXfixes # X11修复扩展库
|
||
xorg.libXft # X11 FreeType接口库
|
||
xorg.libXi # X11输入扩展库
|
||
xorg.libXinerama # X11多显示器扩展库
|
||
xorg.libXmu # X11杂项实用工具库
|
||
xorg.libXrandr # X11调整大小和旋转扩展库
|
||
xorg.libXrender # X11渲染扩展库
|
||
xorg.libXt # X11工具包内省库
|
||
xorg.libXtst # X11测试扩展库
|
||
xorg.libXxf86vm # X11 XFree86视频模式扩展库
|
||
xorg.libpciaccess # X11 PCI访问库
|
||
xorg.libxcb # X11 C绑定库
|
||
xorg.xcbutil # XCB实用工具库
|
||
xorg.xcbutilimage # XCB图像实用工具库
|
||
xorg.xcbutilkeysyms # XCB键符号实用工具库
|
||
xorg.xcbutilrenderutil # XCB渲染实用工具库
|
||
xorg.xcbutilwm # XCB窗口管理实用工具库
|
||
xorg.xkeyboardconfig # X11键盘配置数据库
|
||
]
|
||
else
|
||
[ ]
|
||
) ++ conf.extraPackages;
|
||
};
|
||
};
|
||
}
|