Compare commits

..

61 Commits

Author SHA1 Message Date
1da87ebdb8 chore(server): drop grafana 2026-02-24 16:27:28 +08:00
24d72349b2 chore(zen): xdg migration 2026-02-20 17:16:44 +08:00
5630df0be7 chore(hmcl): remove hack 2026-02-20 17:16:44 +08:00
abeca5f52e chore: update flake.lock; update noctalia-shell 2026-02-20 17:12:14 +08:00
211b4bef15 feat(cli): add dust & dysk 2026-02-20 16:18:44 +08:00
3417ee5618 feat: update niri config 2026-02-20 16:18:25 +08:00
a4ed789ae9 feat: update neovim config 2026-02-20 16:18:00 +08:00
2f6c5feda7 fix: rename patched electron packages 2026-02-20 16:17:15 +08:00
e4087c9da8 feat(nvim): add taplo lsp (TOML) 2026-02-15 19:50:29 +08:00
291563bba3 feat(cli/misc): add jq 2026-02-15 19:50:12 +08:00
993b77d5d0 chore: update secrets 2026-02-13 11:37:26 +08:00
8c635dc3ad chore: update flack.lock 2026-02-13 11:37:26 +08:00
cffae80d70 chore(efl): update tuwunel 2026-02-13 11:37:26 +08:00
491a1ebb40 feat(browser): default to zen 2026-02-12 09:05:54 +08:00
25533605d3 feat(niri): update config 2026-02-12 09:05:45 +08:00
502920af58 feat(nvim): add vscode-json-languageserver 2026-02-11 12:34:13 +08:00
149397f16a chore: update secrets 2026-02-11 12:34:01 +08:00
3435e99cb1 chore(nvim): remove unused files 2026-02-08 22:50:32 +08:00
9faf6cdfe4 feat(nvim/blink.cmp): always use lua implementation 2026-02-08 01:52:43 +08:00
3d116fe3a7 chore: fmt 2026-02-08 01:51:27 +08:00
97761a3af5 feat(nvim/indent-blankline): use rainbow-delimiters integration 2026-02-08 01:40:38 +08:00
92ee55e82a feat(niri): noctalia windows keybind 2026-02-08 01:40:17 +08:00
2d324de58a feat(starship): tmux & shpool indicator 2026-02-08 01:39:54 +08:00
42fbf5cee6 feat(nvim): use mini.nvim & neo-tree 2026-02-07 12:09:21 +08:00
a1d873cc30 feat(nvim): use blink.cmp 2026-02-07 11:03:28 +08:00
e327d6acaf chore: use easytier 2.4.5 2026-02-06 22:19:47 +08:00
a9149d86c7 chore(pkgs): drop jj-starship 2026-02-06 21:37:23 +08:00
bdddabcd52 feat: shpool 2026-02-06 21:37:14 +08:00
b2860d63c5 chore: update flake.lock; update noctalia-shell 2026-02-06 16:23:43 +08:00
dc15d79266 feat: use ouch 2026-02-06 16:23:43 +08:00
b6992f554a chore: update secrets 2026-01-30 21:43:28 +08:00
06c0a24d98 fix: update environment for noctalia-shell 2026-01-30 21:35:16 +08:00
9aa25642ee fmt: disable typos 2026-01-30 21:35:16 +08:00
b6a6f966dc chore: update flake.lock; update noctalia-shell 2026-01-30 21:35:16 +08:00
754caf00d4 feat: shotwell -> loupe 2026-01-30 21:35:16 +08:00
ce8d76886a chore: update secrets 2026-01-23 20:32:48 +08:00
b3c173f0fa chore: update flake.lock; update noctalia-shell 2026-01-23 18:45:46 +08:00
d6850b86dc chore: update lazy-lock.json 2026-01-23 17:36:29 +08:00
9e38cb0712 feat: drop sched-ext 2026-01-17 21:44:51 +08:00
75b4d87dfa feat: drop playerctl 2026-01-17 14:41:31 +08:00
35358cf01c feat: system76-scheduler 2026-01-17 13:33:15 +08:00
5a1880587f chore: update lazy-lock.json 2026-01-16 20:59:43 +08:00
9c22723970 chore: update flake.lock 2026-01-16 20:26:33 +08:00
cb3578bb0d feat(jj): add jj tug 2026-01-16 20:26:15 +08:00
3313dfc89b feat(nvim): biome 2026-01-10 21:35:19 +08:00
29734f85ba fix: remove noctalia-shell entry from spawn-at-startup 2026-01-10 10:17:07 +08:00
afe06213de chore(nvim): update lazy-lock.json 2026-01-09 23:54:34 +08:00
69d6588c30 feat: add splayer 2026-01-09 23:54:23 +08:00
aee0fb44d5 feat(server): use xanmod_stable and zfs_unstable 2026-01-09 15:49:33 +08:00
602f599823 chore: update flake.lock
* updated noctalia-shell to v3.8.2
* removed television fish integration workaround
* removed `~/.config/fish/fish_variables` entry in my.persist.homeFiles
  since [fish v4.3.0](https://github.com/fish-shell/fish-shell/releases/tag/4.3.0)
  no longer sets universal variables by default
2026-01-09 15:07:37 +08:00
df0a21913e feat: tidy shell config 2026-01-03 10:09:43 +08:00
a56e9bdaf2 chore(nvim): update lazy-lock.json 2026-01-01 17:41:40 +08:00
e574a70020 feat(nvim): enable inlay hints for rust-analyzer 2026-01-01 15:39:04 +08:00
c6a3fde1bd feat(nix): warn-dirty = false 2026-01-01 11:37:41 +08:00
b3cd3fe209 feat(nvim): tidy old config; track lazy-lock.json 2025-12-31 22:06:51 +08:00
ad2aca84f0 chore: tidy Justfile 2025-12-31 22:04:21 +08:00
a07bcd9bab chore: update flake.lock; update noctalia-shell 2025-12-31 22:03:53 +08:00
7eb32cfabc feat: impure symlink 2025-12-28 11:07:50 +08:00
f9308dda9e refactor: config/hosts => hosts 2025-12-28 09:22:15 +08:00
99aea69128 chore(server): remove unnecessary pkgs.stable usage 2025-12-27 16:46:59 +08:00
d0cffe4f1c refactor: keys & emails 2025-12-27 16:46:24 +08:00
103 changed files with 910 additions and 782 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
export IMPURE_ROOT=$(pwd)

View File

@@ -17,24 +17,4 @@ vim.lsp.config("nixd", {
},
})
return {
{
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
},
{
"hrsh7th/nvim-cmp",
opts = function(_, opts)
opts.sources = opts.sources or {}
table.insert(opts.sources, {
name = "lazydev",
group_index = 0,
})
end,
},
}
return {}

51
Justfile Normal file
View File

@@ -0,0 +1,51 @@
set export
IMPURE_ROOT := `pwd`
all: fmt switch
@switch:
echo "Rebuilding NixOS..."
nh os switch . --impure
@switch-offline:
echo "Rebuilding NixOS without net..."
nh os switch . --impure --no-net
alias offline := switch-offline
@boot:
echo "Rebuilding NixOS..."
nh os boot . --impure
@test:
echo "Rebuilding NixOS..."
nh os test . --impure
@vm:
echo "Building NixOS VM..."
nh os build-vm . --impure
@update:
echo "Updating flakes..."
nix flake update
@repl:
nixos-rebuild repl --flake .
@cleandry:
echo "Listing all generations older than 15 days..."
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --dry-run --older-than 15d
nix profile wipe-history --profile ~/.local/state/nix/profiles/profile --dry-run --older-than 15d
@clean:
echo "Removing all generations older than 15 days..."
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 15d
nix profile wipe-history --profile ~/.local/state/nix/profiles/profile --older-than 15d
@gc:
nix store gc --debug
@fmt:
echo "Formatting files..."
nix fmt

View File

@@ -1,51 +0,0 @@
all: fmt switch
switch:
@echo "Rebuilding NixOS..."
@nh os switch .
switch-offline:
@echo "Rebuilding NixOS without net..."
@nh os switch . --no-net
offline:
@echo "Rebuilding NixOS without net..."
@nh os switch . --no-net
boot:
@echo "Rebuilding NixOS..."
@nh os boot .
test:
@echo "Rebuilding NixOS..."
@nh os test .
vm:
@echo "Building NixOS VM..."
@nh os build-vm .
update:
@echo "Updating flakes..."
@nix flake update
repl:
@nixos-rebuild repl --flake .
cleandry:
@echo "Listing all generations older than 15 days..."
@sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --dry-run --older-than 15d
@nix profile wipe-history --profile ~/.local/state/nix/profiles/home-manager --dry-run --older-than 15d
clean:
@echo "Removing all generations older than 15 days..."
@sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 15d
@nix profile wipe-history --profile ~/.local/state/nix/profiles/home-manager --older-than 15d
gc:
@nix store gc --debug
fmt:
@echo "Formatting nix files..."
@nix fmt
.PHONY: all switch switch-offline boot test vm update repl cleandry clean gc fmt

View File

