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

@@ -3,7 +3,8 @@
imports = [
./boot.nix
./system.nix
./nixld.nix
./nixfhs.nix
../user.nix
];
environment = {
@@ -15,7 +16,6 @@
programs = {
git.enable = true;
dconf.enable = true;
};
# Configure firewall

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;
};
};
}

View File

@@ -1,129 +0,0 @@
{ config, lib, pkgs, ... }:
{
programs = {
# Allow to run prebuild binary app
nix-ld = {
enable = true;
libraries = with pkgs; [
SDL # 简单直接媒体层,用于图形、音频、输入等的跨平台库
SDL2 # SDL的第二个主要版本提供更多功能
SDL2_image # SDL2的图像加载库支持多种图像格式
SDL2_mixer # SDL2的音频混合库用于播放多种音频格式
SDL2_ttf # SDL2的TrueType字体渲染库
SDL_image # SDL1的图像加载库
SDL_mixer # SDL1的音频混合库
SDL_ttf # SDL1的TrueType字体渲染库
alsa-lib # 高级Linux声音架构库提供音频功能
at-spi2-atk # 辅助技术服务提供者接口连接ATK和AT-SPI
at-spi2-core # 辅助技术服务提供者接口核心组件
atk # 辅助技术工具包,提供辅助功能支持
bzip2 # 高质量的数据压缩库
cairo # 2D图形渲染库支持多种输出设备
cups # 通用Unix打印系统提供打印功能
curlWithGnuTls # 使用GnuTLS的URL传输库用于网络请求
dbus # 进程间通信系统,用于应用程序之间的通信
dbus-glib # D-Bus的GLib绑定
desktop-file-utils # 用于处理桌面条目文件的工具
e2fsprogs # ext2/3/4文件系统工具
expat # XML解析库
flac # 无损音频编解码器
fontconfig # 字体配置和自定义库
freeglut # OpenGL实用工具包用于创建OpenGL上下文
freetype # 字体渲染引擎
fribidi # Unicode双向文本算法实现
fuse # 用户空间文件系统接口
fuse3 # FUSE的第3版用户空间文件系统接口
gdk-pixbuf # 图像加载库GNOME的一部分
glew110 # OpenGL扩展加载库1.10版本
glib # 通用工具库,提供数据结构处理、移植等功能
gmp # GNU多精度算术库
gst_all_1.gst-plugins-base # GStreamer基础插件集
gst_all_1.gst-plugins-ugly # GStreamer非自由插件集
gst_all_1.gstreamer # 多媒体框架
gtk2 # 图形用户界面工具包第2版
gtk3 # 图形用户界面工具包第2版
harfbuzz # 文本整形引擎
icu # 国际化组件提供Unicode和全球化支持
keyutils.lib # Linux密钥管理工具库
libGL # OpenGL库
libGLU # OpenGL实用工具库
libappindicator-gtk2 # 应用程序指示器库,用于系统托盘图标
libcaca # 彩色ASCII艺术库
libcanberra # 声音主题规范的实现
libcap # POSIX能力库
libclang.lib # Clang编译器库
libdbusmenu # D-Bus菜单库
libdrm # 直接渲染管理器库
libgcrypt # GNU加密库
libgpg-error # GnuPG错误报告库
libidn # 国际化域名库
libjack2 # JACK音频连接套件第2版
libjpeg # JPEG图像编解码库
libmikmod # 模块音乐库
libogg # Ogg多媒体容器格式库
libpng12 # PNG图像编解码库1.2版本
librsvg # SVG渲染库
libsamplerate # 音频采样率转换库
libthai # 泰语支持库
libtheora # Theora视频编解码库
libtiff # TIFF图像编解码库
libudev0-shim # 旧版udev库兼容层
libusb1 # USB设备访问库
libuuid # UUID生成和解析库
libvdpau # 视频解码和呈现API
libvorbis # Vorbis音频编解码库
libvpx # VP8/VP9视频编解码库
libxcrypt-legacy # 旧版密码哈希库
libxkbcommon # 键盘处理库
libxml2 # XML解析和生成库
mesa # 开源OpenGL实现
nspr # Netscape可移植运行时
nss # 网络安全服务
openssl # 安全套接字层库
p11-kit # PKCS#11模块加载库
pango # 文本布局和渲染库
pixman # 像素操作库
python3 # Python编程语言解释器
speex # 语音压缩格式
stdenv.cc.cc # 标准C编译器
tbb # 英特尔线程构建块库
udev # 设备管理器
vulkan-loader # Vulkan图形API加载器
wayland # 显示服务器协议
# 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键盘配置数据库
xz # LZMA压缩工具
zlib # 通用数据压缩库
] ++ (
if lib.versionAtLeast config.system.stateVersion "25.05" then
[ pkgs.libgbm ]
else
[ ]
);
};
};
}

View File

@@ -10,6 +10,7 @@
printing.enable = true;
acpid.enable = true;
upower.enable = true;
nix-fhs.enable = true;
openssh = {
enable = true;