简化stable/unstable切换的方式;增加兼容性代码,根据版本引用
This commit is contained in:
15
flake.nix
15
flake.nix
@@ -7,6 +7,19 @@
|
||||
useremail = "reizero@live.com";
|
||||
sourcepath = "/home/${username}/.nix";
|
||||
libs = import ./libs;
|
||||
|
||||
nixos = {
|
||||
stable = {
|
||||
nixpkgs = nixpkgs;
|
||||
home-manager = home-manager;
|
||||
version = "24.11";
|
||||
};
|
||||
unstable = {
|
||||
nixpkgs = nixpkgs-unstable;
|
||||
home-manager = home-manager-unstable;
|
||||
version = "25.05";
|
||||
};
|
||||
};
|
||||
in
|
||||
rec {
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
@@ -20,7 +33,7 @@
|
||||
(profile: {
|
||||
name = profile;
|
||||
value = import ./profiles/${profile} {
|
||||
inherit self inputs outputs libs sourcepath username useremail;
|
||||
inherit self inputs outputs libs nixos sourcepath username useremail;
|
||||
};
|
||||
})
|
||||
(attrNames (readDir ./profiles))
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
|
||||
{ outputs, pkgs, username, useremail, sysversion, ... }: {
|
||||
{ self, outputs, pkgs, username, useremail, version, ... }: {
|
||||
imports = [
|
||||
"${self}/libs/home-libs.nix"
|
||||
];
|
||||
|
||||
home = {
|
||||
inherit username;
|
||||
@@ -108,5 +111,5 @@
|
||||
systemd.user.startServices = "sd-switch";
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = sysversion;
|
||||
home.stateVersion = version;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
# 输入法配置模块
|
||||
{ config, lib, pkgs, ... }: {
|
||||
|
||||
i18n.inputMethod = {
|
||||
i18n.inputMethod = (if lib.versionAtLeast config.home.stateVersion "25.05" then {
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
} else {
|
||||
enabled = "fcitx5";
|
||||
}) // {
|
||||
fcitx5 = {
|
||||
addons = with pkgs; [
|
||||
fcitx5-gtk
|
||||
fcitx5-chinese-addons
|
||||
fcitx5-nord
|
||||
];
|
||||
waylandFrontend = true; # available in home-manager-25.05
|
||||
};
|
||||
} // (lib.optionalAttrs (lib.versionAtLeast config.home.stateVersion "25.05") {
|
||||
waylandFrontend = true;
|
||||
});
|
||||
};
|
||||
|
||||
gtk = {
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
{ config, pkgs, libs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
programs = {
|
||||
vscode = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
{ config, pkgs, lib, libs, ... }:
|
||||
let
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
bierner.markdown-mermaid
|
||||
esbenp.prettier-vscode
|
||||
@@ -18,8 +11,18 @@
|
||||
pkief.material-icon-theme
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
programs = {
|
||||
vscode = {
|
||||
enable = true;
|
||||
} // (if lib.versionAtLeast config.home.stateVersion "25.05" then {
|
||||
profiles.default = { inherit extensions; };
|
||||
} else {
|
||||
inherit extensions;
|
||||
});
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
# Allow to run prebuild binary app
|
||||
@@ -54,7 +54,6 @@
|
||||
libclang.lib # Clang编译器库
|
||||
libdbusmenu # D-Bus菜单库
|
||||
libdrm # 直接渲染管理器库
|
||||
libgbm # Open source 3D graphics library
|
||||
libgcrypt # GNU加密库
|
||||
libgpg-error # GnuPG错误报告库
|
||||
libidn # 国际化域名库
|
||||
@@ -91,35 +90,40 @@
|
||||
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键盘配置数据库
|
||||
# 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
|
||||
[ ]
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,17 +29,19 @@
|
||||
source-han-serif # 思源宋体
|
||||
|
||||
# wqy_zenhei # 文泉驿正黑
|
||||
|
||||
] ++ (
|
||||
# nerdfonts
|
||||
nerd-fonts.jetbrains-mono
|
||||
# (nerdfonts.override {
|
||||
# fonts = [
|
||||
# # "FiraCode"
|
||||
# "JetBrainsMono"
|
||||
# # "Iosevka"
|
||||
# ];
|
||||
# })
|
||||
|
||||
if lib.versionAtLeast config.system.stateVersion "25.05" then
|
||||
[ nerd-fonts.jetbrains-mono ]
|
||||
else [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
# "FiraCode"
|
||||
"JetBrainsMono"
|
||||
# "Iosevka"
|
||||
];
|
||||
})
|
||||
]
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
args@{ self, pkgs, home-manager, username, version, ... }: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
./mount.nix
|
||||
@@ -20,12 +20,11 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
# home-manager.useUserPackages = true;
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit (args) self inputs outputs libs sourcepath hostname username useremail sysversion;
|
||||
inherit (args) self inputs outputs libs sourcepath hostname username useremail version;
|
||||
};
|
||||
users."${username}" = { ... }: {
|
||||
imports = [
|
||||
./hm
|
||||
"${self}/libs/home-libs.nix"
|
||||
"${self}/home/desktop.nix"
|
||||
"${self}/modules/home/develop.nix"
|
||||
];
|
||||
@@ -55,5 +54,5 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
users.users."${username}".shell = pkgs.zsh;
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = sysversion;
|
||||
system.stateVersion = version;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
args@{ libs, inputs, ... }:
|
||||
args@{ libs, inputs, nixos, ... }:
|
||||
let
|
||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
||||
# nixpkgs = inputs.nixpkgs;
|
||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
||||
home-manager = inputs.home-manager-unstable;
|
||||
sysversion = "25.05";
|
||||
sysArgs = args // { inherit home-manager sysversion; };
|
||||
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||
sysArgs = args // { inherit home-manager version; };
|
||||
in
|
||||
# 使用libs.mkNixosSystem创建nixosSystem
|
||||
libs.mkNixosSystem {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
args@{ self, pkgs, home-manager, username, version, ... }: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
# If you want to use modules your own flake exports (from modules/nixos):
|
||||
@@ -34,7 +34,7 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
# home-manager.useUserPackages = true;
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit (args) self inputs outputs libs hostname username useremail sysversion;
|
||||
inherit (args) self inputs outputs libs sourcepath hostname username useremail version;
|
||||
};
|
||||
users."${username}" = { ... }: {
|
||||
imports = [
|
||||
@@ -48,5 +48,5 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
||||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = sysversion;
|
||||
system.stateVersion = version;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
args@{ libs, inputs, ... }:
|
||||
args@{ libs, inputs, nixos, ... }:
|
||||
let
|
||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
||||
# nixpkgs = inputs.nixpkgs;
|
||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
||||
home-manager = inputs.home-manager-unstable;
|
||||
sysversion = "25.05";
|
||||
sysArgs = args // { inherit home-manager sysversion; };
|
||||
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||
sysArgs = args // { inherit home-manager version; };
|
||||
in
|
||||
# 使用libs.mkNixosSystem创建nixosSystem
|
||||
libs.mkNixosSystem {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
args@{ self, home-manager, username, sysversion, ... }: {
|
||||
args@{ self, home-manager, username, version, ... }: {
|
||||
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
@@ -26,7 +26,7 @@ args@{ self, home-manager, username, sysversion, ... }: {
|
||||
# home-manager.useUserPackages = true;
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit (args) self inputs outputs libs hostname username useremail sysversion;
|
||||
inherit (args) self inputs outputs libs sourcepath hostname username useremail version;
|
||||
};
|
||||
users."${username}" = { ... }: {
|
||||
imports = [
|
||||
@@ -38,5 +38,5 @@ args@{ self, home-manager, username, sysversion, ... }: {
|
||||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = sysversion;
|
||||
system.stateVersion = version;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
args@{ libs, inputs, ... }:
|
||||
args@{ libs, inputs, nixos, ... }:
|
||||
let
|
||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
||||
# nixpkgs = inputs.nixpkgs;
|
||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
||||
home-manager = inputs.home-manager-unstable;
|
||||
sysversion = "25.05";
|
||||
sysArgs = args // { inherit home-manager sysversion; };
|
||||
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||
sysArgs = args // { inherit home-manager version; };
|
||||
in
|
||||
# 使用libs.mkNixosSystem创建nixosSystem
|
||||
libs.mkNixosSystem {
|
||||
|
||||
Reference in New Issue
Block a user