@@ -10,7 +10,7 @@ Currently, this repository contains the nix code that builds:
2. NixOS home server
3. NixOS WSL
See [./config/hosts](./config/hosts) for details of each host.
See [./hosts](./hosts) for details of each host.
## Why NixOS & Flakes?
@@ -25,23 +25,6 @@ As for Flakes, refer to
This configuration uses [flake-parts](https://flake.parts/) for better flake organization and modularity,
enabling declarative host definitions and cleaner separation of concerns.
## Components
| | NixOS(Wayland) |
| ----------------------------- | :------------------------------------------- |
| **Window Manager** | Niri |
| **Desktop Shell** | Noctalia Shell |
| **Terminal Emulator** | Kitty |
| **Input method framework** | Fcitx5 |
| **Shell** | Zsh |
| **Netease Cloudmusic Player** | go-musicfox |
| **Media Player** | mpv |
| **Text Editor** | Neovim |
| **Fonts** | Noto Sans CJK & Jetbrains Mono & Nerd Font |
| **Filesystem** | Btrfs |
And more...
## Folder Structure
- `modules/` - custom NixOS modules
@@ -55,7 +38,7 @@ And more...
- `profiles/desktop.nix` - desktop environment configuration
- `profiles/server.nix` - server-specific configuration
- `profiles/wsl.nix` - WSL-specific configuration
- `config/hosts/<name>/` - host-specific configs
- `hosts/<name>/` - host-specific configs
- `flake/` - flake-parts modules
- `flake/hosts.nix` - declarative host definitions
- `lib/` - custom nix library

View File

@@ -1,45 +0,0 @@
{ pkgs, ... }:
{
services.grafana = {
enable = true;
settings = {
server = {
http_addr = "0.0.0.0";
http_port = 8090;
domain = "grafana.imxyy.top";
};
};
};
services.prometheus = {
enable = true;
package = pkgs.stable.prometheus;
port = 8091;
exporters = {
node = {
enable = true;
port = 8092;
enabledCollectors = [
"systemd"
"zfs"
];
};
};
scrapeConfigs = [
{
job_name = "node";
static_configs = [
{
targets = [ "127.0.0.1:8092" ];
}
];
}
];
};
services.caddy.virtualHosts."grafana.imxyy.top" = {
extraConfig = ''
reverse_proxy :8090 {
header_up X-Real-IP {remote_host}
}
'';
};
}

View File

@@ -1,14 +0,0 @@
{ lib, username, ... }:
{
my.hm.programs.zsh.shellAliases = {
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.sshKeyFile = "/home/${username}/.ssh/id_ed25519";
coding.all.enable = true;
coding.editor.vscode.enable = lib.mkForce false;
cli.misc.enable = true;
xdg.enable = true;
cli.media.all.enable = true;
};
}

286
flake.lock generated
View File

@@ -11,11 +11,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1766764785,
"narHash": "sha256-NM3tceHyqtkt/QBGBbB+vr6tRou0XSzMxKwshceIMgE=",
"lastModified": 1771000778,
"narHash": "sha256-Co3VdFeXl7abbNGEHEkjS9raX6P3yhigu162Mg6DV14=",
"owner": "linyinfeng",
"repo": "angrr",
"rev": "d91ba9ce73ea615aea746e99206ad79d359ca6aa",
"rev": "6bea47aa18c2fb33aa9a363e452c037228893453",
"type": "github"
},
"original": {
@@ -130,11 +130,11 @@
]
},
"locked": {
"lastModified": 1765990358,
"narHash": "sha256-l8x0gU8mnYaGMl+gWrsSHKBJlZWD8KXJfHTkRlFiPI0=",
"lastModified": 1771508520,
"narHash": "sha256-srt94sUlkaGEJHQg7k6gVrBF1QZcHUY/VBESjCgZmKI=",
"owner": "catppuccin",
"repo": "nix",
"rev": "de1b60ca45a578f59f7d84c8d338b346017b2161",
"rev": "ec35c21e843e4748e60822cd5543983eb61dc87a",
"type": "github"
},
"original": {
@@ -150,11 +150,11 @@
]
},
"locked": {
"lastModified": 1766433187,
"narHash": "sha256-REpIGNEntVGSffMhK1d3vz3QRfxjMiPpOLSuA1LOU74=",
"lastModified": 1771363276,
"narHash": "sha256-bW0untIUe6QMygBPABCMyrnaZCo8E4pKRQGZgLO9aGI=",
"owner": "Bali10050",
"repo": "Darkly",
"rev": "e1c7e986c968c79849bb07e28395f3ef4c47cc40",
"rev": "b37438a974e39dea0c04a6d64633eab2125b9370",
"type": "github"
},
"original": {
@@ -193,11 +193,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1766731651,
"narHash": "sha256-Fx4vOweZNpfraHBx9n9JDnz6n2vv41UK1iTApFLS/HY=",
"lastModified": 1771571526,
"narHash": "sha256-JvL7TMheC4pih3VbxVlPSgqhGxLiaFUppcsJoDnOg9Y=",
"owner": "nix-community",
"repo": "fenix",
"rev": "7cbc19864b07a3e3c4bf6909a6b353cde9cc5d7f",
"rev": "f677bc93ec72abced2828e2c7720df0f9c25f825",
"type": "github"
},
"original": {
@@ -209,11 +209,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github"
},
"original": {
@@ -225,11 +225,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1766661267,
"narHash": "sha256-QN1r/zNqvXHwWqlRAnRtFf4CQwIOJx58PtdExIzAw94=",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f275e157c50c3a9a682b4c9b4aa4db7a4cd3b5f2",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
@@ -257,11 +257,11 @@
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1765121682,
"narHash": "sha256-4VBOP18BFeiPkyhy9o4ssBNQEvfvv1kXkasAYd0+rrA=",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
@@ -278,11 +278,11 @@
]
},
"locked": {
"lastModified": 1765835352,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
@@ -298,11 +298,11 @@
]
},
"locked": {
"lastModified": 1765835352,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
@@ -359,11 +359,11 @@
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
@@ -475,11 +475,11 @@
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
},
"original": {
@@ -544,11 +544,11 @@
]
},
"locked": {
"lastModified": 1766682973,
"narHash": "sha256-GKO35onS711ThCxwWcfuvbIBKXwriahGqs+WZuJ3v9E=",
"lastModified": 1771531206,
"narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "91cdb0e2d574c64fae80d221f4bf09d5592e9ec2",
"rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77",
"type": "github"
},
"original": {
@@ -559,6 +559,27 @@
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"impermanence",
"nixpkgs"
]
},
"locked": {
"lastModified": 1768598210,
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"zen",
@@ -566,11 +587,11 @@
]
},
"locked": {
"lastModified": 1765682243,
"narHash": "sha256-yeCxFV/905Wr91yKt5zrVvK6O2CVXWRMSrxqlAZnLp0=",
"lastModified": 1771102945,
"narHash": "sha256-e5NfW8NhC3qChR8bHVni/asrig/ZFzd1wzpq+cEE/tg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "58bf3ecb2d0bba7bdf363fc8a6c4d49b4d509d03",
"rev": "ff5e5d882c51f9a032479595cbab40fd04f56399",
"type": "github"
},
"original": {
@@ -580,12 +601,16 @@
}
},
"impermanence": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1737831083,
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
"lastModified": 1769548169,
"narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
"owner": "nix-community",
"repo": "impermanence",
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
"rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
"type": "github"
},
"original": {
@@ -597,11 +622,11 @@
"infuse": {
"flake": false,
"locked": {
"lastModified": 1738726976,
"narHash": "sha256-N+u3vnK3zyXLUuDj/vr62r9tM7uarhKVCaLHWxjo/YY=",
"lastModified": 1768766368,
"narHash": "sha256-GW7S5dsFiQChSbGESrkFyNSzDLKGNH3H0EMeY+NLefY=",
"ref": "refs/heads/trunk",
"rev": "c8fb7397039215e1444c835e36a0da7dc3c743f8",
"revCount": 48,
"rev": "e837ece1b9de6ebcb7abd261f54a09bad3a2f820",
"revCount": 49,
"type": "git",
"url": "https://codeberg.org/amjoseph/infuse.nix"
},
@@ -675,17 +700,17 @@
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1766765523,
"narHash": "sha256-DCk3GKdKZNjpvNuDy9ZVfVwCy3tlm96/UZnYkJO7N44=",
"lastModified": 1771514840,
"narHash": "sha256-t3WbZvwoDj/75YDX/nwkZuxanZLZaWr9meSfKswaN6g=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "a3e638c75d07de759421e6f34bd69c3f9a0a3567",
"rev": "4f69ab280e9bb34e2c0b67fdfa6f0978a170ef56",
"type": "github"
},
"original": {
@@ -714,11 +739,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1766751930,
"narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=",
"lastModified": 1771305475,
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1",
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
"type": "github"
},
"original": {
@@ -772,11 +797,11 @@
]
},
"locked": {
"lastModified": 1766524813,
"narHash": "sha256-N/sxS27+t9nGvGWqwwAceSMW/Y5ddcypS/aiTnZ7ScA=",
"lastModified": 1770922915,
"narHash": "sha256-6J/JoK9iL7sHvKJcGW2KId2agaKv1OGypsa7kN+ZBD4=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "c2b36207f2c396c79dbed9d40536db221bd4e363",
"rev": "6c5a56295d2a24e43bcd8af838def1b9a95746b2",
"type": "github"
},
"original": {
@@ -815,11 +840,11 @@
]
},
"locked": {
"lastModified": 1765841014,
"narHash": "sha256-55V0AJ36V5Egh4kMhWtDh117eE3GOjwq5LhwxDn9eHg=",
"lastModified": 1771563879,
"narHash": "sha256-vA5hocvdGhr+jfBN7A7ogeZqIz2qx01EixXwdVsQcnE=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "be4af8042e7a61fa12fda58fe9a3b3babdefe17b",
"rev": "379d20c55f552e91fb9f3f0382e4a97d3f452943",
"type": "github"
},
"original": {
@@ -858,11 +883,11 @@
},
"nixpkgs-master": {
"locked": {
"lastModified": 1766815868,
"narHash": "sha256-cTpRd20EknSDkfpumLXIlO3UNnx0U3VmC3LUGVj1mRo=",
"lastModified": 1771575107,
"narHash": "sha256-RMiV8PRAuFFtJ0l6EZcADdBW1JP+DUIPpDXnMJp0w/k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "deefe7fae28c478ef2b0e0f72352233806fc6da2",
"rev": "6b0f198fe0363867d9f8cea387a3b9212b468839",
"type": "github"
},
"original": {
@@ -874,11 +899,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1766736597,
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
"lastModified": 1771419570,
"narHash": "sha256-bxAlQgre3pcQcaRUm/8A0v/X8d2nhfraWSFqVmMcBcU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
"rev": "6d41bc27aaf7b6a3ba6b169db3bd5d6159cfaa47",
"type": "github"
},
"original": {
@@ -890,11 +915,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1766815707,
"narHash": "sha256-cGpp590DS4WFwtXU7N2Ouko1nIJkqltIAFYlzXjoJhk=",
"lastModified": 1771574726,
"narHash": "sha256-D1PA3xQv/s4W3lnR9yJFSld8UOLr0a/cBWMQMXS+1Qg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "afe1017bc34f91605981821c3e271fd7755864c4",
"rev": "c217913993d6c6f6805c3b1a3bda5e639adfde6d",
"type": "github"
},
"original": {
@@ -906,11 +931,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"lastModified": 1771369470,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"rev": "0182a361324364ae3f436a63005877674cf45efb",
"type": "github"
},
"original": {
@@ -954,11 +979,27 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1771369470,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"rev": "0182a361324364ae3f436a63005877674cf45efb",
"type": "github"
},
"original": {
@@ -975,16 +1016,16 @@
]
},
"locked": {
"lastModified": 1766537508,
"narHash": "sha256-TBrsYS+n+8AsXRAP4wA3JNOdT604QmPo8yeSTT/p61I=",
"lastModified": 1771375091,
"narHash": "sha256-Y5P0RYO9NKxa4UZBoGmmxtz3mEwJrBOfvdLJRGjV2Os=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "a865af00357b9b240b3f760359f96413a086054f",
"rev": "dbfe3634df0c57faf9772cecae1f2e92bd04de66",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"ref": "v3.7.5",
"ref": "v4.5.0",
"repo": "noctalia-shell",
"type": "github"
}
@@ -1001,11 +1042,11 @@
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github"
},
"original": {
@@ -1056,6 +1097,7 @@
"plant": "plant",
"sops-nix": "sops-nix",
"stylix": "stylix",
"system76-scheduler-niri": "system76-scheduler-niri",
"treefmt": "treefmt",
"zen": "zen"
}
@@ -1063,11 +1105,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1766657615,
"narHash": "sha256-HijBTq7UYd5Cb/xQM32vf714DuwUFX+JlN6YMrpDaF4=",
"lastModified": 1771505899,
"narHash": "sha256-MdRGkz3huAAhsHGnRv0XZV4RG/yO9HOrmhCbOclqcIk=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "9581ba4daf07124f28d5b6c335ffad4c88bfce0b",
"rev": "d8e0e96766968bfebca2360ae4cb8f08d7bbab18",
"type": "github"
},
"original": {
@@ -1084,11 +1126,11 @@
]
},
"locked": {
"lastModified": 1766347346,
"narHash": "sha256-Am4X4r0WIe8wA3HFar1AuTxS4+op2pDaBPdT8CqEEN4=",
"lastModified": 1771575468,
"narHash": "sha256-4FMXl7wWiGesb7Udh5CBZ6LtisHoDszwPn9dpUiUhS0=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "51be135cf0fd5cee6a98ca2b127fb97ce8969c4f",
"rev": "6f54775bc534535d6a206135bca7455dc5c1a7d9",
"type": "github"
},
"original": {
@@ -1119,11 +1161,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1766603026,
"narHash": "sha256-J2DDdRqSU4w9NNgkMfmMeaLIof5PXtS9RG7y6ckDvQE=",
"lastModified": 1771541829,
"narHash": "sha256-jtrIUcFoZuS6R4P18907H0pPyHaGoF5Tomez7j3KIHs=",
"owner": "danth",
"repo": "stylix",
"rev": "551df12ee3ebac52c5712058bd97fd9faa4c3430",
"rev": "cb73f89d3ecef7e790c42f828e2228ff82975de5",
"type": "github"
},
"original": {
@@ -1132,6 +1174,26 @@
"type": "github"
}
},
"system76-scheduler-niri": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769878625,
"narHash": "sha256-cOLzS70XjXcxPi4vkTjbvSBOZ5o+CmzkLXX/AgtJMRQ=",
"owner": "Kirottu",
"repo": "system76-scheduler-niri",
"rev": "9fe30d78748bd8f655c3f8ec8b3ce8cd25577182",
"type": "github"
},
"original": {
"owner": "Kirottu",
"repo": "system76-scheduler-niri",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -1198,11 +1260,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github"
},
"original": {
@@ -1214,11 +1276,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github"
},
"original": {
@@ -1230,11 +1292,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github"
},
"original": {
@@ -1250,11 +1312,11 @@
]
},
"locked": {
"lastModified": 1766000401,
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
"lastModified": 1770228511,
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
"type": "github"
},
"original": {
@@ -1271,11 +1333,11 @@
]
},
"locked": {
"lastModified": 1766000401,
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
"lastModified": 1770228511,
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
"type": "github"
},
"original": {
@@ -1304,11 +1366,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1766429945,
"narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=",
"lastModified": 1771195969,
"narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e",
"rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
"type": "github"
},
"original": {
@@ -1319,17 +1381,17 @@
},
"zen": {
"inputs": {
"home-manager": "home-manager_2",
"home-manager": "home-manager_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1766697593,
"narHash": "sha256-mGZBEN67mxeOsBhplBRLm6L+y++8jU46EEUYgemG1aQ=",
"lastModified": 1771562861,
"narHash": "sha256-6oT3rF68W8HERLXvFfEkpz8xpAVLKZsY1ZuR/BbDTO8=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "98d8f48ba80a4b6e3b56addad850d57132301075",
"rev": "7783a3adf3d5a9599a82c75a44c7482e70398ac2",
"type": "github"
},
"original": {

View File

@@ -55,6 +55,10 @@
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
system76-scheduler-niri = {
url = "github:Kirottu/system76-scheduler-niri";
inputs.nixpkgs.follows = "nixpkgs";
};
# keep-sorted end
# Useful software
@@ -77,7 +81,7 @@
};
niri.url = "github:sodiboo/niri-flake";
noctalia = {
url = "github:noctalia-dev/noctalia-shell/v3.7.5";
url = "github:noctalia-dev/noctalia-shell/v4.5.0";
inputs.nixpkgs.follows = "nixpkgs";
};
zen.inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -15,11 +15,13 @@ let
hmModule = {
home-manager = {
sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.impermanence.nixosModules.home-manager.impermanence
inputs.stylix.homeModules.stylix
# keep-sorted start
inputs.noctalia.homeModules.default
inputs.sops-nix.homeManagerModules.sops
inputs.stylix.homeModules.stylix
inputs.system76-scheduler-niri.homeModules.default
inputs.zen.homeModules.beta
# keep-sorted end
{
stylix.overlays.enable = lib.mkForce false;
}
@@ -51,7 +53,7 @@ in
type = lib.types.listOf lib.types.deferredModule;
default = (
lib.umport {
paths = [ ../config/hosts/${name} ];
paths = [ ../hosts/${name} ];
extraExcludePredicate = path: lib.hasInfix "/_" (toString path);
recursive = true;
}
@@ -122,12 +124,14 @@ in
(lib.mkAliasOptionModule [ "my" "hm" ] [ "home-manager" "users" vars.username ])
# Upstream modules
inputs.sops-nix.nixosModules.sops
inputs.impermanence.nixosModules.impermanence
inputs.home-manager.nixosModules.default
inputs.niri.nixosModules.niri
inputs.catppuccin.nixosModules.catppuccin
# keep-sorted start
inputs.angrr.nixosModules.angrr
inputs.catppuccin.nixosModules.catppuccin
inputs.home-manager.nixosModules.default
inputs.impermanence.nixosModules.impermanence
inputs.niri.nixosModules.niri
inputs.sops-nix.nixosModules.sops
# keep-sorted end
# pkgs and home-manager configuration
pkgsModule

View File

@@ -1,7 +1,9 @@
{
lib,
config,
pkgs,
secrets,
hosts,
...
}:
{
@@ -30,13 +32,7 @@
isSystemUser = true;
description = "nix remote build user";
group = "nixremote";
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"
openssh.authorizedKeys.keys = (lib.mapAttrsToList (host: key: "${key} ${host}") hosts) ++ [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIENauvvhVMLsUwH9cPYsvnOg7VCL3a4yEiKm8I524TE efl@efl-nix"
];
};

View File

@@ -7,12 +7,13 @@
};
virtualisation.oci-containers.containers = {
tuwunel = {
image = "jevolk/tuwunel:latest";
image = "ghcr.io/matrix-construct/tuwunel:latest";
volumes = [
"tuwunel_db:/var/lib/tuwunel"
];
ports = [ "6167:6167" ];
networks = [ "podman" ];
extraOptions = [ "--pids-limit=-1" ];
environment = {
TUWUNEL_SERVER_NAME = "mtx.eflx.top";
TUWUNEL_PORT = "6167";

View File

@@ -18,15 +18,12 @@ in
];
boot.initrd.kernelModules = [ "amdgpu" ];
boot.kernelModules = [ "kvm-amd" ];
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_xanmod_latest;
services.scx = {
enable = true;
scheduler = "scx_rusty";
};
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_xanmod_stable;
boot.extraModulePackages = [ ];
boot.tmp.useTmpfs = true;
boot.supportedFilesystems = [ "zfs" ];
boot.zfs = {
package = pkgs.zfs_unstable;
extraPools = [ "data" ];
forceImportRoot = false;
};

View File

@@ -3,6 +3,7 @@
lib,
pkgs,
username,
hosts,
secrets,
...
}:
@@ -127,18 +128,12 @@
PasswordAuthentication = true;
};
};
users.users.root.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 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 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/ imxyy@imxyy-nix-x16"
];
users.users.root.openssh.authorizedKeys.keys = lib.mapAttrsToList (
host: key: "${key} ${host}"
) hosts;
users.users.${username}.openssh.authorizedKeys.keys = lib.mapAttrsToList (
host: key: "${key} ${host}"
) hosts;
sops.secrets.dae-imxyy-nix-server = {
sopsFile = secrets.dae-imxyy-nix-server;
@@ -295,21 +290,6 @@
customDomains = [ "coder.imxyy.top" ];
}
{
name = "grafana-http";
type = "http";
localIP = "127.0.0.1";
localPort = 80;
customDomains = [ "grafana.imxyy.top" ];
}
{
name = "grafana-https";
type = "https";
localIP = "127.0.0.1";
localPort = 443;
customDomains = [ "grafana.imxyy.top" ];
}
{
name = "siyuan-http";
type = "http";
@@ -504,7 +484,6 @@
"git"
"vault"
"coder"
"grafana"
"matrix"
"note"
"oidc"

View File

@@ -0,0 +1,19 @@
{ lib, username, ... }:
{
my.hm = {
programs.zsh.shellAliases = {
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";
};
programs.fish.shellAliases = {
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.sshKeyFile = "/home/${username}/.ssh/id_ed25519";
coding.all.enable = true;
coding.editor.vscode.enable = lib.mkForce false;
cli.misc.enable = true;
xdg.enable = true;
cli.media.all.enable = true;
};
}

View File

@@ -29,10 +29,6 @@ in
"fs.file-max" = 9223372036854775807;
};
};
services.scx = {
enable = true;
scheduler = "scx_rusty";
};
fileSystems."/" = {
device = btrfs;

View File

@@ -17,10 +17,10 @@
anki
ayugram-desktop
signal-desktop
signal-desktop-wayland
element-desktop
fractal
qq
qq-wayland
wechat
gnome-clocks
@@ -30,6 +30,9 @@
PATH = "/home/${username}/bin:$PATH";
};
};
programs.fish.interactiveShellInit = ''
set -gp PATH $HOME/bin
'';
programs.niri.settings = {
environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
@@ -61,8 +64,8 @@
defaultApplications =
let
browser = [ config.my.desktop.browser.default.desktop ];
editor = [ "codium.desktop" ];
imageviewer = [ "org.gnome.Shotwell-Viewer.desktop" ];
editor = [ "nvim.desktop" ];
imageviewer = [ "org.gnome.Loupe.desktop" ];
in
{
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
@@ -71,7 +74,6 @@
"text/*" = editor;
"application/json" = editor;
"text/html" = editor;
"text/xml" = editor;
"application/xml" = editor;
"application/xhtml+xml" = editor;
@@ -84,6 +86,7 @@
"application/x-extension-xht" = editor;
"application/x-extension-xhtml" = editor;
"text/html" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;

View File

@@ -36,10 +36,6 @@ in
"resume_offset=6444127"
];
};
services.scx = {
enable = true;
scheduler = "scx_rusty";
};
fileSystems."/" = {
device = btrfs;

View File

@@ -17,10 +17,10 @@
anki
ayugram-desktop
signal-desktop
signal-desktop-wayland
element-desktop
fractal
qq
qq-wayland
wechat
gnome-clocks
@@ -35,10 +35,16 @@
no_proxy = "192.168.3.0/24";
PATH = "/home/${username}/bin:$PATH";
};
profileExtra = ''
if [ `tty` = "/dev/tty6" ]; then
clear
fi
};
programs.fish = {
shellAliases = {
cageterm = "cage -m DP-1 -s -- alacritty -o font.size=20";
cagefoot = "cage -m DP-1 -s -- foot --font=monospace:size=20";
cagekitty = "cage -m DP-1 -s -- kitty -o font_size=20";
};
interactiveShellInit = ''
set -g no_proxy "192.168.3.0/24"
set -gp PATH $HOME/bin
'';
};
@@ -90,8 +96,8 @@
defaultApplications =
let
browser = [ config.my.desktop.browser.default.desktop ];
editor = [ "codium.desktop" ];
imageviewer = [ "org.gnome.Shotwell-Viewer.desktop" ];
editor = [ "nvim.desktop" ];
imageviewer = [ "org.gnome.Loupe.desktop" ];
in
{
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
@@ -100,7 +106,6 @@
"text/*" = editor;
"application/json" = editor;
"text/html" = editor;
"text/xml" = editor;
"application/xml" = editor;
"application/xhtml+xml" = editor;
@@ -113,6 +118,7 @@
"application/x-extension-xht" = editor;
"application/x-extension-xhtml" = editor;
"text/html" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;

View File

@@ -1,8 +1,8 @@
{ lib, inputs }:
lib.extend (
self: super: {
umport = import ./umport.nix { lib = self; };
inherit (inputs.home-manager.lib) hm;
umport = import ./umport.nix { lib = self; };
haumea = inputs.haumea.lib;
infuse = (import inputs.infuse { inherit lib; }).v1.infuse;
}

View File

@@ -14,6 +14,9 @@ in
monitor.all.enable = true;
shell.all.enable = true;
vcs.all.enable = true;
shpool.enable = true;
tmux.enable = true;
};
};
}

