Compare commits

...

6 Commits

Author SHA1 Message Date
chn
22bf73faeb devices.vps6: fix 2024-09-15 18:16:16 +08:00
chn
8d8f4633b5 devices.srv1.node0: set network 2024-09-15 18:01:28 +08:00
chn
7900d593da Revert "modules.users.chn: 使用来自 home-manager 的 impermanence"
This reverts commit e3fe00a53d.
2024-09-15 15:57:54 +08:00
chn
4b15bf8043 Revert "modules.system.impermanence: fix"
This reverts commit 9e77fd172f.
2024-09-15 15:56:41 +08:00
chn
d026c2c06a devices.pc: add 极路由ip 2024-09-15 15:35:30 +08:00
chn
9e77fd172f modules.system.impermanence: fix 2024-09-15 15:10:09 +08:00
7 changed files with 112 additions and 126 deletions

View File

@ -104,6 +104,7 @@ inputs:
"log-upload.mihoyo.com" "uspider.yuanshen.com" "ys-log-upload.mihoyo.com"
"dispatchcnglobal.yuanshen.com"
])
++ [{ name = "4006024680.com"; value = "192.168.199.1"; }]
);
};
firewall.trustedInterfaces = [ "virbr0" "waydroid0" ];

View File

@ -4,7 +4,15 @@ inputs:
{
nixos =
{
system.nixpkgs.march = "cascadelake";
system =
{
nixpkgs.march = "cascadelake";
networking.networkd.static =
{
eno145 = { ip = "192.168.1.10"; mask = 24; gateway = "192.168.1.1"; };
eno146 = { ip = "192.168.178.10"; mask = 24; };
};
};
packages.vasp = null;
services =
{

View File

@ -36,7 +36,7 @@ inputs:
{
snapper.enable = true;
sshd = {};
xray.server = { serverName = "vps6.xserver.chn.moe"; userNumber = 20; };
xray.server = { serverName = "vps6.xserver.chn.moe"; userNumber = 21; };
frpServer = { enable = true; serverName = "frp.chn.moe"; };
nginx =
{

View File

@ -16,7 +16,7 @@ inputs:
{
ip = mkOption { type = types.nonEmptyStr; };
mask = mkOption { type = types.ints.unsigned; };
gateway = mkOption { type = types.nonEmptyStr; };
gateway = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
dns = mkOption { type = types.nonEmptyStr; default = null; };
};});
default = {};
@ -91,8 +91,9 @@ inputs:
value =
{
matchConfig.Name = network.name;
address = [ "${network.ip}/${builtins.toString network.mask}" ];
routes = [{ routeConfig.Gateway = network.gateway; }];
address = [ "${network.value.ip}/${builtins.toString network.value.mask}" ];
routes = inputs.lib.mkIf (network.value.gateway != null)
[{ Gateway = network.value.gateway; Destination = "0.0.0.0/0"; }];
linkConfig.RequiredForOnline = "routable";
};
})

View File

@ -14,7 +14,6 @@ inputs:
};
home-manager.users.chn =
{
imports = [ "${inputs.topInputs.impermanence}/home-manager.nix" ];
config =
{
programs =
@ -82,65 +81,39 @@ inputs:
))
)
];
persistence =
{
"/nix/persistent/home/chn" =
{
directories =
[
# common things
"bin" "Desktop" "Documents" "Downloads" "Music" "Pictures" "repo" "share" "Public" "Videos"
".config" ".local/share"
# xmuvpn
".ecdata"
# firefox
".mozilla/firefox/default"
# ssh
".ssh"
# steam
".steam" # ".local/share/Steam"
# vscode
".vscode" # ".config/Code" ".config/grammarly-languageserver"
# zotero
".zotero" "Zotero"
];
allowOther = true;
};
"/nix/rootfs/current/home/chn".allowOther = true;
};
};
pam.yubico.authorizedYubiKeys.ids = [ "cccccbgrhnub" ];
};
};
# environment.persistence =
# let inherit (inputs.config.nixos.system) impermanence; in inputs.lib.mkIf impermanence.enable
# {
# # TODO: make copy or soft link of files
# "${impermanence.persistence}".users.chn =
# {
# directories = builtins.map
# (dir: { directory = dir.dir or dir; user = "chn"; group = "chn"; mode = dir.mode or "0755"; })
# [
# # common things
# "bin" "Desktop" "Documents" "Downloads" "Music" "Pictures" "repo" "share" "Public" "Videos"
# ".config" ".local/share"
# # # gnome
# # { dir = ".config/dconf"; mode = "0700"; } ".config/gtk-2.0" ".config/gtk-3.0" ".config/gtk-4.0"
# # ".config/libaccounts-glib"
# # # android
# # { dir = ".android"; mode = "0750";}
# # xmuvpn
# ".ecdata"
# # firefox
# { dir = ".mozilla/firefox/default"; mode = "0700"; }
# # ssh
# { dir = ".ssh"; mode = "0700"; }
# # steam
# ".steam" # ".local/share/Steam"
# # vscode
# ".vscode" # ".config/Code" ".config/grammarly-languageserver"
# # zotero
# ".zotero" "Zotero"
environment.persistence =
let inherit (inputs.config.nixos.system) impermanence; in inputs.lib.mkIf impermanence.enable
{
# TODO: make copy or soft link of files
"${impermanence.persistence}".users.chn =
{
directories = builtins.map
(dir: { directory = dir.dir or dir; user = "chn"; group = "chn"; mode = dir.mode or "0755"; })
[
# common things
"bin" "Desktop" "Documents" "Downloads" "Music" "Pictures" "repo" "share" "Public" "Videos"
".config" ".local/share"
# # gnome
# { dir = ".config/dconf"; mode = "0700"; } ".config/gtk-2.0" ".config/gtk-3.0" ".config/gtk-4.0"
# ".config/libaccounts-glib"
# # android
# { dir = ".android"; mode = "0750";}
# xmuvpn
".ecdata"
# firefox
{ dir = ".mozilla/firefox/default"; mode = "0700"; }
# ssh
{ dir = ".ssh"; mode = "0700"; }
# steam
".steam" # ".local/share/Steam"
# vscode
".vscode" # ".config/Code" ".config/grammarly-languageserver"
# zotero
".zotero" "Zotero"
# 百度网盘
# ".config/BaiduPCS-Go"
# # bitwarden
@ -223,7 +196,7 @@ inputs:
# ".local/share/waydroid"
# # zsh
# ".local/share/zsh"
# ];
];
# TODO: create file if not exist
# files = builtins.map
# (file: { inherit file; parentDirectory = { user = "chn"; group = "chn"; mode = "0755"; }; })
@ -239,5 +212,7 @@ inputs:
# # age TODO: use sops to storage
# ".config/sops/age/keys.txt"
# ];
};
};
};
}

