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将无法正常工作。
安全免责声明:如果您安装或复制我的homelab或worklab配置文件,请更改公共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上得到那么多明星,但是我们在这里:
