nixos config

Delphi源码 2025-08-12

nixos config

主仓库链接(gitlab)

镜子回购链接(github)

镜子repo链接(Codeberg)

这个存储库是什么?

这些是我的nixos设置的我的杂物(配置文件)。

这是我的主要设置:

我的主题

stylix(当然是base16.nix)很棒,使您可以用base16主题为整个系统主题。

使用它,我有55个以上的主题(有时我会添加更多)我可以在即时进行切换。访问主题目录以获取更多信息和屏幕截图!

安装

我在这里为自己写了一些重新安装笔记(install.org)。

TLDR:您应该可以使用以下实验脚本安装我的DotFiles将我的dotfiles安装到新鲜的nixos系统上:

nix-shell -p git --command " nix run --experimental-features 'nix-command flakes' gitlab:librephoenix/nixos-config "

免责声明:最终,我无法gaurantee这对我以外的任何人都有效,因此请自行决定使用它。另外,我的杂物自信,如果您尝试一下,您会立即发现。

潜在错误:我仅测试了它在UEFI上使用/boot的默认EFI安装点上工作。我添加了实验遗产(BIOS)启动支持,但它确实依靠一个快速而肮脏的脚本来查找GRUB设备。如果出于任何原因使用一些怪异的启动配置对其进行测试,请尝试修改flake.nix中的bootMountPath (UEFI)或grubDevice (legacy bios)。

注意:如果您将其安装到VM,则Hyprland除非启用3D加速度,否则Hyprland将无法正常工作。

安全免责声明:如果您安装或复制我的homelabworklab配置文件,请更改公共SSH键,除非您希望我能够进入服务器。您可以在相关配置中更改或删除SSH键

  • 配置。
  • 配置。

模块

可以使用导入块将单独的NIX文件作为模块导入:

 imports = [ ./import1.nix
            ./import2.nix
            . . .
          ] ;

这方便地允许配置为(*咳嗽)模块化(BA DUM,TSSSS)。

我的模块分为两组:

  • 系统级 - 存储在系统目录中
    • 系统级模块被导入configuration.nix,这是我的薄片(flake.nix)来源的。
  • 用户级 - 存储在用户目录中(由家庭经理管理)
    • 用户级模块被导入到home.nix中,该模块也被采购到我的薄片中(flake.nix)

有关这些特定模块的更详细信息分别在系统目录和用户目录中。

补丁

在某些情况下,由于我使用nixpgs-unstable ,因此我必须修补nixpkgs。这可以通过薄片内部完成:

 nixpkgs-patched = ( import nixpkgs { inherit system ; } ) . applyPatches {
  name = "nixpkgs-patched" ;
  src = nixpkgs ;
  patches = [ ./example-patch.nix ] ;
} ;

# configure pkgs
pkgs = import nixpkgs-patched { inherit system ; } ;

# configure lib
lib = nixpkgs . lib ;

补丁可以是本地的或远程的,因此您甚至可以使用fetchpatch和RAW PATCH URL,即:https://github.com/nixos/nixpkgs/pull/example.patch导入未合并的拉请请求。

我目前在补丁目录中策划本仓库本地的补丁。

概况

我将配置分为配置文件(本质上是系统模板),即:

  • 个人 - 我将在个人笔记本电脑/台式机上运行的内容
  • 工作 - 我将在工作笔记本电脑/台式机上运行的内容(如果让我带上自己的操作系统:P)
  • Homelab-我将在服务器或Homelab上运行的内容
  • WSL-我将在Linux的Windows子系统下运行的内容

通过设置profile变量,可以在flake.nix中方便地选择我的个人资料。

有关这些配置文件的更详细信息在配置文件目录中。

NIX包装脚本

一些Nix命令令人困惑,真的很长时间打字,或者要求我与我的杂物files一起进入目录。为了解决这个问题,我编写了一个名为Phoenix的包装脚本,该脚本在此目录的根部称为各种脚本。

TLDR:

  • phoenix sync与配置文件同步系统和家庭经理状态(本质上是nixos-rebuild switch + home-manager switch
    • phoenix sync system - 仅同步系统状态(基本上是nixos-rebuild switch
    • phoenix sync user - 仅同步家庭经理状态(本质上是home-manager switch
  • phoenix update - 更新所有无同步系统和家庭经理状态的薄片输入
  • phoenix upgrade - 更新flake.lock and Synchronize System和Home -Manager States( phoenix update + phoenix sync
  • phoenix refresh - 呼叫同步(主要是刷新stylix和一些依赖的守护程序))
  • phoenix pull - 从上游git中拉更改,并尝试合并本地更改(我使用它来更新我的主系统以外的其他系统)
  • phoenix harden确保无特权用户无法编辑所有“系统级”文件
  • phoenix soften - 放松权限,因此所有互联网都可以由普通用户编辑(临时用于GIT或其他操作)
  • phoenix gc垃圾收集系统和用户NIX商店
    • phoenix gc full删除当前未使用的所有内容
    • phoenix gc 15d删除超过15天的所有内容
    • phoenix gc 30d删除30天以上的所有内容
    • phoenix gc Xd删除比X天大的所有内容

星历史

不认为这会在Github上得到那么多明星,但是我们在这里:

下载源码

通过命令行克隆项目:

git clone https://github.com/librephoenix/nixos-config.git