Compare commits

..

10 Commits

Author SHA1 Message Date
Origami404 5072597827 host: 抽出我的用户配置 2026-05-17 10:04:41 +08:00
Origami404 75bea9d610 [ssh] update .ssh/config 2026-05-17 09:58:09 +08:00
Origami404 3af3076a86 hosts: add nix-cache module 2026-05-16 23:48:31 +08:00
Origami404 92ecc0cccc chore: update flake.lock 2026-05-16 23:48:15 +08:00
Origami404 df61c211c2 [hosts] add oparic-local-dev 2026-05-16 21:42:13 +08:00
Origami404 65f8fb639c [ssh] update .ssh/config 2026-05-16 21:04:01 +08:00
Origami404 d8caea46e7 hosts/hypnos: add mise 2026-05-09 13:05:14 +08:00
Origami404 e65015cebe [zsh] remove zed command 2026-05-04 17:00:11 +08:00
Origami404 5bfe33d989 [git] add git-absorb 2026-04-23 09:59:07 +08:00
Origami404 29acb4ae89 [ssh] 2026-04-17 08:42:07 +08:00
12 changed files with 246 additions and 60 deletions
Generated
+21 -21
View File
@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775037210, "lastModified": 1777780666,
"narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=", "narHash": "sha256-8wURyQMdDkGUarSTKOGdCuFfYiwa3HbzwscUfn3STDE=",
"owner": "nix-darwin", "owner": "nix-darwin",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "06648f4902343228ce2de79f291dd5a58ee12146", "rev": "8c62fba0854ba15c8917aed18894dbccb48a3777",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775622785, "lastModified": 1778937626,
"narHash": "sha256-/yFxO+7oS1SymDfJ2iVO7K5vJKcYfe9XGIJ+quLqz0Q=", "narHash": "sha256-OzLAT0G96WlT/WWaNdkTvQ7E9ohq9h0xQTdL1oe3gm0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "527e47b78fe67213072f706bf933a9705a8c4974", "rev": "d5ece85b6d3d6b5ab5a514b2785fb952b629bfea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -49,11 +49,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775622785, "lastModified": 1778937626,
"narHash": "sha256-/yFxO+7oS1SymDfJ2iVO7K5vJKcYfe9XGIJ+quLqz0Q=", "narHash": "sha256-OzLAT0G96WlT/WWaNdkTvQ7E9ohq9h0xQTdL1oe3gm0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "527e47b78fe67213072f706bf933a9705a8c4974", "rev": "d5ece85b6d3d6b5ab5a514b2785fb952b629bfea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -65,11 +65,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1775126147, "lastModified": 1775888245,
"narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=", "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8d8c1fa5b412c223ffa47410867813290cdedfef", "rev": "13043924aaa7375ce482ebe2494338e058282925",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -81,11 +81,11 @@
}, },
"nixpkgs-darwin": { "nixpkgs-darwin": {
"locked": { "locked": {
"lastModified": 1775579569, "lastModified": 1778794387,
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=", "narHash": "sha256-BL04pOS9453Awkeb9f90XBJXBSkWxN+vB7HIgnL0iMM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dfd9566f82a6e1d55c30f861879186440614696e", "rev": "8a1b0127302ea51e05bf4ea5a291743fac442406",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -97,11 +97,11 @@
}, },
"nixpkgs-linux": { "nixpkgs-linux": {
"locked": { "locked": {
"lastModified": 1775423009, "lastModified": 1778869304,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -126,11 +126,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1775619836, "lastModified": 1777944972,
"narHash": "sha256-VcC/+MMMldwQKcST2y/QTndGLusSxjeUvYwFwzZKKko=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "de5f2d596eb896a5728afcd15f823f59cb9ecfdb", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {
+23
View File
@@ -28,6 +28,13 @@
./hosts/eris/configuration.nix ./hosts/eris/configuration.nix
]; ];
}; };
"oparic-local-dev" = nixpkgs-linux.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/oparic-local-dev/configuration.nix
];
};
}; };
darwinConfigurations = { darwinConfigurations = {
@@ -73,6 +80,22 @@
}; };
}; };
"origami@oparic-local-dev" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs-linux.legacyPackages.x86_64-linux;
modules = [
{ nixpkgs.config.allowUnfreePredicate = _: true; }
inputs.sops-nix.homeManagerModules.sops
./home/hosts/oparic-local-dev.nix
];
extraSpecialArgs = {
inherit inputs;
lib = import ./home/lib/origami404.nix {
hmSource = inputs.home-manager;
npLib = nixpkgs-linux.lib;
};
};
};
"origami@hypnos" = home-manager-darwin.lib.homeManagerConfiguration { "origami@hypnos" = home-manager-darwin.lib.homeManagerConfiguration {
pkgs = nixpkgs-darwin.legacyPackages.aarch64-darwin; pkgs = nixpkgs-darwin.legacyPackages.aarch64-darwin;
modules = [ modules = [
+5 -1
View File
@@ -27,7 +27,10 @@
"tailscale" = "/Applications/Tailscale.app/Contents/MacOS/Tailscale"; "tailscale" = "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
}; };
# 外壳同款配色 # 外壳同款配色
programs.zsh.initContent = "zstyle ':prompt:grml:*:items:user' pre '%F{#82C8E5}'"; programs.zsh.initContent = ''
zstyle ':prompt:grml:*:items:user' pre '%F{#82C8E5}'
eval "$(mise activate zsh)"
'';
# 虽然有些邪恶, 但是有些应用必须用 brew 装更新才够快 # 虽然有些邪恶, 但是有些应用必须用 brew 装更新才够快
programs.zsh.sessionVariables = { programs.zsh.sessionVariables = {
@@ -77,6 +80,7 @@
fnm fnm
opam opam
graphviz graphviz
mise
] ]
); );
} }
+17
View File
@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
{
home.homeDirectory = "/home/origami";
imports = [
../modules/common.nix
../modules/shell.nix
../modules/zsh.nix
../modules/shell-develop.nix
../modules/ssh.nix
];
programs.fish.shellAliases = {
"flake-update" = "nixos-rebuild switch --use-remote-sudo --flake ${config.home.homeDirectory}/flakes#oparic-local-dev";
};
}
+4 -1
View File
@@ -1,6 +1,9 @@
{ lib, ... }: { lib, pkgs, ... }:
{ {
programs.git.enable = true; programs.git.enable = true;
home.file = home.file =
(lib.origami404.standaloneToHome ".gitconfig") // (lib.origami404.standaloneToHome ".gitignore"); (lib.origami404.standaloneToHome ".gitconfig") // (lib.origami404.standaloneToHome ".gitignore");
home.packages = with pkgs; [
git-absorb
];
} }
+2 -13
View File
@@ -1643,7 +1643,8 @@ bind2maps emacs viins vicmd -- -s '\e'${key[Left]} backward-word
# autoloading # autoloading
zrcautoload zmv zrcautoload zmv
zrcautoload zed # zrcautoload zed # o4: 禁用 zed, 和 zed editor 的 cli binary name 撞车了
unset -f zed
# we don't want to quote/espace URLs on our own... # we don't want to quote/espace URLs on our own...
# if autoload -U url-quote-magic ; then # if autoload -U url-quote-magic ; then
@@ -3129,18 +3130,6 @@ function profile () {
ZSH_PROFILE_RC=1 zsh "$@" ZSH_PROFILE_RC=1 zsh "$@"
} }
#f1# Edit an alias via zle
function edalias () {
[[ -z "$1" ]] && { echo "Usage: edalias <alias_to_edit>" ; return 1 } || vared aliases'[$1]' ;
}
compdef _aliases edalias
#f1# Edit a function via zle
function edfunc () {
[[ -z "$1" ]] && { echo "Usage: edfunc <function_to_edit>" ; return 1 } || zed -f "$1" ;
}
compdef _functions edfunc
# use it e.g. via 'Restart apache2' # use it e.g. via 'Restart apache2'
#m# f6 Start() \kbd{service \em{process}}\quad\kbd{start} #m# f6 Start() \kbd{service \em{process}}\quad\kbd{start}
#m# f6 Restart() \kbd{service \em{process}}\quad\kbd{restart} #m# f6 Restart() \kbd{service \em{process}}\quad\kbd{restart}
+5 -16
View File
@@ -10,10 +10,10 @@
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
../modules/nix-cache.nix
../modules/users/origami.nix
]; ];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
boot.loader = { boot.loader = {
efi = { efi = {
canTouchEfiVariables = true; canTouchEfiVariables = true;
@@ -32,10 +32,8 @@
time.timeZone = "Asia/Shanghai"; time.timeZone = "Asia/Shanghai";
nix.settings = { nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "origami" ]; trusted-users = [ "origami" ];
substituters = [
"https://mirrors.ustc.edu.cn/nix-channels/store"
];
auto-optimise-store = true; auto-optimise-store = true;
}; };
@@ -148,19 +146,10 @@
services.tailscale.enable = true; services.tailscale.enable = true;
# Users # Users
programs.fish.enable = true;
users.groups.origami.gid = 1000; users.groups.origami.gid = 1000;
users.users.origami = { users.users.origami.extraGroups = [ "wheel" "networkmanager" ];
isNormalUser = true;
shell = pkgs.fish;
description = "Origami404";
group = "origami";
extraGroups = [ "networkmanager" "wheel" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAZxRoweHoLfoaydPqhsLnc4EGgwTp7Uz1DZ2DG447B+ origami@fedora"
];
};
security.sudo.wheelNeedsPassword = false; security.sudo.wheelNeedsPassword = false;
sops.defaultSopsFile = ../../secrets/ssh-private.yaml; sops.defaultSopsFile = ../../secrets/ssh-private.yaml;
sops.defaultSopsFormat = "yaml"; sops.defaultSopsFormat = "yaml";
sops.age.keyFile = "/home/origami/.config/sops/age/keys.txt"; sops.age.keyFile = "/home/origami/.config/sops/age/keys.txt";
+27
View File
@@ -0,0 +1,27 @@
{ inputs, lib, pkgs, ... }:
{
nix.settings = {
substituters =
let
channelStore = x: "https://${x}/nix-channels/store";
mirrors = map (x: channelStore "mirrors.${x}.edu.cn") [
"bfsu"
"tuna.tsinghua"
"ustc"
];
cachix = x: "https://${x}.cachix.org";
in
lib.flatten [
mirrors
(cachix "nix-community")
"https://cache.nixos.org"
(cachix "inclyc")
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"inclyc.cachix.org-1:izGZ+f/JLPovKX1OKd3rQZ8nPOCpvPij3+bebjxdZ2k="
];
builders-use-substitutes = true;
};
}
+13
View File
@@ -0,0 +1,13 @@
{
...
}:
{
users.users.origami = {
isNormalUser = true;
description = "Origami404";
group = "origami";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyrUiSdpTC+vP+pNDChehLG+ChYL2By2LtjmVJiHmaf origami@eris"
];
};
}
+93
View File
@@ -0,0 +1,93 @@
{ config, lib, pkgs, inputs, ... }:
{
imports =
[
./hardware-configuration.nix
inputs.sops-nix.nixosModules.sops
../modules/nix-cache.nix
../modules/users/origami.nix
];
# BIOS + GRUB, 安装到 MBR
boot.loader.grub = {
enable = true;
device = "/dev/sda";
configurationLimit = 10;
};
networking.hostName = "oparic-local-dev";
# 静态 IP
networking.interfaces.ens18.ipv4.addresses = [{
address = "192.168.2.22";
prefixLength = 24;
}];
networking.defaultGateway = "192.168.2.1";
networking.nameservers = [ "119.29.29.29" ];
time.timeZone = "Asia/Shanghai";
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "origami" ];
auto-optimise-store = true;
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
environment.systemPackages = with pkgs; [
git
vim
wget
curl
zip
xz
unzip
p7zip
zstd
gnutar
file
which
tree
gnused
gawk
gnupg
pciutils
usbutils
home-manager
nix-output-monitor
];
i18n = {
defaultLocale = "C.UTF-8";
extraLocaleSettings = {
LC_MESSAGES = "en_US.UTF-8";
LC_TIME = "C.UTF-8";
LC_CTYPE = "zh_CN.UTF-8";
};
};
# PVE guest agent
services.qemuGuest.enable = true;
# 用户
users.groups.origami.gid = 1000;
users.users.origami.extraGroups = [ "wheel" ];
security.sudo.wheelNeedsPassword = false;
sops.defaultSopsFile = ../../secrets/ssh-private.yaml;
sops.defaultSopsFormat = "yaml";
sops.age.keyFile = "/home/origami/.config/sops/age/keys.txt";
services.openssh.enable = true;
system.stateVersion = "23.11";
}
@@ -0,0 +1,28 @@
# PVE 虚拟机, BIOS 启动, 单 ext4 硬盘
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/5cc6cc26-502d-4a00-9f7a-95fd4432a1f4";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/396a18e2-4091-4da2-ab46-9a6ef3ae6e3d";
fsType = "ext4";
};
swapDevices = [ ];
networking.useDHCP = lib.mkDefault false;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}
+8 -8
View File
@@ -1,16 +1,16 @@
ssh-config: ENC[AES256_GCM,data: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,iv:kfMwSy/bE9U2Mkfct2yB+pV+8nabxohEX5UQ+kyS9fk=,tag:+b8z4uktUiDGfZ3UMvHiWw==,type:str] ssh-config: ENC[AES256_GCM,data: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,iv:fEmaF1T7BxT+wDYfZR+u1+0Oh4dR02ITExpHjWdiah4=,tag:EzJl8epBZyPc58Bi6PR1mw==,type:str]
sops: sops:
age: age:
- recipient: age1nlta6ek2fsre42g38ytwg3fxtra4h444psd7g986md0gzmvv6d5qqlwwjy - recipient: age1nlta6ek2fsre42g38ytwg3fxtra4h444psd7g986md0gzmvv6d5qqlwwjy
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqcG5qTzJTQTNYSUtmcHFs YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2TVNCWjduWXVGU2EwWFlu
SmIvMUpuSFhHSW9Db1UzTktZSlVHeWkrbVNjCnJpV0sxT2Fkc095eUR2anYySTBF b2pKN29BbE1xcmNKc3R6WVJ3SG45OEM5T1FvCnZXQWJrdnNwZ1NyU0w4K1BDQXp3
Y01QNytXcFErZTBETlRpbzJHSEFITFkKLS0tIEFuajUyQ05sUHBiTlhZbEpCeUpm bS80NllZODhBcDVnUXYwRUtJUWhTaE0KLS0tIElCaE16c0J6dW1WaTJrUzZpczFT
WVN4Y2pvWmtpT0E2TWV4c1djRTNyRDAKLokMfGb37WYP+UxmFyRSia4pp1dAJE7A MFJINjBUMTBQVklkTG9KYVVvZXczZG8KH56Vo0jc8nLp+nAnVKSPfDSFb+Mw/L0k
fBrbVbBceTSpFbrzokEItwp4MNdepGcOuISEbs8G0zSRrRh+dKWz3A== O1/X5MeF4Z2O80noGH2LaP5WKvy+h/kMW9c0hjBnayJBunf3VbhH3A==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2026-04-05T13:34:23Z" lastmodified: "2026-05-16T17:02:16Z"
mac: ENC[AES256_GCM,data:yLZcQvSjIr8nDvq6GLotKN7bhhy5koO6OeF82pEfmfhfnAMHZB6BKxIcUw6zCQAh2NLN/X3Ih+QMRu1eU4BgEgGnPo+2zt9RVq+QkGzeWxyDwVJS+A1Gw1bmAEqmXWcIcqC5bAzPXSd8yT1Xot8g22Z+QANVbzf1XKLN6FQT4AM=,iv:PsKPihqY07O4PAAe6kqt1YUhjdv2+lNuoTHtZN7KqDk=,tag:XgMUk12kO3flrGAi6NmGGQ==,type:str] mac: ENC[AES256_GCM,data:6QDpFeS+42KTeklQZ+lt7fpGTIQmVU/NjlmX6SUxQEgNkJ4c5lMEP49SIR7MxnYo3zm6X6v2OM8O5kj3fFiOA49GdK5Bnuy/+Y2146rb0fa5aNNhVJwLs/L9CFVXzCVlCLqjsEPQkzq0EluwMAvW7HzkhvHb/IpeJkEct8NgqRU=,iv:URy/A9NkO/xTWGbToIhN61gC1FaexNO5RMRE00Y1VGA=,tag:jr634ex3sxg8khfWWYVCxw==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0