简化stable/unstable切换的方式;增加兼容性代码,根据版本引用
This commit is contained in:
15
flake.nix
15
flake.nix
@@ -7,6 +7,19 @@
|
|||||||
useremail = "reizero@live.com";
|
useremail = "reizero@live.com";
|
||||||
sourcepath = "/home/${username}/.nix";
|
sourcepath = "/home/${username}/.nix";
|
||||||
libs = import ./libs;
|
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
|
in
|
||||||
rec {
|
rec {
|
||||||
# Your custom packages and modifications, exported as overlays
|
# Your custom packages and modifications, exported as overlays
|
||||||
@@ -20,7 +33,7 @@
|
|||||||
(profile: {
|
(profile: {
|
||||||
name = profile;
|
name = profile;
|
||||||
value = import ./profiles/${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))
|
(attrNames (readDir ./profiles))
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
# This is your home-manager configuration file
|
# This is your home-manager configuration file
|
||||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
# 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 = {
|
home = {
|
||||||
inherit username;
|
inherit username;
|
||||||
@@ -108,5 +111,5 @@
|
|||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||||
home.stateVersion = sysversion;
|
home.stateVersion = version;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,21 @@
|
|||||||
# 输入法配置模块
|
# 输入法配置模块
|
||||||
{ config, lib, pkgs, ... }: {
|
{ config, lib, pkgs, ... }: {
|
||||||
|
|
||||||
i18n.inputMethod = {
|
i18n.inputMethod = (if lib.versionAtLeast config.home.stateVersion "25.05" then {
|
||||||
|
enable = true;
|
||||||
|
type = "fcitx5";
|
||||||
|
} else {
|
||||||
enabled = "fcitx5";
|
enabled = "fcitx5";
|
||||||
|
}) // {
|
||||||
fcitx5 = {
|
fcitx5 = {
|
||||||
addons = with pkgs; [
|
addons = with pkgs; [
|
||||||
fcitx5-gtk
|
fcitx5-gtk
|
||||||
fcitx5-chinese-addons
|
fcitx5-chinese-addons
|
||||||
fcitx5-nord
|
fcitx5-nord
|
||||||
];
|
];
|
||||||
waylandFrontend = true; # available in home-manager-25.05
|
} // (lib.optionalAttrs (lib.versionAtLeast config.home.stateVersion "25.05") {
|
||||||
};
|
waylandFrontend = true;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
|
|||||||
@@ -1,25 +1,28 @@
|
|||||||
{ config, pkgs, libs, ... }:
|
{ config, pkgs, lib, libs, ... }:
|
||||||
|
let
|
||||||
|
extensions = with pkgs.vscode-extensions; [
|
||||||
|
bierner.markdown-mermaid
|
||||||
|
esbenp.prettier-vscode
|
||||||
|
foxundermoon.shell-format
|
||||||
|
github.copilot
|
||||||
|
github.copilot-chat
|
||||||
|
golang.go
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
pkief.material-icon-theme
|
||||||
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
|
];
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
];
|
];
|
||||||
programs = {
|
programs = {
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles.default = {
|
} // (if lib.versionAtLeast config.home.stateVersion "25.05" then {
|
||||||
extensions = with pkgs.vscode-extensions; [
|
profiles.default = { inherit extensions; };
|
||||||
bierner.markdown-mermaid
|
} else {
|
||||||
esbenp.prettier-vscode
|
inherit extensions;
|
||||||
foxundermoon.shell-format
|
});
|
||||||
github.copilot
|
|
||||||
github.copilot-chat
|
|
||||||
golang.go
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
pkief.material-icon-theme
|
|
||||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
# Allow to run prebuild binary app
|
# Allow to run prebuild binary app
|
||||||
@@ -54,7 +54,6 @@
|
|||||||
libclang.lib # Clang编译器库
|
libclang.lib # Clang编译器库
|
||||||
libdbusmenu # D-Bus菜单库
|
libdbusmenu # D-Bus菜单库
|
||||||
libdrm # 直接渲染管理器库
|
libdrm # 直接渲染管理器库
|
||||||
libgbm # Open source 3D graphics library
|
|
||||||
libgcrypt # GNU加密库
|
libgcrypt # GNU加密库
|
||||||
libgpg-error # GnuPG错误报告库
|
libgpg-error # GnuPG错误报告库
|
||||||
libidn # 国际化域名库
|
libidn # 国际化域名库
|
||||||
@@ -91,35 +90,40 @@
|
|||||||
udev # 设备管理器
|
udev # 设备管理器
|
||||||
vulkan-loader # Vulkan图形API加载器
|
vulkan-loader # Vulkan图形API加载器
|
||||||
wayland # 显示服务器协议
|
wayland # 显示服务器协议
|
||||||
xorg.libICE # X11 Inter-Client Exchange库
|
# xorg.libICE # X11 Inter-Client Exchange库
|
||||||
xorg.libSM # X11会话管理库
|
# xorg.libSM # X11会话管理库
|
||||||
xorg.libX11 # X11客户端库
|
# xorg.libX11 # X11客户端库
|
||||||
xorg.libXScrnSaver # X11屏幕保护扩展库
|
# xorg.libXScrnSaver # X11屏幕保护扩展库
|
||||||
xorg.libXcomposite # X11合成扩展库
|
# xorg.libXcomposite # X11合成扩展库
|
||||||
xorg.libXcursor # X11光标管理库
|
# xorg.libXcursor # X11光标管理库
|
||||||
xorg.libXdamage # X11损坏扩展库
|
# xorg.libXdamage # X11损坏扩展库
|
||||||
xorg.libXext # X11通用扩展库
|
# xorg.libXext # X11通用扩展库
|
||||||
xorg.libXfixes # X11修复扩展库
|
# xorg.libXfixes # X11修复扩展库
|
||||||
xorg.libXft # X11 FreeType接口库
|
# xorg.libXft # X11 FreeType接口库
|
||||||
xorg.libXi # X11输入扩展库
|
# xorg.libXi # X11输入扩展库
|
||||||
xorg.libXinerama # X11多显示器扩展库
|
# xorg.libXinerama # X11多显示器扩展库
|
||||||
xorg.libXmu # X11杂项实用工具库
|
# xorg.libXmu # X11杂项实用工具库
|
||||||
xorg.libXrandr # X11调整大小和旋转扩展库
|
# xorg.libXrandr # X11调整大小和旋转扩展库
|
||||||
xorg.libXrender # X11渲染扩展库
|
# xorg.libXrender # X11渲染扩展库
|
||||||
xorg.libXt # X11工具包内省库
|
# xorg.libXt # X11工具包内省库
|
||||||
xorg.libXtst # X11测试扩展库
|
# xorg.libXtst # X11测试扩展库
|
||||||
xorg.libXxf86vm # X11 XFree86视频模式扩展库
|
# xorg.libXxf86vm # X11 XFree86视频模式扩展库
|
||||||
xorg.libpciaccess # X11 PCI访问库
|
# xorg.libpciaccess # X11 PCI访问库
|
||||||
xorg.libxcb # X11 C绑定库
|
# xorg.libxcb # X11 C绑定库
|
||||||
xorg.xcbutil # XCB实用工具库
|
# xorg.xcbutil # XCB实用工具库
|
||||||
xorg.xcbutilimage # XCB图像实用工具库
|
# xorg.xcbutilimage # XCB图像实用工具库
|
||||||
xorg.xcbutilkeysyms # XCB键符号实用工具库
|
# xorg.xcbutilkeysyms # XCB键符号实用工具库
|
||||||
xorg.xcbutilrenderutil # XCB渲染实用工具库
|
# xorg.xcbutilrenderutil # XCB渲染实用工具库
|
||||||
xorg.xcbutilwm # XCB窗口管理实用工具库
|
# xorg.xcbutilwm # XCB窗口管理实用工具库
|
||||||
xorg.xkeyboardconfig # X11键盘配置数据库
|
# xorg.xkeyboardconfig # X11键盘配置数据库
|
||||||
xz # LZMA压缩工具
|
xz # LZMA压缩工具
|
||||||
zlib # 通用数据压缩库
|
zlib # 通用数据压缩库
|
||||||
];
|
] ++ (
|
||||||
|
if lib.versionAtLeast config.system.stateVersion "25.05" then
|
||||||
|
[ pkgs.libgbm ]
|
||||||
|
else
|
||||||
|
[ ]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,17 +29,19 @@
|
|||||||
source-han-serif # 思源宋体
|
source-han-serif # 思源宋体
|
||||||
|
|
||||||
# wqy_zenhei # 文泉驿正黑
|
# wqy_zenhei # 文泉驿正黑
|
||||||
|
] ++ (
|
||||||
# nerdfonts
|
# nerdfonts
|
||||||
nerd-fonts.jetbrains-mono
|
if lib.versionAtLeast config.system.stateVersion "25.05" then
|
||||||
# (nerdfonts.override {
|
[ nerd-fonts.jetbrains-mono ]
|
||||||
# fonts = [
|
else [
|
||||||
# # "FiraCode"
|
(nerdfonts.override {
|
||||||
# "JetBrainsMono"
|
fonts = [
|
||||||
# # "Iosevka"
|
# "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
|
# You can import other NixOS modules here
|
||||||
imports = [
|
imports = [
|
||||||
./mount.nix
|
./mount.nix
|
||||||
@@ -20,12 +20,11 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
|||||||
# home-manager.useUserPackages = true;
|
# home-manager.useUserPackages = true;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = {
|
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}" = { ... }: {
|
users."${username}" = { ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./hm
|
./hm
|
||||||
"${self}/libs/home-libs.nix"
|
|
||||||
"${self}/home/desktop.nix"
|
"${self}/home/desktop.nix"
|
||||||
"${self}/modules/home/develop.nix"
|
"${self}/modules/home/develop.nix"
|
||||||
];
|
];
|
||||||
@@ -55,5 +54,5 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
|||||||
users.users."${username}".shell = pkgs.zsh;
|
users.users."${username}".shell = pkgs.zsh;
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
# 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
|
let
|
||||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||||
# nixpkgs = inputs.nixpkgs;
|
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
sysArgs = args // { inherit home-manager version; };
|
||||||
home-manager = inputs.home-manager-unstable;
|
|
||||||
sysversion = "25.05";
|
|
||||||
sysArgs = args // { inherit home-manager sysversion; };
|
|
||||||
in
|
in
|
||||||
# 使用libs.mkNixosSystem创建nixosSystem
|
# 使用libs.mkNixosSystem创建nixosSystem
|
||||||
libs.mkNixosSystem {
|
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
|
# You can import other NixOS modules here
|
||||||
imports = [
|
imports = [
|
||||||
# If you want to use modules your own flake exports (from modules/nixos):
|
# 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.useUserPackages = true;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit (args) self inputs outputs libs hostname username useremail sysversion;
|
inherit (args) self inputs outputs libs sourcepath hostname username useremail version;
|
||||||
};
|
};
|
||||||
users."${username}" = { ... }: {
|
users."${username}" = { ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
@@ -48,5 +48,5 @@ args@{ self, pkgs, home-manager, username, sysversion, ... }: {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
# 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
|
let
|
||||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||||
# nixpkgs = inputs.nixpkgs;
|
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
sysArgs = args // { inherit home-manager version; };
|
||||||
home-manager = inputs.home-manager-unstable;
|
|
||||||
sysversion = "25.05";
|
|
||||||
sysArgs = args // { inherit home-manager sysversion; };
|
|
||||||
in
|
in
|
||||||
# 使用libs.mkNixosSystem创建nixosSystem
|
# 使用libs.mkNixosSystem创建nixosSystem
|
||||||
libs.mkNixosSystem {
|
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
|
# You can import other NixOS modules here
|
||||||
imports = [
|
imports = [
|
||||||
@@ -26,7 +26,7 @@ args@{ self, home-manager, username, sysversion, ... }: {
|
|||||||
# home-manager.useUserPackages = true;
|
# home-manager.useUserPackages = true;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit (args) self inputs outputs libs hostname username useremail sysversion;
|
inherit (args) self inputs outputs libs sourcepath hostname username useremail version;
|
||||||
};
|
};
|
||||||
users."${username}" = { ... }: {
|
users."${username}" = { ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
@@ -38,5 +38,5 @@ args@{ self, home-manager, username, sysversion, ... }: {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
# 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
|
let
|
||||||
# 这里可以选择使用稳定版或不稳定版的nixpkgs
|
# 使用pkgs.unstable中的nixpkgs和home-manager
|
||||||
# nixpkgs = inputs.nixpkgs;
|
inherit (nixos.unstable) nixpkgs home-manager version;
|
||||||
nixpkgs = inputs.nixpkgs-unstable; # 如果需要使用unstable版本,取消这行注释并注释上一行
|
sysArgs = args // { inherit home-manager version; };
|
||||||
home-manager = inputs.home-manager-unstable;
|
|
||||||
sysversion = "25.05";
|
|
||||||
sysArgs = args // { inherit home-manager sysversion; };
|
|
||||||
in
|
in
|
||||||
# 使用libs.mkNixosSystem创建nixosSystem
|
# 使用libs.mkNixosSystem创建nixosSystem
|
||||||
libs.mkNixosSystem {
|
libs.mkNixosSystem {
|
||||||
|
|||||||
Reference in New Issue
Block a user