View File

@ -2,72 +2,74 @@ inputs:
{
config = inputs.lib.mkIf inputs.config.nixos.system.gui.enable
{
home-manager.users.chn.config.home =
{
file =
let
programs =
home-manager.users.chn.config.home.file =
let
programs =
{
nheko = rec
{
nheko = rec
{
fileName = "nheko.desktop";
path = "${inputs.pkgs.nheko}/share/applications/${fileName}";
};
kclockd = rec
{
fileName = "org.kde.kclockd-autostart.desktop";
path = "${inputs.pkgs.kdePackages.kdeGear.kclock}/etc/xdg/autostart/${fileName}";
};
yakuake = rec
{
fileName = "org.kde.yakuake.desktop";
path = "${inputs.pkgs.yakuake}/share/applications/${fileName}";
};
telegram = rec
{
fileName = "org.telegram.desktop.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=telegram-desktop -- %u" ] [ "Exec=telegram-desktop -autostart" ]
(builtins.readFile "${inputs.pkgs.telegram-desktop}/share/applications/${fileName}"));
};
element = rec
{
fileName = "element-desktop.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=element-desktop %u" ] [ "Exec=element-desktop --hidden" ]
(builtins.readFile "${inputs.pkgs.element-desktop.desktopItem}/share/applications/${fileName}"));
};
kmail = rec
{
fileName = "org.kde.kmail2.desktop";
path = "${inputs.pkgs.kmail}/share/applications/${fileName}";
};
discord = rec
{
fileName = "discord.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=Discord" ] [ "Exec=Discord --start-minimized" ]
(builtins.readFile "${inputs.pkgs.discord.desktopItem}/share/applications/${fileName}"));
};
crow-translate = rec
{
fileName = "io.crow_translate.CrowTranslate.desktop";
path = "${inputs.pkgs.crow-translate}/share/applications/${fileName}";
};
fileName = "nheko.desktop";
path = "${inputs.pkgs.nheko}/share/applications/${fileName}";
};
devices =
kclockd = rec
{
pc = [ "nheko" "kclockd" "yakuake" "telegram" "element" "kmail" "discord" "crow-translate" ];
surface = [ "kclockd" "yakuake" "telegram" "element" "crow-translate" ];
fileName = "org.kde.kclockd-autostart.desktop";
path = "${inputs.pkgs.kdePackages.kdeGear.kclock}/etc/xdg/autostart/${fileName}";
};
in builtins.listToAttrs (builtins.map
yakuake = rec
{
fileName = "org.kde.yakuake.desktop";
path = "${inputs.pkgs.yakuake}/share/applications/${fileName}";
};
telegram = rec
{
fileName = "org.telegram.desktop.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=telegram-desktop -- %u" ] [ "Exec=telegram-desktop -autostart" ]
(builtins.readFile "${inputs.pkgs.telegram-desktop}/share/applications/${fileName}"));
};
element = rec
{
fileName = "element-desktop.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=element-desktop %u" ] [ "Exec=element-desktop --hidden" ]
(builtins.readFile "${inputs.pkgs.element-desktop.desktopItem}/share/applications/${fileName}"));
};
kmail = rec
{
fileName = "org.kde.kmail2.desktop";
path = "${inputs.pkgs.kmail}/share/applications/${fileName}";
};
discord = rec
{
fileName = "discord.desktop";
path = inputs.pkgs.writeText fileName (builtins.replaceStrings
[ "Exec=Discord" ] [ "Exec=Discord --start-minimized" ]
(builtins.readFile "${inputs.pkgs.discord.desktopItem}/share/applications/${fileName}"));
};
crow-translate = rec
{
fileName = "io.crow_translate.CrowTranslate.desktop";
path = "${inputs.pkgs.crow-translate}/share/applications/${fileName}";
};
};
devices =
{
pc = [ "nheko" "kclockd" "yakuake" "telegram" "element" "kmail" "discord" "crow-translate" ];
surface = [ "kclockd" "yakuake" "telegram" "element" "crow-translate" ];
};
in builtins.listToAttrs (builtins.map
(file:
{
name = ".config/autostart/${programs.${file}.fileName}";
value.source = programs.${file}.path;
})
(devices.${inputs.config.nixos.system.networking.hostname} or []));
persistence."/nix/rootfs/current/home/chn".directories = [ ".config/autostart" ];
};
environment.persistence =
let impermanence = inputs.config.nixos.system.impermanence;
in inputs.lib.mkIf impermanence.enable
{
"${impermanence.root}".users.chn.directories = [ ".config/autostart" ];
};
};
}

View File

@ -63,13 +63,12 @@ inputs:
"Terminal Features".BlinkingCursorEnabled.value = true;
};
};
home =
{
file.".local/share/konsole/Breeze.colorscheme".text = builtins.replaceStrings
[ "Opacity=1" ] [ "Opacity=0.9\nBlur=true" ]
(builtins.readFile "${inputs.pkgs.konsole}/share/konsole/Breeze.colorscheme");
persistence."/nix/rootfs/current/home/chn".directories = [ ".local/share/konsole" ".local/share/yakuake" ];
};
home.file.".local/share/konsole/Breeze.colorscheme".text = builtins.replaceStrings
[ "Opacity=1" ] [ "Opacity=0.9\nBlur=true" ]
(builtins.readFile "${inputs.pkgs.konsole}/share/konsole/Breeze.colorscheme");
};
environment.persistence =
let impermanence = inputs.config.nixos.system.impermanence; in inputs.lib.mkIf impermanence.enable
{ "${impermanence.root}".users.chn.directories = [ ".local/share/konsole" ".local/share/yakuake" ]; };
};
}