diff --git a/modules/programs/gui/discord/themes/snippets.css b/modules/programs/gui/discord/themes/snippets.css index 5bd80bb..bfa3644 100644 --- a/modules/programs/gui/discord/themes/snippets.css +++ b/modules/programs/gui/discord/themes/snippets.css @@ -215,3 +215,44 @@ foreignObject { .slider_a562c8:hover .grabber_a562c8 { visibility: visible !important; } + +/* Theme vc buttons on servers. */ +.iconBadge__650eb:not(.isCurrentUserConnected__650eb) { + background-color: var(--accent-1) !important; +} + +/* Group online rect fix. */ +.container__1ce5d:has(.status_a423bd[style='background-color: rgb(69, 163, 102);'])::after { + background: var(--online-2) !important; +} + +/* Review padding fix. */ +.bodySpacerBottom__8a031 { + display: none !important; +} +.footer__8a031.section__8a031 { + padding-top: 0px !important; +} + +/* Themed toast progress bar. */ +.vc-toast-notifications-notification-progressbar { + background-color: var(--accent-1); +} + +/* Fix for hover buttons. */ +.controlIcon_cf09d8:hover { + color: var(--interactive-text-default) !important; +} + +/* Character count color fix. */ +.vc-charCounter-selected { + color: var(--accent-1) !important; +} + +/* Themed slate toolbar. */ +#slate-toolbar { + background-color: var(--background-base-low); +} +#slate-toolbar::before { + border-top: 8px solid var(--background-base-low); +} diff --git a/modules/services/proton-wireguard.nix b/modules/services/proton-wireguard.nix index 1563ea0..1caab85 100644 --- a/modules/services/proton-wireguard.nix +++ b/modules/services/proton-wireguard.nix @@ -18,6 +18,7 @@ ip = getExe' pkgs.iproute2 "ip"; secret = config.sops.placeholder; + secretPrefix = "wireguard/${config.networking.hostName}/proton"; privateIPv4Subnets = [ "10.0.0.0/8" @@ -56,14 +57,14 @@ sops = { secrets = { # keep-sorted start - "wireguard/proton/address" = {}; - "wireguard/proton/allowed_ips" = {}; - "wireguard/proton/dns" = {}; - "wireguard/proton/endpoint" = {}; - "wireguard/proton/private_key" = {}; - "wireguard/proton/proxy/password" = {}; - "wireguard/proton/proxy/user" = {}; - "wireguard/proton/public_key" = {}; + "${secretPrefix}/address" = {}; + "${secretPrefix}/allowed_ips" = {}; + "${secretPrefix}/dns" = {}; + "${secretPrefix}/endpoint" = {}; + "${secretPrefix}/private_key" = {}; + "${secretPrefix}/proxy/password" = {}; + "${secretPrefix}/proxy/user" = {}; + "${secretPrefix}/public_key" = {}; qbittorrent_proxy_path = {}; # keep-sorted end }; @@ -72,16 +73,16 @@ mode = "0400"; content = '' [Interface] - PrivateKey = ${secret."wireguard/proton/private_key"} - Address = ${secret."wireguard/proton/address"} - DNS = ${secret."wireguard/proton/dns"} + PrivateKey = ${secret."${secretPrefix}/private_key"} + Address = ${secret."${secretPrefix}/address"} + DNS = ${secret."${secretPrefix}/dns"} MTU = 1420 Table = ${routingTableString} [Peer] - PublicKey = ${secret."wireguard/proton/public_key"} - AllowedIPs = ${secret."wireguard/proton/allowed_ips"} - Endpoint = ${secret."wireguard/proton/endpoint"} + PublicKey = ${secret."${secretPrefix}/public_key"} + AllowedIPs = ${secret."${secretPrefix}/allowed_ips"} + Endpoint = ${secret."${secretPrefix}/endpoint"} PersistentKeepalive = 25 ''; }; @@ -174,8 +175,8 @@ exec ${getExe pkgs.tinyproxy} -d -c "$config_file" ''; LoadCredential = [ - "proxy_password:${config.sops.secrets."wireguard/proton/proxy/password".path}" - "proxy_user:${config.sops.secrets."wireguard/proton/proxy/user".path}" + "proxy_password:${config.sops.secrets."${secretPrefix}/proxy/password".path}" + "proxy_user:${config.sops.secrets."${secretPrefix}/proxy/user".path}" ]; Restart = "always"; RestartSec = "5s"; diff --git a/secrets.yaml b/secrets.yaml index 55856d5..ad081bd 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -62,18 +62,18 @@ postgres: mysql: admin_password: ENC[AES256_GCM,data:egySL8SuW3W+jWW0Rd2a3MvUkYrl6MmT3SfonnPOTNg6B+W90yzrKoqyilEh8MMVIDn5qhRPdtSIp8MGwi9wZQ==,iv:d4AL+Lc8kxk+9zKHAyPIRFigkCZeVk0WtoYbrGB7j+Q=,tag:aEFZKufG0ZXHxvmxJHeFVQ==,type:str] wireguard: - proton: - private_key: ENC[AES256_GCM,data:mu/ATCGbvaJ7HyE7vT3TH7zAcP0pKMFhAGI1PWqBPZWpSSywmJFK2qxPtPw=,iv:e8m7KE/VyLlQoNRWAFZvuiFdlUszrTbEBOK3J6+MsYk=,tag:dsLF/O+Kfv1T7QtsrlYWIQ==,type:str] - address: ENC[AES256_GCM,data:QirdDhl1RAuyl6s=,iv:TG6v0Kqx9y90w09Rnse3XIyDsmGnqsrLtWR19Cz2F6g=,tag:AtXkSTzo3DJ9eWngEOtzxA==,type:str] - dns: ENC[AES256_GCM,data:rcXede6T+n4=,iv:meUFADObHb774NWFBWvwezP1ue6ajmrVl5C+whaJtpI=,tag:nnoW+Dwh2qboyONLMyNxYg==,type:str] - public_key: ENC[AES256_GCM,data:NgGtMiobS32NvEHc9c1Ngk75H9HbEvPKkxMxwdSTIlyAL5HGEfSV+n02hdw=,iv:1Ci6jBjcfYZZ86qtrPtx4f4W1ynzTkeF7M7g7HyyRY8=,tag:0OghdJoTf0gx/0HjArTIGg==,type:str] - allowed_ips: ENC[AES256_GCM,data:9kOkZno3oiOKoykVoDBB,iv:IpBDkg8HbB1pzpn0mpuXkIgrZz8Sf30BGvyIRSEaqW8=,tag:wIytxSUSNHUFrmVeGGJQtQ==,type:str] - endpoint: ENC[AES256_GCM,data:dyF/WM2Xlz05HnJgkYSNKWhS6Q==,iv:Qv/Q3ef+eKPQ4+Gf9BwrCp7cj6mQiyCAnk1iMXHPbrs=,tag:0CjXKCxR0vY7wV5uFPEZqQ==,type:str] - proxy: - user: ENC[AES256_GCM,data:yofDX/0hqzg=,iv:yRuzKAMbj7bV6Lb0NuJs4Z9dOgfdy1DE6mdcpu76IEI=,tag:UPGWhdV8gMjVx3RXb26pKg==,type:str] - password: ENC[AES256_GCM,data:4W/zuCqb5IUOvA6n9Ufl8JMVEOomax5V+R1uvuPwxUejQ/5BSPGT6w==,iv:VbAPuaUZ2OLXGOFlt8A/E2M4cfyNKfNz1ORW9MatXdg=,tag:IQNpjhucvKTKb53viz932A==,type:str] euclid: private_key: ENC[AES256_GCM,data:dGh0qAiYgloX6EoV0Q72UP/faOpeoPqXUaxkN8lKq6KQbxycRqBHapPo+5s=,iv:jb/sliGbNK2r7yWoaL7u6RTUnbMTH6+wFJgq/LCxucE=,tag:mdfz5/aRkozRB8lRRPtd2Q==,type:str] + proton: + private_key: ENC[AES256_GCM,data:ItJvToMAhYrykqb1qgTeAweivybntHwAt59Gu/W1crFkC0Y+xT2mEloslWY=,iv:Dy+QfNtl6emTc/Tjga2HDD2Eaf3U6zZ0HpkoZYMu1es=,tag:BojgHBrNCZB/lA9vKyxTeQ==,type:str] + address: ENC[AES256_GCM,data:FrzoPrT70FwiWEzQcaPA2OS01TxZf04GpT31Oxntwg==,iv:Nft+/Q3lKh5+OFEquuKFP4DtHCGaA1RutYI+LhWZkv8=,tag:tVED/4BYtsyWT/1KpHi1jw==,type:str] + dns: ENC[AES256_GCM,data:DqbVSQchBx9fJu5BDPhJfOr/7s+zHy7a,iv:trdBSt2VN3pmvfAHseRrJ7b/EvNJYEP4S+8lMoN2WAI=,tag:FEvL0srBkhcKxhpEV8m8/Q==,type:str] + public_key: ENC[AES256_GCM,data:P2TsYeAo0SCA+cxkPA8Y4BnnHexSGiB8PhsQ7mAaxcsn/uzQBtzVzvtyYsA=,iv:/FAhqwEUb5FqtfpTXslwGQMGUNZsaJR8pBGLlNXZfNM=,tag:vmImvkCU6SzmlN7dQTd+xg==,type:str] + allowed_ips: ENC[AES256_GCM,data:nNRal4PsC63Yfir9Ffq2,iv:JttXVvg83hbWrTU1n47qtTdIhZAX921rinLCNWIxWa0=,tag:zJUi9+wAho4VKck1wRmWAQ==,type:str] + endpoint: ENC[AES256_GCM,data:G0Ja+AHFNwCj4N84o5Z3NQJvGPw=,iv:+EIa1xgxXEichmxD2Vu1Ryu/aXJX9NuYZ1eu9sDSwIQ=,tag:qszypcPRW1QMDIwK33183Q==,type:str] + proxy: + user: ENC[AES256_GCM,data:yexxc49xckI=,iv:EJKFOf7aQhQd4pMe76io772bnuEBGr21VjOWpq/gJ5Q=,tag:d2TuQalYeTNyefvTch3MFA==,type:str] + password: ENC[AES256_GCM,data:tzNYkTThSKNJUaZ+745lhWWmjYGsbXLSGlPzoknaUZSeGC5JNAedgA==,iv:OhE9X7k6SoKPl9ZyZYSwBm00OeBCvTmIAxFaR9fhofI=,tag:62A95rVF71Lx9kGGbA79tw==,type:str] gotify: client_id: ENC[AES256_GCM,data:sWHLVejwqjtjFhjAyT0dK+s4bdyXUUC8jh+u4uWu+kwgU5tDS21qUw==,iv:atw/QxQYZ38j30IdA4Osrba1wDb5YVomrPojoWd/82g=,tag:7d600/i1rzp4y7WO6M/YRw==,type:str] client_secret: ENC[AES256_GCM,data:6PhFHPRcrUD1tPySDiB4tAtTng4/lYfNZ7XGYvIxxkbDobH9q3pjtuvXkz4MvGyjtC+M4sxc8qH1or7AYFtb/u71aptIwt+u821jz9XiFrQJiM7RC9yTZt0RQLtpPkTejRg4jfBXhDt+xOVkOZG7Z7cMrsMIS6eYDUJhpOXUO/c=,iv:6IseU28YQFyTmTh3dEUeK2pfvVq5CFIpXXYDkuY4HVY=,tag:NRZIDm07RhgDsEXT8IGl4Q==,type:str] @@ -117,8 +117,8 @@ sops: w2ToACYVigKMSlqPNG9bKcK75XI/iAONG48DQm1Nse3yB9/q3jwd+Q== -----END AGE ENCRYPTED FILE----- recipient: age1yl52c6aemw9anmfuqayamvsnkvlu6fmy0kk3gzvrraexxd9pr90qvs8pe5 - lastmodified: "2026-06-14T00:25:36Z" - mac: ENC[AES256_GCM,data:6gEJwTAedQTIZ/T7cA+xkpx8a/Hdo6DJj07+QtX0XdLuRB/TexK0IdGlgFRnnqrRTqZgszvPYhA5H5+O1PfqTIlcTTPAPSB3SEGhXhBOQMTbxmEtItNxuj+Gr0N0xW/IltSP4N0egk8LJpOT6fjca5cZzbuQlSsh2KmMKfXn+G4=,iv:7eAbvguXMmF8O5Xo4pfIcER30G7UQYIu6Nwb92hnnvc=,tag:0QOpw7qs1r1L46ZwSrewFQ==,type:str] + lastmodified: "2026-06-16T20:39:08Z" + mac: ENC[AES256_GCM,data:hHfx2csou5OyJ0wm3PnbEoqDflNPtEI7w9wQHOkmZoq9Y5Ojzn2XMwHeqVTl2WpJB2Whb0uKCpKcdf1vMiyQgMm/YvHpHkjVzwU42RVFw+RnED10aEqMTXLAkFU6bwZ+ndpB4o6KLSXIqLI8IxFspUwWtnqur+DIoCsWxqzrCvA=,iv:ld727m5ohbvfKCcOemSKWA1tUrhBEd7KXnFTPR44RCQ=,tag:6L2CGhgLXp9ypulGxBX9HQ==,type:str] pgp: - created_at: "2026-06-02T01:50:38Z" enc: |-