1 封装nix-fhs使用nix-ld

2 修改生成hylrland配置文件的方式
3 启用flatpak
This commit is contained in:
2025-05-19 10:20:28 +08:00
parent 05c8ab6c82
commit 91b8e65a79
11 changed files with 265 additions and 145 deletions

View File

@@ -0,0 +1,142 @@
{ 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;
};
};
}