mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-22 21:38:44 +08:00
Compare commits
6 Commits
0d264ba30b
...
22bf73faeb
Author | SHA1 | Date | |
---|---|---|---|
22bf73faeb | |||
8d8f4633b5 | |||
7900d593da | |||
4b15bf8043 | |||
d026c2c06a | |||
9e77fd172f |
@ -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" ];
|
||||
|
@ -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 =
|
||||
{
|
||||
|
@ -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 =
|
||||
{
|
||||
|
@ -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";
|
||||
};
|
||||
})
|
||||
|
@ -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"
|
||||
# ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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" ]; };
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user