View File

@@ -16,9 +16,8 @@ in
config = lib.mkIf cfg.enable {
my = {
hm = {
home.packages = with pkgs; [
playerctl
go-musicfox
home.packages = [
pkgs.go-musicfox
];
sops.secrets.go-musicfox = {
sopsFile = secrets.go-musicfox;

View File

@@ -30,10 +30,14 @@ in
xz
p7zip
unrar-free
ouch
pciutils
usbutils
dust
dysk
lsof
nmap
@@ -51,6 +55,13 @@ in
".config/television/cable"
];
my.hm = {
programs.fish.shellAliases = {
x = "ouch d";
};
programs.zsh.shellAliases = {
x = "ouch d";
};
home.packages = with pkgs; [
# keep-sorted start
aria2
@@ -59,6 +70,7 @@ in
fastfetch
fd
fzf
jq
keep-sorted
lsd
neofetch
@@ -67,26 +79,6 @@ in
typos
# keep-sorted end
];
programs.tmux = {
enable = true;
extraConfig = ''
set-option -g mouse on
set-option -a terminal-features ",xterm-256color:RGB,focus,clipboard,usstyle"
'';
plugins = [
(pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "tokyo-night-tmux";
rtpFilePath = "tokyo-night.tmux";
version = "legacy";
src = pkgs.fetchFromGitHub {
owner = "janoamaral";
repo = "tokyo-night-tmux";
rev = "16469dfad86846138f594ceec780db27039c06cd";
hash = "sha256-EKCgYan0WayXnkSb2fDJxookdBLW0XBKi2hf/YISwJE=";
};
})
];
};
programs.tealdeer = {
enable = true;
enableAutoUpdates = true;
@@ -95,14 +87,8 @@ in
programs.television = {
enable = true;
enableZshIntegration = true;
enableFishIntegration = builtins.warn ''
Television shell integration disabled in favor of [issue](https://github.com/nix-community/home-manager/issues/8400)!
Enable it when the issue is resolved.
'' false;
enableFishIntegration = true;
};
programs.fish.interactiveShellInit = ''
${lib.getExe config.my.hm.programs.television.package} init fish | source
'';
programs.zoxide = {
enable = true;
enableZshIntegration = true;

View File

@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
...
}:
let
@@ -21,9 +20,6 @@ in
homeDirs = [
".local/share/fish"
];
homeFiles = [
".config/fish/fish_variables"
];
};
my.hm = {
xdg.configFile."fish/themes/tokyonight_storm.theme".source = builtins.fetchurl {
@@ -33,17 +29,6 @@ in
programs.starship.enableFishIntegration = false;
programs.fish = {
enable = true;
plugins = [
{
name = "extract";
src = pkgs.fetchFromGitHub {
owner = "hexclover";
repo = "fish-extract-ng";
tag = "v0.1";
hash = "sha256-yef5NX4HdZ3ab/2AzNrvvhi0CbeTvXYKZmyH76gIpyk=";
};
}
];
shellAliases = {
la = "lsd -lah";
ls = "lsd";

View File

@@ -5,17 +5,53 @@ in
{
options.my.cli.shell.starship = {
enable = lib.mkEnableOption "starship prompt";
};
config = lib.mkIf cfg.enable {
my.hm = {
programs.starship = {
enable = true;
settings = lib.recursiveUpdate (with builtins; fromTOML (readFile ./starship-preset.toml)) {
add_newline = false;
nix_shell.disabled = true;
};
};
format = lib.mkOption {
type = with lib.types; listOf singleLineStr;
};
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
my.hm = {
programs.starship = {
enable = true;
settings = lib.recursiveUpdate (with builtins; fromTOML (readFile ./starship-preset.toml)) {
add_newline = false;
command_timeout = 2000;
nix_shell.disabled = true;
format =
let
dedupDollar =
list:
let
result =
builtins.foldl'
(
acc: elem:
if lib.hasPrefix "$" elem then
if builtins.elem elem acc.seen then
acc
else
acc
// {
result = acc.result ++ [ elem ];
seen = acc.seen ++ [ elem ];
}
else
acc // { result = acc.result ++ [ elem ]; }
)
{
result = [ ];
seen = [ ];
}
(lib.reverseList list);
in
lib.reverseList result.result;
in
"$all" + lib.concatStrings (dedupDollar cfg.format);
};
};
};
})
];
}

View File

@@ -50,7 +50,6 @@ in
];
};
shellAliases = {
x = "extract";
ls = "lsd";
svim = "doasedit";
nf = "fastfetch";

43
modules/cli/shpool.nix Normal file
View File

@@ -0,0 +1,43 @@
{
config,
lib,
...
}:
let
cfg = config.my.cli.shpool;
in
{
options.my.cli.shpool = {
enable = lib.mkEnableOption "shpool";
};
config = lib.mkIf cfg.enable {
my.hm = {
services.shpool = {
enable = true;
systemd = true;
settings = {
motd = "never";
prompt_prefix = "";
forward_env = [ "PATH" ];
};
};
programs.starship = {
settings = {
custom.shpool = {
description = "Display current shpool session name";
when = ''test -n "$SHPOOL_SESSION_NAME"'';
command = "echo $SHPOOL_SESSION_NAME";
symbol = " ";
style = "fg:#dea584";
format = "[$symbol \\[$output\\] ]($style)";
};
};
};
};
my.cli.shell.starship.format = [
"\${custom.shpool}"
"$character"
];
};
}

55
modules/cli/tmux.nix Normal file
View File

@@ -0,0 +1,55 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.cli.tmux;
in
{
options.my.cli.tmux = {
enable = lib.mkEnableOption "tmux";
};
config = lib.mkIf cfg.enable {
my.hm = {
programs.tmux = {
enable = true;
extraConfig = ''
set-option -g mouse on
set-option -a terminal-features ",xterm-256color:RGB,focus,clipboard,usstyle"
'';
plugins = [
(pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "tokyo-night-tmux";
rtpFilePath = "tokyo-night.tmux";
version = "legacy";
src = pkgs.fetchFromGitHub {
owner = "janoamaral";
repo = "tokyo-night-tmux";
rev = "16469dfad86846138f594ceec780db27039c06cd";
hash = "sha256-EKCgYan0WayXnkSb2fDJxookdBLW0XBKi2hf/YISwJE=";
};
})
];
};
programs.starship = {
settings = {
custom.tmux = {
description = "Display current tmux session name";
when = ''test -n "$TMUX"'';
command = "tmux display-message -p '#S'";
symbol = " ";
style = "bold green";
format = "[$symbol \\[$output\\] ]($style)";
};
};
};
};
my.cli.shell.starship.format = [
"\${custom.tmux}"
"$character"
];
};
}

View File

@@ -4,7 +4,8 @@
pkgs,
username,
userfullname,
useremail,
emails,
hosts,
...
}:
let
@@ -21,14 +22,18 @@ in
enable = true;
settings = {
gpg.ssh.allowedSignersFile =
(pkgs.writeText "allowed_signers" ''
imxyy1soope1@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix
imxyy@imxyy.top ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix
'').outPath;
hosts
|> lib.mapAttrsToList (
host: key: map (email: "${email} ${key} ${host}") (builtins.attrValues emails)
)
|> lib.flatten
|> lib.concatStringsSep "\n"
|> pkgs.writeText "allowed-signers"
|> toString;
push.autoSetupRemote = true;
user = {
name = userfullname;
email = useremail;
email = emails.default;
};
};
signing = {

View File

@@ -4,7 +4,8 @@
pkgs,
username,
userfullname,
useremail,
emails,
hosts,
...
}:
let
@@ -20,9 +21,19 @@ in
programs.jujutsu = {
enable = true;
settings = {
# take the closest ancestor bookmark and move them the current change.
# https://shaddy.dev/notes/jj-tug
aliases.tug = [
"bookmark"
"move"
"--from"
"heads(::@- & bookmarks())"
"--to"
"@-"
];
user = {
name = "${userfullname}";
email = "${useremail}";
name = userfullname;
email = emails.default;
};
ui = {
graph.style = "square";
@@ -34,22 +45,25 @@ in
behavior = "own";
key = "/home/${username}/.ssh/id_ed25519";
backends.backends.ssh.allowed-signers =
(pkgs.writeText "allowed_signers" ''
imxyy1soope1@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix
imxyy@imxyy.top ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO imxyy@imxyy-nix
'').outPath;
hosts
|> lib.mapAttrsToList (
host: key: map (email: "${email} ${key} ${host}") (builtins.attrValues emails)
)
|> lib.flatten
|> lib.concatStringsSep "\n"
|> pkgs.writeText "allowed-signers"
|> toString;
};
};
};
home.packages = [ pkgs.lazyjj ];
programs.jjui.enable = true;
programs.starship = {
settings = {
custom = {
# Borrowed from https://github.com/jj-vcs/jj/wiki/Starship/b18afc53417848f58333b24d446b8e2522b42bd2#alternative-prompt
jj = {
ignore_timeout = true;
description = "The current jj status";
# when = "${lib.getExe pkgs.jj-starship} detect";
# command = "${lib.getExe pkgs.jj-starship}";
when = true;
command = ''
jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '

View File

@@ -2,6 +2,7 @@
config,
lib,
pkgs,
impure,
...
}:
let
@@ -14,11 +15,7 @@ in
config = lib.mkIf cfg.enable {
my.hm = {
xdg.configFile."nvim/init.lua".source = ./nvim/init.lua;
xdg.configFile."nvim/lua" = {
source = ./nvim/lua;
recursive = true;
};
xdg.configFile."nvim".source = impure.mkImpureLink ./nvim;
programs.neovim = {
enable = true;
defaultEditor = true;
@@ -30,6 +27,9 @@ in
ripgrep # telescope
vscode-json-languageserver
vscode-langservers-extracted
taplo
typos-lsp
];
};

View File

@@ -0,0 +1,44 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" },
"blink.cmp": { "branch": "main", "commit": "f9e855c4d96e1264f7c818844f5a0166ad48c212" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "c7d37ca22b461f64e26f8f6701b2586128ed0bef" },
"glance.nvim": { "branch": "master", "commit": "bf86d8b79dce808e65fdb6e9269d0b4ed6d2eefc" },
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"inlay-hints.nvim": { "branch": "master", "commit": "990e1f96699b8293b6665b9e73b16128c66684e6" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"leap.nvim": { "branch": "main", "commit": "02bf52e49c72cc5dabb53ec9494d10d304f0b2c9" },
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
"lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
"mini.nvim": { "branch": "main", "commit": "8c40d95931cbe6138391af9180e59439ed2e69df" },
"neo-tree.nvim": { "branch": "main", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-lspconfig": { "branch": "master", "commit": "276ce3bc878243dc63c32b75790c4296d11848f6" },
"nvim-notify": { "branch": "master", "commit": "397c7c1184745fca649e5104de659e6392ef5a4d" },
"nvim-osc52": { "branch": "main", "commit": "04cfaba1865ae5c53b6f887c3ca7304973824fb2" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
"nvim-web-devicons": { "branch": "master", "commit": "3362099de3368aa620a8105b19ed04c2053e38c0" },
"outline.nvim": { "branch": "main", "commit": "0eb9289ab39c91caf8b3ed0e3a17764809d69558" },
"pest.vim": { "branch": "master", "commit": "7cfcb43f824e74d13dfe631359fff2ec23836a77" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "97bf4b8ef9298644a29fcd9dd41a0210cf08cac7" },
"render-markdown.nvim": { "branch": "main", "commit": "3da7bb459f6cff03980dd1e106c46f3e62ff4d9f" },
"ripgrep": { "branch": "master", "commit": "119a58a400ea948c2d2b0cd4ec58361e74478641" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"tree-sitter-nu": { "branch": "main", "commit": "6544c4383643cf8608d50def2247a7af8314e148" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"vim-floaterm": { "branch": "master", "commit": "fd4bdd66eca56c6cc59f2119e4447496d8cde2ea" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"workspace-diagnostics.nvim": { "branch": "main", "commit": "60f9175b2501ae3f8b1aba9719c0df8827610c8e" }
}

View File

@@ -63,7 +63,7 @@ function G.buf_kill(kill_command, bufnr, force)
else
return
end
elseif api.nvim_buf_get_option(bufnr, "buftype") == "terminal" then
elseif api.nvim_get_option_value("buftype", { buf = bufnr }) == "terminal" then
choice = fn.confirm(fmt([[Close "%s"?]], bufname), "&Yes\n&No\n&Cancel")
if choice == 1 then
force = true

View File

@@ -1,25 +0,0 @@
M = {
check_ts = true,
ts_config = {
lua = { "string", "source" },
javascript = { "string", "template_string" },
},
fast_wrap = {
map = "<M-e>",
chars = { "{", "[", "(", '"', "'" },
pattern = [=[[%'%"%)%>%]%)%}%,]]=],
end_key = "$",
keys = "qwertyuiopzxcvbnmasdfghjkl",
check_comma = true,
highlight = "Search",
highlight_grey = "Comment",
},
}
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local ok, cmp = pcall(require, "cmp")
if ok then
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))
end
return M

View File

@@ -1,5 +1,6 @@
local buf_kill = require("core.globals").buf_kill
--- @type bufferline.UserConfig
M = {
highlights = {
buffer_selected = {
@@ -10,7 +11,7 @@ M = {
diagnostics = "nvim_lsp",
offsets = {
{
filetype = "NvimTree",
filetype = "neo-tree",
text = "File Explorer",
highlight = "Directory",
text_align = "center",

View File

@@ -1,64 +1,32 @@
local cmp = require("cmp")
--- @type blink.cmp.Config
M = {
window = {
completion = {
border = "rounded",
scrollbar = "",
},
documentation = {
border = "rounded",
scrollbar = "",
keymap = {
-- <Tab> to accept
preset = "super-tab",
},
appearance = {
nerd_font_variant = "mono",
},
completion = {
-- By default, you may press `<c-space>` to show the documentation.
-- Optionally, set `auto_show = true` to show the documentation after a delay.
documentation = { auto_show = true, auto_show_delay_ms = 1000 },
},
sources = {
default = { "lsp", "path", "snippets", "lazydev" },
providers = {
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
},
},
formatting = {
format = require("lspkind").cmp_format({
mode = "symbol",
maxwidth = 50,
ellipsis_char = "...",
}),
snippets = { preset = "luasnip" },
-- See :h blink-cmp-config-fuzzy for more information
fuzzy = {
implementation = "lua",
},
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<Escape>"] = cmp.mapping.abort(),
["<Tab>"] = cmp.mapping.confirm({ select = true }),
["<Up>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end, {
"i",
"s",
}),
["<Down>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, {
"i",
"s",
}),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "path" },
}, {
{ name = "buffer" },
}),
-- Shows a signature help window while you type arguments for a function
signature = { enabled = true },
}
vim.o.wildmenu = true
vim.o.pumheight = 10
return M

View File

@@ -1,3 +1,8 @@
-- rainbow-delimiters integration
local hooks = require("ibl.hooks")
hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)
--- @type ibl.config
M = {
enabled = true,
indent = {
@@ -6,6 +11,7 @@ M = {
scope = {
enabled = true,
show_start = false,
highlight = vim.g.rainbow_delimiters.highlight,
},
}

View File

@@ -1,3 +0,0 @@
M = {}
return M

View File

@@ -34,6 +34,9 @@ local servers = {
},
},
},
on_attach = function(client, bufnr)
require("inlay-hints").on_attach(client, bufnr)
end,
},
nixd = {
settings = {
@@ -69,24 +72,30 @@ local servers = {
cmd = { "qmlls", "-E" },
},
-- keep-sorted start
biome = {},
clangd = {},
cssls = {},
eslint = {},
gopls = {},
html = {},
java_language_server = {},
jsonls = {},
pyright = {},
taplo = {},
ts_ls = {},
typos_lsp = {},
-- keep-sorted end
}
local capabilities = require("cmp_nvim_lsp").default_capabilities()
capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
local capabilities = {
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
},
},
}
capabilities = require("blink.cmp").get_lsp_capabilities(capabilities)
for server, config in pairs(servers) do
config["capabilities"] = capabilities
vim.lsp.config(server, config)

View File

@@ -25,10 +25,6 @@ vim.diagnostic.config({
severity_sort = true,
})
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = "single",
})
local diag_config1 = {
virtual_text = {
severity = {

View File

@@ -1,19 +0,0 @@
M = {
bind = true, -- This is mandatory, otherwise border config won't get registered.
handler_opts = {
border = "rounded",
},
hint_prefix = "^ ",
toggle_key = "<C-k>",
}
vim.keymap.set(
{ "n" },
"<leader>k",
require("lsp_signature").toggle_float_win,
{ silent = true, noremap = true, desc = "toggle signature" }
)
vim.keymap.set({ "n" }, "K", vim.lsp.buf.signature_help, { silent = true, noremap = true, desc = "toggle signature" })
return M

View File

@@ -1,32 +0,0 @@
M = {
sync_root_with_cwd = true,
diagnostics = {
enable = false,
debounce_delay = 50,
show_on_dirs = true,
},
filters = {
git_ignored = false,
},
}
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
local opt = require("core.globals").keymap_opt
vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", opt)
vim.keymap.set("n", "<leader>te", ":NvimTreeFocus<CR>", opt)
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("NvimTreeCloseOnLast", { clear = true }),
pattern = "NvimTree*",
callback = function()
if vim.api.nvim_call_function("winlayout", {})[1] == "leaf" and vim.bo.filetype == "NvimTree" then
vim.defer_fn(function()
vim.cmd("NvimTreeClose")
end, 10)
end
end,
})
return M

View File

@@ -14,7 +14,6 @@ package.path = package.path .. ";" .. vim.fn.stdpath("config") .. "/lua/"
local plugins = {
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd.colorscheme("tokyonight-storm")
@@ -22,23 +21,66 @@ local plugins = {
},
{
"nvim-lualine/lualine.nvim",
lazy = false,
dependencies = { { "nvim-tree/nvim-web-devicons", lazy = true } },
config = function()
require("lualine").setup(require("plugins.lualine"))
end,
},
{
"nvim-tree/nvim-tree.lua",
dependencies = { { "nvim-tree/nvim-web-devicons", lazy = true } },
lazy = false,
"echasnovski/mini.nvim",
config = function()
require("nvim-tree").setup(require("plugins.nvim-tree"))
-- Better Around/Inside textobjects
--
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
-- - ci' - [C]hange [I]nside [']quote
require("mini.ai").setup({ n_lines = 500 })
-- Add/delete/replace surroundings (brackets, quotes, etc.)
--
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
require("mini.surround").setup()
-- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim
end,
},
{
"nvim-neo-tree/neo-tree.nvim",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
cmd = "Neotree",
keys = {
{ "\\", ":Neotree reveal toggle<CR>", desc = "Toggle NeoTree", silent = true },
{ "<leader>e", ":Neotree reveal toggle<CR>", desc = "Toggle NeoTree", silent = true },
},
--- @type neotree.Config
opts = {
close_if_last_window = true,
filesystem = {
filtered_items = {
hide_dotfiles = false,
},
window = {
width = 30,
mappings = {
["\\"] = "close_window",
["<leader>e"] = "close_window",
["<c-]>"] = "set_root",
},
},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
lazy = false,
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
"nushell/tree-sitter-nu",
@@ -58,6 +100,7 @@ local plugins = {
{
"lukas-reineke/indent-blankline.nvim",
event = "VeryLazy",
dependencies = { "https://gitlab.com/HiPhish/rainbow-delimiters.nvim" },
config = function()
require("ibl").setup(require("plugins.indent-blankline"))
end,
@@ -69,7 +112,7 @@ local plugins = {
},
{
"neovim/nvim-lspconfig",
dependencies = { "hrsh7th/cmp-nvim-lsp" },
dependencies = { "saghen/blink.cmp" },
event = "VeryLazy",
config = function()
require("plugins.lsp.lspconfig")
@@ -117,7 +160,10 @@ local plugins = {
{
"MysticalDevil/inlay-hints.nvim",
event = "LspAttach",
dependencies = { "neovim/nvim-lspconfig" },
dependencies = {
"neovim/nvim-lspconfig",
"onsails/lspkind.nvim",
},
opts = {},
},
{
@@ -128,27 +174,30 @@ local plugins = {
end,
},
{
"L3MON4D3/LuaSnip",
event = "InsertEnter",
dependencies = { { "rafamadriz/friendly-snippets", lazy = true } },
build = "make install_jsregexp",
config = function()
require("luasnip").setup(require("plugins.cmp.luasnip"))
end,
},
{
"hrsh7th/nvim-cmp",
"saghen/blink.cmp",
event = "VeryLazy",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"rafamadriz/friendly-snippets",
"hrsh7th/cmp-path",
"onsails/lspkind.nvim",
{
"L3MON4D3/LuaSnip",
event = "InsertEnter",
dependencies = { { "rafamadriz/friendly-snippets", lazy = true } },
build = "make install_jsregexp",
config = function()
require("luasnip").setup(require("plugins.cmp.luasnip"))
end,
},
{
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
},
},
event = "InsertEnter",
config = function()
require("cmp").setup(require("plugins.cmp.cmp"))
require("blink.cmp").setup(require("plugins.cmp.cmp"))
end,
},
{
@@ -159,10 +208,7 @@ local plugins = {
{
"windwp/nvim-autopairs",
event = "InsertEnter",
dependencies = { "hrsh7th/nvim-cmp" },
config = function()
require("nvim-autopairs").setup(require("plugins.autopairs"))
end,
opts = {},
},
{
"akinsho/bufferline.nvim",
@@ -207,7 +253,7 @@ local plugins = {
},
},
{
"ggandor/leap.nvim",
"https://codeberg.org/andyg/leap.nvim",
dependencies = { "tpope/vim-repeat" },
config = function()
vim.keymap.set({ "n", "x", "o" }, "s", "<Plug>(leap)")

View File

@@ -1,4 +1,5 @@
local rainbow_delimiters = require("rainbow-delimiters")
--- @type rainbow_delimiters.config
vim.g.rainbow_delimiters = {
strategy = {
[""] = rainbow_delimiters.strategy["global"],

View File

@@ -1,9 +1,11 @@
--- @type TSConfig
M = {
auto_install = true,
parser_install_dir = "$HOME/.local/share/nvim/lazy/nvim-treesitter",
sync_install = true,
modules = {},
ignore_install = {},
ensure_installed = {},
highlight = { enable = true },
indent = { enable = true },

View File

@@ -13,10 +13,10 @@ in
};
config = lib.mkIf cfg.enable {
my.hm.programs.vscode.enable = true;
my.hm = {
programs.vscode = {
package = pkgs.vscodium;
enable = true;
package = pkgs.vscodium-wayland;
};
};
my.persist.homeDirs = [

View File

@@ -21,13 +21,18 @@ in
nodePackages.typescript-language-server
vue-language-server
biome
];
home.file.".npmrc".text = ''
prefix = ''${HOME}/.npm-global
registry = https://registry.npmmirror.com
'';
programs.zsh.initContent = lib.mkAfter ''
export PATH=$PATH:$HOME/.npm-global/bin
export PATH=$HOME/.npm-global/bin:$PATH
'';
programs.fish.interactiveShellInit = ''
set -gp PATH $HOME/.npm-global/bin
'';
};
my.persist.homeDirs = [

View File

@@ -38,7 +38,10 @@ in
git-fetch-with-cli = true
'';
programs.zsh.initContent = lib.mkAfter ''
export PATH=$PATH:$HOME/.cargo/bin
export PATH=$HOME/.cargo/bin:$PATH
'';
programs.fish.interactiveShellInit = ''
set -gp PATH $HOME/.cargo/bin
'';
};
my.persist.homeDirs = [

View File

@@ -15,6 +15,7 @@ in
config = lib.mkIf cfg.enable {
my.hm = {
home.packages = with pkgs; [
just
gnumake
github-cli # gh
];

View File

@@ -51,6 +51,7 @@ in
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
download-buffer-size = 536870912; # 512 MiB
warn-dirty = false;
};
sops.secrets.nix-github-token = {

View File

@@ -18,8 +18,6 @@ in
};
config = lib.mkIf cfg.enable {
programs.zsh.enable = true;
sops.secrets.imxyy-nix-hashed-password = {
sopsFile = secrets.imxyy-nix-hashed-password;
format = "binary";

View File

@@ -3,11 +3,11 @@
options.my.desktop.browser.default = {
command = lib.mkOption {
type = lib.types.str;
default = "chromium";
default = "zen-beta";
};
desktop = lib.mkOption {
type = lib.types.str;
default = "chromium-browser.desktop";
default = "zen-beta.desktop";
};
};
}

View File

@@ -2,6 +2,7 @@
config,
lib,
pkgs,
hostname,
...
}:
let
@@ -16,6 +17,7 @@ in
my.hm.programs.zen-browser = {
enable = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
suppressXdgMigrationWarning = hostname == "imxyy-nix";
policies = {
# find more options here: https://mozilla.github.io/policy-templates/
DisableAppUpdate = true;
@@ -23,7 +25,7 @@ in
};
};
my.persist.homeDirs = [
".zen"
".config/zen"
];
};
}

View File

@@ -14,16 +14,13 @@ in
config = lib.mkIf cfg.enable {
my.hm.home.packages = [
(pkgs.hmcl.overrideAttrs {
postFixup = ''
substituteInPlace $out/share/applications/HMCL.desktop --replace-fail 'Exec=hmcl' 'Exec=sh -c "cd ~/.local/share/hmcl; hmcl"'
'';
})
pkgs.hmcl
];
my.persist.homeDirs = [
".minecraft"
".local/share/hmcl"
".hmcl"
];
};
}

View File

@@ -10,9 +10,10 @@ in
config = lib.mkIf cfg.enable {
my.desktop.media = {
mpv.enable = true;
shotwell.enable = true;
loupe.enable = true;
thunderbird.enable = true;
vlc.enable = true;
splayer.enable = true;
spotify.enable = true;
spotube.enable = true;
};

View File

@@ -0,0 +1,18 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.desktop.media.loupe;
in
{
options.my.desktop.media.loupe = {
enable = lib.mkEnableOption "loupe";
};
config = lib.mkIf cfg.enable {
my.hm.home.packages = [ pkgs.loupe ];
};
}

View File

@@ -1,18 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.desktop.media.shotwell;
in
{
options.my.desktop.media.shotwell = {
enable = lib.mkEnableOption "shotwell";
};
config = lib.mkIf cfg.enable {
my.hm.home.packages = [ pkgs.shotwell ];
};
}

View File

@@ -0,0 +1,21 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.my.desktop.media.splayer;
in
{
options.my.desktop.media.splayer = {
enable = lib.mkEnableOption "splayer";
};
config = lib.mkIf cfg.enable {
my.hm.home.packages = [ pkgs.splayer ];
my.persist.homeDirs = [
".config/SPlayer"
];
};
}

View File

@@ -37,7 +37,7 @@ in
name = "Bibata-Modern-Classic";
size = 24;
};
iconTheme = {
icons = {
enable = true;
package = pkgs.papirus-icon-theme;
dark = "Papirus-Dark";

View File

@@ -5,6 +5,9 @@
assets,
...
}:
let
settings = config.my.hm.programs.niri.settings;
in
{
config = lib.mkIf config.my.desktop.wm.niri.enable {
my.hm.programs.niri.settings = {
@@ -18,7 +21,7 @@
layout = {
gaps = 23;
center-focused-column = "always";
center-focused-column = "on-overflow";
always-center-single-column = true;
focus-ring.enable = false;
border = {
@@ -47,6 +50,10 @@
];
default-column-width.proportion = 0.8;
background-color = "transparent";
tab-indicator = {
width = 10;
place-within-column = true;
};
};
animations = {
@@ -97,42 +104,50 @@
}
];
environment = {
QT_QPA_PLATFORM = "wayland;xcb";
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "niri";
XDG_SESSION_DESKTOP = "niri";
environment.NIXOS_OZONE_WL = "1";
NIXOS_OZONE_WL = "1";
NOCTALIA_SETTINGS_FALLBACK = "${config.my.hm.xdg.configHome}/noctalia/gui-settings.json";
};
spawn-at-startup = lib.mkBefore (
map (c: { command = c; }) [
(
[
"dbus-update-activation-environment"
"--systemd"
]
++ builtins.attrNames settings.environment
)
spawn-at-startup = map (c: { command = c; }) [
[
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
(toString assets.wallpaper)
[
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
(toString assets.wallpaper)
]
[
"wl-paste"
"--type"
"text"
"--watch"
"cliphist"
"store"
]
[
"wl-paste"
"--type"
"image"
"--watch"
"cliphist"
"store"
]
# TODO: Is there a better way?
[
"systemctl"
"restart"
"--user"
"noctalia-shell.service"
]
]
[
"wl-paste"
"--type"
"text"
"--watch"
"cliphist"
"store"
]
[
"wl-paste"
"--type"
"image"
"--watch"
"cliphist"
"store"
]
[ "noctalia-shell" ]
];
);
binds =
let
@@ -143,23 +158,19 @@
"ipc"
"call"
]
++ (pkgs.lib.splitString " " cmd);
++ (lib.splitString " " cmd);
in
with config.my.hm.lib.niri.actions;
{
"Ctrl+Alt+T".action.spawn = [
"kitty"
];
"Mod+T".action.spawn = [
"kitty"
];
"Mod+Return".action.spawn = [
"kitty"
"-1"
];
"Mod+G".action.spawn = [ config.my.desktop.browser.default.command ];
"Mod+E".action.spawn = [ "nautilus" ];
"Mod+R".action.spawn = noctalia "launcher toggle";
"Mod+V".action.spawn = noctalia "launcher clipboard";
"Mod+W".action.spawn = noctalia "launcher windows";
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
@@ -181,30 +192,15 @@
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = [
"playerctl"
"-i"
"firefox,chromium,zen"
"play-pause"
];
action.spawn = noctalia "media playPause";
};
"Super+XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"playerctl"
"-i"
"firefox,chromium,zen"
"next"
];
action.spawn = noctalia "media next";
};
"Super+XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"playerctl"
"-i"
"firefox,chromium,zen"
"previous"
];
action.spawn = noctalia "media previous";
};
"XF86MonBrightnessUp" = {
@@ -281,6 +277,7 @@
"Mod+C".action = center-column;
"Mod+F".action = toggle-window-floating;
"Mod+H".action = expand-column-to-available-width;
"Mod+T".action = toggle-column-tabbed-display;
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";

View File

@@ -15,13 +15,26 @@ in
};
config = lib.mkIf cfg.enable {
programs.niri = {
enable = true;
package = pkg;
};
services.displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
};
security.pam.services.login.enableGnomeKeyring = true;
services.gnome.gnome-keyring.enable = true;
my.persist.homeDirs = [
{
directory = ".local/share/keyrings";
mode = "0700";
}
];
xdg.portal = {
enable = true;
config = {
@@ -41,17 +54,9 @@ in
};
systemd.user.services.niri-flake-polkit.serviceConfig.ExecStart =
lib.mkForce "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
services.gnome.gnome-keyring.enable = true;
programs.niri = {
enable = true;
package = pkg;
};
services.displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
};
services.system76-scheduler.enable = true;
my.hm = {
home.packages = with pkgs; [
xwayland-satellite-unstable
@@ -59,7 +64,6 @@ in
wlr-randr
wl-clipboard
cliphist
playerctl
brightnessctl
nautilus
@@ -68,8 +72,11 @@ in
xdg-terminal-exec
];
services.system76-scheduler-niri.enable = true;
programs.noctalia-shell = {
enable = true;
systemd.enable = true;
# modified from official Tokyo-Night theme
colors = {
mError = "#f7768e";
@@ -162,6 +169,10 @@ in
id = "Microphone";
displayMode = "onhover";
}
{
id = "Battery";
hideIfNotDetected = true;
}
];
};
};
@@ -190,7 +201,10 @@ in
];
position = "top_left";
shortcuts = {
left = [ { id = "Bluetooth"; } ];
left = [
{ id = "Bluetooth"; }
{ id = "Network"; }
];
right = [ { id = "Notifications"; } ];
};
};
@@ -200,6 +214,7 @@ in
scaleRatio = 1.05;
radiusRatio = 0.8;
enableShadows = false;
telemetryEnabled = false;
};
location.weatherEnabled = false;
network.wifiEnabled = false;

View File

@@ -115,7 +115,7 @@ in
desktop,
}:
{
${pkg} = final.symlinkJoin {
"${pkg}-wayland" = final.symlinkJoin {
pname = prev.${pkg}.pname;
version = prev.${pkg}.version;
paths = [ prev.${pkg} ];

26
modules/impure.nix Normal file
View File

@@ -0,0 +1,26 @@
{
lib,
pkgs,
self,
...
}:
let
relativePath =
path:
assert lib.types.path.check path;
lib.strings.removePrefix (toString self) (toString path);
mkImpureLink =
path:
let
relative = relativePath path;
in
pkgs.runCommandLocal relative { } "ln -s ${lib.escapeShellArg (impureRoot + relative)} $out";
impureRoot =
let
impureRoot = builtins.getEnv "IMPURE_ROOT";
in
if impureRoot == "" then throw "IMPURE_ROOT is not set" else impureRoot;
in
{
_module.args.impure = { inherit mkImpureLink; };
}

View File

@@ -18,6 +18,8 @@ in
lib.infuse prev {
cage.__output.patches.__append = [ ./cage-specify-output-name.patch ];
bottles.__input.removeWarningPopup.__assign = true;
easytier.__assign = final.stable.easytier;
};
}
//

View File

@@ -1,18 +0,0 @@
{ fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "jj-starship";
version = "0.2.1";
src = fetchFromGitHub {
owner = "dmmulroy";
repo = finalAttrs.pname;
tag = "v${finalAttrs.version}";
hash = "sha256-wmQn1qw+jfxH9xBS7bdgWiK369bCeGV9klZzlFHrGOw=";
};
cargoHash = "sha256-dGutKgOG0gPDYcTODrBUmmJBl2k437E5/lz+9cFzgs4=";
meta = {
mainProgram = "jj-starship";
};
})

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{
"data": "ENC[AES256_GCM,data:oA8Ig5psbIudrjtN65p5IpK6/3UdTogB3yMZ6o5FsD+D79FIieGfHTrthHay2IcMhMftPcoYJTrtO9wEBo08oRSicKRCzjp6P/6toxZrPXXOiyG7SomxxXv98UNNuSMDoSUSQq0C8kkYCiPH+DOWaXvmwg7RPhmsX24dnQbay1Nn5psO10K2BYYdhzeev7FXTxFAtyfegEx9rBoJxBs4IThoNtqZJSUEa6v9G4KgrKVQIL+RP9+5T+hCPfL7NKmNxzNls26fkVglWymMbNvbNuizmTeEuX7Bd9+RBCcrAmqGK1kJw6tujf1gOecGAjtT+W/MEg0XvJuRv66vm28AV62+M4Ej9w9Vjj6Tf5vXbimZOVZzJ8ObWPchiKMU4vz7fkGkf2bSJ6q/y7BncQHDIt3fIWZH+zIIlejxul+7GAHSm6y8BGjEyRKSYipQwrdtQtPuCFxpu/QDnp7qfHYyJIYZdtpGUFSymFcjiN3cDnugIYf/AiNmc4MJOs3Z+we0GmvD1if9ERZDUFSGZlfWw+8TDKaCP1Yp3nd70kL3yV9SIYQbNGsmcQ30lYWhf8lpBtTuirfpTHBzJ3RM8xbJR3etY93Y1zQrFiju1GWJH5okvpZWk3WggMXIIr1Rcp1iB9F60XZmP9J3d+stjcl5qQG+gIsPCls4y07N7mn6g/OSowC2Ov45CweJQOGdhxXt8HbNm3BaWpAwiYr9VD3hxb3mldfDljquZCLiKxacynYVl7uvTDaQLUI=,iv:iPQQ/bZe+iNtv+vy1n3YW4mywYxwvyBVohr8ELycU8g=,tag:0lF1KADdhunLM1CEmzqwXA==,type:str]",
"data": "ENC[AES256_GCM,data:woTNsrZnU3IclRXuh41H82YHeFa6U8aT+ILtjUQ9P80Rz7sUwGinh7z+5bNJkhdTub4BZ+ySl8Ov0XfDKWClT4AmbcRCuwwN8BfOJ59v+fyzsBSu8Y7wXSPciY+T/4rn60HlnVCyjX23dMNWwuN08bS/4iDw+/Ur80/3li2Azl5+37y/S2ZbFU0FP3OCy/G5+rGI0IFTCzRMfB/wpDhesxGzi1epKWvFx0q1Qnv0SiaZlo8mpG+G997mltBMlVkmAiNq57VAVs1ZBDAOf56q1UUHMtExAQt0zad5YWZeBgXQYWG8AFgOhSBiqjpFkUkfysv1mYqWnA7Ej/fD/H8e1uckC6KT9m4w1l71JmIkuUMW8PN/66cGYwZ/gMrZTAwlaVqiYPE1ppmnvrQxukQMgj40y27sWauMK+biPRNTrkU7egjH0IHCHHE49vq3VDFa48SAYXiBCHV+e/Gy9Em1ImRn2lCzAoKUtI5ilccg6MyUbug+1aDWx5NBkhpVw751HyLiSjNyphzVZewo9hGun2F+Fl9NdhM5xpq4tM9bbnsm0y44Vt8FJU0dmY6lfq1qqI3MjLg14iET/WLTorxH0i1iJUYy8Z6FJ7ArGUv6qw7ECNH0ZeUiNk0vICniyRlr+9JGFiHesX5oajXVxOp6vA6FnA4j1jeUvOLViiRc8DxLZziyA7ZdKDXwPJ4JKA==,iv:Df76Q6DoA6lI6xv7nnN6bjsaMPK7dnM/WvVd/O4h6qs=,tag:Yi/inQbd1wCY+PPbq0By9w==,type:str]",
"sops": {
"age": [
{
@@ -15,8 +15,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBSSEdH\nOGZDWDFhMzB2aVErTDU0Vk1WbnBSa0hmTGNMaXI3aTBuQWMvQkRJCnFpYkRFblZV\nRzF1eGdmTzFQcGhTWFZKdmhyNzRHdEFFSjh2Tnl1NXlpSkUKLS0tIHFLSVJiRkpw\nV2taUVdlS1h1V1Y4aE5JUWVmK1d5UjRleVY1Y0VvcmQrMnMKpD5nffC057mv+1wz\nXL8bOS3vBFoupi7IbKw56e0nGkRuMq+Hf2eCKZDRRlLbIi353xXFki7PKDk7ltu9\n2olKQQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-12-06T08:17:32Z",
"mac": "ENC[AES256_GCM,data:MhxnoWuoChPShQZ1lbPGRf/IHLMYLUIGAbE2Rd8OoNOvDy+HA2RsQexKqQUbEZ5Nwz0epLxbiONdDdvpeREOFTMYuKKqR7HlbgX7/lMzqcUnKczdsHdrZL869EodWE0jjULtOtWlSOtVmEJXDLj0t67/nt0IDSvhm8hx1i+wFUw=,iv:3QjJPGUMWZNLvwwqq7qiTe56/Fy0jFAPEKBEgBPFCOE=,tag:0LkLaPHktgGZQvANH+4qlA==,type:str]",
"lastmodified": "2026-01-30T13:42:20Z",
"mac": "ENC[AES256_GCM,data:xZmGhEqVh5SIcIfaqOSs1YV23QHXachtBx40C+oyasFvUBhqcniuDHcuFQSmzteywC6jH3r91ilppPjWERz6ml5cfHzBdkbirpbWJg5Hqj+yLz3f98tGkAMmZyc/zc6XkM9BbWQI+R3R9bEaFZ95bnzNeno0EwneEM4aGW1ZsKI=,iv:oz197xm93q7aG3utudgMr3nVdS1IcmTxfnhy7Jc1N9o=,tag:Ar4s0Yjb/xApc0YgpikKtg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}

View File

@@ -1,5 +1,5 @@
{
"data": "ENC[AES256_GCM,data:h/Pbvnv4Yl4FbXGZVzbIgFe5U25PxsMnVvFxjKMadzPmGEkuUcTuJIiAgmCvEOQaDDSczvKnElh7LI9ZA2VnjP+Y4m0Owh/01MWCHuU+FSlUZGGlEPFZAYrjyxaPW5O3hroizX30FanCNn+n4WJBuAqGuvqAXknXB2Bp8qNUoL5na/J0a1U03upyRIF+FgWWzKsKS5qRLPJposkbMSIFd3n+S3emISDsYIIOEYUhaTkc0L/l4av/VLvKHszd0fUfEn0fFpR7qYCFvomDQ5svLOlxZRQrqv1WV6nCl/WyLK05DPozig6WaC+xa5XUZ0e1JtT5t3QK17XC7PnEwnORbzU8wcWWjOXhs6zsm2stwWzXvsYgzh0cMXfELwlp9QvFp19GqQF3VytWXhDrL5IpcYBb7/3vf6SzElx3kE7LHqBeNZMhRcpedi4ZLBMo1dUoA01Wso5BKs23WVXlLttoNpVXGWTxb/hJZpL3qX8LvXl1m47wiX5d0/6KJDKlupgC9rMHijsuXEVuDONOY6SZGWGlvX6/fudEIt6gHF5ipGJRKstTy580RVJ2MuCObvZSNV/csAnmQLmjmrVzeIv7L4YiSa6hi+Pjvh+yh93LbGy9YDu7MP2m4s4cioUZZTU7tNbC+I+GGSQclwQrGkhjsfCkmA4yJAu4ZOzC5MexZpL89OpsoZ7gQSIBGr1dWvC3+gQIllUvtgDGIqdyWdi7J88DIKNmPMo6c/+dIhZG96v/y7x0Fhi9EwMc/iTH16VV/5Nvpw==,iv:q6mrVJBEaVmVrESZZgIiyBMkVR117CQ9aCZgXFrhLW8=,tag:79/1yxfSrPjixcAellYfZw==,type:str]",
"data": "ENC[AES256_GCM,data:TroErAaIJCpWgVkxmoCgxCekphwh5x9oiFXnENXoiXiAaWnUWSB9y2sNbuGTxq8ngWt9pnZ4ZWWCiLaMvk1b/rjJCZzF3mJh/SuzqUkrayspTPcSTbQVHOHlrH7TKVSBJDQCZmAw0k4E0unSxoujEOorymzTY8ZxJTuSu3ugOez7Z48bDTgv4xMG9CvJku/HKakg/DgrAGaTXgfwal4hSB/9inNd9e1uq4clrkDhsN+zg6uJ+EHre/MUkf2MaIG5EI3y904+jm5Zvm5gTynPCjbVvVyjjXenGOwzS3fkxSVJjDvZItn3QZpKC/OqyrrX+c0zEiQMK880E1Ru4f13QphgWoMkthtdNSRoJqKHuK8UJ5onlfOmLkfQjKQ5cIYWgyI7dq5Rfx2yGbNMNEwAQodN3AC5NaLHdcFbs9Yi2VSAKbv5aEifizHYy3HgjxYcSW0EM53/Sn/CL8G2HK7ei7qeYbTT9bFbpgbPYiUeBuaN2Jfx13Mh5yWs98NhhIltjWtrtvvtBrBf7tPo2nAGVW781MaGF5uS44WVjxMMrFPq6WHRB9pwop5AS475h6ihmUIx4Pg/3JFV1uLXtvEeNuiBOULrwdkt1MXRxz6uiYux3WdWpljq1AIvRCLN3Ehi8VYEWyvEbP3gMp9EeOeJYXZ07hFV5dJCJTF7V1sP8GOCWmj0Ro61CEH13OA8V97M8Vi6ZdQg/o+Q,iv:1/HTU2AHTRSPun59Xa28yjlg312bTdDkiicQzO8515E=,tag:T/wEKWpWbhri1ZttG1JRwg==,type:str]",
"sops": {
"age": [
{
@@ -15,8 +15,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyBFZ1J2\nNk9yWUNaemVBOFRiVmdmWGdRWVN0UG5Hc1lZRTBiaHdnS0E2UlN3CitPUmdjdVdu\nS1FXbjVCRkxZUk5KdW0xRzNheWJ1TWVYcUJMK3k0TlRFSWsKLS0tIFJSTlN4a29x\nWG8zUlcvYmlZQkQwT3hlWFlOVUIwSkt3SE5RTzhQWVIxUkUKVSMJtNCEZ1KpcUgQ\nkuTFjaBHvizq980kkbNbD4FgeCAPZ3CwXA8/nKhN03iPeFqwX5AsO0n3+ge/qMnO\nkoRc/Q==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-12-06T08:17:10Z",
"mac": "ENC[AES256_GCM,data:TcggNSUao5C6zGSy34feYSUPvzi0ovDug8ZrvW7yMash/1cGZDGemwPy7fSfPdMWFcWfeGPWUH3nd4p3qzFLzyVGvVGPHTi8oiDcEQtqnye60otBwHdT2vcMoXawSFNe5r8c2llNUgYf7iIBBU1n2l7qCl1kjfl55KvlInZFCuo=,iv:9bpo1DKlBCpciVEdotkHkTMsmH/bueYixzyTw+i4SzE=,tag:Cp6C38XuMhM+pT/TDqJoMA==,type:str]",
"lastmodified": "2026-01-30T13:42:30Z",
"mac": "ENC[AES256_GCM,data:KuB/Zdzy5gKDayUY0YhSNrKMnG1tdzRnxZvsTjj79lYoZzQ/9Tw1mAmn3vBjJx/aZtpXusxN12uxP1vzqFoAOpvbXGTDRv7fhCaq1CSayWSrhddwRlAIaQ6tUAOOu/fcoofTB6KWJNFhhDwn+o5lF48cgp1m7SL+op1NDkXBoK0=,iv:J0jUA9LfBoT1hBgoItqYdM6MmRhamTZCo9/TJKF18ck=,tag:SynvQk7+D83JAikLH4HNSg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}

View File

@@ -1,5 +1,5 @@
{
"data": "ENC[AES256_GCM,data:T2IS0YoXom06cIz/MBUVOnYQtGaMvrlmirkzXkG4pWVm4oKSmRaVoBoIrMpS+/R5AcBc6ZUvPXLl51OXoCWtRhqWW4lVVX9dIcbpufO0N4m/nH3oa9gvHdzZ5TxXrVGg7UnFcVfOfCGPhsTBNVtVDfRsZ9VozDSXeRoisd1D35xjoKEeultmMCg5CMoD4d0aPtBe6LCz8qxUxhsfx7AY0iNYFYxtXSj+uusRfFQvZiOkmSwnxdottRNIDgBXzeN4cxheuoRs7xxQ5NNbAVKMZbk/2R4eE234pXUsnhqUOsnDDwPkBStl46rxO1lMilp5IxPgLDGwqsWVQvKDP1O/jLKoIB0l7Qx3K5UvS3Tp7AcleVuUDywaV2J+b1vD+/2ogNHEKHBbULyVCDMzlAODxKzMYMx8v9D2YqKkDyoy/YRmSVpTnkHV3e4fnSwqrt8/VyjhT9f1N0jAS77UGKunuMHWLVO4tu/DKL7oGM5vb/nf3BYAqMhNSsVeX5R6GIxIJXn1FxPdWvYOryyXV5ynapkBalGKxj43LE810jVDQNQHsQ4eNn86QHfXikVCwOYXRz0CkG1fYam6Cm/GJaZz3tO+1BZclo/3Pd7hmcDYbu2EFC256HkNMcp4PQOVlzMhwW9z5Sv6UQ828JpzZ/AC4fPcrbpPNEX862L8c4mnDkuMsVRBT5Xo7hNmZxZXhNCe9U5M4z4FTDiCzfO4+V3ww4VCVpTlHjZYjEjmlBoy5EBl8l/K2QJDhX1DegxEKsraKhM=,iv:76ZNqA2wbZT04gEAyzxfKubwkCRfWZQKoCbLJWKhB+g=,tag:Qj0aG830OJmzVRc7NIjxHA==,type:str]",
"data": "ENC[AES256_GCM,data:pOo8Rmhpw99QVkUKR/MHo1MoRfKzWgiqXxxX22g2ZzjvinCO9X/N6m63I1XlpiOMVmpEvzFtvQXfaZy7a4D4qLmpa48jsEgGLPm8QXbPFpXNCAVLKU10msKxw/m04dZbB6fJADvG5TM6wMFmsETLl0wMPXPffW2SI4CysSZsmSXUZKGAKjr4sPkUCDW9iiCKTo75r5eLVE3HH8j1OeIknzTDX4zJkoci70pVm7CnKi7bjt515cbq3V9aug7U34I79UlGOB0NWNEU10KodbjnZlY56+K0UBsz5ao+BwRIbxf40a5QUXd0bluqzHENpXlsUja0eSKG1kWFsB+ek5S48GA1SjRkXpStvZoHpUZ7YjeENdqvS1rjteUkrexSB0h3PntJmreERcZoO+MJYVsa5MpF8VkEz6oI9v+ECUA70YEZw7IszsHhq3NnR21aUTok/S23XpbEbxFuKdseQ+8VrBI6z+udIS8o579xcLBXSDhe9vvrdqjMw4enQI03/eKWMjUD8e5r6VbzSaNIQAeh+D9A0CR8EceyFcccY9/XfB2iPzVK1F/PaiAh6oMxWRnyj2wg3GWVoxNHsOKloWfPN68X30V5izvIWlmStRfjvC7yakEde8B6V3PabO8rQlezuasNCvqKIw==,iv:eKRT3L7YXMpJa+QGy7MuB73RsjVIZlaXbc2A2UKrZzw=,tag:7YZ2pqP0xUo9N2ByTEwW/g==,type:str]",
"sops": {
"age": [
{
@@ -15,8 +15,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyB5RjZU\nR0RVcTg3L3RQSmZnQnJhNm5vaW5URkNySUNORVJTRzVyWVVHdHdvCkd6Y2tvV1Av\nSjF6NkVNNjdKWnZyNi96bU9sY2VkalJNdWpxQUcyT2R3MFkKLS0tIEpkeFpWUE9t\nY0ROMS84QmM2U3M5aUN3ZkdQZi9JYnZCRzl4eDg4NzlrUW8KcuCDvvHFl/oyjVAo\nDlH1OOwPELWVWqckshUkX1MCMW+Qcv5R52jICVlyBVsyb+eiX4Bxgo4KM352KhWB\n5hPnIg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-11-22T14:16:58Z",
"mac": "ENC[AES256_GCM,data:HjYkIjlNmRzkFgg7fNtnTsEAoyJZmn9PkdcMmt/pqrq1VhLlA4WRlRpQ13Ah481kLHQ6OtOrVhJZ9NzHVa1kjojOqMEkj4IJ2nqX9fUGLYPsOV+e2KuVk82pQdrorge7WnsWxHzE73NPWwBc7duKFcgays0HHeKyygMxK/L5Y10=,iv:+eF8GGCmp+hQKBJRljEcBzM1ihqUtd59R5U1vYbBdl8=,tag:wG9Bhw77IlXy5r1rF4dgOA==,type:str]",
"lastmodified": "2026-01-30T13:42:54Z",
"mac": "ENC[AES256_GCM,data:dRhW2TK8VoeAAgxieq13N9DOpDebn23pzSGVOUR1CREv7xBlQNbbG5oZ8wtOMmVPtYYITsbrP+83Bvc3hAgF+TJ5Q+bUIc79YrpKE4JQpIkF54XWuQS+xr6CQViRu9IkNSAINSDBGC/h7TQJbU+VynUbwTTJWdDwFOZRDCWxlXY=,iv:33D22OwdZ/0p5PTy6iPjoiOOHqMA12NTCYSWSUMTQ6U=,tag:Kal99S7ufV+JsTspWaX7OQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}

View File

@@ -1,5 +1,5 @@
{
"data": "ENC[AES256_GCM,data:krNquVVDLJZRUJ4CyNo3zbrqchFBnermnvuW3339terrINV+A0MSfN+f3qbNdUWklwujKIPCvvjowZxZwJK71ncogpmuijDjkYRbpha6HSAdp1wjdj9mHNFiSGZm/FjXknSoxcrLrSXLJ+YDI9GkqpJ51UN0wvLD6ADXgcU1dTnxdzf/9/xX7RjxKDo4e4f2KLokA2TZMhi41Sa2pWOaBc7ZFT+d25a1h3rShbMK8BDEeGTMraWuaIm76kUgjRJi1OSdLk69a/a8alNPeWox/G2tWypMSYqvlLXnnMorE/4UYbkV09vrzb7F5Cv4/mqDVyr4e5kHZ0bs/5ZgTCXi9BvLLT0CnWC+9pCrRy/N/qHjNgffR69Mngh6Ty0mgsKKK3kmMITxXUnjhdooScR+VYErAF4clY1d7LuvffJG9obZg4BVl1xu+DrAAHKJJId5cgRl0sTaEsY66h7VSTtw1xjCfaeGSYamE2K/EuMay+GzUvtSVt2fUJQQ/uxPTj0DomNUsMSKdI7K23A0YEqo58tEJb4+CHgrOvI/25e+o5gyjRdDCe849tcQt8hbvGPMIONqcxAQz2Wa2VGeE3JZulvsILNdp31r56gmLfw1hsdnV9uWbzEbAZ6LNRBlJ/mXkCzCXMGouJRoLuGEkpfhCl98MUEX3etIdu6Ir9iKAy87MTZ/WW1yK9kzMdKd+YYU56E=,iv:KqJbHa2yjBhMq2IDhjMjwxqUTfluLQu43CxrHfqNkb4=,tag:wLfqFdih8oGg5yaXzvbC3Q==,type:str]",
"data": "ENC[AES256_GCM,data:bNSkFEL7BCq7LJYzK1X0Fn8To+So2+QTSFUN1DZDFlvekywoebj7txSM7jSQKYC3+Henond0MRRsriVOHu61i/k/i7fjOHPi93of4ny5wcS+t3NrFvN3RufNjQqe8CD+y4mDaUge8GGrFBWhtQV+1uw5hbXFOIq8l9JqkfJ8y6bhBi/fznCdO847zvZ0hAesjmrE/tflWn/T7pkNnfrVFOJR0FnXsVavlAVbSxtsrppaZPOgJFNwJ4ch6rP5PxHSyCpsbkak9H2nJOWJdXKGobKG3g01YCjgYMOX9rIfOnFcCBNyZWPGLx9ZT0h4XsHWM++L9lCNHjy4Z40wyl7YMq797HlKEcGEv2RM2KsfO/66836v3JzT6ZAO32otCbSa8e5vaYSKBZVZM/wrzNcE/XTNDRAQij3a3+bZtZDnxhZSQ3FJQVGm4agCbbO8Dqx7buWHGhgMmxnR6ClC3Ilgm9GHAWKXPBCDT3IEgc6S2g5MVKurKcR2Abffl/mN6KQjNocbIXKMu+dvInuW+30Mit5dp/dYBmWIrRqKO/hQtwDFp6jLHo4O+7h7/2YJDlh07W+ejT7vJy1+C0K4eAXSoGTahSgo61Y2F8LKHGBwAxl8N4ri0jKKOH7wB4pkyU+ryjQaeFhB6g==,iv:8f9JchFynDlOnYjrJiK/9ltkykaw5J8rWDwt+QFwzOc=,tag:owaHraC+WUQKn7hMXHcCaQ==,type:str]",
"sops": {
"age": [
{
@@ -15,8 +15,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyA4RjNs\nWlYvc0tEN2hOUTA5SEV6MUhTeFViRTBqVWJLcGVDZ0JROCtONlQ0CnU0Z2FWQUlw\nakt0dk1nbVFHaVlyMjBqS3hCSDdHZEYwT0pXaXhOclFvSjgKLS0tIG9ZZUQ2dTI5\nWFVJanhac0QxVHM2b04wNE1jcHdHa3JJYzBlTE1iS1ZPTHcKZPvA9MwYT4JfG3/F\nqSI09TWeEv7TAWGeZr6OS++egtpdVoM3hF8s1B1TZb3bf/BMqo49NEkvD56pOKvo\no0jjHw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-12-06T08:16:57Z",
"mac": "ENC[AES256_GCM,data:CanRJamcOHb/rfQY9l6EDQSXHTFex2bvUy60MetTtjYNbIHOOXhNvvkNnO4vD6Wrq/ciZGyeqY7OB5+6bCpogVKbdhyyUA2gZM0dxymvPywk/T1cBiqCMNN9JBgrL8BqhBCVtGbtY82MnhK7c4caOqlxmhqRwyELFW1XwwTrqqI=,iv:PGx/qQr3XBt+WqQPKe3SYZTCWHbEeq+jOX43qRdcnPU=,tag:AaOG/jj21DKHP0Oeybc60g==,type:str]",
"lastmodified": "2026-01-30T13:42:41Z",
"mac": "ENC[AES256_GCM,data:SRxuYiRBCgdYid5GlYDoPbhPWuNPq2A+ItvIuEg8H2RZPpovbdDaj1wO7Jkioy+s5bbf4d8eha3v7hXOmU8cMJ7VdTfQXbJlYMGvGoW14G3d13lT8pyb1goswatF4U9CkSBDVLyyCARloLQQD4jfrts7kvdif/Z8kikStpvsHw0=,iv:h7pf0aAVAEkw1b0W9aYIEYVdq43tByngFI0z1xw3lqE=,tag:/URMCOLxBWxLdXNDr5e0Ig==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.11.0"
}

View File

@@ -1,4 +1,4 @@
FRP_SERVER_ADDR=ENC[AES256_GCM,data:qLByokyez4CQjrTiyOA=,iv:XLHWlL3arHUiBJU9lFjhnGuGCV7uncelom+ppDY92yo=,tag:6VrLeNhY8UOpCafOALmm3A==,type:str]
FRP_SERVER_ADDR=ENC[AES256_GCM,data:sFBlvhOCWwSB/TpQMEJ6h75hLqI=,iv:D31p3jLjU33TRDxoolAxsTLxlPjm2tq0OesNqzNX3t0=,tag:TZGcOt8kGTFQqgHe6mO30g==,type:str]
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+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
@@ -6,7 +6,7 @@ sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb2
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-11-15T11:39:18Z
sops_mac=ENC[AES256_GCM,data:YW53nGjb0ypDpKslt1oQW44jKYD7qYMR4S0O8BQl53Td4MNN/T7mz7q9Z7CWSY0G9sz5Y/lNjlWtQ7wZItbXfYeD34T0Zo/kyIGmM8GLNdn1P0yCd5Z09Y48cyyOaJLz8OK+/qEo1wTjf82BvpYzE6adeYuTSzxlvYTt91N5UNI=,iv:ZWLMYlSS6wiuv5UVjaf5o6asewYxp5wBrXlEhrL/R/s=,tag:ZKt7BtaSPNtmdTary9PUjg==,type:str]
sops_lastmodified=2026-02-09T12:55:51Z
sops_mac=ENC[AES256_GCM,data:QrjmzfIEQJ0jLF1+yTAqeY3xvgTVT9KDpK1ZoAaYwbUf3GHC2jjZOqWdLtteZuHQZ3Dy+hO550cbiAYVnUUCjdDTPz0apmT+dIH0JtEjOeA7SEwpt/bSwbAFLEDPeXdPAInWsWyOLB2MY5SjDCOP54+rhb2CDnwkgTH7iBPw5l8=,iv:5568pH2EZ7xwB3m8O4GrJ8j+/fNrOwhwCqN3qwj1DQ4=,tag:DAyqFr2PJnUP20+IZ54obQ==,type:str]
sops_unencrypted_suffix=_unencrypted
sops_version=3.11.0

Some files were not shown because too many files have changed in this diff Show More