Compare commits
56 Commits
quickshell
...
8080d174ae
| Author | SHA1 | Date | |
|---|---|---|---|
|
8080d174ae
|
|||
|
0d39e2869b
|
|||
|
953952f345
|
|||
|
1f60272f14
|
|||
| e5474ffd29 | |||
| dec6db7e8e | |||
| a966a7e81f | |||
| 67b27c4079 | |||
| e958163479 | |||
| 90cd4bdd84 | |||
| e1e3e96626 | |||
| 16f11262ff | |||
| a2b63259ed | |||
| ab539b82ca | |||
| 05c2bc3627 | |||
|
464a162703
|
|||
|
8385671c4f
|
|||
|
433e26edaa
|
|||
|
c28d386c29
|
|||
|
a149d2a3df
|
|||
|
ea02f5b023
|
|||
|
bf904ec38a
|
|||
|
c419ac3a30
|
|||
|
244844242f
|
|||
|
f730d8d118
|
|||
|
590343e5eb
|
|||
|
5da17890cb
|
|||
|
52692a4a47
|
|||
|
f2cb379100
|
|||
|
e6a2690baa
|
|||
|
f642f9c9cc
|
|||
|
7d08e1f5ef
|
|||
|
3cb73506f1
|
|||
|
4be7cd0c0f
|
|||
|
2d038b2ae2
|
|||
|
dd8afc8954
|
|||
|
e69600cc77
|
|||
|
17ef457181
|
|||
|
a39b966a91
|
|||
|
a0b044dbc9
|
|||
|
94764e7a5a
|
|||
|
fef786d317
|
|||
|
8ca0a6cc0f
|
|||
|
3263d72b59
|
|||
|
1c7e5b9f05
|
|||
|
1da34bf704
|
|||
|
88107f9fe7
|
|||
|
5d1f622782
|
|||
|
0ed99176ad
|
|||
|
4dddb0e803
|
|||
|
4353f9da34
|
|||
| 66e772ce62 | |||
| 422259838b | |||
| 390e75ce8e | |||
| a3b627359b | |||
| be75d12e9c |
@@ -1,8 +1,7 @@
|
||||
keys:
|
||||
- &imxyy-nix age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns
|
||||
- &imxyy-nix-server age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6
|
||||
- &imxyy-nix-x16 age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq
|
||||
- &imxyy-cloudwin age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8
|
||||
- &imxyy-nix ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO
|
||||
- &imxyy-nix-server ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire
|
||||
- &imxyy-nix-x16 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/
|
||||
creation_rules:
|
||||
- path_regex: secrets/.*\.(yaml|toml|json|env|dae|txt|conf)$
|
||||
key_groups:
|
||||
@@ -10,4 +9,3 @@ creation_rules:
|
||||
- *imxyy-nix
|
||||
- *imxyy-nix-server
|
||||
- *imxyy-nix-x16
|
||||
- *imxyy-cloudwin
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{ config, hostname, ... }:
|
||||
{
|
||||
config,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# I prefer this to the default issue text
|
||||
# ported from ArchLinux IIRC
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
enable = true;
|
||||
host = "127.0.0.1";
|
||||
port = 8089;
|
||||
package = pkgs.stable.open-webui;
|
||||
package = pkgs.open-webui;
|
||||
};
|
||||
services.caddy.virtualHosts."ai.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets.et-imxyy-nix-server-nixremote = {
|
||||
sopsFile = sopsRoot + /et-imxyy-nix-server-nixremote.toml;
|
||||
sopsFile = secrets.et-imxyy-nix-server-nixremote;
|
||||
format = "binary";
|
||||
};
|
||||
environment.systemPackages = [ pkgs.easytier ];
|
||||
@@ -15,10 +14,8 @@
|
||||
enable = true;
|
||||
script = "${pkgs.easytier}/bin/easytier-core -c ${config.sops.secrets.et-imxyy-nix-server-nixremote.path}";
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 500 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 500 "1m";
|
||||
RestartSec = lib.mkOverride 500 "100ms";
|
||||
RestartSteps = lib.mkOverride 500 9;
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
User = "root";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -37,6 +34,7 @@
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBWOy0QmAyxENg/O5m3cus8U3c9jCLioivwcWsh5/a82 imxyy-hisense-pad"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8pivvE8PMtsOxmccfNhH/4KehDKhBfUfJbQZxo/SZT imxyy-ace5"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKALTBn/QSGcSPgMg0ViSazFcaA0+nEF05EJpjbsI6dE imxyy_soope_@imxyy-cloudwin"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/ imxyy@imxyy-nix-x16"
|
||||
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIENauvvhVMLsUwH9cPYsvnOg7VCL3a4yEiKm8I524TE efl@efl-nix"
|
||||
];
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
}
|
||||
];
|
||||
services.postgresql.ensureDatabases = [ "coder" ];
|
||||
virtualisation.oci-containers = {
|
||||
containers = {
|
||||
coder = {
|
||||
virtualisation.oci-containers.containers.coder = {
|
||||
image = "ghcr.io/coder/coder:latest";
|
||||
environment = {
|
||||
CODER_ACCESS_URL = "https://coder.imxyy.top";
|
||||
@@ -26,8 +24,6 @@
|
||||
];
|
||||
ports = [ "8086:8086" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts."coder.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8086 {
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
{
|
||||
virtualisation.oci-containers = {
|
||||
containers = {
|
||||
sun-panel = {
|
||||
virtualisation.oci-containers.containers.sun-panel = {
|
||||
image = "hslr/sun-panel:latest";
|
||||
volumes = [
|
||||
"/var/lib/sun-panel:/app/conf"
|
||||
];
|
||||
ports = [ "8085:3002" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts."home.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8085
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{ ... }:
|
||||
{
|
||||
users.users.immich = {
|
||||
home = "/mnt/nas/immich";
|
||||
createHome = true;
|
||||
};
|
||||
services.immich = {
|
||||
enable = true;
|
||||
host = "127.0.0.1";
|
||||
|
||||
@@ -1,45 +1,68 @@
|
||||
{
|
||||
services.matrix-synapse = {
|
||||
enable = true;
|
||||
settings = {
|
||||
server_name = "matrix.imxyy.top";
|
||||
public_baseurl = "https://matrix.imxyy.top";
|
||||
listeners = [
|
||||
config,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
port = 8094;
|
||||
bind_addresses = [ "127.0.0.1" ];
|
||||
type = "http";
|
||||
tls = false;
|
||||
x_forwarded = true;
|
||||
resources = [
|
||||
{
|
||||
names = [
|
||||
"client"
|
||||
"federation"
|
||||
];
|
||||
compress = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
turn_uris = [ "turns:vkvm.imxyy.top:5349" ];
|
||||
turn_shared_secret = "ac779a48c03bb451839569d295a29aa6ab8c264277bec2df9c9c7f5e22936288";
|
||||
turn_user_lifetime = "1h";
|
||||
database_type = "psycopg2";
|
||||
database_args.database = "matrix-synapse";
|
||||
sops.secrets.tuwunel-reg-token = {
|
||||
sopsFile = secrets.tuwunel-reg-token;
|
||||
format = "binary";
|
||||
owner = config.services.matrix-tuwunel.user;
|
||||
group = config.services.matrix-tuwunel.group;
|
||||
};
|
||||
extraConfigFiles = [
|
||||
"/var/lib/matrix-synapse/secret"
|
||||
];
|
||||
services.matrix-tuwunel = {
|
||||
enable = true;
|
||||
settings.global = {
|
||||
address = [ "127.0.0.1" ];
|
||||
port = [ 8094 ];
|
||||
server_name = "imxyy.top";
|
||||
allow_registration = true;
|
||||
registration_token_file = config.sops.secrets.tuwunel-reg-token.path;
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts."imxyy.top" = {
|
||||
extraConfig = ''
|
||||
handle /.well-known/matrix/client {
|
||||
header Content-Type application/json
|
||||
header "Access-Control-Allow-Origin" "*"
|
||||
|
||||
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
|
||||
}
|
||||
'';
|
||||
};
|
||||
services.caddy.virtualHosts."imxyy.top:8448" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8094
|
||||
|
||||
handle /.well-known/matrix/client {
|
||||
header Content-Type application/json
|
||||
header "Access-Control-Allow-Origin" "*"
|
||||
|
||||
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
|
||||
}
|
||||
'';
|
||||
};
|
||||
services.caddy.virtualHosts."matrix.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8094
|
||||
handle_path /_matrix {
|
||||
reverse_proxy :8094
|
||||
|
||||
handle /.well-known/matrix/client {
|
||||
header Content-Type application/json
|
||||
header "Access-Control-Allow-Origin" "*"
|
||||
|
||||
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
|
||||
}
|
||||
handle_path /_synapse/client {
|
||||
'';
|
||||
};
|
||||
services.caddy.virtualHosts."matrix.imxyy.top:8448" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8094
|
||||
|
||||
handle /.well-known/matrix/client {
|
||||
header Content-Type application/json
|
||||
header "Access-Control-Allow-Origin" "*"
|
||||
|
||||
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
/*
|
||||
systemd.services."fabric1.20.6" = {
|
||||
description = "fabric 1.20.6 minecraft server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -8,9 +9,10 @@
|
||||
WorkingDirectory = "/opt/minecraft/fabric1.20.6";
|
||||
ExecStart = "${lib.getExe' pkgs.openjdk21 "java"} -Xms1G -Xmx5G -jar fabric-server-mc.1.20.6-loader.0.15.11-launcher.1.0.1.jar";
|
||||
Restart = "always";
|
||||
RestartSec = "10s";
|
||||
RestartSec = 120;
|
||||
};
|
||||
};
|
||||
*/
|
||||
my.persist = {
|
||||
nixosDirs = [
|
||||
"/opt/minecraft"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, sopsRoot, ... }:
|
||||
{ config, secrets, ... }:
|
||||
{
|
||||
sops.secrets.minio-env = {
|
||||
sopsFile = sopsRoot + /minio.env;
|
||||
sopsFile = secrets.minio;
|
||||
format = "dotenv";
|
||||
};
|
||||
services.minio = {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -131,17 +131,17 @@
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBWOy0QmAyxENg/O5m3cus8U3c9jCLioivwcWsh5/a82 imxyy-hisense-pad"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8pivvE8PMtsOxmccfNhH/4KehDKhBfUfJbQZxo/SZT imxyy-ace5"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKALTBn/QSGcSPgMg0ViSazFcaA0+nEF05EJpjbsI6dE imxyy_soope_@imxyy-cloudwin"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/ imxyy@imxyy-nix-x16"
|
||||
];
|
||||
users.users.${username}.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBWOy0QmAyxENg/O5m3cus8U3c9jCLioivwcWsh5/a82 imxyy-hisense-pad"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK8pivvE8PMtsOxmccfNhH/4KehDKhBfUfJbQZxo/SZT imxyy-ace5"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKALTBn/QSGcSPgMg0ViSazFcaA0+nEF05EJpjbsI6dE imxyy_soope_@imxyy-cloudwin"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/ imxyy@imxyy-nix-x16"
|
||||
];
|
||||
|
||||
sops.secrets.dae-imxyy-nix-server = {
|
||||
sopsFile = sopsRoot + /dae-imxyy-nix-server.dae;
|
||||
sopsFile = secrets.dae-imxyy-nix-server;
|
||||
format = "binary";
|
||||
};
|
||||
services.dae = {
|
||||
@@ -150,7 +150,7 @@
|
||||
};
|
||||
systemd.services.dae.after = [ "sops-nix.service" ];
|
||||
sops.secrets.mihomo = {
|
||||
sopsFile = sopsRoot + /mihomo.yaml;
|
||||
sopsFile = secrets.mihomo;
|
||||
format = "yaml";
|
||||
key = "";
|
||||
};
|
||||
@@ -162,7 +162,7 @@
|
||||
};
|
||||
|
||||
sops.secrets.frp-env = {
|
||||
sopsFile = sopsRoot + /frp.env;
|
||||
sopsFile = secrets.frp;
|
||||
format = "dotenv";
|
||||
};
|
||||
systemd.services.frp.serviceConfig.EnvironmentFile = [
|
||||
@@ -377,6 +377,20 @@
|
||||
customDomains = [ "sy.imxyy.top" ];
|
||||
}
|
||||
|
||||
{
|
||||
name = "matrix-root-http";
|
||||
type = "http";
|
||||
localIP = "127.0.0.1";
|
||||
localPort = 80;
|
||||
customDomains = [ "imxyy.top" ];
|
||||
}
|
||||
{
|
||||
name = "matrix-root-https";
|
||||
type = "https";
|
||||
localIP = "127.0.0.1";
|
||||
localPort = 443;
|
||||
customDomains = [ "imxyy.top" ];
|
||||
}
|
||||
{
|
||||
name = "matrix-http";
|
||||
type = "http";
|
||||
@@ -391,6 +405,13 @@
|
||||
localPort = 443;
|
||||
customDomains = [ "matrix.imxyy.top" ];
|
||||
}
|
||||
{
|
||||
name = "matrix-fed";
|
||||
type = "tcp";
|
||||
localIP = "127.0.0.1";
|
||||
localPort = 8448;
|
||||
remotePort = 8448;
|
||||
}
|
||||
|
||||
{
|
||||
name = "immich-http";
|
||||
@@ -407,6 +428,21 @@
|
||||
customDomains = [ "immich.imxyy.top" ];
|
||||
}
|
||||
|
||||
{
|
||||
name = "memo-http";
|
||||
type = "http";
|
||||
localIP = "127.0.0.1";
|
||||
localPort = 80;
|
||||
customDomains = [ "memo.imxyy.top" ];
|
||||
}
|
||||
{
|
||||
name = "memo-https";
|
||||
type = "https";
|
||||
localIP = "127.0.0.1";
|
||||
localPort = 443;
|
||||
customDomains = [ "memo.imxyy.top" ];
|
||||
}
|
||||
|
||||
{
|
||||
name = "minecraft";
|
||||
type = "tcp";
|
||||
@@ -449,12 +485,6 @@
|
||||
};
|
||||
};
|
||||
systemd.services."headscale" = {
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 500 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 500 "1m";
|
||||
RestartSec = lib.mkOverride 500 "100ms";
|
||||
RestartSteps = lib.mkOverride 500 9;
|
||||
};
|
||||
after = [
|
||||
"podman-obligator.service"
|
||||
];
|
||||
@@ -464,7 +494,7 @@
|
||||
};
|
||||
|
||||
sops.secrets.et-imxyy-nix-server = {
|
||||
sopsFile = sopsRoot + /et-imxyy-nix-server.toml;
|
||||
sopsFile = secrets.et-imxyy-nix-server;
|
||||
format = "binary";
|
||||
};
|
||||
environment.systemPackages = [ pkgs.easytier ];
|
||||
@@ -472,10 +502,8 @@
|
||||
enable = true;
|
||||
script = "${pkgs.easytier}/bin/easytier-core -c ${config.sops.secrets.et-imxyy-nix-server.path}";
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 500 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 500 "1m";
|
||||
RestartSec = lib.mkOverride 500 "100ms";
|
||||
RestartSteps = lib.mkOverride 500 9;
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
User = "root";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -485,9 +513,7 @@
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.oci-containers = {
|
||||
containers = {
|
||||
obligator = {
|
||||
virtualisation.oci-containers.containers.obligator = {
|
||||
image = "anderspitman/obligator:latest";
|
||||
volumes = [
|
||||
"/var/lib/obligator:/data"
|
||||
@@ -505,8 +531,6 @@
|
||||
"1616"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts."headscale.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8080 {
|
||||
@@ -571,6 +595,7 @@
|
||||
"ai"
|
||||
"sy"
|
||||
"minio"
|
||||
"immich"
|
||||
];
|
||||
in
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
config,
|
||||
username,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -13,17 +13,16 @@
|
||||
timeout = 0;
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
||||
systemd.services.nix-daemon = {
|
||||
environment.TMPDIR = "/var/cache/nix";
|
||||
serviceConfig.CacheDirectory = "nix";
|
||||
};
|
||||
environment.variables.NIX_REMOTE = "daemon";
|
||||
|
||||
my.audio.enable = false;
|
||||
|
||||
sops.secrets.imxyy-nix-server-hashed-password = {
|
||||
sopsFile = sopsRoot + /imxyy-nix-server-hashed-password.txt;
|
||||
sopsFile = secrets.imxyy-nix-server-hashed-password;
|
||||
format = "binary";
|
||||
neededForUsers = true;
|
||||
};
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
{
|
||||
config,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets = {
|
||||
flatnote-env = {
|
||||
sopsFile = sopsRoot + /flatnote.env;
|
||||
sopsFile = secrets.flatnote;
|
||||
format = "dotenv";
|
||||
};
|
||||
siyuan-env = {
|
||||
sopsFile = sopsRoot + /siyuan.env;
|
||||
sopsFile = secrets.siyuan;
|
||||
format = "dotenv";
|
||||
};
|
||||
};
|
||||
virtualisation.oci-containers = {
|
||||
containers = {
|
||||
virtualisation.oci-containers.containers = {
|
||||
flatnotes = {
|
||||
image = "dullage/flatnotes:latest";
|
||||
volumes = [
|
||||
@@ -44,6 +43,12 @@
|
||||
];
|
||||
ports = [ "8095:6806" ];
|
||||
};
|
||||
memos = {
|
||||
image = "neosmemo/memos:stable";
|
||||
volumes = [
|
||||
"/mnt/nas/memos:/var/opt/memos"
|
||||
];
|
||||
ports = [ "8097:5230" ];
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts = {
|
||||
@@ -57,5 +62,10 @@
|
||||
reverse_proxy :8095
|
||||
'';
|
||||
};
|
||||
"memo.imxyy.top" = {
|
||||
extraConfig = ''
|
||||
reverse_proxy :8097
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, sopsRoot, ... }:
|
||||
{ config, secrets, ... }:
|
||||
{
|
||||
sops.secrets.vaultwarden-env = {
|
||||
sopsFile = sopsRoot + /vaultwarden.env;
|
||||
sopsFile = secrets.vaultwarden;
|
||||
format = "dotenv";
|
||||
};
|
||||
services.postgresql.ensureUsers = [
|
||||
|
||||
@@ -13,7 +13,7 @@ let
|
||||
in
|
||||
{
|
||||
boot = {
|
||||
initrd.kernelModules = [
|
||||
initrd.kernelModules = lib.mkBefore [
|
||||
"vfio_pci"
|
||||
"vfio"
|
||||
"vfio_iommu_type1"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
localproxy_on = "export http_proxy=http://192.168.128.1:7890 https_proxy=http://192.168.128.1:7890 all_proxy=socks://192.168.128.1:7890";
|
||||
};
|
||||
my = {
|
||||
sops.sshKeyPath = "/home/${username}/.ssh/id_ed25519";
|
||||
sops.sshKeyFile = "/home/${username}/.ssh/id_ed25519";
|
||||
coding.all.enable = true;
|
||||
coding.editor.vscode.enable = lib.mkForce false;
|
||||
cli.misc.enable = true;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
@@ -10,8 +8,6 @@
|
||||
home.packages = with pkgs; [
|
||||
localsend
|
||||
|
||||
rclone
|
||||
|
||||
wpsoffice-cn
|
||||
wps-office-fonts
|
||||
ttf-wps-fonts
|
||||
@@ -20,24 +16,33 @@
|
||||
anki
|
||||
|
||||
ayugram-desktop
|
||||
telegram-desktop
|
||||
signal-desktop
|
||||
discord
|
||||
element-desktop
|
||||
qq
|
||||
wechat
|
||||
|
||||
gnome-clocks
|
||||
|
||||
wineWowPackages.waylandFull
|
||||
|
||||
pavucontrol
|
||||
pamixer
|
||||
];
|
||||
programs.zsh = {
|
||||
sessionVariables = {
|
||||
PATH = "/home/${username}/bin:$PATH";
|
||||
};
|
||||
};
|
||||
|
||||
programs.niri.settings = {
|
||||
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
|
||||
outputs = {
|
||||
eDP-1 = {
|
||||
enable = true;
|
||||
mode = {
|
||||
width = 1920;
|
||||
height = 1200;
|
||||
refresh = 60.002;
|
||||
};
|
||||
scale = 1.25;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
my = {
|
||||
@@ -45,8 +50,7 @@
|
||||
cli.all.enable = true;
|
||||
coding.all.enable = true;
|
||||
desktop.all.enable = true;
|
||||
|
||||
desktop.browser.librewolf.enable = lib.mkForce false;
|
||||
virt.moonlight.enable = true;
|
||||
|
||||
i18n.fcitx5.enable = true;
|
||||
|
||||
@@ -92,15 +96,6 @@
|
||||
"image/png" = imageviewer;
|
||||
"image/webp" = imageviewer;
|
||||
};
|
||||
extraBookmarks =
|
||||
let
|
||||
homedir = config.my.home.home.homeDirectory;
|
||||
in
|
||||
[
|
||||
"file://${homedir}/NAS NAS"
|
||||
"file://${homedir}/NAS/imxyy_soope_ NAS imxyy_soope_"
|
||||
"file://${homedir}/NAS/imxyy_soope_/OS NAS OS"
|
||||
];
|
||||
};
|
||||
persist = {
|
||||
enable = true;
|
||||
@@ -118,23 +113,25 @@
|
||||
".local/state"
|
||||
".local/share/Anki2"
|
||||
".local/share/shotwell"
|
||||
".local/share/cheat.sh"
|
||||
".local/share/Kingsoft"
|
||||
|
||||
".local/share/AyuGramDesktop"
|
||||
".local/share/TelegramDesktop"
|
||||
".config/Signal"
|
||||
".config/discord"
|
||||
".config/Element"
|
||||
".config/QQ"
|
||||
".xwechat"
|
||||
|
||||
".config/Kingsoft"
|
||||
".config/dconf"
|
||||
".config/gh"
|
||||
".config/pulse"
|
||||
".config/pip"
|
||||
".config/libreoffice"
|
||||
".config/sunshine"
|
||||
|
||||
".gemini"
|
||||
".claude"
|
||||
".claude-code-router"
|
||||
];
|
||||
homeFiles = [
|
||||
".claude.json"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -10,10 +9,51 @@
|
||||
"biosdevname=0"
|
||||
"net.ifnames=0"
|
||||
];
|
||||
networking.networkmanager.enable = true;
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
nftables = {
|
||||
enable = true;
|
||||
flushRuleset = true;
|
||||
ruleset = ''
|
||||
table inet firewall {
|
||||
set LANv4 {
|
||||
type ipv4_addr
|
||||
flags interval
|
||||
|
||||
elements = { 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16 }
|
||||
}
|
||||
set LANv6 {
|
||||
type ipv6_addr
|
||||
flags interval
|
||||
|
||||
elements = { fd00::/8, fe80::/10 }
|
||||
}
|
||||
|
||||
chain output {
|
||||
type filter hook output priority 100; policy accept;
|
||||
}
|
||||
|
||||
chain input {
|
||||
type filter hook input priority 0; policy drop;
|
||||
iif lo accept
|
||||
ct state invalid drop
|
||||
ct state established,related accept
|
||||
|
||||
ip saddr @LANv4 accept
|
||||
ip6 saddr @LANv6 accept
|
||||
}
|
||||
|
||||
chain forward {
|
||||
type filter hook forward priority 0; policy drop;
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
sops.secrets.dae-imxyy-nix-x16 = {
|
||||
sopsFile = sopsRoot + /dae-imxyy-nix-x16.dae;
|
||||
sopsFile = secrets.dae-imxyy-nix-x16;
|
||||
format = "binary";
|
||||
};
|
||||
services.dae = {
|
||||
@@ -22,7 +62,7 @@
|
||||
};
|
||||
systemd.services.dae.after = [ "sops-nix.service" ];
|
||||
sops.secrets.mihomo = {
|
||||
sopsFile = sopsRoot + /mihomo.yaml;
|
||||
sopsFile = secrets.mihomo;
|
||||
format = "yaml";
|
||||
key = "";
|
||||
};
|
||||
@@ -34,7 +74,7 @@
|
||||
};
|
||||
|
||||
sops.secrets.et-imxyy-nix-x16 = {
|
||||
sopsFile = sopsRoot + /et-imxyy-nix-x16.toml;
|
||||
sopsFile = secrets.et-imxyy-nix-x16;
|
||||
format = "binary";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -44,10 +84,8 @@
|
||||
enable = true;
|
||||
script = "${pkgs.easytier}/bin/easytier-core -c ${config.sops.secrets.et-imxyy-nix-x16.path}";
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 500 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 500 "1m";
|
||||
RestartSec = lib.mkOverride 500 "100ms";
|
||||
RestartSteps = lib.mkOverride 500 9;
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
User = "root";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -36,36 +35,6 @@
|
||||
};
|
||||
environment.variables.NIX_REMOTE = "daemon";
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = false;
|
||||
alsa.support32Bit = false;
|
||||
pulse.enable = false;
|
||||
audio.enable = false;
|
||||
};
|
||||
services.pulseaudio = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
package = pkgs.pulseaudioFull;
|
||||
extraConfig = ''
|
||||
load-module module-switch-on-connect
|
||||
unload-module module-suspend-on-idle
|
||||
'';
|
||||
};
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
Disable = "HeadSet";
|
||||
MultiProfile = "multiple";
|
||||
};
|
||||
};
|
||||
};
|
||||
users.extraUsers.${username}.extraGroups = [ "audio" ];
|
||||
|
||||
fonts = {
|
||||
enableDefaultPackages = false;
|
||||
fontDir.enable = true;
|
||||
@@ -102,6 +71,9 @@
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
services.upower.enable = true;
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
services.keyd = {
|
||||
enable = true;
|
||||
keyboards.default.settings = {
|
||||
@@ -134,7 +106,7 @@
|
||||
];
|
||||
|
||||
sops.secrets.imxyy-nix-rclone = {
|
||||
sopsFile = sopsRoot + /imxyy-nix-rclone.conf;
|
||||
sopsFile = secrets.imxyy-nix-rclone;
|
||||
format = "binary";
|
||||
};
|
||||
fileSystems = {
|
||||
@@ -154,21 +126,6 @@
|
||||
"vfs-cache-mode=full"
|
||||
];
|
||||
};
|
||||
"/home/${username}/NAS" = {
|
||||
device = "//10.0.0.1/share";
|
||||
fsType = "cifs";
|
||||
options = [
|
||||
"username=nas"
|
||||
"password=nasshare"
|
||||
"x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"
|
||||
"nodev"
|
||||
"nofail"
|
||||
"uid=1000"
|
||||
"gid=100"
|
||||
"vers=3"
|
||||
"rw"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
my.persist.nixosDirs = [ "/etc/NetworkManager/system-connections" ];
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
@@ -10,8 +8,6 @@
|
||||
home.packages = with pkgs; [
|
||||
localsend
|
||||
|
||||
rclone
|
||||
|
||||
wpsoffice-cn
|
||||
wps-office-fonts
|
||||
ttf-wps-fonts
|
||||
@@ -20,18 +16,12 @@
|
||||
anki
|
||||
|
||||
ayugram-desktop
|
||||
telegram-desktop
|
||||
signal-desktop
|
||||
discord
|
||||
element-desktop
|
||||
qq
|
||||
wechat
|
||||
|
||||
gnome-clocks
|
||||
|
||||
wineWowPackages.waylandFull
|
||||
|
||||
pavucontrol
|
||||
pamixer
|
||||
];
|
||||
programs.zsh = {
|
||||
shellAliases = {
|
||||
@@ -91,8 +81,6 @@
|
||||
coding.all.enable = true;
|
||||
desktop.all.enable = true;
|
||||
|
||||
desktop.browser.librewolf.enable = lib.mkForce false;
|
||||
|
||||
i18n.fcitx5.enable = true;
|
||||
|
||||
xdg = {
|
||||
@@ -137,16 +125,6 @@
|
||||
"image/png" = imageviewer;
|
||||
"image/webp" = imageviewer;
|
||||
};
|
||||
extraBookmarks =
|
||||
let
|
||||
homedir = config.my.home.home.homeDirectory;
|
||||
in
|
||||
[
|
||||
"file://${homedir}/Documents/%E7%8F%AD%E7%BA%A7%E4%BA%8B%E5%8A%A1 班级事务"
|
||||
"file://${homedir}/NAS NAS"
|
||||
"file://${homedir}/NAS/imxyy_soope_ NAS imxyy_soope_"
|
||||
"file://${homedir}/NAS/imxyy_soope_/OS NAS OS"
|
||||
];
|
||||
};
|
||||
persist = {
|
||||
enable = true;
|
||||
@@ -162,23 +140,20 @@
|
||||
".local/state"
|
||||
".local/share/Anki2"
|
||||
".local/share/shotwell"
|
||||
".local/share/cheat.sh"
|
||||
".local/share/Kingsoft"
|
||||
|
||||
".local/share/AyuGramDesktop"
|
||||
".local/share/TelegramDesktop"
|
||||
".config/Signal"
|
||||
".config/discord"
|
||||
".config/Element"
|
||||
".config/QQ"
|
||||
".xwechat"
|
||||
|
||||
".config/Kingsoft"
|
||||
".config/dconf"
|
||||
".config/gh"
|
||||
".config/pulse"
|
||||
".config/pip"
|
||||
".config/libreoffice"
|
||||
".config/sunshine"
|
||||
|
||||
".gemini"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
sopsRoot,
|
||||
username,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -86,7 +85,7 @@
|
||||
};
|
||||
|
||||
sops.secrets.dae-imxyy-nix = {
|
||||
sopsFile = sopsRoot + /dae-imxyy-nix.dae;
|
||||
sopsFile = secrets.dae-imxyy-nix;
|
||||
format = "binary";
|
||||
};
|
||||
services.dae = {
|
||||
@@ -95,7 +94,7 @@
|
||||
};
|
||||
systemd.services.dae.after = [ "sops-nix.service" ];
|
||||
sops.secrets.mihomo = {
|
||||
sopsFile = sopsRoot + /mihomo.yaml;
|
||||
sopsFile = secrets.mihomo;
|
||||
format = "yaml";
|
||||
key = "";
|
||||
};
|
||||
@@ -107,7 +106,7 @@
|
||||
};
|
||||
|
||||
sops.secrets.et-imxyy-nix = {
|
||||
sopsFile = sopsRoot + /et-imxyy-nix.toml;
|
||||
sopsFile = secrets.et-imxyy-nix;
|
||||
format = "binary";
|
||||
};
|
||||
environment.systemPackages = [ pkgs.easytier ];
|
||||
@@ -115,10 +114,8 @@
|
||||
enable = true;
|
||||
script = "${pkgs.easytier}/bin/easytier-core -c ${config.sops.secrets.et-imxyy-nix.path}";
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 500 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 500 "1m";
|
||||
RestartSec = lib.mkOverride 500 "100ms";
|
||||
RestartSteps = lib.mkOverride 500 9;
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
User = "root";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
pkgs,
|
||||
config,
|
||||
username,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -22,7 +22,7 @@ let
|
||||
temp = line.split(" ")
|
||||
bus = temp[1]
|
||||
device = temp[3][:-1]
|
||||
subprocess.run(["${lib.getExe usbreset}", f"/dev/bus/usb/{bus}/{device}"])
|
||||
subprocess.run(["${lib.getExe' pkgs.usbutils "usbreset"}", f"{bus}/{device}"])
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -36,44 +36,6 @@ let
|
||||
with open("/tmp/.btreseted", "w"):
|
||||
...
|
||||
'';
|
||||
usbreset = pkgs.writeCBin "usbreset" ''
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <linux/usbdevice_fs.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *filename;
|
||||
int fd;
|
||||
int rc;
|
||||
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "Usage: usbreset device-filename\n");
|
||||
return 1;
|
||||
}
|
||||
filename = argv[1];
|
||||
|
||||
fd = open(filename, O_WRONLY);
|
||||
if (fd < 0) {
|
||||
perror("Error opening output file");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Resetting USB device %s\n", filename);
|
||||
rc = ioctl(fd, USBDEVFS_RESET, 0);
|
||||
if (rc < 0) {
|
||||
perror("Error in ioctl");
|
||||
return 1;
|
||||
}
|
||||
printf("Reset successful\n");
|
||||
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
{
|
||||
security.pam.loginLimits = [
|
||||
@@ -111,36 +73,6 @@ in
|
||||
};
|
||||
environment.variables.NIX_REMOTE = "daemon";
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = false;
|
||||
alsa.support32Bit = false;
|
||||
pulse.enable = false;
|
||||
audio.enable = false;
|
||||
};
|
||||
services.pulseaudio = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
package = pkgs.pulseaudioFull;
|
||||
extraConfig = ''
|
||||
load-module module-switch-on-connect
|
||||
unload-module module-suspend-on-idle
|
||||
'';
|
||||
};
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
Disable = "HeadSet";
|
||||
MultiProfile = "multiple";
|
||||
};
|
||||
};
|
||||
};
|
||||
users.extraUsers.${username}.extraGroups = [ "audio" ];
|
||||
|
||||
fonts = {
|
||||
enableDefaultPackages = false;
|
||||
fontDir.enable = true;
|
||||
@@ -225,7 +157,7 @@ in
|
||||
];
|
||||
|
||||
sops.secrets.imxyy-nix-rclone = {
|
||||
sopsFile = sopsRoot + /imxyy-nix-rclone.conf;
|
||||
sopsFile = secrets.imxyy-nix-rclone;
|
||||
format = "binary";
|
||||
};
|
||||
fileSystems = {
|
||||
|
||||
231
flake.lock
generated
231
flake.lock
generated
@@ -37,11 +37,11 @@
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748408240,
|
||||
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||
"lastModified": 1752979451,
|
||||
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -98,6 +98,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"catppuccin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754950929,
|
||||
"narHash": "sha256-75hsUMshZ5ZlO/X2JWfZqKHPM66uhUNsDG/Zozwh/xs=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "45512611f1537c75e439d508409efc6901286645",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"chaotic": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
@@ -107,11 +127,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752141190,
|
||||
"narHash": "sha256-RHNq77Z84BtLTwyRtrBffm5V9006Dqw4vh3vrvULlxM=",
|
||||
"lastModified": 1755169038,
|
||||
"narHash": "sha256-lIAE8ou7ukvoOE0nZ2lNcl/n8mnj6m2cGsx9U7Xhew4=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "ef0794b8e94eea166407141f7e92da75f6df925a",
|
||||
"rev": "5efc0389eaca14046e1ee2068bcba6fe64cf6e2e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -128,11 +148,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750940343,
|
||||
"narHash": "sha256-qmc/jreM09MOwQ8dOa/+yyh99rU7TowSqo8L33VHfto=",
|
||||
"lastModified": 1754000084,
|
||||
"narHash": "sha256-m3UMp3dJfGptOR8WDGYgaHfax7Wpad0wKfOI8xZLC1s=",
|
||||
"owner": "Bali10050",
|
||||
"repo": "Darkly",
|
||||
"rev": "77770c8d3c35f7ad39da2c57122c360096df0aac",
|
||||
"rev": "39b4100b86c4531a5729e00e1584df9970b02468",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -171,11 +191,11 @@
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752129689,
|
||||
"narHash": "sha256-0Xq5tZbvgZvxbbxv6kRHFuZE4Tq2za016NXh32nX0+Q=",
|
||||
"lastModified": 1755240331,
|
||||
"narHash": "sha256-wEtw76+R/TOHEIjYOnxADC91G6s422HGruAngbjzsDw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "70bb04a7de606a75ba0a2ee9d47b99802780b35d",
|
||||
"rev": "3f076d4502001c64877099093318b2dbd8b062a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -457,11 +477,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748528448,
|
||||
"narHash": "sha256-Tyn+PgBm78Ibq28/WbEz8+pYJZMdbJKsyXMCpT6TjrM=",
|
||||
"lastModified": 1751817769,
|
||||
"narHash": "sha256-j7ORyAJFNxYWwF+6fs2z5IcJ40TpVwrkFYU9/CGHwfA=",
|
||||
"owner": "imxyy1soope1",
|
||||
"repo": "go-musicfox",
|
||||
"rev": "1870fd3501631577ad4daef1489b03885abcb037",
|
||||
"rev": "179b9440b6f209e7fd6ade589117b72bdd9042a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -500,11 +520,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751824240,
|
||||
"narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=",
|
||||
"lastModified": 1755121891,
|
||||
"narHash": "sha256-UtYkukiGnPRJ5rpd4W/wFVrLMh8fqtNkqHTPgHEtrqU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fd9e55f5fac45a26f6169310afca64d56b681935",
|
||||
"rev": "279ca5addcdcfa31ac852b3ecb39fc372684f426",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -520,11 +540,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752202894,
|
||||
"narHash": "sha256-knafgng4gCjZIUMyAEWjxxdols6n/swkYnbWr+oF+1w=",
|
||||
"lastModified": 1755229570,
|
||||
"narHash": "sha256-soZegto0xXzG2zYlu/zjknDHv0Z7tRS5EQs+Z/VRTBg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fab659b346c0d4252208434c3c4b3983a4b38fec",
|
||||
"rev": "11626a4383b458f8dc5ea3237eaa04e8ab1912f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -542,11 +562,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743604125,
|
||||
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=",
|
||||
"lastModified": 1752603129,
|
||||
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a",
|
||||
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -595,11 +615,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751529406,
|
||||
"narHash": "sha256-jwKDHyUycp678zDYa5Hyfq3msO73YMXdZPxp96dU7po=",
|
||||
"lastModified": 1755151620,
|
||||
"narHash": "sha256-fVMalQZ+tRXR8oue2SdWu4CdlsS2NII+++rI40XQ8rU=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "b2e5ce654e4f5bf8905c2e07a96dcf4966e6277d",
|
||||
"rev": "16e12d22754d97064867006acae6e16da7a142a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -658,21 +678,17 @@
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixpkgs-stable"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752078530,
|
||||
"narHash": "sha256-TrRmlYdhWcadWvBpDjB9Xlry4uT4ZUIO46d+o5tjtCQ=",
|
||||
"lastModified": 1755104498,
|
||||
"narHash": "sha256-kMosXLeEB43OtUKvhvzikKfFLpv7H7JzObCQO0j4X34=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "d231d92313192d4d0c78d6ef04167fed9dee87cf",
|
||||
"rev": "22a24ab05a9f4b3a94fba0aa0d8d850e6269241a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -701,11 +717,11 @@
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750791124,
|
||||
"narHash": "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg=",
|
||||
"lastModified": 1755074352,
|
||||
"narHash": "sha256-I+kpboTzfMwRVK76OoTmHStrGuzJPcmvZKxmlmL9q+A=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "37458d94b288945f6cfbd3c5c233f634d59f246c",
|
||||
"rev": "af9ce533100b49e8bc879b557ab830f5d3a18805",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -804,11 +820,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752199438,
|
||||
"narHash": "sha256-xSBMmGtq8K4Qv80TMqREmESCAsRLJRHAbFH2T/2Bf1Y=",
|
||||
"lastModified": 1755171343,
|
||||
"narHash": "sha256-h6bbfhqWcHlx9tcyYa7dhaEiNpusLCcFYkJ/AnltLW8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "d34d9412556d3a896e294534ccd25f53b6822e80",
|
||||
"rev": "e37cfef071466a9ca649f6899aff05226ce17e9e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -819,11 +835,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"lastModified": 1755027561,
|
||||
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -847,11 +863,11 @@
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"locked": {
|
||||
"lastModified": 1752206449,
|
||||
"narHash": "sha256-NVAbC/s4CupABWGXF8M9mDiVw/n0YCftxwc1KatVjDk=",
|
||||
"lastModified": 1755243717,
|
||||
"narHash": "sha256-x2YnDp3CsXwrRMaUHtNacD15uG7I9+IRzodafD3DjHc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1bd4d0d4a678d48b63eb18f457d74df2fcee6c69",
|
||||
"rev": "b4516d45cfdf4b37c1643eafcefe8620896a8aeb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -863,11 +879,27 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1752203688,
|
||||
"narHash": "sha256-uJ054F5PVGPu5SvLPMevhdY/EfK0X5DUyRtXhQYNUyo=",
|
||||
"lastModified": 1754937576,
|
||||
"narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1755243528,
|
||||
"narHash": "sha256-YGBq/8D3gWuwLmDZb63h4a21GOMquBH8JcZsrJFL43Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a70a12c75e13aa546c20ce0fe515de634d52c39e",
|
||||
"rev": "c3a6f30dea7d1e58267488a687db1a6f07ff6063",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -879,11 +911,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1752124863,
|
||||
"narHash": "sha256-5rWuf6RAlMDp/CAEuyYEz7ryxzgjxOCgUDhWEef864c=",
|
||||
"lastModified": 1755166611,
|
||||
"narHash": "sha256-sk8pK8kWz4IE4ErAjKE1d8tMChY6VQR32U4yS68FIog=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "40de82b434526744da778ed53c742c1282d9e75e",
|
||||
"rev": "1a341e3c908f4a3105e737bd13af0318dc06fbe3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -943,11 +975,27 @@
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"lastModified": 1755027561,
|
||||
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1755027561,
|
||||
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -960,14 +1008,14 @@
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752207112,
|
||||
"narHash": "sha256-dnVoQSGQqEGJQzS6iHAG95c0oFrezzBinwu1bDLj9J4=",
|
||||
"lastModified": 1755102471,
|
||||
"narHash": "sha256-ecWsZvrU/v7phSRIulxUYoCZ+i8s+mQ0ecmxxcgHUko=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "f166dc14862dfec043f9545e8291cc4402f8b866",
|
||||
"rev": "94c6c5b9798480dc220ee2cc8b1ce93a472a8d8f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1001,28 +1049,9 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752146885,
|
||||
"narHash": "sha256-ZJK989GL+bTCQSxbG8v8/7tHMCEl/FPovkeDBNyClQE=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "d7079b75241c6e2b67f2429996fa7679ffc052e2",
|
||||
"revCount": 616,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"chaotic": "chaotic",
|
||||
"darkly": "darkly",
|
||||
"fenix": "fenix",
|
||||
@@ -1037,10 +1066,9 @@
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nixpkgs-master": "nixpkgs-master",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nur": "nur",
|
||||
"quickshell": "quickshell",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"zen": "zen"
|
||||
@@ -1049,11 +1077,11 @@
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1752086493,
|
||||
"narHash": "sha256-USpVUdiWXDfPoh+agbvoBQaBhg3ZdKZgHXo/HikMfVo=",
|
||||
"lastModified": 1755004716,
|
||||
"narHash": "sha256-TbhPR5Fqw5LjAeI3/FOPhNNFQCF3cieKCJWWupeZmiA=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "6e3abe164b9036048dce1a3aa65a7e7e5200c0d3",
|
||||
"rev": "b2a58b8c6eff3c3a2c8b5c70dbf69ead78284194",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1071,11 +1099,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751856221,
|
||||
"narHash": "sha256-/QE1eV0ckFvgRMcKjZqgdJDoXFNwSMepwRoBjaw2MCk=",
|
||||
"lastModified": 1755139244,
|
||||
"narHash": "sha256-SN1BFA00m+siVAQiGLtTwjv9LV9TH5n8tQcSziV6Nv4=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "34cae4b56929c5b340e1c5b10d9a98a425b2a51e",
|
||||
"rev": "aeae248beb2a419e39d483dd9b7fec924aba8d4d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1091,15 +1119,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751606940,
|
||||
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||
"lastModified": 1755217133,
|
||||
"narHash": "sha256-rnc6cHwCz/o6/pjDiwODNXRxtKfewjho+2ogvDkbiBU=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||
"rev": "0936ef21bed8aae3cc15a913e1445f0df28e19dd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"ref": "pull/779/merge",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -1125,11 +1154,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752201883,
|
||||
"narHash": "sha256-SZVbQ4YThvYU50cJ4W4GNMy7/rVOJI8qmXqbEcRNsug=",
|
||||
"lastModified": 1755211397,
|
||||
"narHash": "sha256-kw6iLWUj6+fiEpuc8ntrIzJ2gdS36wIcRINbKU0AIbA=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "d395780b9c5c36f191b990b2021c71af180a1982",
|
||||
"rev": "928ca832d22ab3167b49dc5f4d52ff5d26b0b52a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1269,11 +1298,11 @@
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751228685,
|
||||
"narHash": "sha256-MENtauGBhJ+kDeFaawvWGXaFG3Il6qQzjaP0RmtfM0k=",
|
||||
"lastModified": 1754533920,
|
||||
"narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "557ebeb616e03d5e4a8049862bbbd1f02c6f020b",
|
||||
"rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1290,11 +1319,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752164817,
|
||||
"narHash": "sha256-LJFIx27IOUowLsJn5wci9mHZ4CesJsiAivQWDjnZPCc=",
|
||||
"lastModified": 1755199018,
|
||||
"narHash": "sha256-y7dM6ihF4feDgbssaeFxKXjsJb6Rzjz1brc17kSkcoQ=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "9193992c4c2c4349b4280ec2b49648cae208fe63",
|
||||
"rev": "8bf64e38baa26429c31d0623c3f16812b794b436",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
41
flake.nix
41
flake.nix
@@ -13,8 +13,9 @@
|
||||
# Nyxpkgs
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
|
||||
# SOPS
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
# TODO: sops-nix: remove pr patch once merged
|
||||
# https://github.com/Mic92/sops-nix/pull/779
|
||||
sops-nix.url = "github:Mic92/sops-nix/pull/779/merge";
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# Home manager
|
||||
@@ -29,11 +30,6 @@
|
||||
|
||||
# Niri
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
niri.inputs.nixpkgs.follows = "nixpkgs";
|
||||
niri.inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
||||
|
||||
quickshell.url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
quickshell.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
darkly.url = "github:Bali10050/Darkly";
|
||||
darkly.inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -55,6 +51,9 @@
|
||||
zen.url = "github:0xc000022070/zen-browser-flake";
|
||||
zen.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
infuse.url = "git+https://codeberg.org/amjoseph/infuse.nix";
|
||||
infuse.flake = false;
|
||||
|
||||
@@ -71,10 +70,10 @@
|
||||
let
|
||||
inherit (self) outputs;
|
||||
vars = import ./vars.nix;
|
||||
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
|
||||
forAllSystems = lib.genAttrs lib.systems.flakeExposed;
|
||||
forAllHosts =
|
||||
mkSystem:
|
||||
nixpkgs.lib.attrsets.mergeAttrsList (
|
||||
lib.mergeAttrsList (
|
||||
builtins.map (hostname: {
|
||||
${hostname} = mkSystem hostname;
|
||||
}) (builtins.attrNames (builtins.readDir ./config/hosts))
|
||||
@@ -139,17 +138,6 @@
|
||||
darkly-qt5 = inputs.darkly.packages.${final.system}.darkly-qt5;
|
||||
darkly-qt6 = inputs.darkly.packages.${final.system}.darkly-qt6;
|
||||
})
|
||||
(final: prev: {
|
||||
quickshell = inputs.quickshell.packages.${final.system}.default.override {
|
||||
withJemalloc = true;
|
||||
withQtSvg = true;
|
||||
withWayland = true;
|
||||
withPipewire = false;
|
||||
withPam = false;
|
||||
withX11 = false;
|
||||
withHyprland = false;
|
||||
};
|
||||
})
|
||||
(final: prev: {
|
||||
inherit lib;
|
||||
})
|
||||
@@ -185,8 +173,16 @@
|
||||
outputs
|
||||
hostname
|
||||
;
|
||||
sopsRoot = ./secrets;
|
||||
} // vars;
|
||||
secrets =
|
||||
with lib.haumea;
|
||||
load {
|
||||
src = ./secrets;
|
||||
loader = [
|
||||
(matchers.always loaders.path)
|
||||
];
|
||||
};
|
||||
}
|
||||
// vars;
|
||||
modules =
|
||||
(lib.umport {
|
||||
paths = [ ./modules ];
|
||||
@@ -205,6 +201,7 @@
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
inputs.home-manager.nixosModules.default
|
||||
inputs.niri.nixosModules.niri
|
||||
inputs.catppuccin.nixosModules.catppuccin
|
||||
home
|
||||
pkgsConf
|
||||
];
|
||||
|
||||
26
modules/audio.nix
Normal file
26
modules/audio.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config;
|
||||
default = true;
|
||||
optionName = "default audio settings";
|
||||
optionPath = [ "audio" ];
|
||||
config' = {
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
audio.enable = true;
|
||||
};
|
||||
users.extraUsers.${username}.extraGroups = [ "audio" ];
|
||||
my.persist.homeDirs = [ ".local/state/wireplumber" ];
|
||||
my.home.home.packages = [ pkgs.pwvucontrol ];
|
||||
};
|
||||
}
|
||||
20
modules/bluetooth.nix
Normal file
20
modules/bluetooth.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ config, lib, ... }:
|
||||
lib.my.makeSwitch {
|
||||
inherit config;
|
||||
default = true;
|
||||
optionName = "default bluetooth settings";
|
||||
optionPath = [ "bluetooth" ];
|
||||
config' = {
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
Disable = "HeadSet";
|
||||
MultiProfile = "multiple";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -9,7 +9,6 @@ lib.my.makeSwitch {
|
||||
];
|
||||
config' = {
|
||||
my.cli.media = {
|
||||
cava.enable = true;
|
||||
go-musicfox.enable = true;
|
||||
mpd.enable = true;
|
||||
ffmpeg.enable = true;
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'.
|
||||
mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens.
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. Autosens must be turned off for this to take effect.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
bars = 0
|
||||
bar_width = 5
|
||||
bar_spacing = 1
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'.
|
||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
method = pulse
|
||||
source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Ouput method. Can be 'ncurses', 'noncurses' or 'raw'.
|
||||
# 'noncurses' is for systems that does not suport ncurses.
|
||||
# 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
method = ncurses
|
||||
|
||||
# Visual styles. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' averages both channels and outputs left to right lowest to highest frequencies.
|
||||
style = mono
|
||||
|
||||
# Raw output target. A fifo will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
|
||||
|
||||
# [color]
|
||||
|
||||
# # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a
|
||||
# # terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# ; background = black
|
||||
# ; foreground = cyan
|
||||
|
||||
# # Gradient mode, only hex defined colors are supported, background must also be defined in hex
|
||||
# # or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will
|
||||
# # not able to restore color definitions on exit, simply restart your terminal to restore colors.
|
||||
# gradient = 1
|
||||
# gradient_color_1 = '#0099ff'
|
||||
# gradient_color_2 = '#ff3399'
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Multiplier for the integral smoothing calculations. Takes values from 0-0.99.
|
||||
# Higher values means smoother, but less precise. Set to 0 to disable.
|
||||
; integral = 0.7
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing". Set to 0 to disable.
|
||||
; monstercat = 1
|
||||
; waves = 1
|
||||
|
||||
# Set gravity multiplier for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 0.5 means half gravity, 2 means double. Set to 0 to disable "drop off".
|
||||
; gravity = 2
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
; ignore = 0
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more then one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
#; 1 = 1 # bass
|
||||
#; 2 = 1
|
||||
#; 3 = 1 # midtone
|
||||
#; 4 = 1
|
||||
#; 5 = 1 # treble
|
||||
1=1
|
||||
2=1
|
||||
3=2
|
||||
4=1
|
||||
5=1
|
||||
|
||||
[color]
|
||||
|
||||
#background = '#191724'
|
||||
gradient = 1
|
||||
gradient_count = 6
|
||||
gradient_color_1 = '#31748f'
|
||||
gradient_color_2 = '#9ccfd8'
|
||||
gradient_color_3 = '#c4a7e7'
|
||||
gradient_color_4 = '#ebbcba'
|
||||
gradient_color_5 = '#f6c177'
|
||||
gradient_color_6 = '#eb6f92'
|
||||
|
||||
[color]
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -1,167 +0,0 @@
|
||||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'.
|
||||
mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens.
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. Autosens must be turned off for this to take effect.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
bars = 0
|
||||
bar_width = 2
|
||||
bar_spacing = 1
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'.
|
||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
method = pulse
|
||||
source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Ouput method. Can be 'ncurses', 'noncurses' or 'raw'.
|
||||
# 'noncurses' is for systems that does not suport ncurses.
|
||||
# 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
method = ncurses
|
||||
|
||||
# Visual styles. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' averages both channels and outputs left to right lowest to highest frequencies.
|
||||
style = mono
|
||||
|
||||
# Raw output target. A fifo will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
|
||||
|
||||
# [color]
|
||||
|
||||
# # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a
|
||||
# # terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# ; background = black
|
||||
# ; foreground = cyan
|
||||
|
||||
# # Gradient mode, only hex defined colors are supported, background must also be defined in hex
|
||||
# # or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will
|
||||
# # not able to restore color definitions on exit, simply restart your terminal to restore colors.
|
||||
# gradient = 1
|
||||
# gradient_color_1 = '#0099ff'
|
||||
# gradient_color_2 = '#ff3399'
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Multiplier for the integral smoothing calculations. Takes values from 0-0.99.
|
||||
# Higher values means smoother, but less precise. Set to 0 to disable.
|
||||
; integral = 0.7
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing". Set to 0 to disable.
|
||||
; monstercat = 1
|
||||
; waves = 1
|
||||
|
||||
# Set gravity multiplier for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 0.5 means half gravity, 2 means double. Set to 0 to disable "drop off".
|
||||
; gravity = 1
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
; ignore = 0
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more then one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
#; 1 = 1 # bass
|
||||
#; 2 = 1
|
||||
#; 3 = 1 # midtone
|
||||
#; 4 = 1
|
||||
#; 5 = 1 # treble
|
||||
1=1
|
||||
2=1
|
||||
3=2
|
||||
4=1
|
||||
5=1
|
||||
|
||||
[color]
|
||||
|
||||
#background = '#191724'
|
||||
gradient = 1
|
||||
gradient_count = 6
|
||||
gradient_color_1 = '#31748f'
|
||||
gradient_color_2 = '#9ccfd8'
|
||||
gradient_color_3 = '#c4a7e7'
|
||||
gradient_color_4 = '#ebbcba'
|
||||
gradient_color_5 = '#f6c177'
|
||||
gradient_color_6 = '#eb6f92'
|
||||
|
||||
[color]
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -1,79 +0,0 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
float normalize_C(float x, float x_min, float x_max, float r_min, float r_max )
|
||||
{
|
||||
float xr;
|
||||
xr = (r_max-r_min) * (x - x_min) / (x_max - x_min) + r_min;
|
||||
return xr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
// create a normal along the y axis based on the bar height
|
||||
float x = normalize_C(fragCoord.y, 1.0, 0.0, 0.0, bars[bar]);
|
||||
|
||||
// set color
|
||||
fragColor.r=fg_color.x*x;
|
||||
fragColor.g=fg_color.y*x;
|
||||
fragColor.b=fg_color.z*x;
|
||||
fragColor.a=1.0;
|
||||
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||
float y = (bars[bar]) * bar_y;
|
||||
|
||||
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||
|
||||
bar_r = bar_r * bar_r * 2;
|
||||
|
||||
// set color
|
||||
fragColor.r = fg_color.x * y * bar_r;
|
||||
fragColor.g = fg_color.y * y * bar_r;
|
||||
fragColor.b = fg_color.z * y * bar_r;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
lib.my.makeHomePackageConfig {
|
||||
inherit config pkgs;
|
||||
packageName = "cava";
|
||||
packagePath = [ "cava" ];
|
||||
optionPath = [
|
||||
"cli"
|
||||
"media"
|
||||
"cava"
|
||||
];
|
||||
extraConfig = {
|
||||
my.home.xdg.configFile."cava" = {
|
||||
source = ./config;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -23,8 +23,3 @@ audio_output {
|
||||
type "pipewire"
|
||||
name "pipewire"
|
||||
}
|
||||
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "pulseaudio"
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ lib.my.makeSwitch {
|
||||
dnsutils
|
||||
|
||||
killall
|
||||
|
||||
comma
|
||||
];
|
||||
|
||||
programs.dconf.enable = true;
|
||||
@@ -80,6 +82,10 @@ lib.my.makeSwitch {
|
||||
enableAutoUpdates = true;
|
||||
settings.updates.auto_update = true;
|
||||
};
|
||||
programs.television = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ lib.my.makeSwitch {
|
||||
jj = {
|
||||
ignore_timeout = true;
|
||||
description = "The current jj status";
|
||||
when = "jj root";
|
||||
symbol = " ";
|
||||
when = true;
|
||||
command = ''
|
||||
jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '
|
||||
separate(" ",
|
||||
" ",
|
||||
change_id.shortest(4),
|
||||
bookmarks,
|
||||
"|",
|
||||
@@ -64,19 +64,9 @@ lib.my.makeSwitch {
|
||||
"(no description set)",
|
||||
) ++ raw_escape_sequence("\x1b[0m"),
|
||||
)
|
||||
'
|
||||
' || (starship module git_branch && starship module git_status)
|
||||
'';
|
||||
};
|
||||
git_branch = {
|
||||
when = true;
|
||||
command = "jj root >/dev/null 2>&1 || starship module git_branch";
|
||||
description = "Only show git_branch if we're not in a jj repo";
|
||||
};
|
||||
git_status = {
|
||||
when = true;
|
||||
command = "jj root >/dev/null 2>&1 || starship module git_status";
|
||||
description = "Only show git_status if we're not in a jj repo";
|
||||
};
|
||||
};
|
||||
git_state.disabled = true;
|
||||
git_commit.disabled = true;
|
||||
@@ -88,7 +78,7 @@ lib.my.makeSwitch {
|
||||
};
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
dotDir = ".config/zsh";
|
||||
dotDir = "${config.my.home.xdg.configHome}/zsh";
|
||||
history = {
|
||||
path = "${stateHome}/zsh_history";
|
||||
ignorePatterns = [
|
||||
|
||||
@@ -26,6 +26,7 @@ lib.my.makeHomeProgramConfig {
|
||||
ui = {
|
||||
graph.style = "square";
|
||||
default-command = "status";
|
||||
conflict-marker-style = "snapshot";
|
||||
};
|
||||
signing = {
|
||||
backend = "ssh";
|
||||
|
||||
@@ -26,31 +26,9 @@ lib.my.makeHomeProgramConfig {
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
extraPackages = with pkgs; [
|
||||
gcc
|
||||
gnumake
|
||||
gcc # treesitter
|
||||
|
||||
pyright
|
||||
|
||||
clang-tools
|
||||
|
||||
rust-analyzer
|
||||
pest-ide-tools
|
||||
|
||||
nixd
|
||||
|
||||
gotools
|
||||
gopls
|
||||
|
||||
stylua
|
||||
lua-language-server
|
||||
|
||||
nodePackages.vscode-langservers-extracted
|
||||
nodePackages.typescript-language-server
|
||||
vue-language-server
|
||||
typescript
|
||||
nodejs
|
||||
|
||||
ripgrep
|
||||
ripgrep # telescope
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -4,5 +4,3 @@ require("core.keymaps")
|
||||
require("langs.langs-setup")
|
||||
|
||||
require("plugins.plugins-setup")
|
||||
|
||||
require("core.autostart")
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
-- Open tree when in config dir
|
||||
local configdir = vim.fn.system("echo $HOME/.config")
|
||||
configdir = string.sub(configdir, 1, string.len(configdir) - 1)
|
||||
if string.find(vim.fn.system("pwd"), configdir) ~= nil then
|
||||
vim.cmd("NvimTreeOpen")
|
||||
vim.cmd("NvimTmuxNavigateRight")
|
||||
end
|
||||
@@ -13,27 +13,13 @@ keymap.set("n", "<leader>nh", ":nohl<CR>", opt)
|
||||
keymap.set("n", "<leader>sv", "<C-w>v", opt)
|
||||
keymap.set("n", "<leader>sh", "<C-w>s", opt)
|
||||
|
||||
keymap.set("i", "<S-up>", "<ESC>v<up>", opt)
|
||||
keymap.set("i", "<S-down>", "<ESC>v<down>", opt)
|
||||
keymap.set("n", "<S-up>", "v<up>", opt)
|
||||
keymap.set("n", "<S-down>", "v<down>", opt)
|
||||
keymap.set("v", "<S-up>", "<up>", opt)
|
||||
keymap.set("v", "<S-down>", "<down>", opt)
|
||||
|
||||
keymap.set("i", "<S-left>", "<ESC>v<left>", opt)
|
||||
keymap.set("i", "<S-right>", "<ESC>v<right>", opt)
|
||||
keymap.set("n", "<S-left>", "v<left>", opt)
|
||||
keymap.set("n", "<S-right>", "v<right>", opt)
|
||||
keymap.set("v", "<S-left>", "<left>", opt)
|
||||
keymap.set("v", "<S-right>", "<right>", opt)
|
||||
|
||||
keymap.set("v", ".", ">gv", opt)
|
||||
keymap.set("v", ",", "<gv", opt)
|
||||
|
||||
keymap.set({ "n", "v" }, "<pageup>", "9k", opt)
|
||||
keymap.set({ "n", "v" }, "<pagedown>", "9j", opt)
|
||||
keymap.set("i", "<pageup>", "<up><up><up><up><up><up><up><up><up>", opt)
|
||||
keymap.set("i", "<pagedown>", "<down><down><down><down><down><down><down><down><down>", opt)
|
||||
keymap.set("i", "<pageup>", string.rep("<up>", 9), opt)
|
||||
keymap.set("i", "<pagedown>", string.rep("<down>", 9), opt)
|
||||
|
||||
keymap.set("n", "<leader>ww", ":w<CR>", opt)
|
||||
keymap.set("n", "<leader>so", ":so<CR>", opt)
|
||||
@@ -54,15 +40,6 @@ keymap.set("n", "L", ":BufferLineCycleNext<CR>", opt)
|
||||
keymap.set("n", "<A-h>", ":BufferLineMovePrev<CR>", opt)
|
||||
keymap.set("n", "<A-l>", ":BufferLineMoveNext<CR>", opt)
|
||||
|
||||
-- reload config
|
||||
keymap.set("n", "<leader>rc", ":so ~/.config/nvim/init.lua<CR>", opt)
|
||||
keymap.set("n", "<leader>rp", ":so ~/.config/nvim/lua/plugins/plugins-setup.lua<CR>", opt)
|
||||
|
||||
-- Workspaces
|
||||
keymap.set("n", "<leader>wo", ":Telescope workspaces<CR>", opt)
|
||||
keymap.set("n", "<leader>wa", ":WorkspacesAdd<CR>", opt)
|
||||
keymap.set("n", "<leader>wr", ":WorkspacesRemove<CR>", opt)
|
||||
|
||||
-- Neovide config
|
||||
if vim.g.neovide then
|
||||
keymap.set("v", "<C-C>", '"+y', opt)
|
||||
|
||||
@@ -9,6 +9,7 @@ local servers = {
|
||||
"cssls",
|
||||
"nixd",
|
||||
"html",
|
||||
"java_language_server",
|
||||
}
|
||||
|
||||
local extra_config = {
|
||||
@@ -73,7 +74,6 @@ capabilities.textDocument.foldingRange = {
|
||||
dynamicRegistration = false,
|
||||
lineFoldingOnly = true,
|
||||
}
|
||||
local lspconfig = require("lspconfig")
|
||||
for _, server in ipairs(servers) do
|
||||
local extra = extra_config[server] or {}
|
||||
local config = {
|
||||
@@ -82,5 +82,6 @@ for _, server in ipairs(servers) do
|
||||
for k, v in pairs(extra) do
|
||||
config[k] = v
|
||||
end
|
||||
lspconfig[server].setup(config)
|
||||
vim.lsp.config(server, config)
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
|
||||
@@ -15,6 +15,7 @@ lib.my.makeSwitch {
|
||||
python.enable = true;
|
||||
rust.enable = true;
|
||||
lua.enable = true;
|
||||
java.enable = true;
|
||||
qml.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -14,6 +14,10 @@ lib.my.makeHomePackageConfig {
|
||||
"go"
|
||||
];
|
||||
extraConfig = {
|
||||
my.home.home.packages = with pkgs; [
|
||||
gotools
|
||||
gopls
|
||||
];
|
||||
my.persist.homeDirs = [
|
||||
"go"
|
||||
];
|
||||
|
||||
21
modules/coding/langs/java.nix
Normal file
21
modules/coding/langs/java.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config;
|
||||
optionName = "java";
|
||||
optionPath = [
|
||||
"coding"
|
||||
"langs"
|
||||
"java"
|
||||
];
|
||||
config' = {
|
||||
my.home.home.packages = with pkgs; [
|
||||
openjdk24
|
||||
java-language-server
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -16,9 +16,10 @@ lib.my.makeSwitch {
|
||||
my.home = {
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
nodePackages.npm
|
||||
|
||||
typescript
|
||||
|
||||
nodePackages.typescript-language-server
|
||||
vue-language-server
|
||||
];
|
||||
home.file.".npmrc".text = ''
|
||||
prefix = ''${HOME}/.npm-global
|
||||
|
||||
@@ -15,6 +15,8 @@ lib.my.makeSwitch {
|
||||
config' = {
|
||||
my.home.home.packages = with pkgs; [
|
||||
luajit
|
||||
stylua
|
||||
lua-language-server
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ lib.my.makeHomePackageConfig {
|
||||
extraConfig = {
|
||||
my.home.home.packages = with pkgs; [
|
||||
uv
|
||||
pyright
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -21,8 +21,11 @@ lib.my.makeSwitch {
|
||||
"rust-src"
|
||||
"rustc"
|
||||
"rustfmt"
|
||||
"rust-analyzer"
|
||||
])
|
||||
evcxr # rust repl
|
||||
|
||||
pest-ide-tools
|
||||
];
|
||||
home.file.".cargo/config.toml".text = ''
|
||||
[source.crates-io]
|
||||
@@ -34,6 +37,9 @@ lib.my.makeSwitch {
|
||||
[net]
|
||||
git-fetch-with-cli = true
|
||||
'';
|
||||
programs.zsh.initContent = lib.mkAfter ''
|
||||
export PATH=$PATH:$HOME/.cargo/bin
|
||||
'';
|
||||
};
|
||||
my.persist.homeDirs = [
|
||||
".cargo"
|
||||
|
||||
@@ -16,7 +16,6 @@ lib.my.makeSwitch {
|
||||
terminal.all.enable = true;
|
||||
wm.all.enable = true;
|
||||
style.enable = true;
|
||||
quickshell.enable = true;
|
||||
wine.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -10,7 +10,6 @@ lib.my.makeSwitch {
|
||||
config' = {
|
||||
my.desktop.browser = {
|
||||
firefox.enable = true;
|
||||
librewolf.enable = true;
|
||||
chromium.enable = true;
|
||||
zen.enable = true;
|
||||
};
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{ config, lib, ... }:
|
||||
lib.my.makeHomeProgramConfig {
|
||||
inherit config;
|
||||
programName = "librewolf";
|
||||
optionPath = [
|
||||
"desktop"
|
||||
"browser"
|
||||
"librewolf"
|
||||
];
|
||||
extraConfig = {
|
||||
my.persist.homeDirs = [
|
||||
".librewolf"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -13,10 +13,8 @@ lib.my.makeSwitch {
|
||||
"minecraft"
|
||||
];
|
||||
config' = {
|
||||
my.home.home.packages = with pkgs; [
|
||||
hmcl
|
||||
|
||||
openjdk21
|
||||
my.home.home.packages = [
|
||||
pkgs.hmcl
|
||||
];
|
||||
|
||||
my.persist.homeDirs = [
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
import Quickshell
|
||||
import Quickshell.Services.UPower
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami
|
||||
|
||||
Rectangle {
|
||||
id: bat
|
||||
|
||||
Layout.preferredWidth: batIcon.width
|
||||
Layout.fillHeight: true
|
||||
color: 'transparent'
|
||||
|
||||
readonly property var battery: UPower.displayDevice
|
||||
readonly property int percentage: Math.round(battery.percentage * 100)
|
||||
property var size: height * 0.4
|
||||
|
||||
visible: battery.isLaptopBattery
|
||||
|
||||
Icon {
|
||||
id: batIcon
|
||||
anchors.centerIn: parent
|
||||
|
||||
implicitHeight: bat.size
|
||||
implicitWidth: bat.size
|
||||
|
||||
// This recolors the entire svg, instead of only classless components.
|
||||
// Hopefully in the future classes can be selected for recoloring.
|
||||
isMask: true
|
||||
color: 'white'
|
||||
|
||||
source: {
|
||||
const nearestTen = Math.round(bat.percentage / 10) * 10;
|
||||
const number = nearestTen.toString().padStart(2, "0");
|
||||
let charging;
|
||||
|
||||
if (bat.battery.state == UPowerDeviceState.Charging) {
|
||||
charging = "-charging";
|
||||
} else if (bat.battery.state.toString() == UPowerDeviceState.FullyCharged) {
|
||||
charging = "-charged";
|
||||
} else {
|
||||
charging = "";
|
||||
}
|
||||
|
||||
return Quickshell.iconPath(`battery-level-${number}${charging}-symbolic`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import "../../utils"
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
color: "transparent"
|
||||
implicitWidth: clockText.width
|
||||
|
||||
Text {
|
||||
id: clockText
|
||||
text: Time.time
|
||||
color: Colors.fg
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
color: "salmon"
|
||||
implicitWidth: mprisText.width
|
||||
|
||||
Text {
|
||||
id: mprisText
|
||||
text: "Mpris"
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import "../../utils"
|
||||
|
||||
Rectangle {
|
||||
id: resources
|
||||
|
||||
Layout.fillHeight: true
|
||||
color: "transparent"
|
||||
implicitWidth: rowLayout.width
|
||||
|
||||
property int valueSize: 8
|
||||
property int textSize: 6
|
||||
|
||||
property string valueColor: "white"
|
||||
property string textColor: "lightgray"
|
||||
|
||||
RowLayout {
|
||||
id: rowLayout
|
||||
anchors.centerIn: parent
|
||||
|
||||
ColumnLayout {
|
||||
id: cpuColumn
|
||||
Label {
|
||||
color: textColor
|
||||
font.pointSize: textSize
|
||||
text: "CPU"
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
}
|
||||
Label {
|
||||
color: valueColor
|
||||
font.pointSize: valueSize
|
||||
text: Resources.cpu_percent + "%"
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Label {
|
||||
color: textColor
|
||||
font.pointSize: textSize
|
||||
text: "MEM"
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
}
|
||||
Label {
|
||||
color: valueColor
|
||||
font.pointSize: valueSize
|
||||
text: Resources.mem_percent + "%"
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import QtQuick
|
||||
|
||||
Text {
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
color: "lightblue"
|
||||
implicitWidth: trayText.width
|
||||
|
||||
Text {
|
||||
id: trayText
|
||||
text: "Tray"
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Rectangle {
|
||||
id: ws
|
||||
|
||||
property bool hovered: false
|
||||
|
||||
Layout.preferredWidth: parent.height * 0.4
|
||||
Layout.preferredHeight: parent.height * 0.4
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
radius: height / 2
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
onEntered: () => {
|
||||
ws.hovered = true;
|
||||
}
|
||||
onExited: () => {
|
||||
ws.hovered = false;
|
||||
}
|
||||
onClicked: () => console.log(`workspace ?`)
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import "../../../utils"
|
||||
import Quickshell.Hyprland
|
||||
|
||||
Rectangle {
|
||||
id: workspaces
|
||||
|
||||
color: 'transparent'
|
||||
|
||||
width: workspacesRow.implicitWidth
|
||||
Layout.fillHeight: true
|
||||
|
||||
RowLayout {
|
||||
id: workspacesRow
|
||||
|
||||
height: parent.height
|
||||
implicitWidth: (parent.height * 0.5 + spacing) * 2 - spacing
|
||||
anchors.centerIn: parent
|
||||
|
||||
spacing: height / 7
|
||||
|
||||
Repeater {
|
||||
id: repeater
|
||||
|
||||
model: HyprlandUtils.maxWorkspace
|
||||
|
||||
Workspace {
|
||||
id: ws
|
||||
required property int index
|
||||
property HyprlandWorkspace currWorkspace: Hyprland.workspaces.values.find(e => e.id == index + 1) || null
|
||||
property bool nonexistent: currWorkspace === null
|
||||
property bool focused: index + 1 === Hyprland.focusedMonitor.activeWorkspace.id
|
||||
|
||||
Layout.preferredWidth: {
|
||||
if (focused) {
|
||||
return parent.height * 0.8;
|
||||
} else {
|
||||
return parent.height * 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
color: {
|
||||
if (nonexistent) {
|
||||
return Colors.bgBlur;
|
||||
} else {
|
||||
return Colors.monitorColors[Hyprland.monitors.values.indexOf(Hyprland.workspaces.values.find(e => e.id === index + 1).monitor)];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
import "./windows"
|
||||
import Quickshell // for ShellRoot and PanelWindow
|
||||
|
||||
ShellRoot {
|
||||
Bar {}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import Quickshell
|
||||
pragma Singleton
|
||||
|
||||
Singleton {
|
||||
property var bgBar: Qt.rgba(0, 0, 0, 0.21)
|
||||
property var bgBlur: Qt.rgba(0, 0, 0, 0.3)
|
||||
property var fg: "white"
|
||||
property list<var> monitorColors: ["#e06c75", "#e5c07b", "#98c379", "#61afef"]
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
pragma Singleton
|
||||
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
id: hyprland
|
||||
|
||||
property list<HyprlandWorkspace> workspaces: sortWorkspaces(Hyprland.workspaces.values)
|
||||
property HyprlandWorkspace focusedWorkspace: Hyprland.focusedMonitor?.activeWorkspace
|
||||
property int maxWorkspace: findMaxId()
|
||||
|
||||
function sortWorkspaces(ws) {
|
||||
return [...ws].sort((a, b) => a?.id - b?.id);
|
||||
}
|
||||
|
||||
function switchWorkspace(w: int): void {
|
||||
console.log(`workspace: focus ${focusedWorkspace.id} -> ${w}`);
|
||||
Hyprland.dispatch(`workspace ${w}`);
|
||||
}
|
||||
|
||||
function findMaxId(): int {
|
||||
let num = hyprland.workspaces.length;
|
||||
return hyprland.workspaces[num - 1]?.id;
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Hyprland
|
||||
function onRawEvent(event) {
|
||||
// console.log("EVENT NAME", event.name);
|
||||
// consow.wg("EVENT DATA", event.data);
|
||||
let eventName = event.name;
|
||||
|
||||
switch (eventName) {
|
||||
// Both of these are required in order to detect workspace changes
|
||||
// even when switching monitors.
|
||||
// case "workspacev2":
|
||||
// {
|
||||
// // hyprland.focusedWorkspace = Hyprland.focusedMonitor?.activeWorkspace;
|
||||
// console.log(`workspace: ${hyprland.focusedWorkspace.id}`);
|
||||
// console.log(`num workspaces ${hyprland.workspaces.length}`)
|
||||
// console.log(`num workspaces (real) ${Hyprland.workspaces.values.length}`)
|
||||
// break;
|
||||
// }
|
||||
// case "focusedmonv2":
|
||||
// {
|
||||
// // hyprland.focusedWorkspace = Hyprland.focusedMonitor?.activeWorkspace;
|
||||
// console.log(`workspace: ${hyprland.focusedWorkspace.id}`);
|
||||
// console.log(`num workspaces ${hyprland.workspaces.length}`)
|
||||
// console.log(`num workspaces (real) ${Hyprland.workspaces.values.length}`)
|
||||
// break;
|
||||
// }
|
||||
case "createworkspacev2":
|
||||
{
|
||||
hyprland.workspaces = hyprland.sortWorkspaces(Hyprland.workspaces.values);
|
||||
hyprland.maxWorkspace = findMaxId();
|
||||
}
|
||||
case "destroyworkspacev2":
|
||||
{
|
||||
hyprland.workspaces = hyprland.sortWorkspaces(Hyprland.workspaces.values);
|
||||
hyprland.maxWorkspace = findMaxId();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
pragma Singleton
|
||||
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
property int cpu_percent
|
||||
property string cpu_freq
|
||||
property int mem_percent
|
||||
property string mem_used
|
||||
|
||||
Process {
|
||||
id: process_cpu_percent
|
||||
running: true
|
||||
command: ["sh", "-c", "top -bn1 | rg '%Cpu' | awk '{print 100-$8}'"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => cpu_percent = Math.round(data)
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: process_cpu_freq
|
||||
running: true
|
||||
command: ["sh", "-c", "lscpu --parse=MHZ"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => {
|
||||
// delete the first 4 lines (comments)
|
||||
const mhz = data.split("\n").slice(4);
|
||||
// compute mean frequency
|
||||
const freq = mhz.reduce((acc, e) => acc + Number(e), 0) / mhz.length;
|
||||
|
||||
cpu_freq = Math.round(freq) + " MHz";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: process_mem_percent
|
||||
running: true
|
||||
command: ["sh", "-c", "free | awk 'NR==2{print $3/$2*100}'"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => mem_percent = Math.round(data)
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: process_mem_used
|
||||
running: true
|
||||
command: ["sh", "-c", "free --si -h | awk 'NR==2{print $3}'"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => mem_used = data
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 2000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: () => {
|
||||
process_cpu_percent.running = true
|
||||
process_cpu_freq.running = true
|
||||
process_mem_percent.running = true
|
||||
process_mem_used.running = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
pragma Singleton
|
||||
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
property var locale: Qt.locale()
|
||||
|
||||
function createDate(): string {
|
||||
let date = new Date();
|
||||
let hh = date.getHours().toString().padStart(2, 0);
|
||||
let mm = date.getMinutes().toString().padStart(2, 0)
|
||||
let weekday = locale.dayName(date.getDay(), Locale.ShortFormat)
|
||||
let month = locale.monthName(date.getMonth(), Locale.ShortFormat)
|
||||
let day = date.getDate()
|
||||
|
||||
return `${weekday} ${month} ${day} ${hh}:${mm}`
|
||||
}
|
||||
|
||||
property var time: createDate()
|
||||
|
||||
Timer {
|
||||
interval: 1000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: time = createDate()
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
//@ pragma NativeTextRendering
|
||||
|
||||
import Quickshell
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import "../utils"
|
||||
import "../components/bar"
|
||||
import "../components/bar/workspaces"
|
||||
|
||||
Scope {
|
||||
PanelWindow {
|
||||
id: barWindow
|
||||
screen: Quickshell.screens[0]
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
height: 32
|
||||
|
||||
color: "transparent"
|
||||
|
||||
Rectangle {
|
||||
id: bar
|
||||
anchors.fill: parent
|
||||
|
||||
color: Colors.bgBlur
|
||||
|
||||
// left
|
||||
// RowLayout {
|
||||
// id: barLeft
|
||||
//
|
||||
// anchors.bottom: parent.bottom
|
||||
// anchors.left: parent.left
|
||||
// anchors.top: parent.top
|
||||
//
|
||||
// anchors.leftMargin: height / 4
|
||||
// anchors.rightMargin: height / 4
|
||||
// spacing: height / 4
|
||||
//
|
||||
// Workspaces {}
|
||||
// }
|
||||
|
||||
// middle
|
||||
RowLayout {
|
||||
id: barMiddle
|
||||
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
|
||||
anchors.leftMargin: height / 4
|
||||
anchors.rightMargin: height / 4
|
||||
spacing: height / 4
|
||||
|
||||
Mpris {}
|
||||
}
|
||||
|
||||
// right
|
||||
RowLayout {
|
||||
id: barRight
|
||||
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
||||
anchors.leftMargin: height / 4
|
||||
anchors.rightMargin: height / 4
|
||||
spacing: height / 4
|
||||
|
||||
Tray {}
|
||||
Resources {}
|
||||
Battery {}
|
||||
Clock {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config;
|
||||
default = false;
|
||||
optionName = "quickshell";
|
||||
optionPath = [
|
||||
"desktop"
|
||||
"quickshell"
|
||||
];
|
||||
config' = {
|
||||
my.home = {
|
||||
home.packages = [ pkgs.quickshell ];
|
||||
home.sessionVariables.QML2_IMPORT_PATH = lib.concatStringsSep ":" [
|
||||
"${pkgs.quickshell}/lib/qt-6/qml"
|
||||
"${pkgs.kdePackages.qtdeclarative}/lib/qt-6/qml"
|
||||
"${pkgs.kdePackages.kirigami.unwrapped}/lib/qt-6/qml"
|
||||
];
|
||||
xdg.configFile."quickshell" = {
|
||||
source = ./config;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -12,6 +12,19 @@ lib.my.makeSwitch {
|
||||
"style"
|
||||
];
|
||||
config' = {
|
||||
catppuccin.sddm = {
|
||||
enable = true;
|
||||
font = "Jetbrains Mono";
|
||||
fontSize = "18";
|
||||
};
|
||||
services.displayManager.sddm = {
|
||||
package = pkgs.kdePackages.sddm;
|
||||
settings.Theme = {
|
||||
CursorTheme = "breeze-dark";
|
||||
CursorSize = 24;
|
||||
};
|
||||
};
|
||||
|
||||
my.home = {
|
||||
stylix = {
|
||||
enable = true;
|
||||
@@ -64,6 +77,15 @@ lib.my.makeSwitch {
|
||||
];
|
||||
platformTheme.name = "qtct";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"qt5ct/qt5ct.conf".source = pkgs.replaceVars ./qtct/qt5ct.conf {
|
||||
darker = pkgs.libsForQt5.qt5ct + /share/qt5ct/colors/darker.conf;
|
||||
};
|
||||
"qt6ct/qt6ct.conf".source = pkgs.replaceVars ./qtct/qt6ct.conf {
|
||||
darker = pkgs.qt6ct + /share/qt6ct/colors/darker.conf;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
32
modules/desktop/style/qtct/qt5ct.conf
Normal file
32
modules/desktop/style/qtct/qt5ct.conf
Normal file
@@ -0,0 +1,32 @@
|
||||
[Appearance]
|
||||
color_scheme_path=@darker@
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=xdgdesktopportal
|
||||
style=Darkly
|
||||
|
||||
[Fonts]
|
||||
fixed="Noto Sans CJK SC,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||
general="Noto Sans CJK SC,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
||||
32
modules/desktop/style/qtct/qt6ct.conf
Normal file
32
modules/desktop/style/qtct/qt6ct.conf
Normal file
@@ -0,0 +1,32 @@
|
||||
[Appearance]
|
||||
color_scheme_path=@darker@
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=xdgdesktopportal
|
||||
style=Darkly
|
||||
|
||||
[Fonts]
|
||||
fixed="Noto Sans CJK SC,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||
general="Noto Sans CJK SC,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\x3\t\0\0\x4\x1b)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
||||
@@ -6,7 +6,6 @@
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
inherit config;
|
||||
default = true;
|
||||
optionName = "wine";
|
||||
optionPath = [
|
||||
"desktop"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
input = {
|
||||
focus-follows-mouse = {
|
||||
enable = true;
|
||||
max-scroll-amount = "40%";
|
||||
max-scroll-amount = "0%";
|
||||
};
|
||||
workspace-auto-back-and-forth = true;
|
||||
};
|
||||
@@ -39,7 +39,7 @@
|
||||
{ proportion = 0.6; }
|
||||
{ proportion = 0.66667; }
|
||||
];
|
||||
default-column-width.proportion = 0.4;
|
||||
default-column-width.proportion = 1.0;
|
||||
background-color = "transparent";
|
||||
};
|
||||
|
||||
@@ -151,17 +151,19 @@
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"pamixer"
|
||||
"-i"
|
||||
"2"
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_SINK@"
|
||||
"2%+"
|
||||
];
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"pamixer"
|
||||
"-d"
|
||||
"2"
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_SINK@"
|
||||
"2%-"
|
||||
];
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
@@ -173,7 +175,7 @@
|
||||
"play-pause"
|
||||
];
|
||||
};
|
||||
"Mod+XF86AudioRaiseVolume" = {
|
||||
"Super+XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"playerctl"
|
||||
@@ -182,7 +184,7 @@
|
||||
"next"
|
||||
];
|
||||
};
|
||||
"Mod+XF86AudioLowerVolume" = {
|
||||
"Super+XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"playerctl"
|
||||
@@ -192,6 +194,39 @@
|
||||
];
|
||||
};
|
||||
|
||||
"XF86MonBrightnessUp" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"set"
|
||||
"+5%"
|
||||
];
|
||||
};
|
||||
"XF86MonBrightnessDown" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"set"
|
||||
"5%-"
|
||||
];
|
||||
};
|
||||
"Alt+XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"set"
|
||||
"+5%"
|
||||
];
|
||||
};
|
||||
"Alt+XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"set"
|
||||
"5%-"
|
||||
];
|
||||
};
|
||||
|
||||
"Mod+Q".action = close-window;
|
||||
|
||||
"Mod+Left".action = focus-column-left;
|
||||
|
||||
@@ -2,7 +2,6 @@ args@{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -44,29 +43,29 @@ in
|
||||
xdg-desktop-portal-gnome
|
||||
];
|
||||
};
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = pkg;
|
||||
};
|
||||
services.displayManager = {
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = username;
|
||||
};
|
||||
sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
autoLogin.relogin = true;
|
||||
};
|
||||
};
|
||||
my.home = {
|
||||
home.packages = with pkgs; [
|
||||
xwayland-satellite-unstable
|
||||
|
||||
wlr-randr
|
||||
wl-clipboard
|
||||
cliphist
|
||||
playerctl
|
||||
brightnessctl
|
||||
|
||||
swaynotificationcenter
|
||||
nemo-with-extensions
|
||||
xwayland-satellite-unstable
|
||||
];
|
||||
programs.wofi.enable = true;
|
||||
xdg.configFile."wofi" = {
|
||||
|
||||
@@ -19,8 +19,8 @@ _: {
|
||||
modules-right = [
|
||||
"custom/notification"
|
||||
"tray"
|
||||
"pulseaudio"
|
||||
"pulseaudio#microphone"
|
||||
"wireplumber"
|
||||
"wireplumber#source"
|
||||
];
|
||||
|
||||
"niri/workspaces" = {
|
||||
@@ -73,7 +73,6 @@ _: {
|
||||
stopped = "";
|
||||
};
|
||||
tooltip = false;
|
||||
toottip-format = "{status_icon} Musicfox {artist} - {album} - {title}";
|
||||
on-scroll-up = "playerctl -p musicfox volume 0.05+";
|
||||
on-scroll-down = "playerctl -p musicfox volume 0.05-";
|
||||
};
|
||||
@@ -81,37 +80,21 @@ _: {
|
||||
format = " {:%H:%M %m.%d}";
|
||||
tooltip = false;
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{icon} {volume}%";
|
||||
wireplumber = {
|
||||
format = " {volume}%";
|
||||
tooltip = false;
|
||||
format-muted = " Muted";
|
||||
on-click = "pamixer -t";
|
||||
on-click-middle = "pavucontrol & disown";
|
||||
on-scroll-up = "pamixer -i 5";
|
||||
on-scroll-down = "pamixer -d 5";
|
||||
on-click = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||
on-click-middle = "pwvucontrol";
|
||||
scroll-step = 5;
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
};
|
||||
"pulseaudio#microphone" = {
|
||||
format = "{format_source}";
|
||||
"wireplumber#source" = {
|
||||
node-type = "Audio/Source";
|
||||
format = " {volume}%";
|
||||
tooltip = false;
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = " Muted";
|
||||
on-click = "pamixer --default-source -t";
|
||||
on-scroll-up = "pamixer --default-source -i 5";
|
||||
on-scroll-down = "pamixer --default-source -d 5";
|
||||
format-muted = " Muted";
|
||||
on-click = "wpctl set-mute @DEFAULT_SOURCE@ toggle";
|
||||
on-click-middle = "pwvucontrol";
|
||||
scroll-step = 5;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ tooltip * {
|
||||
#window,
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#network,
|
||||
#workspaces,
|
||||
#taskbar,
|
||||
@@ -219,13 +219,13 @@ window#waybar.empty #window {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
#wireplumber {
|
||||
color: #89b4fa;
|
||||
border-right: 0px;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
}
|
||||
|
||||
#pulseaudio.microphone {
|
||||
#wireplumber.source {
|
||||
color: #cba6f7;
|
||||
margin-right: 5px;
|
||||
border-left: 0px;
|
||||
@@ -238,10 +238,3 @@ window#waybar.empty #window {
|
||||
margin-right: 10px;
|
||||
border-left: 0px;
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,7 @@ let
|
||||
cfg = config.my.autologin;
|
||||
gettycfg = config.services.getty;
|
||||
|
||||
baseArgs =
|
||||
[
|
||||
baseArgs = [
|
||||
"--login-program"
|
||||
"${gettycfg.loginProgram}"
|
||||
]
|
||||
|
||||
@@ -18,7 +18,6 @@ lib.my.makeSwitch {
|
||||
fcitx5 = {
|
||||
addons = with pkgs; [
|
||||
fcitx5-chinese-addons # fcitx5-mozc
|
||||
fluent-fcitx5
|
||||
fcitx5-lightly
|
||||
];
|
||||
waylandFrontend = true;
|
||||
@@ -102,6 +101,92 @@ lib.my.makeSwitch {
|
||||
ignoreUserConfig = true;
|
||||
};
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
(
|
||||
final: prev:
|
||||
lib.mergeAttrsList (
|
||||
map
|
||||
(
|
||||
{ pkg, exe }:
|
||||
{
|
||||
|
||||
${pkg} = final.stdenvNoCC.mkDerivation {
|
||||
inherit (prev.${pkg}) pname version;
|
||||
src = prev.${pkg};
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
||||
];
|
||||
nativeBuildInputs = [ final.makeWrapper ];
|
||||
installPhase = ''
|
||||
cp -r . $out
|
||||
mv $out/bin/${exe} $out/bin/.${exe}-old
|
||||
makeWrapper $out/bin/.${exe}-old $out/bin/${exe} --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--wayland-text-input-version=3}}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
)
|
||||
[
|
||||
{
|
||||
pkg = "qq";
|
||||
exe = "qq";
|
||||
}
|
||||
{
|
||||
pkg = "vscodium";
|
||||
exe = "codium";
|
||||
}
|
||||
{
|
||||
pkg = "signal-desktop";
|
||||
exe = "signal-desktop";
|
||||
}
|
||||
]
|
||||
)
|
||||
)
|
||||
(
|
||||
final: prev:
|
||||
lib.mergeAttrsList (
|
||||
map
|
||||
(
|
||||
{ pkg, desktops }:
|
||||
{
|
||||
|
||||
${pkg} = final.stdenvNoCC.mkDerivation {
|
||||
inherit (prev.${pkg}) pname version;
|
||||
src = prev.${pkg};
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
||||
];
|
||||
installPhase =
|
||||
"cp -r . $out \n"
|
||||
+ lib.concatLines (
|
||||
map (
|
||||
desktop:
|
||||
"substituteInPlace $out/share/applications/${desktop}.desktop --replace-fail 'Exec=' 'Exec=env QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx '"
|
||||
) desktops
|
||||
);
|
||||
};
|
||||
}
|
||||
)
|
||||
[
|
||||
{
|
||||
pkg = "wechat";
|
||||
desktops = [ "wechat" ];
|
||||
}
|
||||
{
|
||||
pkg = "wpsoffice-cn";
|
||||
desktops = map (app: "wps-office-${app}") [
|
||||
"et"
|
||||
"pdf"
|
||||
"prometheus"
|
||||
"wpp"
|
||||
"wps"
|
||||
];
|
||||
}
|
||||
]
|
||||
)
|
||||
)
|
||||
];
|
||||
my.home.programs.niri.settings = {
|
||||
binds."Mod+Space".action.spawn = [
|
||||
"fcitx5-remote"
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
secrets,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
@@ -37,8 +39,8 @@ lib.my.makeSwitch {
|
||||
# Deduplicate and optimize nix store
|
||||
auto-optimise-store = true;
|
||||
substituters = [
|
||||
"https://mirror.sjtu.edu.cn/nix-channels/store"
|
||||
"https://mirrors.sjtug.sjtu.edu.cn/nix-channels/store"
|
||||
"https://mirror.sjtu.edu.cn/nix-channels/store"
|
||||
"https://mirrors.ustc.edu.cn/nix-channels/store"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org"
|
||||
@@ -48,6 +50,19 @@ lib.my.makeSwitch {
|
||||
];
|
||||
};
|
||||
|
||||
sops.secrets.nix-github-token = {
|
||||
sopsFile = secrets.nix-github-token;
|
||||
format = "binary";
|
||||
owner = username;
|
||||
group = "users";
|
||||
mode = "0400";
|
||||
};
|
||||
my.home.nix.extraOptions = ''
|
||||
!include ${config.sops.secrets.nix-github-token.path}
|
||||
'';
|
||||
|
||||
my.home.home.packages = [ pkgs.nixd ];
|
||||
|
||||
# uncomment to enable auto gc
|
||||
/*
|
||||
nix.gc = {
|
||||
|
||||
@@ -14,25 +14,21 @@ in
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
sshKeyPath = lib.mkOption {
|
||||
sshKeyFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${config.my.persist.location}/home/${username}/.ssh/id_ed25519";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
sops.age.sshKeyPaths = [
|
||||
cfg.sshKeyPath
|
||||
];
|
||||
sops.age.sshKeyFile = cfg.sshKeyFile;
|
||||
users.users.${username}.extraGroups = [ "keys" ];
|
||||
environment.variables.SOPS_AGE_KEY_FILE = "/run/secrets.d/age-keys.txt";
|
||||
my.home = {
|
||||
sops.age.sshKeyPaths = [
|
||||
cfg.sshKeyPath
|
||||
];
|
||||
sops.age.sshKeyFile = cfg.sshKeyFile;
|
||||
home.packages = [
|
||||
pkgs.sops
|
||||
];
|
||||
home.sessionVariables.SOPS_AGE_SSH_PRIVATE_KEY_FILE = cfg.sshKeyFile;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
pkgs,
|
||||
username,
|
||||
userdesc,
|
||||
sopsRoot,
|
||||
secrets,
|
||||
...
|
||||
}:
|
||||
lib.my.makeSwitch {
|
||||
@@ -16,7 +16,7 @@ lib.my.makeSwitch {
|
||||
programs.zsh.enable = true;
|
||||
|
||||
sops.secrets.imxyy-nix-hashed-password = {
|
||||
sopsFile = sopsRoot + /imxyy-nix-hashed-password.txt;
|
||||
sopsFile = secrets.imxyy-nix-hashed-password;
|
||||
format = "binary";
|
||||
neededForUsers = true;
|
||||
};
|
||||
|
||||
@@ -220,11 +220,14 @@ in
|
||||
(lib.mkIf cfg.enable {
|
||||
virtualisation.libvirtd = {
|
||||
enable = true;
|
||||
qemu.verbatimConfig = ''
|
||||
qemu = {
|
||||
package = pkgs.qemu_kvm;
|
||||
verbatimConfig = ''
|
||||
dynamic_ownership = 0
|
||||
remember_owner = 0
|
||||
'';
|
||||
};
|
||||
};
|
||||
programs.virt-manager.enable = true;
|
||||
users.users.${username}.extraGroups = [ "libvirtd" ];
|
||||
environment.systemPackages = with pkgs; [ virglrenderer ];
|
||||
|
||||
@@ -53,10 +53,6 @@ in
|
||||
"file://${homedir}/Videos 视频"
|
||||
"file://${homedir}/Music 音乐"
|
||||
"file://${homedir}/workspace 工作空间"
|
||||
"file://${homedir}/Documents/%E7%8F%AD%E7%BA%A7%E4%BA%8B%E5%8A%A1 班级事务"
|
||||
"file://${homedir}/NAS NAS"
|
||||
"file://${homedir}/NAS/imxyy_soope_ NAS imxyy_soope_"
|
||||
"file://${homedir}/NAS/imxyy_soope_/OS NAS OS"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -22,11 +22,6 @@
|
||||
cage.__output.patches.__append = [ ./cage-specify-output-name.patch ];
|
||||
matrix-synapse.__assign = final.stable.matrix-synapse;
|
||||
bottles.__input.removeWarningPopup.__assign = true;
|
||||
qq.__output.preInstall.__append = ''
|
||||
gappsWrapperArgs+=(
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--wayland-text-input-version=3}}"
|
||||
)
|
||||
'';
|
||||
|
||||
sing-box.__assign = prev.sing-box.overrideAttrs (finalAttrs: {
|
||||
version = "1.11.14";
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "fcitx5-themes";
|
||||
version = "unstable-2022-09-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thep0y";
|
||||
repo = "fcitx5-themes";
|
||||
rev = "9d6e437289aa8de61d2c198b2e6ce4b5edea204f";
|
||||
hash = "sha256-iNOquWc6d1rgdWeGPBQ6na/bq+ZOV9cx4MCLf3SdBLg=";
|
||||
};
|
||||
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
rm -rf images README.md install.sh
|
||||
|
||||
mkdir -p $out/share/fcitx5/themes
|
||||
cp -r * $out/share/fcitx5/themes
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "fcitx5的简约风格皮肤——四季";
|
||||
homepage = "https://github.com/thep0y/fcitx5";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "fluent-fcitx5";
|
||||
version = "unstable-2024-03-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Reverier-Xu";
|
||||
repo = "Fluent-fcitx5";
|
||||
rev = "e4745fd598ddfd4b26f693cfb951cd028575a1f0";
|
||||
hash = "sha256-tVPp6kFgsWlSLcEUffOvXCWDEV0y7qcSqYKQkGO7lrM=";
|
||||
};
|
||||
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/fcitx5/themes
|
||||
cp -r Fluent* $out/share/fcitx5/themes
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Fluent-Design theme with blur effect and shadow. ";
|
||||
homepage = "https://github.com/Reverier-Xu/Fluent-fcitx5";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "translate-shell";
|
||||
version = "0.9.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "soimort";
|
||||
repo = pname;
|
||||
rev = "gh-pages";
|
||||
hash = "sha256-YQevXwslWzHen9n+Fn0a+oNx/EKg0Kd/Ge8ksYP0ekY=";
|
||||
};
|
||||
|
||||
phases = [
|
||||
"unpackPhase"
|
||||
"installPhase"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
patchShebangs ./trans
|
||||
cp ./trans $out/bin/trans
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.";
|
||||
homepage = "https://github.com/soimort/translate-shell";
|
||||
license = lib.licenses.unlicense;
|
||||
};
|
||||
}
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrU0tyT3hYaXpqeWlpSENr\nVk5FVUdtZXhCdTlhNExqYm90NkIyOUdLQ3hjClRTUTYxeTdwTDgxcElkMUlPOFJI\nRHFWYzh4cEdDd3AwcG1od2Z4Ty9JS3MKLS0tIG1nUEI5MG5uNnhUcTNLeE83ejZB\nRmp1L3dmY2FNNWRZbDVUN09zWTNXQjAKIP8ydrd2QpqhlNRcNeeyNd2v5nkLgv0v\nR9K6YKnc0VSh2gJBcJpW8cChB5kGpHw9+mhZm7XGoWxkM6JlyRrpdA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSAxam1X\nTlg4aEpIZ2hMYzFGbUNRVjVkaUlONldydDllWmZ3SUVBVDNvS0hJClNadnM4dUtP\nZ1NJMUZtTnRseGg4cFo5M0Y0cU0yRjkzQVR5SkczOVBrQ3MKLS0tIG5rU2xXRWV3\nV2hBZWV2L3IwVmJPdCtFMVlpa0tsLy82RVRpYjA0TTBvWFUKTFOeZFlejKGhp5ia\nCJXYhJkfRVZvacaCUyV40h28FqRrKyLIFcgjPpCG+77XzdHG4rZR7mw2+ybsBde7\n6+21lg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpRDhPQXY4aWFyZTNhVExx\nUVlJOXhCQ3FmME1SRC9Qd1FLUzBiSnZnUm13Ci9TODhRT3Y1ZHBSVHBOd0hNTGtG\nbmxIaSt4N1BNbEZFdlJpNDZWbGFwNDgKLS0tIE1LSW9uRDYxWUpLeUZZbm1RWGJE\nSjlyVGZ2NjhLdzRQZ2hnamhnNTZNcUkKSHIovzfFzM8HLIPxSOUwpsrfR5qobhgR\nYnfCPFT3Uadf1/ehQZst3O/KHi48YJLxA5uU9GIoM58rNYqIPevSMQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyB3TEtJ\ncjFqUThZSkVrT25nMnpFRExKdWZkaXBidlByR2g0WXVsQUtHdHhFCk5WL20vK04w\nV3NjS1p4TzV4MWFES3dtbmVIYWEraWQyazhqNGNUbmpiM0UKLS0tIGxZWW01QVFz\ncXZRTlBicFlXYS9yTW9zYVIvcXBraU81d2NNS2l6WFRSbVEK9xh6F4/ePk8WF4lF\nxmvZs3/jLsQYUtXkNnAUQU5EvD7cubQX8J5EhUTkjzCOzeEWXfK56tcgaJZQWVW1\ns8QrNA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUQzVFeCtHSmRUQ0ZXdlla\nbTBhUXFXeCtmaTh1SmRVQXlJZmpkUU01UERJCmpncU5oSzcxVDBZdlpzREhZWnhr\naWhMT1picXA3T0EzRlpnVmZrQjVobGMKLS0tIHZoYUttcHZoMkROYVE3YSt6QWNp\nak9LOGppQjBoZG5zalAvQzFLSkRiSWMKeUaKHUGR0eLo+MgomJW3sfIs5xHQ3Hcj\nDlkbty7WsI1aGZ/+pEq9dAg/bNfrLNMvKSOYFKvTJs33GEJfRC0j5Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArakRPZWFaZkZRZG5Pc2pl\nRVVFRnZjK0RleDRpSXBMK2tVYWVtRzRRdTI4CjFWUUxsWUJleENHc1lSUkUwVmdm\nZVpHOEloSDJDNW1TZUVSV0pTcnJhVm8KLS0tIDBUOFpMY2tsQUx5anpPWHlWK0U2\nV2JaSTMvbUJteFNOTm1mYzBmYWRXTWsK1lnXL0j5a6mBVfmsJLJ7JcSd8XIsXC+f\n7veQtqb7ADAFcxtreKMXfAKalyyJu4HcXc0JSvvurAUOBTARPV4oeA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyArQkg0\nMkdBbTdQNWdXRFRxK0NUS3Y5NXE3MElqdWN2bjdxdVZBN3dSMFJrClMyS2FxZVFQ\nOEFjR3B5RVZwUWltSjdoTFRpc0VJcTkyOVRXWmdGT3N0WnMKLS0tIExSZWtSSFox\nVnFvNy9GcEg4ZkM3ZmQ4T2VzVHFuMUw3RkFRVlQ2cEZmNGcKWuK7dtmMWQ77/Uyw\nesW/oM50irkONmxTKOggpo6gmJ9YvOPRHybvBwOifIIRCj+dvKFC/a0wAhgfpDcP\nMXEfPA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-06-08T04:38:03Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6Rkd2QndUdGxqV1BHOXh2\neXp5MTM0c3FkS0NnNzIvZ2NFUi93bEJHS3hBCkExVjZVUjFoZ3V3TGFVWHNZUmJw\nSzMvdVpuL05QYXNaQ0FQcElnZHhsYVkKLS0tIHNSVHdhaHZYZ0lodzhTODkwQnNP\nQ0RJOXJvSkh2akRRc0NhSUVmNUU0dDQKtVlaZs3yTJUWP802nfaX5ql5WKvn13Eu\n2Cn/jS/HSB5muU89rsJqe0mSZlOjrqyErtiF3hVDFOqODEkFb0EmsQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBDN0Va\nSlREWkhkc2dWZTBzWnlRWE1lUzh1eVJ3dXN5TWR0Z2J4aWMrbHdRClJidG9wMHMy\nMldWbTJLN2tjVlRlQ0QyekRibDRRbWFsNlZnZDFUR2dMemsKLS0tIHFPU28ya0FB\nOUVxMnBBZUp6MG1HTFhWRklTbFB5aGlTTGhvOEFOOVJHVkkKSEqFAPJi3FgDAIl+\n8oB7Xnlj32CO6XjDOb07ZWrTCSTEXnu+ICvW10yJPlkKBw01xhEkMUBAPaYWIiUs\n/I4ziA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTbUtrV2oyMHVvR3RjRDVH\nV2tHajZZT1h6UzMvVVNIbFkyQnJ5Mm1raUFJCitjRllhbU53ZUdjMXJoNk5lc3du\nM3lDSFFXSTZmOVI5dS9sOS84RVY2dTQKLS0tIFVPL3g0NTBDTnI3WWlOMWptL1Vn\nSnZYUHpxZmp1ckYxYWxERFJQQXZFTjAKezXPfvGON1KJAnH4fJ5y1otrMLQubR08\nLiJFBpGIft6YKWQq/Nc9Fnkar8WasUneGGR6a6A+xx7eEibrEapJuQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBNenJm\nS3BNZ3lucllPUWM0ZnJGajhpU3EzRFhNVVNlWHhPb1FueU9ZTEVFCndGNFY2ekpK\nZGxaZlhCbExGbWxMVUJWWFljdTZaZTdhZHJtYWc3YlF5eXMKLS0tIGM2amVwd0xH\nVXF5WS84NjVoN2VEODBwZG5adjB3TzdkbkZUU3lBMHpQVEkKEZ8O2V2W6gN1/v1S\n2FaNPMEyIBPrB4B2cEFvFi0awKyZcirxIcE1nlqkEo2urXhV42QqIvJbeF88pSuT\njY8ZEg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2MDFId3R4dGJiVDFETlNj\nSmg5QzRabm1odytXVk83cWVTclRCN3k2MGt3CnBLYlMxMlF5a1lTZCs1cXdjT3Nz\neGwvQTJZdG5SMWVVbmFXbWRGWEZ2aUUKLS0tIEpvSTBJVkRCNjBpNEx1bzJqTWdB\nK0VaL3JpeTB4T3FSYTdmaEozQklFWmMKYHga2PwW6ZdHrSczVviS/Z0utfAF9Z+J\nzGctQj+Xo748ItLYnIOCFST4BltlPo8SD0fzlaEnR5bTJuWNDnA2TA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSaTc2SUxJd1doeDRZelBR\nM3FLVjlsZTJHUThRaVA4K0lMTXl0allIc0ZzClIxT3BpWllEcnM2Y3JKbXBTY2xK\nUXk5TDlzVXdlSFlaUEg3cG1XSUdoQ1EKLS0tIEo1Y3c2OHJMUnExMmF0cGxuVlpH\ncEFoSDkwOFR1a3ExOXBSNlF5b0ZiNzQKBfjzWTcX5mpuMOu0+RnuTdwLyTQo+cQa\n3s3eiUuwMITf9OZJsV9GX+GDfpkM3ioK6GIdiJB3qcTb+i+rnpGP8Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBSbDkv\nWE8raHdHNVJpZTJFam5ZOTJWL3Zzb0ZjYlV4R21MeFBUaEpqVWpZCnVtZmppc09R\nNFhHUUs5YkdITFoyS1UrVy9nOFgzVkRTRTJzalhxSnBJdUEKLS0tIGZYUjdpblRi\nUWZiZ0oyQjF0dVQwbmJjbzdhZUJPeEpTbnNUWTFHT1BVdmMK1Hmu1aWvvgTZo/ea\nIKeEWeXR3/j2Xi4w3JIy/rjrYGdA6oVfEWvib0qkGM9D4/UcOVkBc7+rrfAwTmL+\nc6988A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-07-12T12:32:11Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6Rkd2QndUdGxqV1BHOXh2\neXp5MTM0c3FkS0NnNzIvZ2NFUi93bEJHS3hBCkExVjZVUjFoZ3V3TGFVWHNZUmJw\nSzMvdVpuL05QYXNaQ0FQcElnZHhsYVkKLS0tIHNSVHdhaHZYZ0lodzhTODkwQnNP\nQ0RJOXJvSkh2akRRc0NhSUVmNUU0dDQKtVlaZs3yTJUWP802nfaX5ql5WKvn13Eu\n2Cn/jS/HSB5muU89rsJqe0mSZlOjrqyErtiF3hVDFOqODEkFb0EmsQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBFR1Vs\ndlNMK1REVXpXeGRqV0oyZmJRWlh4eXVzT3BpbW90eURxQzZ2SVZRClpVcVVnRGFV\nSlVRNG5sb09lK1dWOE5oL08vSUFBM2dLc1lkcitEbHdxSm8KLS0tIDE5SUJVdWNr\nOXNXNlE5RVBCQTYzeXB1UnFmMzdqbjd3OWlBNVlIVzdmVDAKwFxXxbqBZkgS6zKX\nN9RNx+waALQAMNVOoMYufwhTfh33lnfDZIIfnU4IgwtG1t+SKIb/B2/TgdgJZAQs\nUt0M4w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTbUtrV2oyMHVvR3RjRDVH\nV2tHajZZT1h6UzMvVVNIbFkyQnJ5Mm1raUFJCitjRllhbU53ZUdjMXJoNk5lc3du\nM3lDSFFXSTZmOVI5dS9sOS84RVY2dTQKLS0tIFVPL3g0NTBDTnI3WWlOMWptL1Vn\nSnZYUHpxZmp1ckYxYWxERFJQQXZFTjAKezXPfvGON1KJAnH4fJ5y1otrMLQubR08\nLiJFBpGIft6YKWQq/Nc9Fnkar8WasUneGGR6a6A+xx7eEibrEapJuQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBnR1hQ\neWZjbE94R0gzVjJWOEZsVDFhMDFIQXorTFN3UVF1T2dPcGFYM24wCnJEYWdxS3Mw\nVUdFU1VZM2RZSGZnMHNySG1UYkR5M3pEMUp6eTFvUmlMTlUKLS0tIGtiNGpzWWRh\ncnJwZm45Nm5GZTJYNWxJdmtJajdXYXZVTTZVcm1VNGUwQm8KZOjKmeD73Adn3eGE\nck/IiUth6hn99mVzPlRoXBXozOSUpJ5HaKi17Xs8mLfgeWfVS0Igxf4gaW9XsgIm\nAgmVsA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2MDFId3R4dGJiVDFETlNj\nSmg5QzRabm1odytXVk83cWVTclRCN3k2MGt3CnBLYlMxMlF5a1lTZCs1cXdjT3Nz\neGwvQTJZdG5SMWVVbmFXbWRGWEZ2aUUKLS0tIEpvSTBJVkRCNjBpNEx1bzJqTWdB\nK0VaL3JpeTB4T3FSYTdmaEozQklFWmMKYHga2PwW6ZdHrSczVviS/Z0utfAF9Z+J\nzGctQj+Xo748ItLYnIOCFST4BltlPo8SD0fzlaEnR5bTJuWNDnA2TA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSaTc2SUxJd1doeDRZelBR\nM3FLVjlsZTJHUThRaVA4K0lMTXl0allIc0ZzClIxT3BpWllEcnM2Y3JKbXBTY2xK\nUXk5TDlzVXdlSFlaUEg3cG1XSUdoQ1EKLS0tIEo1Y3c2OHJMUnExMmF0cGxuVlpH\ncEFoSDkwOFR1a3ExOXBSNlF5b0ZiNzQKBfjzWTcX5mpuMOu0+RnuTdwLyTQo+cQa\n3s3eiUuwMITf9OZJsV9GX+GDfpkM3ioK6GIdiJB3qcTb+i+rnpGP8Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBhZGdu\naU44TU1kd0xndzErZGNrTkNYQjNlR0hHTXRuRUxIVnorKzdrTERvCm9XNWpvQUkz\nZWtxMGJYZFk3K2l5bG1iblFaZVJ4UzlFakZmQWg5UlYvcjQKLS0tIEpmOGwzUFJy\nTXdRbWxaOWZrN0dqaGxId0FMQ0JkRFpRSVRKdWpYdjJvQjgKwU75Xry6ayMUwxVF\nt9api0gyPPq2TWDCnradKctpQ/MQTFz5lcawg2vmDNhtXA5UfEh2Nl9RPA749lU0\nDaG31g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-06-15T02:13:29Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQmk1OU5hcXpMSGhHQWcx\nVlFHN3c4a2pIekpUL3FEUnlVUXBwdjJlT0RZClhteUdNMGdMQWl0WTRGK0p5czFv\nTTh3WkR4dlMwTmFzTTkvekgzREhZY2sKLS0tIDA1K2tSQWxhNlM4djByV1RaT1NC\nNXdNR0poRlpMOVJsQURMbDF2OXN2aEkKcgwIWqVHG6iIgfWvZBmbthlyusIECSHl\n1dPrE3nOx8X2vfl5vwP0w0uOTaAaHrI0Afnh6mnIz1d/qIbzGycYjA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBlWDB3\nZU1jL29uVlZKL0hndnBGd0dvQXFXMmxyOXUrWXU4NDVIejM0QVRJCmNUTkowbGVn\nUWkyRnBheWlkeUw4a2UrdGlDVG9MV2ZDb0xIMHhJSVlMbEUKLS0tIDB1OXd3RU96\nU3Y3dHJsMEtGa29iczI2d09PbURHcHUzVHl6TmFTQ2xaV2MKgmMcJlyI7HMNfa5u\nsnbfX7qSAa/zhwLmtGxRWp0FIPCbVDbitVYffUXilJ9/WF2vqgo5RC9uZXN7gvT+\n3i+HgA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dmVrN045MGpsZHNCZTV1\nVFZkZ1JVTXhzWE1VQ3cwYTBLQ2JsS2xrTjJnClZwWjVJY3NYVytnL2NoMDVHR2c4\nMVU1WlBYaEFDL20yZkxYR0J2MTVMbXcKLS0tIDlsOTBtREZWNGthTytGOUNxSnlS\nTkc1NDZrK0FlRGJkSzBibkZxQ0R3T0kK/em5c4vwXA25vtDduSsKPzKSXWUqvTqa\nZQ2pzhqwM3O5XGd3VySQRnzdAOcdLfvPMQEDTHwlNk5bj5i8fWShUA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyB1bzRY\nUU1Tb3RGS1Y0VnlqM3Fjd1BWWFc2Y3BwUUh1ek14T2NvVTc0UWxFCnhqMG5WUkgx\nMXFCYXR2M0VOQ3NYVDdWejdCRVoyMVBjTnJ6UG1aUDBUWjQKLS0tIER5aHptcWcx\nbnlMU09oem4zTTlvMThmb0VEYWpWZ05LUHhKR1VjMkdVSXMKG4xMqepfQYcWtQGW\nn0dF0xA9v91heF11UHWF/hnLfsoBfL4G+om8NIpsMqBvIu3SnDRjx6t8JJT9XYZ5\nPGfyaw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBZVZDMlo5ajRyakZwcC9W\nY2RWT3ZtdE9qUUZ1WE8reEZna3pvbnVHR1FFCnVqQlo4eXdZUWxibm9TcnFGemN6\nNXZjTHd4TTUxdFpPc2dITTMyYnhXS00KLS0tIHJ4SERnZy9FUjhVZkVveXFMTzdo\nTlg0MnNJbFBzdWM3WEJLSlFXSzdGdk0K/CpPqIi2zloQrdE/sE2vobrXcgOIl28l\nmokeEUrGLpcnJIHue0eq9YBWXJBFDxoRyPtLvP89LScu5K6gmq0h4Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3OEtWNFpDWVdTcnNnN2d6\nVEVSR240VHRQdUFIa2ZKWUcrTjMxM2UrRG5zCnk5aU5DdzdoNGN3d2NQKzRMS1Vv\nTnpWUDBCVW5xK3d3Z1BET1laTUVsZUUKLS0tIFRMb09RbTlDQ1l2RWpQamZPa2Jk\nRURYUFhpUmpUbkdQSDdOTStOa3ZCZzgK/bt8btAM5jbeXiDcMhjKOphMIBOh/lFQ\n8sNVTESTUWWu53FPkeMA+sDrsG5iM/5q+57OXN+X/SxIcyVzklkpJQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBSSEdH\nOGZDWDFhMzB2aVErTDU0Vk1WbnBSa0hmTGNMaXI3aTBuQWMvQkRJCnFpYkRFblZV\nRzF1eGdmTzFQcGhTWFZKdmhyNzRHdEFFSjh2Tnl1NXlpSkUKLS0tIHFLSVJiRkpw\nV2taUVdlS1h1V1Y4aE5JUWVmK1d5UjRleVY1Y0VvcmQrMnMKpD5nffC057mv+1wz\nXL8bOS3vBFoupi7IbKw56e0nGkRuMq+Hf2eCKZDRRlLbIi353xXFki7PKDk7ltu9\n2olKQQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-06-28T15:14:52Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFY3lTTjRKSmxZMFhXYzNO\nQ2NIQ2ZrUWNEUTMxL09aWW02RXE2NGhJbEdnCkJpaE8yaTVTWDJZQzJFUW5zN05j\nV2FVSmIvVllJa2M2OWpuMWpTTFRRcTgKLS0tIG5PYXcweHNsYUNPRVYzMTBHYmFp\nUUxFMnlXdDFUUjFQM1hRKytGMWEraWMKiUfQEFQYezVH+sd/bJbCMcOMt79+XjK+\nTOZazSVg7ZSu7VsXv0h/uMWNpQZc6y7Nq/hEalMcpwHpdPCjp5HRNA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBXV0RH\nbkZTSWVZdTV4dzVCRUU3Kyt3c0l3NFFocVhaMzQvSXlUSGc4Z3cwCkVMdk5uMlUv\nQklQSHZzbzJyWlRHWTlXcE9qL0Z4MW1DL2p6QWRqQVlneVkKLS0tIFFNNVJFZ0py\nYTR6SXpHSEpvSmxqM0x0SG5EajR6dnB3Q0czckpjMWZmQUUKdVbsotKQxQqTXQE+\nvxIprPHlBMKFrD0r8uVIu0Trojb4aiSQxpnRtx22FeWe+Xg5E62uKpsLgQugIsID\nsi+EqQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhek1aeW9nRXpTOTBHV0Fq\nRmNvZHFnaHJhUXdRMWo3QTlYMEljQitobXg0CmxTTkxOenFhZHlsMFpPMVgzSk1G\nQi96Y245a3VWL2dZcUk3MndmRTlhVTAKLS0tIDZIMkJwYVNZTDdua1BjRm15V2Ft\nbEppeFBRb1hrTVFiU0VGT01vWDF2QlUKxVgS3L/kU0+N1KqzJxHokzj1zAuvlzlA\nv44bTVEA1p5Z1LGB8yswQS7zQRh7S0spgJukZfcqlzsMDpf9RY5TVA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyA5SGVI\nZzl1UG8yNkhRdWZQcFRNNUJFTnBsdldNU05HYnhIVGhzZHVuN0dJCkJiQzc2UVZV\nMU12am5mMkpWY2Z5S2JKYUJRY0FRUXhKK1ZDQTFqZlpLcjQKLS0tIGJBL2NVY3lX\nSnEvNFJubDFkSG5tVC96OVNjZlpLNUpPeXdCakFzTjlBT28Kkulsz5fDYbyuJNv5\nOG/zikwE66A/GXk6iW1cy3WRUS1kWSTnEEd5Ke4UWW14k6AtBC+rhI3hYwKY4c8s\n1OC8og==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0U3hMOWFWWHlXWFBnV3do\na3kzNmtnT0VMOUprT21scmtDQVBxRVhZQmo4CkhQdDBibE10aUJtTXlBbkY3bU5Y\nY1VVVElVdkp4c1QzTnhPVG9hM0orem8KLS0tIFJJRllZZjd3bHFyV3FEREZ3djc5\nbE83bHk3anhUcDNKd0NmeXppcU9mc3cKrMmYNq/R0gr8ZKm0+xP9nFay+FW+2LhU\ndrbXL5zN4qVFT51uxDQLnaoTHs86gZbYrK4bciLtQgQJTZ0ppiDWAw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvVzBRaDM5ZmlrS2hBMjd0\nQi8rZE9DOEE2UllhYlh0SzluYjZXQXFMUVJBCktoWWl2UGwvbWxES0ltUnhQWXFp\nWkFkOEpOTWg3b1U2QjJlY2RMRGY5TUUKLS0tIC9rOUt6WkVnaHhsUlJIQ1NKOGJ4\nQ2YraElCai9XZkNONjhXNkpxUHhyRlkKi/poARA4FzYojwF+tcgZRiS1z0vCbG5T\nmofxZ1JYWLbqIc+aP2r3sD/gle4v2BpMJ63KuC9R0rtWCdClQYAVtA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBFZ1J2\nNk9yWUNaemVBOFRiVmdmWGdRWVN0UG5Hc1lZRTBiaHdnS0E2UlN3CitPUmdjdVdu\nS1FXbjVCRkxZUk5KdW0xRzNheWJ1TWVYcUJMK3k0TlRFSWsKLS0tIFJSTlN4a29x\nWG8zUlcvYmlZQkQwT3hlWFlOVUIwSkt3SE5RTzhQWVIxUkUKVSMJtNCEZ1KpcUgQ\nkuTFjaBHvizq980kkbNbD4FgeCAPZ3CwXA8/nKhN03iPeFqwX5AsO0n3+ge/qMnO\nkoRc/Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-05-28T10:44:26Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByWCtldEc5SkxxMUtUZTI3\nTExjbFRUSngwdmszMVFyYXlLTkNDSHU4SUFRClp2Sk9MWktQdnRNR1RMaUpNOHZM\ncm93Y0R0OXB4L0xvdGlLOEEyRlo4WEEKLS0tIHhQOFF2cExJTC8wYWY1RU5BWkd2\nblpFRFdpenkrSnh4bXE4RG8xZmt1d1EKgNNSj6Fpx1bnlPOXXt+l2lgH4kS8PrIe\nZhU0Y6yM60G6qpV4mrOWy+JEOAtSrZU5K48DOgZl+Us0ZuRO1jXTKg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBVM2lu\nL3EwVFg3WjdSN0REaGFndmtNN1BmNjloWU10NFlEaGZtaDdOK3pFCm5aRGdpZU9o\nR1FXQ20yVXkzakh2Ty9qVlpqMllJZWRjbE1PR0FGMkpKSHMKLS0tIDlvdjNPNmdP\nb2ZYYnR2UXBoTGFmQkd5S2J1U3pQRjlUUFFrd1JnUFJRdEEKhwlcJwXav7f4bVmb\nMumds5QXYwiT4MtGlVsA1DRRW1y9DTgUpgHw972Fqwml8kzfrgJcaAX4VbDPkPRE\nsWgeOg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWSXZxSk5rZTZCMnkyNVZj\nK0Q5MURqNzJwRnIrZmgyeHVrOWFIcy91VERFCkhvT1Nac211OC9BWVlOUmd6amMy\neW90czl1alZ4R25VcGlIcmY0R0VwTWsKLS0tIGJEcXB0Sk9meURpcm00eTkyei9h\nNnpWTG5vYk5iVHdITVlvQkpnUGVLVVEK/UDh251NXPc9hnnmTVFRnR2yUufRRVKR\nMNJBH2Ku0IcpJFiYQ+xNonIQKmZCg5zP3Ncqj/teKOkA9lx7CL4Ncg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBYbGpr\ndTJUSVV3dzdwdUZwdmFsQmhIL3J2MXZEWlJiZ2JBZlJZSVRtejBrCnZEUHFYdndK\nMG1mc2EycWdNTlVaK3BnMm9jZnViOGNNUWVtc0Ryc1R0c0kKLS0tIGlIalM0NFJJ\nZmdMVWp6Q0JRb2RqeDhLTktWaWgyQ0poMEcxMmlPak9sb2cKKH7wFJS0uFyxtfvY\nWzYwiJNv0oc6ArCPCFL7s0ygKdj8352baOPi4HMtT2kLgXiaW/g0JM++ODkpJxGv\nu32UCA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzN2ppQUltaFFpVFNIdWNo\ndFNrYnl0enNKdnRBQ2dyWVRzdjlMUThnRmdjClZTazNOVlNXeVRwNG9wenZJcXBM\ndnBqUWZTTlRBeHl3ZFE2c3lnUERwZUkKLS0tIFA0cVV6d285L3cyNkcyeFZUWDRm\nVHdveTRxRys2a1dDcU0zaWdTeHVlb2sK5c/jnmcwSn0BhATWbN/mVoRt59hQ3v7F\nAwdVdqGzFqiMVDIooMNTSFhrIRiq2W2YtmzkMW358ur69CD/85e0YQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2aE5yVkdEVUtENCtxZTZB\nOG1lMWdoWmJ5MWx1SUtuSk1ZVDhPeGhtL3c4CmNTWnl6Q0FWaHlVanhxRVdlTHFj\nTmRWKy82Y3RVVVZ4L1Znd0ZkbWs5dTQKLS0tIHFSMzJtY1R2WHorNHVnRzRjd3U4\nZytia05EbFBDQ1V5RnBLOHc5TFpYSjAKbtlr4VIM6MCohc11RIJ21lOMvPnJfNSL\n1j0niVAToYLPH5U7ZmZb6QO0xsB3QQxe0O8+SjkW0RQ8rXu5CDd36g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyB5RjZU\nR0RVcTg3L3RQSmZnQnJhNm5vaW5URkNySUNORVJTRzVyWVVHdHdvCkd6Y2tvV1Av\nSjF6NkVNNjdKWnZyNi96bU9sY2VkalJNdWpxQUcyT2R3MFkKLS0tIEpkeFpWUE9t\nY0ROMS84QmM2U3M5aUN3ZkdQZi9JYnZCRzl4eDg4NzlrUW8KcuCDvvHFl/oyjVAo\nDlH1OOwPELWVWqckshUkX1MCMW+Qcv5R52jICVlyBVsyb+eiX4Bxgo4KM352KhWB\n5hPnIg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-05-28T10:44:37Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByWCtldEc5SkxxMUtUZTI3\nTExjbFRUSngwdmszMVFyYXlLTkNDSHU4SUFRClp2Sk9MWktQdnRNR1RMaUpNOHZM\ncm93Y0R0OXB4L0xvdGlLOEEyRlo4WEEKLS0tIHhQOFF2cExJTC8wYWY1RU5BWkd2\nblpFRFdpenkrSnh4bXE4RG8xZmt1d1EKgNNSj6Fpx1bnlPOXXt+l2lgH4kS8PrIe\nZhU0Y6yM60G6qpV4mrOWy+JEOAtSrZU5K48DOgZl+Us0ZuRO1jXTKg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBCUjFJ\nYXB0ZkRudjZRcXBRY3RZNUNFVk1aUHI1eDF3MENvNnNqNFF1akI0CnZBN1pqLzBD\nZnIyVGs1V0hxREJtTEllSURLQ3JJNVBNcDhTQTBYOGxjQWcKLS0tIExLL2pPeVVR\nVW9UdmFMdUlNMGxRS1Ura251QzEvMTQ0c01sU0JPVmxtN1UKQxAjmEgeSgocSA9Q\nbngYGWx6sSomaBaqBRWhxCeyvnP+M5sZkBI6bEDVvfqly6yfPb43xKxh4LrOv0te\nfJzWcg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWSXZxSk5rZTZCMnkyNVZj\nK0Q5MURqNzJwRnIrZmgyeHVrOWFIcy91VERFCkhvT1Nac211OC9BWVlOUmd6amMy\neW90czl1alZ4R25VcGlIcmY0R0VwTWsKLS0tIGJEcXB0Sk9meURpcm00eTkyei9h\nNnpWTG5vYk5iVHdITVlvQkpnUGVLVVEK/UDh251NXPc9hnnmTVFRnR2yUufRRVKR\nMNJBH2Ku0IcpJFiYQ+xNonIQKmZCg5zP3Ncqj/teKOkA9lx7CL4Ncg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBmZUxB\na2h2WGVySHQ5RFFTQmloT2pYMTZVcU8vc25wbUZmUWRvK25TMnpvClE4QVZEdnpB\nVDEzSnIxN0ZpTkxyclZRL1NRNHNJbVhvRVdCSUNubzBNMG8KLS0tIEZWbk5sc3U1\nOERuZVBPZ1g2U2VKSVF2dFJ4OUEyeW91V3VFMHdPaVhWZUEKLbQAvuT6WeoJl49G\ntmPO4rAiGFc2/Psoq1ShBRk/RbyBB9248ttaiyLgVNFnE0J825ade5B2wcf6+Pfq\nZV2UEw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzN2ppQUltaFFpVFNIdWNo\ndFNrYnl0enNKdnRBQ2dyWVRzdjlMUThnRmdjClZTazNOVlNXeVRwNG9wenZJcXBM\ndnBqUWZTTlRBeHl3ZFE2c3lnUERwZUkKLS0tIFA0cVV6d285L3cyNkcyeFZUWDRm\nVHdveTRxRys2a1dDcU0zaWdTeHVlb2sK5c/jnmcwSn0BhATWbN/mVoRt59hQ3v7F\nAwdVdqGzFqiMVDIooMNTSFhrIRiq2W2YtmzkMW358ur69CD/85e0YQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2aE5yVkdEVUtENCtxZTZB\nOG1lMWdoWmJ5MWx1SUtuSk1ZVDhPeGhtL3c4CmNTWnl6Q0FWaHlVanhxRVdlTHFj\nTmRWKy82Y3RVVVZ4L1Znd0ZkbWs5dTQKLS0tIHFSMzJtY1R2WHorNHVnRzRjd3U4\nZytia05EbFBDQ1V5RnBLOHc5TFpYSjAKbtlr4VIM6MCohc11RIJ21lOMvPnJfNSL\n1j0niVAToYLPH5U7ZmZb6QO0xsB3QQxe0O8+SjkW0RQ8rXu5CDd36g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyA4RjNs\nWlYvc0tEN2hOUTA5SEV6MUhTeFViRTBqVWJLcGVDZ0JROCtONlQ0CnU0Z2FWQUlw\nakt0dk1nbVFHaVlyMjBqS3hCSDdHZEYwT0pXaXhOclFvSjgKLS0tIG9ZZUQ2dTI5\nWFVJanhac0QxVHM2b04wNE1jcHdHa3JJYzBlTE1iS1ZPTHcKZPvA9MwYT4JfG3/F\nqSI09TWeEv7TAWGeZr6OS++egtpdVoM3hF8s1B1TZb3bf/BMqo49NEkvD56pOKvo\no0jjHw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-05-28T10:44:37Z",
|
||||
|
||||
@@ -3,14 +3,12 @@ FLATNOTES_PASSWORD=ENC[AES256_GCM,data:jC/lVZPDGvcYzXhdnvjs,iv:0O6nNNlWjD5OWIa2o
|
||||
FLATNOTES_SECRET_KEY=ENC[AES256_GCM,data:I8zrSTMRnPNWn7u+KZiQW2YdpAkKOBxRKv7ov7dLLNA=,iv:I4YP4KqyMR6jfofEdYxQ+I9PQjTNQwCgnTUfHnDW55A=,tag:P7QcugaQWMCfb5+G5JdMXw==,type:str]
|
||||
PUID=ENC[AES256_GCM,data:ZA==,iv:xfnOzfWvf7gozw9YMTAw2uarfsGHRpx3rsEN5ja1k7w=,tag:yuXkWMkXAUpF7h+AaYW14g==,type:str]
|
||||
PGID=ENC[AES256_GCM,data:RA==,iv:m8CO/d9Gh0cjc4QYX6CsUx87Vu5iqtU0uVOsA3AeWgs=,tag:Ri0arOjuwRC83fz4EynVtg==,type:str]
|
||||
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiWm9aaVVCa3V2Z1RYTVpi\nd055ZUk0ZXd3eFl5dEM3R0N1THVmRENrNFNRCkVPNTVIRWRFVVhoa1BSRWVvN1RP\nMmZldUsrSVhQa1RWd0YrZmRvR2RPOUUKLS0tIGpqK2doVDdwTDV6MXh4TUpQbnU5\nc1ZORHAvR0tCZ0RLVkpqNm96OW5nR3MKkw9A7/3o3XVxLr6xVXAsS29PgWw1RiuJ\nRM7riGPrQIPuiNqwOIRR5PnWXKsWLeoE7ybQ/NJuxEFBbW+KP4LzPA==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_0__map_recipient=age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns
|
||||
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDVWhuUTFJS2R0MjNKbUNY\nZDllbXowY2NLWnBkbC9qY25jNVR5RHFKUmxNCjl2bnlOVTc3Q0hqT2x0MDFWcG4r\nV3o1MlJqdkpwNnp5d2pqN2loNTNkZzQKLS0tIGQ5TjBVakEwQkxKcytqeEVQYVVM\nRzBUN0ZoeG5ydUk0UHAvOTZxb3JMZkEKejQzUpkFJdx0xUVpVOZ7CH5fqGY2SZ+i\nBoUjB4UxwENQ3jVVfJUzmY81O4HYr9NW2lUj4gwIHFMcG6DQ6Q7AaQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_1__map_recipient=age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6
|
||||
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArVFRwWXowT0RWbERmc0FJ\ndUxUMXA1NWk2bEcvWnVNem5zTmVuMCtmMTEwClZCZGZzd3J2cWxscS96U0ppOUtO\nQ2FwY05PeDM4cE5SNzFwZC84WFdoeTQKLS0tIDJkTmtxTXJSbktJcjRyNWNMcHNB\nRWUzeUIxbVh2anJDUDFKTXl1VnU2K0UKHN3kcm4XGU2gDSuMt2UftaaBKbPHq2rI\n6LCPtG4caf+kTieQMgZ6x3ofmKpKOoW4xFGf77aGaMFA7i3cdbS3IQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_2__map_recipient=age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq
|
||||
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUblBoSUkwS21VbkNXMm1u\nZ1BDZi9NUEZQWjFacW1FV1NDaDVYYzBxaHdrCkVqTUJLZ0lZcHdkMUxSL2k1SVox\nWFE1SXJGejlYKzRkaHhLREIrR3dPNFUKLS0tIGwvU25POS9yMTFZTVBoZDhtRXh4\nWGlzZ2RKWWFFckt0OGtYVVc5eTBSazgKRZVGa+o9qY8bOKuQAH7dqmp4/qR/le7W\ns06L5qs1429IHinhmoEjauQmnSl5nS4YDq0K9pEr+JW9g/aiNWZhNQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_3__map_recipient=age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8
|
||||
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSAyc05U\nSVFwU1hUdzZveUsxaUJKbFAvdlN3UzIvdStXcDkvUlBEaXdXNWlFCmZ4eWlKVklQ\nNHlUYlpFRUJmNmllbDNyckFQQ1crRjF2VUFNZFJqdU9wbDQKLS0tIERVNWpyTTUr\ncUhzeU9FcXZURUNnVXB2SDI0aFljQkNGcWtRb2poaTJuVmsKEHX7jAOPXij+us4Z\nAG7t2j0X4JMi1xDOEaYvfL7GZJ3FQKzDpiyx7ifDp9HUVOrnBidKGC08CZgkCvzj\nl2+42Q==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_0__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO
|
||||
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBCM24z\nd1RGdnJNQ05mVHRVNDkwZnZMaVBIa3JSR2I3bzJ0NE5UMkNsRWhzClZIMXRwbHQ3\neTdIRUlYSEtaenVMa2dEMkZXblhoSE9TcWo3bGk2OXJrZG8KLS0tIGgwMjg4TnFh\nc1Bkd2FYdStZWktBd21GVHNxZ0FsdVU2aHVnZlFQelgzRUkKIzTyudaXGk1sESbn\noLXLtgjZJFBZRV5s/+bBMgZ81zk5s1O4/vm/HDgxxM4y1VVmss/toxpQUGuAR3gd\ntlvEEQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_1__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire
|
||||
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBLV25m\nakVoSjQ3VFBadTk1OUJVcDg0b1huajZDVmtIK2pUb1MxS0g1RjBJCllpdjBpK3lx\nV2ZVa0dPNmFIN3dCeDRvZHpPRW1Wa2dJVlo0dkhLVllwSHMKLS0tIHRHYytINXF1\ncGZLWjdPMHZJM0s3TlRxd3g4VnhkckRUTWRjN0d5OWdUbzgKXaSeWmzdFcW6AEjZ\nIkRk/alyOFnI+18jibEBJaZNo87tAzpVHQxN7mA1mpoMNbqK/Co1Ut3/Q1J/McB7\nqeg//Q==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_2__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/
|
||||
sops_lastmodified=2025-03-02T03:46:13Z
|
||||
sops_mac=ENC[AES256_GCM,data:j/JqiPLHw6a21iJV/qNhAr+4kVkCnXG0uYGEJ4m5K5UerN/nXLzVafa7ciaMzBC1k6KBZwSyuKcQxJt3Q5+R733AD97VgrClSAU8w1pQhlWAUpzD959PwW5dTX8N9G+gih0xcJ5RsMALfWppeTImAAyAoKo1mtxE2MtfQZw1DU4=,iv:jYM3YfA2cbDjKVLHhQ8Rzv90Rg2R4iiY6zFL1N8knv0=,tag:8wRhD2XDZXI9v2j5XHKtqQ==,type:str]
|
||||
sops_unencrypted_suffix=_unencrypted
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
FRP_AUTH_TOKEN=ENC[AES256_GCM,data:CXFJwOOHEbtn1PI0TQc=,iv:yItYliwZGxZs8YAWksV7BqJP3TUBadxXpf99J5nXR3A=,tag:9earTQfuoLO132UZnTjlWQ==,type:str]
|
||||
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5cFA1K1RGbkxpYmgwMGJo\naGdYYzVZNVljcEJWbUNBNUZZbWoxTHBDcEVFCm1BNTgyU21IeXE1bjQ2ZlU5VTJp\nMFpXUXIrQ1JuQ3hydXBzREhkMWRacFkKLS0tIHJYMG9HS0xydW5IYW5Bd0pNd3F2\nK3U3WWFSV2U4dEpadmFaRW9RdGJ5amMKt+lVGKjc8Mh3EfkDlFrHB6hMMlwNc9g7\nc+s5I7ivWqkKMBW0yzdLZbv4xBc8fbgjnCAp01PMTLgh+kFGWmktlQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_0__map_recipient=age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns
|
||||
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkam5kT2tBQzg5RjA5ZEFn\nZnhqaXo1NTg3emtpVENkUGpNVGhPV0N4MFVZClFMZFI5OFFhaCtRQlUvU201cjcy\nUnoyZzQzQ0w1eU90cm5uelBxOVF3LzgKLS0tIHJ3b2lmOXdGVGZBYnk2a29nRjFv\nKzMxQVlQK3c5OFJlQ21KYytmZS9tZXMKaqcjYNcNV9EY8zBxpqSYQzZ8jlx4usoq\nHKfa1/fVNSGt3Zr5tbTuXExGdfQvsyVI+2TpVMMALBj8/vonjsnWpg==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_1__map_recipient=age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6
|
||||
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmQnYwOW5USUNkRGpwYlZj\nVHVGY2VabDMyRUlQb2ZrbmNRL3NJbWwrb2djCk0ycWtlZEtDcDVpc3poZTJ3TnhK\nN1hnU01SWGZFUlJsSDZaemR4SGs3c2sKLS0tIDhOV2RDc0JRbkIrM2NabE9oQXRn\nR3VUdDYrVG52QVd3bC9EY21qQTdhR00KPAv1yi75FhrOtdZEEQQExSkZ8wxkFxjA\n1ze4YARfnkrkILs1C/wtULc9lHr4pzTF4+B4aql42GKcuv3n798pzA==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_2__map_recipient=age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq
|
||||
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIalYrWEZLc2tZUUw1YUYx\ncHJyRFY0eUZZU28yU21wN0dFbUFTUGRpUlhVClJTSVVONGJQY3B6eEkzcG5yUndN\naURMNVhNc3B4V2JkU0F0R0hqbWgwY0EKLS0tIHJ1ZVVrRjRjZEFjSmJHS2M0dFBZ\nWFhuSGJpaFhDTXkwM3JwanlPM1RKZ00KL9ts0rd+CUg1jeh9K3nMVUaoIduwB/8X\nyyVEUXH+Z6AHN9RB+eCbxhPBwdU0wI4FJdATkpDXFSTW0eBMkrnlcw==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_3__map_recipient=age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8
|
||||
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSA3MGVN\nU2NSR2F1R3g0dldCbGtaZGRtRCt3NGg2YnZQTGVDN3RtaEhUMkVzCnJrdzlRSTB4\nVG14KzNXUHlib1RGTy9DVnJwdDRaaTZ5ZGVoWWUvNm9KSncKLS0tIGVpMlQzQ24v\nRVhVVTVSTWNlUVN3L0x0dFJMN3JxODZBTHdIUFJxZEViWjQKv+64wRf+a0Ci4XXp\nesM8zaQXeFPIstdsOJCj8yD5ARZi4kUnhRjRK1/xmjyLmh9h8rZ3QQyUF4uh+Jhi\nQJ0Qkw==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_0__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO
|
||||
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBKMXhO\ndk85UUUrYkgyRHp5OUFidGNXU3NQRk5VYlAwMVFkcUwvUndsendzCmpudHEwbTMw\nT3UxaS96US9yT1FsZGZjc3V3dWFmak1tdWZCdlREV2I5N0UKLS0tIGpXV20remtx\najFHR1kydHJNYWlveG9zUDhUUkRWOXRuQklBdCswZ3hBWkEKiGzMkWCaGb+v01ym\nwGIRjyp8StrSOJRYit8xnoM42ozJLBf/HDuWdSfu/VQuKGNVTRDLY7T5PNrzCVIj\n9sFh6Q==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_1__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire
|
||||
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyAwZFFW\ncERDSnRiL0dMbmVQMGhDMWNSbXpUVVhXeXJreEVzN2dmNlJpWG5nCmV2OGVUMmZ3\nQjRqdGlnc3FtWVpxbHhnMk9xeW9BVUdoTlFud3RKRHNKcVUKLS0tIHZpbTltYnNk\nZEVqUWlhdmloRGVQU05YMkF5aUdmNExPVysxZm55czdZVEEKWo3hFbF1007tSgYq\nzVK1ycmeQglKDNPS1yVedBoF/gj1L69EmjhiOLMMwAetMINufQQpcFRR88VQlqQp\nMPaXMQ==\n-----END AGE ENCRYPTED FILE-----\n
|
||||
sops_age__list_2__map_recipient=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/
|
||||
sops_lastmodified=2025-04-13T06:57:07Z
|
||||
sops_mac=ENC[AES256_GCM,data:WJ9FCO78LRFbU7o9uEZ70s/OJIHN5/UQVKrgt/Zve6x9yVChaRtHmvk7kF/SoRsheLIbeYoY8RI0rUn3Sx7Y7o/ib/u9dMAec0xGt0K6+yde0DUO/uH1KpjXd6WHRPjoMERld6xA1fWVRu7G+gXrEZA1dN5Jbs8ZWVYGF6IBw2A=,iv:r4eYeCDJOw40hK7cyIEbEW+Pq+VFgUOJr1ydkSyjaEg=,tag:ucFH1pNqAHg7eWm1tYYi/g==,type:str]
|
||||
sops_unencrypted_suffix=_unencrypted
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4TlZGM3N1OGxKQ0NiMDZJ\ndGZET3cydHRnS0xmK1o0ZFhYcVM4d1lYNUZJCkN6MHdPc2wzejdsb2JXQ08wK042\nR3IwVS83d3NqQ2I5WGlxWDNLcElJZXMKLS0tIEdVck5OaXlnTzQwbHYxVDIreWRN\namNpQnZpUGlZMkdiaTFSRHNGZG9tb3cK8/m06LMrEr+Adrv13LdlpLSU7JV3US6w\nE4/SUJk8qm1i4lQ6Y8rzaQMpYkmLJJuCLlLcjP2retjUS93/wwE6lg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBzdmsw\nQ3V4dWNyU3BzWW90cDBiSnBGRnNScEVTaS9QT09hZGt6OFVOUmdRCkoyY0pITDAr\nNUVVbUlOVUp3M2dlcWpkOXBZUVpNUE5TOGZjS3ZiWURLaFkKLS0tIFljSFBXVzdG\nME1veHo5ekl5UkR6TmNValFPdHpGTjAyMWdJeWJMRWRWS2MKIrBXeVOj3tcnX2Wo\nqQ2MYF+mxvMOpFdmYtk7kBwopyieCCn396L+WyoOJR/QcLMsEmtuTKhrG2HWn35c\n+3SSVQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2NUswaXc2ZksySXR6b1Ix\nWFEwT2N5bkJ2WDF3Vi9aempVS3ZHRnMyRVhzCmdQODZSM1FzZldCdG9jZFJjS3VV\nNHdSSDRzcm9PaS85U0kyaTZxc3h5YmcKLS0tIEZjMTFrU3llRGhKbHpkeGJ5YzU3\nN2FJcEthOFV2c2JvOEJKSmgrVjMyNjQKPaqDJcG+bCVCJmkwaeO2F2PAoIERDOaI\ndpoq4SoBcFRS71C2GzPvZPBs7RFaDGSlIqALpYzbDwdA+z7uqplcoA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBIcG9t\nNldXTW40eitucEN0N2t0cnlxek83Z3lqejdNUVZpNVROdVR5Q2pjCjVtNi8xN1Ja\nWHJ3MnQ2ejFQYVcvc2FEMXovT29DN3FkN2wwRjJGdWxqK3cKLS0tIGE3QjhVR2Fs\nZkNkUmhxS09wWFJ2WEFHZDJkYXJuZHROUzlrZk50MGN2dUUK3qmwF0oWpc8qhzIV\ni6S3pcfz3rKcVyOGVNvwrxl+X+bRqT/lsf/T+pU79rJwX+wP1Cd96G8HlwDKsYHo\n7x2f1g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1VUNCcnNEOWEzWFFaU29N\nQTFzdnpRcTZCUjN4NFJ3TExyR3M0QytuU0FnCmlyZkNyVk04NDBhay8xVExpWnhr\nK2JzUUwvTGFBeWQ4dndwUzUwbjMxMlUKLS0tIHRRdlNwdE1NdDlxajBOd1ZkNmh0\nSG5oY1o3L2t2SHB6VmlnTmFscHFudWMKsg2o0xG3P5hTeHz5N5rs3QwUc35qV0eC\nrup+751+KYUPE5/xtdhQ5t4uqeUY2LXT7diW6fo4wNR5BL5mIoaP3A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvTHM0WXRTMFloYUUrOFVL\naGZwclBzL3BNeUZwd0dnYk9iaHRKTXlwY1NFCkNGQlBrMTRwdlVoVWtFL0Q3YXVS\nOEtyOGJJVjU3ZlBQb0VrMUVBTFdCMWMKLS0tIDFiajl5a1d2ZWwxak5NRUd1YTJK\nU3NqVVVUVVdlN3RrU3NTYmN6NFJOTU0KM31BZlxkvg66NghMELNM2KMOcN0tuDuD\nu7ujktQMC68GZ+wuAN1ki/vuA8ZCSDqC0EDfxT/BezjYxXHOd7CQNg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBPbHdr\neWlXUGt1NDRhcXlyTG0xSTZDRlhsdnhjalR4RUNDRDJ6R3NSNWpFCjQ0eGRTWWtZ\nTzlqTmk0d2wwY1JoZTErWVJ2a25VUTJzMnB4ZUZHNUtNWTQKLS0tIGpUQUU1d1hE\nQXgvbWl5VTUxeGJPZDNnN3paSXlpVERoMmpxYVQvbCtwM0EKL2LmRYps5W3fqfY1\nPHPJ+9UOCff650nzeohMa/s40+KPycIN/inYjmFst9fLM3l3lI5zOS5KZqU+6sTs\nLiR9Ng==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-06-28T14:43:36Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxTmVNRkJ6ZTBObWF1RE5v\nUkdHMXkyQXU5RlEvblZ3bitBMTFURzUvTGlZClMrMlVDejRkZHpiWUlpRm5jSHdi\nbXAyc1l2S2JUZjh0Y2xjZEJ2YklCRzgKLS0tIDFKWEY4R2JJeFIzMUN3ZUUzVjQw\nMkprdnJYek44OWs1L1VXSTR6VlVTYkkK8zqmmr8iiYvNMPyGha1g5WKqYCbOEnAw\ncO1T7eN3IMfwK7ueBZkZQsDL/XZ4JoNKL2aseCDxbiDqIxHV5Dttdw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSBEdGl2\naURodyt5anZuRm5WaTFSeUQ2VG5rQ1oxckJxbUs0RzEzalFWc3dJClBBRFRCaG5L\nMGF6Y0EweFFEckRoR0ZMMGw4WlFpWEFUNEp5bWxNMUd3M28KLS0tIGFjckxTa2FN\nUUtqM0kyU2Q3WWZlN0dlVFRaUXJObWZQbVo3NVZlTkF0UUEKeHFgQtgIybfyzNbs\nGWumTzHwwgQlc2HlmFmDg+mAeHRL1vdRokaCCUJ0pubRNXWzOOZpghwDUk8vYBhV\nKnx1wQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1bFFaNUd2Tm9TSyt0WjJV\nRVhDeHpGWlB5SHRNRGoxOGwxZi81OEpYQ240CjRvZFJhVDNRTlFUOHFtSUtrVk11\nYXpiYjZ1OFRJYmEwUDd3bklJRlJWMmMKLS0tIHN5dFpxUE43ZlpkdHJFb1daWjB5\nRTZxWEJIOGNhNkJHTWRSVExvUVpkYk0K/8zXTA8HjMQzoUpyK+Sa1orZzukLxJPw\nR8ts/mKk/lL+hXWN0QdLu8cSvOGth1QvzeGjNb/2eToQa9fZtar6YA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBjZXZh\nNlJqLzJ0RWgxUjl4Vnd0K2J2SHpvZTQzNlpPUk5MWUhLWllnSUJnCmswUEszYnl4\nQkU3KzZhWFlUalQrZ1MzR25tQStHVDhUVng5Tk5SeG0wL1EKLS0tIGtRUU1WNUpm\nZlFKNkRSdC9ENllLZmVBMzZXRVM2VU5pYjJ5ckVSZnFoUHcKC5IDoAwNih9aJkBx\n4e9Q6sEsaAUGOmRuFtVMabwCpfOnP3IEBSPrx0XB77G4h6HYPm79dedX3zHcN+RS\nrxiv3w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvYm5Zb2ozdTI0TTVuWE92\naHRUOGhhVW9jSTVxRlJMSk4xVVBBeXVlMnh3CnZCUUVvTjl0VzFVVHhLOXNpYmdu\nYmp4SWxBTGc0MU1Sc3N5S2NwVlkvNGcKLS0tIHZ0c0hRNlRyR09TRGFYUXBsVnZQ\nbENCNlZucFVDcm1ZazJOU3VMbjJuZncKbwTyidmzUzITHdFiihdToOyvJ8BEdrgU\naOftPVH2B9YJ6GuLRFLSMJEhSStITLFkzEshB6EJbUkZPbUSwHnX+g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5WnRMbVczYVNSblF6YThh\nMmpwWDUrWjV1Q1ljYUxDZFp5U2k2NUR6aFdZCjZ1SW02cTB2cDhIOHBqSFFuU0du\naENsUFhlcG80ZnRuVkRFYysyc1ZRejAKLS0tIDZTa2NJYnc5bXNSUUpkb0EwUkhu\nQXI2RnNFRmNxUXJXMTh2OWVERHVRZjgK5YtTAGRr1a1qT3A2zYbutc7kpa1mVC0g\nKr5dsCrjzvLUxs1bP8ynFX2zhsy47GEEwL3LMwIZY9JAZiLuyeA3tA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBWS1d4\nbHExemVWeC9DSGhsa1MrV3FXTmJPeHgweVhZVGdlTUlEVDdDbzBvCml0WFBvRHNF\nUWk2MnREaU4vVFd2UW5XNHEwZG9BbzV5bkFqaVRQbmNNK0kKLS0tIFdYZmZMWldI\nM0w3L0VuMkR2b1I4SWk1ZEplOHo2WmtZZTFjQStnQzQwU00K1Oqkbyhz6PL/jQJQ\nAU+/bjJdbP0bVnsRP7tK4TBw/Z2am+YpMSjYHrCDjEYBAtHFacu0DCsYa+3BiHkU\npLa4AQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-04-19T02:58:06Z",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1jf5pg2x6ta8amj40xdy0stvcvrdlkwc2nrwtmkpymu0qclk0eg5qmm9kns",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOVVqKzZGejZUZzlNSDhD\nNEFNTzZrWXgrVjkrbEp2NzhoUm9pS2Q5dFI0CmxBcVVDek53dDJPVVlQT2lERWRH\nUnM1bzc1dWtJU3pFa1RZRWY4akM3ZVEKLS0tIHV6TEtUNkFySytmRGM3bThTOHdq\nV3RYS0FSdUNSQVYyMStIenF5TEJWOFEKwvn0+N9jwrfcAziwfd1eSL+3oacoh/90\n6x+RlGR6ZPV4uK2zkS3D1kCTmlDsFUhQInhRaaPG+RFXRjhOCKxs8A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSArdXZX\nYmgrc1dqMUJ0b21IdnI4b2V2OStlOTE3MXRkTENYNnJVYXg5cGw0CjJwd0xmVHJV\nWG5hTVc3aFlBK29oMTBmSmVuQmxtb2IxVEE2elorc1haRTgKLS0tIG9rWlNEYSth\nQWJpUGdRYXFlT3MrQmJCR3pNVmhTZU5oZFJadFBqQXA3MGsKddPBxfpkNjt6yQCS\nF3316VQXjCmvhzBPijkKoCqrw7DXMRn2OfTDG87MS/AA1rVNL1HYC9LqoBwSusCu\nMYhDCw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1hpgg6psejh4y6jcdd34wxuml75fnweqpe0kh8376yqsctsfn9qxs037kk6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQY3pRdVNSV2RLQThmK01B\nU1NWeHhkeU80Wkhkb3ZwQzk5WW00cGNCZHpzClByendzSjQ0WlE0ZmcvbHV3QzNa\nMmJNZ3IzempuMjF3SFAzdXZwRzlrV3cKLS0tIHpDUUdqTExXc1lKWEVsMlp4bFN1\nbG52aXgrSG1PTGd3YUtZS29UbzNGYnMKYXcr/5+Z9+KT6JDqAGEuxeLZryYxMTi6\nG1UxTWJ/yqoEHovENdMGSyvu1GiEll0irlY2DygD+hI0PML7S5aA5g==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBBSS9Y\nb0dHNURncVBTTmRzbWVpMHJZZnJSZHk3cUVENVV1bUEwTXQ1dERZCmdYeHFqT3Iy\nYnlXRnBxVmZYTThnQzRJYUFuZExFVHVoSU1hTk1ZQWlQZW8KLS0tIERyZWlrT3Fv\ndGR1d0V1S0wrV251bGQ1eDNyeE12VVg2bkQ3a1VYMk1DaFUKX+2QKvyVDj9um/3Y\nun84HFNNPQXv5HWSvtd5f7ooEpPzRWbAU2jsUkowELbzLis297H8x/YPaQqcLXty\n4tBfHQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1r0fv0tagxupfacv0aaxk5ss7sqvswv6kq8tk3x46ndqrj6f5afvqegahxq",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwSzMrNmR0eDNLbnp4ZjJ5\nU0lDU3NxRzNyN0Q4K0V0WmtSajlKK2x1Zm00CnZkYThLKy9uSzFjVnBpbnVqSytK\nanhKNVlzb0RmT0RJdEFtVHRKUDNzSFkKLS0tIDZUMnR3T2VGdkRUTGhCSHJEenE5\nZTRZRW1CVWcrcFpsT09IMFlNRm1TWmMKYq2J6Kwxh4cUs/NhqXc/rrWavcjZXZ/h\nbqBhZ6sTEAG5zcRyhYt2r3X7QW/A3TcYxEmAmWDNitug2Cv3jihkLg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1tp7th3rrv3x0l6jl76n0hjqjp223w2y586pkgr0hcjwdm254jd5shkj6a8",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkTUtuZmYvdk9OcHdMVnFt\ncGNHK2dpazlsMFhmNFhHWFVHZGVXOGgxQW5ZCjZXZk03WjlZR1RJMWNqaHIwbC84\nWHBjVit6czd6TTYvWGJNOGFUNFZ1WEkKLS0tIFpSa3pRVEJ2SUxaT2dlYUZhckRB\nWEovTDhOV05OZDBjV1loeTdMQ0RUbGsKFJWailZoXIJ1RnaduJakdTahOJZUweIc\nKT1IGw022cKd6EEKw/z9z4SCG3bltwYrNZ7TazgWVQlFLLU5tqaXSg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBWNjNi\nVUVmQ0NuZ1pJdGtYa25qYzZpcFU2ZGd2cUkrbVliN2JkTHB6WG1RCkRLb1VyUmxr\nUm1mOHZkdzFXZm1TUHVRWTM5czRrdmZiazBpV1UvSHo2YWMKLS0tIC80UHZzOW9L\nRE51a2NCVllmcGUrc0FybFppQmZZRVJFaFZwL2kvTXJtZTQKU9aMC+fJjXooDFN9\nb/AUqVU1BgCSaxiDnbhbSTj78JgOELQr1Nv5qkHkn6xTfW4mJgr5hj+IItgUtbE/\nAkJuJw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-04-13T06:45:59Z",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user