+28
-28
.github/workflows/flake-update.yml
+28
-28
.github/workflows/flake-update.yml
···
7
7
8
8
jobs:
9
9
generate_matrix:
10
-
runs-on: ubuntu-20.04
10
+
runs-on: ubuntu-24.04
11
11
outputs:
12
12
packages: ${{ steps.gen_packages.outputs.packages }}
13
13
checks: ${{ steps.gen_checks.outputs.checks }}
···
15
15
- name: Clone repository
16
16
uses: actions/checkout@v4
17
17
with:
18
-
token: "${{ secrets.GITHUB_TOKEN }}"
18
+
token: "${{ secrets.TEST_TOKEN }}"
19
19
- name: Install nix
20
-
uses: cachix/install-nix-action@v25
20
+
uses: cachix/install-nix-action@v31
21
21
with:
22
22
extra_nix_config: |
23
23
auto-optimise-store = true
24
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
24
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
25
25
experimental-features = nix-command flakes
26
26
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
27
27
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
28
-
install_url: https://releases.nixos.org/nix/nix-2.19.0/install
28
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
29
29
- name: Generate flake.json
30
30
run: |
31
31
nix flake show --json > flake.json
···
39
39
printf "::set-output name=checks::%s" "$checks"
40
40
41
41
update_flake:
42
-
runs-on: ubuntu-20.04
42
+
runs-on: ubuntu-24.04
43
43
steps:
44
44
- name: Clone repository
45
45
uses: actions/checkout@v4
46
46
with:
47
-
token: "${{ secrets.GITHUB_TOKEN }}"
47
+
token: "${{ secrets.TEST_TOKEN }}"
48
48
- name: Install nix
49
-
uses: cachix/install-nix-action@v25
49
+
uses: cachix/install-nix-action@v31
50
50
with:
51
51
extra_nix_config: |
52
52
auto-optimise-store = true
53
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
53
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
54
54
experimental-features = nix-command flakes
55
55
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
56
56
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
57
-
install_url: https://releases.nixos.org/nix/nix-2.19.0/install
57
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
58
58
- name: Set up git
59
59
run: |
60
60
git config user.email gitbot@nobbz.dev
···
68
68
path: flake.lock
69
69
70
70
build_flake:
71
-
runs-on: ubuntu-20.04
71
+
runs-on: ubuntu-24.04
72
72
needs: [generate_matrix, update_flake]
73
73
strategy:
74
74
fail-fast: false
···
89
89
- name: Clone repository
90
90
uses: actions/checkout@v4
91
91
with:
92
-
token: "${{ secrets.GITHUB_TOKEN }}"
92
+
token: "${{ secrets.TEST_TOKEN }}"
93
93
- name: Install nix
94
-
uses: cachix/install-nix-action@v25
94
+
uses: cachix/install-nix-action@v31
95
95
with:
96
96
extra_nix_config: |
97
97
auto-optimise-store = true
98
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
98
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
99
99
experimental-features = nix-command flakes
100
100
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
101
101
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
102
-
install_url: https://releases.nixos.org/nix/nix-2.19.0/install
102
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
103
103
- name: Set up cachix
104
104
uses: cachix/cachix-action@master # pathsToPush, please update once we have v11!
105
105
with:
···
114
114
run: nix build .#${{ matrix.package }}
115
115
116
116
build_checks:
117
-
runs-on: ubuntu-20.04
117
+
runs-on: ubuntu-24.04
118
118
needs: [generate_matrix, update_flake]
119
119
strategy:
120
120
fail-fast: false
···
125
125
- name: Clone repository
126
126
uses: actions/checkout@v4
127
127
with:
128
-
token: "${{ secrets.GITHUB_TOKEN }}"
128
+
token: "${{ secrets.TEST_TOKEN }}"
129
129
- name: Install nix
130
-
uses: cachix/install-nix-action@v25
130
+
uses: cachix/install-nix-action@v31
131
131
with:
132
132
extra_nix_config: |
133
133
auto-optimise-store = true
134
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
134
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
135
135
experimental-features = nix-command flakes
136
136
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
137
137
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
138
-
install_url: https://releases.nixos.org/nix/nix-2.19.0/install
138
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
139
139
- name: Set up cachix
140
140
uses: cachix/cachix-action@master # pathsToPush, please update once we have v11!
141
141
with:
···
150
150
run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link
151
151
152
152
check_flake:
153
-
runs-on: ubuntu-20.04
153
+
runs-on: ubuntu-24.04
154
154
needs: [update_flake]
155
155
continue-on-error: true
156
156
steps:
157
157
- name: Clone repository
158
158
uses: actions/checkout@v4
159
159
with:
160
-
token: "${{ secrets.GITHUB_TOKEN }}"
160
+
token: "${{ secrets.TEST_TOKEN }}"
161
161
- name: Install nix
162
-
uses: cachix/install-nix-action@v25
162
+
uses: cachix/install-nix-action@v31
163
163
with:
164
164
extra_nix_config: |
165
165
auto-optimise-store = true
166
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
166
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
167
167
experimental-features = nix-command flakes
168
168
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
169
169
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
170
-
install_url: https://releases.nixos.org/nix/nix-2.19.0/install
170
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
171
171
- name: Restore flake.lock
172
172
uses: actions/download-artifact@v4
173
173
with:
···
177
177
nix flake check --keep-going
178
178
179
179
push_update:
180
-
runs-on: ubuntu-20.04
180
+
runs-on: ubuntu-24.04
181
181
permissions: write-all
182
182
needs: [update_flake, build_flake, build_checks, check_flake]
183
183
steps:
184
184
- name: Clone repository
185
185
uses: actions/checkout@v4
186
186
with:
187
-
token: "${{ secrets.GITHUB_TOKEN }}"
187
+
token: "${{ secrets.TEST_TOKEN }}"
188
188
- name: Restore flake.lock
189
189
uses: actions/download-artifact@v4
190
190
with:
···
207
207
--title "Auto update $(date -I)")
208
208
gh pr merge $PR --merge --delete-branch
209
209
env:
210
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
210
+
GITHUB_TOKEN: ${{ secrets.TEST_TOKEN }}
+119
.github/workflows/pull-check.yml
+119
.github/workflows/pull-check.yml
···
1
+
name: PullRequest checker
2
+
3
+
on:
4
+
pull_request:
5
+
6
+
jobs:
7
+
generate_matrix:
8
+
runs-on: ubuntu-24.04
9
+
outputs:
10
+
packages: ${{ steps.gen_packages.outputs.packages }}
11
+
checks: ${{ steps.gen_checks.outputs.checks }}
12
+
steps:
13
+
- name: Clone repository
14
+
uses: actions/checkout@v4
15
+
with:
16
+
token: "${{ secrets.TEST_TOKEN }}"
17
+
- name: Install nix
18
+
uses: cachix/install-nix-action@v31
19
+
with:
20
+
extra_nix_config: |
21
+
auto-optimise-store = true
22
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
23
+
experimental-features = nix-command flakes
24
+
substituters = https://cache.nixos.org/ https://nix-community.cachix.org https://nobbz.cachix.org
25
+
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nobbz.cachix.org-1:fODxpqE4ni+pFDSuj2ybYZbMUjmxNTjA7rtUNHW61Ok=
26
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
27
+
- name: Generate flake.json
28
+
run: |
29
+
nix flake show --json > flake.json
30
+
- id: gen_packages
31
+
run: |
32
+
packages=$(jq -c '.packages."x86_64-linux" | keys' < flake.json)
33
+
printf "packages=%s" "$packages" >> $GITHUB_OUTPUT
34
+
- id: gen_checks
35
+
run: |
36
+
checks=$(jq -c '.checks."x86_64-linux" | keys' < flake.json)
37
+
printf "checks=%s" "$checks" >> $GITHUB_OUTPUT
38
+
39
+
build_flake:
40
+
runs-on: ubuntu-24.04
41
+
needs: [generate_matrix]
42
+
strategy:
43
+
fail-fast: false
44
+
max-parallel: 5
45
+
matrix:
46
+
package: ${{fromJson(needs.generate_matrix.outputs.packages)}}
47
+
steps:
48
+
- name: Free diskspace
49
+
uses: easimon/maximize-build-space@master
50
+
with:
51
+
build-mount-path: /nix
52
+
root-reserve-mb: 5120
53
+
remove-dotnet: true
54
+
remove-android: true
55
+
remove-haskell: true
56
+
- name: Clone repository
57
+
uses: actions/checkout@v4
58
+
with:
59
+
token: "${{ secrets.TEST_TOKEN }}"
60
+
- name: Install nix
61
+
uses: cachix/install-nix-action@v31
62
+
with:
63
+
extra_nix_config: |
64
+
auto-optimise-store = true
65
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
66
+
experimental-features = nix-command flakes
67
+
substituters = https://cache.nixos.org/ https://nix-community.cachix.org https://nobbz.cachix.org
68
+
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nobbz.cachix.org-1:fODxpqE4ni+pFDSuj2ybYZbMUjmxNTjA7rtUNHW61Ok=
69
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
70
+
- name: Build everything
71
+
run: nix build .#${{ matrix.package }}
72
+
73
+
build_checks:
74
+
runs-on: ubuntu-24.04
75
+
needs: [generate_matrix]
76
+
strategy:
77
+
fail-fast: false
78
+
max-parallel: 5
79
+
matrix:
80
+
check: ${{fromJson(needs.generate_matrix.outputs.checks)}}
81
+
steps:
82
+
- name: Clone repository
83
+
uses: actions/checkout@v4
84
+
with:
85
+
token: "${{ secrets.TEST_TOKEN }}"
86
+
- name: Install nix
87
+
uses: cachix/install-nix-action@v31
88
+
with:
89
+
extra_nix_config: |
90
+
auto-optimise-store = true
91
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
92
+
experimental-features = nix-command flakes
93
+
substituters = https://cache.nixos.org/ https://nix-community.cachix.org https://nobbz.cachix.org
94
+
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nobbz.cachix.org-1:fODxpqE4ni+pFDSuj2ybYZbMUjmxNTjA7rtUNHW61Ok=
95
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
96
+
- name: Build everything
97
+
run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link
98
+
99
+
check_flake:
100
+
runs-on: ubuntu-24.04
101
+
continue-on-error: true
102
+
steps:
103
+
- name: Clone repository
104
+
uses: actions/checkout@v4
105
+
with:
106
+
token: "${{ secrets.TEST_TOKEN }}"
107
+
- name: Install nix
108
+
uses: cachix/install-nix-action@v31
109
+
with:
110
+
extra_nix_config: |
111
+
auto-optimise-store = true
112
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
113
+
experimental-features = nix-command flakes
114
+
substituters = https://cache.nixos.org/ https://nix-community.cachix.org https://nobbz.cachix.org
115
+
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= nobbz.cachix.org-1:fODxpqE4ni+pFDSuj2ybYZbMUjmxNTjA7rtUNHW61Ok=
116
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
117
+
- name: run the checks
118
+
run: |
119
+
nix flake check --keep-going
-15
.sops.yaml
-15
.sops.yaml
···
1
1
keys:
2
2
- &admin_nobbz age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
3
3
- &host_mimas age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa
4
-
- &host_janus age1swznwyf5zyh66xuex8jnwsargmeq58h8u6fy57ta3xtkgh806ews09ztkl
5
4
- &user_nmelzer_mimas age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6
6
-
- &user_nmelzer_janus age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86
7
-
- &user_nmelzer_enceladeus age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq
8
5
- &user_nmelzer_phoebe age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna
9
6
creation_rules:
10
7
- path_regex: secrets/[^/]+\.yaml$
···
17
14
- age:
18
15
- *admin_nobbz
19
16
- *host_mimas
20
-
- path_regex: secrets/janus/[^/]+$
21
-
key_groups:
22
-
- age:
23
-
- *admin_nobbz
24
-
- *host_janus
25
17
- path_regex: secrets/mimas/nmelzer/[^/]+\.yaml$
26
18
key_groups:
27
19
- age:
28
20
- *admin_nobbz
29
21
- *user_nmelzer_mimas
30
-
- path_regex: secrets/janus/nmelzer/[^/]+\.yaml$
31
-
key_groups:
32
-
- age:
33
-
- *admin_nobbz
34
-
- *user_nmelzer_janus
35
22
- path_regex: secrets/phoebe/nmelzer/[^/]+
36
23
key_groups:
37
24
- age:
···
41
28
key_groups:
42
29
- age:
43
30
- *admin_nobbz
44
-
- *user_nmelzer_janus
45
31
- *user_nmelzer_mimas
46
-
- *user_nmelzer_enceladeus
47
32
- *user_nmelzer_phoebe
+25
README.md
+25
README.md
···
1
+
Hosts
2
+
=====
3
+
4
+
> [!CAUTION]
5
+
> This hosts system and home configurations are public for your own learning and
6
+
> research. They are not meant to be used with any hardware other than mine.
7
+
> Trying to build and deploy them to other systems without appropriate changes
8
+
> can render your machines unbootable and damage data.
9
+
10
+
> [!NOTE]
11
+
> I do not provide copy/pastable commands that would build/switch/install any
12
+
> of these configurations because I mean what I wrote in the block before!
13
+
14
+
A list of all hosts currently in use by me. this covers all the
15
+
devices i can name on my behalf. Not all devices in this list are
16
+
managed through nix or even run it.
17
+
18
+
* `mimas`: My currently used main host.
19
+
* ~~`enceladeus`~~: A secondary laptop, rarely used but still updated.
20
+
* ~~`thetys`~~: A nixos VM solely used in the office for work related things, discontinued
21
+
* ~~`dione`~~: company provided android phone, discontinued
22
+
* `rhea`: self owned phone
23
+
* ~~`titan`~~: MacOS VM to play and experiment with, discontinued
24
+
* ~~`hyperion`~~: Linux-Aarch64 VM to play and experiment with, discontinued
25
+
* `phoebe`: TuxedoOS (Ubuntu derivative) laptop, HM only.
-13
README.org
-13
README.org
···
1
-
* Hosts
2
-
3
-
A list of all hosts currently in use by me. this covers all the
4
-
devices i can name on my behalf. Not all devices in this list are
5
-
managed through nix or even run it.
6
-
7
-
+ =mimas= :: My currently used main host.
8
-
+ =enceladeus= :: A secondary laptop, rarely used but still updated.
9
-
+ =thetys= :: A nixos VM solely used in the office for work related things, discontinued
10
-
+ =dione= :: company provided android phone, discontinued
11
-
+ =rhea= :: self owned phone
12
-
+ =titan= :: MacOS VM to play and experiment with
13
-
+ =hyperion= :: Linux-Aarch64 VM to play and experiment with
+2
-3
checks/default.nix
+2
-3
checks/default.nix
···
1
1
inputs: let
2
-
pkgs = inputs.unstable.legacyPackages.x86_64-linux;
3
-
apkgs = inputs.alejandra.packages.x86_64-linux;
2
+
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
4
3
5
-
callPackage = pkgs.lib.callPackageWith (pkgs // apkgs // {inherit (inputs) self;});
4
+
callPackage = pkgs.lib.callPackageWith (pkgs // {inherit (inputs) self;});
6
5
in {
7
6
alejandra = callPackage ./alejandra.nix {};
8
7
statix = callPackage ./statix.nix {};
+265
-395
flake.lock
+265
-395
flake.lock
···
1
1
{
2
2
"nodes": {
3
-
"alejandra": {
4
-
"inputs": {
5
-
"fenix": "fenix",
6
-
"flakeCompat": "flakeCompat",
7
-
"nixpkgs": "nixpkgs"
8
-
},
9
-
"locked": {
10
-
"lastModified": 1660592437,
11
-
"narHash": "sha256-xFumnivtVwu5fFBOrTxrv6fv3geHKF04RGP23EsDVaI=",
12
-
"owner": "kamadorueda",
13
-
"repo": "alejandra",
14
-
"rev": "e7eac49074b70814b542fee987af2987dd0520b5",
15
-
"type": "github"
16
-
},
17
-
"original": {
18
-
"owner": "kamadorueda",
19
-
"ref": "3.0.0",
20
-
"repo": "alejandra",
21
-
"type": "github"
22
-
}
23
-
},
24
3
"cargo2nix": {
25
4
"inputs": {
26
-
"flake-compat": "flake-compat_2",
27
-
"flake-utils": "flake-utils_5",
5
+
"flake-compat": "flake-compat_3",
6
+
"flake-utils": "flake-utils_3",
28
7
"nixpkgs": [
29
8
"switcher",
30
9
"nixpkgs"
···
50
29
},
51
30
"emacs": {
52
31
"inputs": {
53
-
"flake-utils": "flake-utils",
54
32
"nixpkgs": [
55
-
"master"
33
+
"nixpkgs"
56
34
],
57
-
"nixpkgs-stable": "nixpkgs-stable"
35
+
"nixpkgs-stable": [
36
+
"nixpkgs"
37
+
]
58
38
},
59
39
"locked": {
60
-
"lastModified": 1709603049,
61
-
"narHash": "sha256-pw/Lty1T7CDnhJvyVziXQM+nbPSAgwFf4JE3zM0j6bM=",
40
+
"lastModified": 1749090069,
41
+
"narHash": "sha256-uN3Mp+o7IfVT9H/OuwEtJ17NktCaF4t9Ond3TKt+BE4=",
62
42
"owner": "nix-community",
63
43
"repo": "emacs-overlay",
64
-
"rev": "ceb9739648fff3dea0552003a9a4127191f50cd1",
44
+
"rev": "c17506666090e412a50b01c57944386ab81d2aa8",
65
45
"type": "github"
66
46
},
67
47
"original": {
···
70
50
"type": "github"
71
51
}
72
52
},
73
-
"fenix": {
74
-
"inputs": {
75
-
"nixpkgs": [
76
-
"alejandra",
77
-
"nixpkgs"
78
-
],
79
-
"rust-analyzer-src": "rust-analyzer-src"
80
-
},
53
+
"flake-compat": {
54
+
"flake": false,
81
55
"locked": {
82
-
"lastModified": 1657607339,
83
-
"narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=",
84
-
"owner": "nix-community",
85
-
"repo": "fenix",
86
-
"rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d",
56
+
"lastModified": 1733328505,
57
+
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
58
+
"owner": "edolstra",
59
+
"repo": "flake-compat",
60
+
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
87
61
"type": "github"
88
62
},
89
63
"original": {
90
-
"owner": "nix-community",
91
-
"repo": "fenix",
64
+
"owner": "edolstra",
65
+
"repo": "flake-compat",
92
66
"type": "github"
93
67
}
94
68
},
95
-
"flake-compat": {
69
+
"flake-compat_2": {
96
70
"flake": false,
97
71
"locked": {
98
-
"lastModified": 1673956053,
99
-
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
72
+
"lastModified": 1696426674,
73
+
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
100
74
"owner": "edolstra",
101
75
"repo": "flake-compat",
102
-
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
76
+
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
103
77
"type": "github"
104
78
},
105
79
"original": {
···
108
82
"type": "github"
109
83
}
110
84
},
111
-
"flake-compat_2": {
85
+
"flake-compat_3": {
112
86
"flake": false,
113
87
"locked": {
114
88
"lastModified": 1696426674,
···
125
99
}
126
100
},
127
101
"flake-utils": {
128
-
"inputs": {
129
-
"systems": "systems"
130
-
},
131
102
"locked": {
132
-
"lastModified": 1709126324,
133
-
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
103
+
"lastModified": 1659877975,
104
+
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
134
105
"owner": "numtide",
135
106
"repo": "flake-utils",
136
-
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
107
+
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
137
108
"type": "github"
138
109
},
139
110
"original": {
···
144
115
},
145
116
"flake-utils_2": {
146
117
"inputs": {
147
-
"systems": "systems_2"
118
+
"systems": "systems"
148
119
},
149
120
"locked": {
150
-
"lastModified": 1709126324,
151
-
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
121
+
"lastModified": 1681202837,
122
+
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
152
123
"owner": "numtide",
153
124
"repo": "flake-utils",
154
-
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
125
+
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
155
126
"type": "github"
156
127
},
157
128
"original": {
···
162
133
},
163
134
"flake-utils_3": {
164
135
"inputs": {
165
-
"systems": "systems_3"
136
+
"systems": "systems_2"
166
137
},
167
138
"locked": {
168
-
"lastModified": 1701680307,
169
-
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
139
+
"lastModified": 1694529238,
140
+
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
170
141
"owner": "numtide",
171
142
"repo": "flake-utils",
172
-
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
143
+
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
173
144
"type": "github"
174
145
},
175
146
"original": {
···
178
149
"type": "github"
179
150
}
180
151
},
181
-
"flake-utils_4": {
152
+
"gen-luarc": {
182
153
"inputs": {
183
-
"systems": "systems_4"
154
+
"flake-parts": [
155
+
"nvim",
156
+
"parts"
157
+
],
158
+
"git-hooks": "git-hooks",
159
+
"luvit-meta": "luvit-meta",
160
+
"nixpkgs": [
161
+
"nvim",
162
+
"nixpkgs"
163
+
]
184
164
},
185
165
"locked": {
186
-
"lastModified": 1681202837,
187
-
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
188
-
"owner": "numtide",
189
-
"repo": "flake-utils",
190
-
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
166
+
"lastModified": 1724097937,
167
+
"narHash": "sha256-Q4tgm8ZHAQUdvsNft86MqIbHQAm7OF7RT/wwYWXqSdY=",
168
+
"owner": "mrcjkb",
169
+
"repo": "nix-gen-luarc-json",
170
+
"rev": "b36b69c4ded9f31b079523bc452e23458734cf00",
191
171
"type": "github"
192
172
},
193
173
"original": {
194
-
"owner": "numtide",
195
-
"repo": "flake-utils",
174
+
"owner": "mrcjkb",
175
+
"repo": "nix-gen-luarc-json",
196
176
"type": "github"
197
177
}
198
178
},
199
-
"flake-utils_5": {
179
+
"git-hooks": {
200
180
"inputs": {
201
-
"systems": "systems_5"
181
+
"flake-compat": "flake-compat_2",
182
+
"gitignore": "gitignore",
183
+
"nixpkgs": [
184
+
"nvim",
185
+
"gen-luarc",
186
+
"nixpkgs"
187
+
],
188
+
"nixpkgs-stable": "nixpkgs-stable"
202
189
},
203
190
"locked": {
204
-
"lastModified": 1694529238,
205
-
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
206
-
"owner": "numtide",
207
-
"repo": "flake-utils",
208
-
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
191
+
"lastModified": 1723803910,
192
+
"narHash": "sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc=",
193
+
"owner": "cachix",
194
+
"repo": "git-hooks.nix",
195
+
"rev": "bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba",
209
196
"type": "github"
210
197
},
211
198
"original": {
212
-
"owner": "numtide",
213
-
"repo": "flake-utils",
199
+
"owner": "cachix",
200
+
"repo": "git-hooks.nix",
214
201
"type": "github"
215
202
}
216
203
},
217
-
"flake-utils_6": {
204
+
"git-hooks-nix": {
218
205
"inputs": {
219
-
"systems": "systems_6"
206
+
"flake-compat": [
207
+
"nix"
208
+
],
209
+
"gitignore": [
210
+
"nix"
211
+
],
212
+
"nixpkgs": [
213
+
"nix",
214
+
"nixpkgs"
215
+
],
216
+
"nixpkgs-stable": [
217
+
"nix",
218
+
"nixpkgs"
219
+
]
220
220
},
221
221
"locked": {
222
-
"lastModified": 1681202837,
223
-
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
224
-
"owner": "numtide",
225
-
"repo": "flake-utils",
226
-
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
222
+
"lastModified": 1734279981,
223
+
"narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=",
224
+
"owner": "cachix",
225
+
"repo": "git-hooks.nix",
226
+
"rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785",
227
227
"type": "github"
228
228
},
229
229
"original": {
230
-
"owner": "numtide",
231
-
"repo": "flake-utils",
230
+
"owner": "cachix",
231
+
"repo": "git-hooks.nix",
232
232
"type": "github"
233
233
}
234
234
},
235
-
"flakeCompat": {
236
-
"flake": false,
235
+
"gitignore": {
236
+
"inputs": {
237
+
"nixpkgs": [
238
+
"nvim",
239
+
"gen-luarc",
240
+
"git-hooks",
241
+
"nixpkgs"
242
+
]
243
+
},
237
244
"locked": {
238
-
"lastModified": 1650374568,
239
-
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
240
-
"owner": "edolstra",
241
-
"repo": "flake-compat",
242
-
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
245
+
"lastModified": 1709087332,
246
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
247
+
"owner": "hercules-ci",
248
+
"repo": "gitignore.nix",
249
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
243
250
"type": "github"
244
251
},
245
252
"original": {
246
-
"owner": "edolstra",
247
-
"repo": "flake-compat",
253
+
"owner": "hercules-ci",
254
+
"repo": "gitignore.nix",
248
255
"type": "github"
249
256
}
250
257
},
251
258
"home-manager": {
252
259
"inputs": {
253
260
"nixpkgs": [
254
-
"unstable"
261
+
"nixpkgs"
255
262
]
256
263
},
257
264
"locked": {
258
-
"lastModified": 1709578243,
259
-
"narHash": "sha256-hF96D+c2PBmAFhymMw3z8hou++lqKtZ7IzpFbYeL1/Y=",
265
+
"lastModified": 1749062139,
266
+
"narHash": "sha256-gGGLujmeWU+ZjFzfMvFMI0hp9xONsSbm88187wJr82Q=",
260
267
"owner": "nix-community",
261
268
"repo": "home-manager",
262
-
"rev": "23ff9821bcaec12981e32049e8687f25f11e5ef3",
269
+
"rev": "86b95fc1ed2b9b04a451a08ccf13d78fb421859c",
263
270
"type": "github"
264
271
},
265
272
"original": {
···
268
275
"type": "github"
269
276
}
270
277
},
271
-
"libgit2": {
278
+
"luvit-meta": {
272
279
"flake": false,
273
280
"locked": {
274
-
"lastModified": 1697646580,
275
-
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
276
-
"owner": "libgit2",
277
-
"repo": "libgit2",
278
-
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
281
+
"lastModified": 1705776742,
282
+
"narHash": "sha256-zAAptV/oLuLAAsa2zSB/6fxlElk4+jNZd/cPr9oxFig=",
283
+
"owner": "Bilal2453",
284
+
"repo": "luvit-meta",
285
+
"rev": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60",
279
286
"type": "github"
280
287
},
281
288
"original": {
282
-
"owner": "libgit2",
283
-
"repo": "libgit2",
289
+
"owner": "Bilal2453",
290
+
"repo": "luvit-meta",
284
291
"type": "github"
285
292
}
286
293
},
287
-
"master": {
294
+
"nix": {
295
+
"inputs": {
296
+
"flake-compat": "flake-compat",
297
+
"flake-parts": [
298
+
"parts"
299
+
],
300
+
"git-hooks-nix": "git-hooks-nix",
301
+
"nixpkgs": "nixpkgs",
302
+
"nixpkgs-23-11": "nixpkgs-23-11",
303
+
"nixpkgs-regression": "nixpkgs-regression"
304
+
},
288
305
"locked": {
289
-
"lastModified": 1709604507,
290
-
"narHash": "sha256-XV7Dd3XdIj+5Bq18KI/Zkubgfj+0az43+ZHtnT8bMm0=",
306
+
"lastModified": 1749012568,
307
+
"narHash": "sha256-7IltFTct/oe6pGkwB6f/1WhWA65hFnsBY6XaGjodf3k=",
291
308
"owner": "nixos",
292
-
"repo": "nixpkgs",
293
-
"rev": "3d7128dc4273fa5a72c2c21a01cc4ba5c2f341b4",
309
+
"repo": "nix",
310
+
"rev": "4751cbef6303d10479f3db1b13db69197d9c3446",
294
311
"type": "github"
295
312
},
296
313
"original": {
297
314
"owner": "nixos",
298
-
"ref": "master",
299
-
"repo": "nixpkgs",
315
+
"repo": "nix",
300
316
"type": "github"
301
317
}
302
318
},
303
-
"nil": {
319
+
"nix-gl": {
304
320
"inputs": {
305
-
"flake-utils": "flake-utils_3",
306
-
"nixpkgs": "nixpkgs_2",
307
-
"rust-overlay": "rust-overlay"
321
+
"flake-utils": "flake-utils",
322
+
"nixpkgs": [
323
+
"nixpkgs"
324
+
]
308
325
},
309
326
"locked": {
310
-
"lastModified": 1704611696,
311
-
"narHash": "sha256-4ZCgV5oHdEc3q+XaIzy//gh20uC/aSuAtMU9bsfgLZk=",
312
-
"owner": "oxalica",
313
-
"repo": "nil",
314
-
"rev": "059d33a24bb76d2048740bcce936362bf54b5bc9",
315
-
"type": "github"
316
-
},
317
-
"original": {
318
-
"owner": "oxalica",
319
-
"repo": "nil",
320
-
"type": "github"
321
-
}
322
-
},
323
-
"nix": {
324
-
"inputs": {
325
-
"flake-compat": "flake-compat",
326
-
"libgit2": "libgit2",
327
-
"nixpkgs": "nixpkgs_3",
328
-
"nixpkgs-regression": "nixpkgs-regression"
329
-
},
330
-
"locked": {
331
-
"lastModified": 1709580543,
332
-
"narHash": "sha256-IrO/V16iJ63Q3H4vUFGIzZuG6ZOsm/HCwVxdFmKXnw0=",
333
-
"owner": "nixos",
334
-
"repo": "nix",
335
-
"rev": "6b976a1898cb1f6688da66725a8182279d83c0fa",
327
+
"lastModified": 1713543440,
328
+
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
329
+
"owner": "nix-community",
330
+
"repo": "nixgl",
331
+
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
336
332
"type": "github"
337
333
},
338
334
"original": {
339
-
"owner": "nixos",
340
-
"repo": "nix",
335
+
"owner": "nix-community",
336
+
"repo": "nixgl",
341
337
"type": "github"
342
338
}
343
339
},
344
340
"nixos-vscode-server": {
345
341
"inputs": {
346
-
"flake-utils": "flake-utils_4",
347
-
"nixpkgs": "nixpkgs_4"
342
+
"flake-utils": "flake-utils_2",
343
+
"nixpkgs": [
344
+
"nixpkgs"
345
+
]
348
346
},
349
347
"locked": {
350
-
"lastModified": 1684517665,
351
-
"narHash": "sha256-SaAr66uCQ8CF75jIr23FZjk1+9Kfwm5sQnwV25206Gs=",
348
+
"lastModified": 1729422940,
349
+
"narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=",
352
350
"owner": "msteen",
353
351
"repo": "nixos-vscode-server",
354
-
"rev": "1e1358493df6529d4c7bc4cc3066f76fd16d4ae6",
352
+
"rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f",
355
353
"type": "github"
356
354
},
357
355
"original": {
···
362
360
},
363
361
"nixpkgs": {
364
362
"locked": {
365
-
"lastModified": 1657425264,
366
-
"narHash": "sha256-3aHvoI2e8vJKw3hvnHECaBpSsL5mxVsVtaLCnTdNcH8=",
367
-
"owner": "nixos",
363
+
"lastModified": 1747179050,
364
+
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
365
+
"owner": "NixOS",
368
366
"repo": "nixpkgs",
369
-
"rev": "de5b3dd17034e6106e75746e81618e5bd408de8a",
367
+
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
370
368
"type": "github"
371
369
},
372
370
"original": {
373
-
"owner": "nixos",
374
-
"ref": "nixos-unstable-small",
371
+
"owner": "NixOS",
372
+
"ref": "nixos-unstable",
375
373
"repo": "nixpkgs",
376
374
"type": "github"
377
375
}
378
376
},
379
-
"nixpkgs-2211": {
377
+
"nixpkgs-23-11": {
380
378
"locked": {
381
-
"lastModified": 1688392541,
382
-
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
383
-
"owner": "nixos",
379
+
"lastModified": 1717159533,
380
+
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
381
+
"owner": "NixOS",
384
382
"repo": "nixpkgs",
385
-
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
383
+
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
386
384
"type": "github"
387
385
},
388
386
"original": {
389
-
"owner": "nixos",
390
-
"ref": "nixos-22.11",
387
+
"owner": "NixOS",
391
388
"repo": "nixpkgs",
389
+
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
392
390
"type": "github"
393
391
}
394
392
},
395
-
"nixpkgs-insync-v3": {
393
+
"nixpkgs-emmy": {
396
394
"locked": {
397
-
"lastModified": 1674552486,
398
-
"narHash": "sha256-FK9Y4P5Q7lzq9hjXIflr9oW+Cxw+5gxP/dN9+R/bHnA=",
399
-
"owner": "nixos",
395
+
"lastModified": 1719675406,
396
+
"narHash": "sha256-bZgaUZikDI7ZS1EY0jjZnbcO4vNeSRhIekb17FyUMf0=",
397
+
"owner": "NixOS",
400
398
"repo": "nixpkgs",
401
-
"rev": "32fdc268e921994e3f38088486ddfe765d11df93",
399
+
"rev": "2feb215c297f2c9ae272336f55d54a962d71a9ff",
402
400
"type": "github"
403
401
},
404
402
"original": {
405
-
"owner": "nixos",
406
-
"ref": "32fdc268e921994e3f38088486ddfe765d11df93",
403
+
"owner": "NixOS",
404
+
"ref": "pull/323401/head",
407
405
"repo": "nixpkgs",
408
406
"type": "github"
409
407
}
410
408
},
411
-
"nixpkgs-lib": {
409
+
"nixpkgs-pre-rust": {
412
410
"locked": {
413
-
"dir": "lib",
414
-
"lastModified": 1709237383,
415
-
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
416
-
"owner": "NixOS",
411
+
"lastModified": 1723634395,
412
+
"narHash": "sha256-K1ohl/M/HWXqieqNtsF39FbWqtaNX/mUgulrqcOO1KU=",
413
+
"owner": "nixos",
417
414
"repo": "nixpkgs",
418
-
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
415
+
"rev": "57d0d4a8f3025e2b902d2b4403bcece26ad1ea74",
419
416
"type": "github"
420
417
},
421
418
"original": {
422
-
"dir": "lib",
423
-
"owner": "NixOS",
424
-
"ref": "nixos-unstable",
419
+
"owner": "nixos",
420
+
"ref": "57d0d4a8f302",
425
421
"repo": "nixpkgs",
426
422
"type": "github"
427
423
}
···
444
440
},
445
441
"nixpkgs-stable": {
446
442
"locked": {
447
-
"lastModified": 1709309926,
448
-
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=",
443
+
"lastModified": 1720386169,
444
+
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
449
445
"owner": "NixOS",
450
446
"repo": "nixpkgs",
451
-
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7",
447
+
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
452
448
"type": "github"
453
449
},
454
450
"original": {
455
451
"owner": "NixOS",
456
-
"ref": "nixos-23.11",
452
+
"ref": "nixos-24.05",
457
453
"repo": "nixpkgs",
458
454
"type": "github"
459
455
}
460
456
},
461
-
"nixpkgs-stable_2": {
457
+
"nixpkgs_2": {
462
458
"locked": {
463
-
"lastModified": 1709428628,
464
-
"narHash": "sha256-//ZCCnpVai/ShtO2vPjh3AWgo8riXCaret6V9s7Hew4=",
465
-
"owner": "NixOS",
466
-
"repo": "nixpkgs",
467
-
"rev": "66d65cb00b82ffa04ee03347595aa20e41fe3555",
468
-
"type": "github"
469
-
},
470
-
"original": {
471
-
"owner": "NixOS",
472
-
"ref": "release-23.11",
473
-
"repo": "nixpkgs",
474
-
"type": "github"
475
-
}
476
-
},
477
-
"nixpkgs-unstable": {
478
-
"locked": {
479
-
"lastModified": 1709479366,
480
-
"narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=",
459
+
"lastModified": 1748929857,
460
+
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
481
461
"owner": "nixos",
482
462
"repo": "nixpkgs",
483
-
"rev": "b8697e57f10292a6165a20f03d2f42920dfaf973",
463
+
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
484
464
"type": "github"
485
465
},
486
466
"original": {
···
490
470
"type": "github"
491
471
}
492
472
},
493
-
"nixpkgs_2": {
494
-
"locked": {
495
-
"lastModified": 1704161960,
496
-
"narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=",
497
-
"owner": "nixos",
498
-
"repo": "nixpkgs",
499
-
"rev": "63143ac2c9186be6d9da6035fa22620018c85932",
500
-
"type": "github"
501
-
},
502
-
"original": {
503
-
"owner": "nixos",
504
-
"ref": "nixpkgs-unstable",
505
-
"repo": "nixpkgs",
506
-
"type": "github"
507
-
}
508
-
},
509
473
"nixpkgs_3": {
510
474
"locked": {
511
-
"lastModified": 1709083642,
512
-
"narHash": "sha256-7kkJQd4rZ+vFrzWu8sTRtta5D1kBG0LSRYAfhtmMlSo=",
475
+
"lastModified": 1744868846,
476
+
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
513
477
"owner": "NixOS",
514
478
"repo": "nixpkgs",
515
-
"rev": "b550fe4b4776908ac2a861124307045f8e717c8e",
479
+
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
516
480
"type": "github"
517
481
},
518
482
"original": {
519
483
"owner": "NixOS",
520
-
"ref": "release-23.11",
484
+
"ref": "nixpkgs-unstable",
521
485
"repo": "nixpkgs",
522
486
"type": "github"
523
487
}
524
488
},
525
489
"nixpkgs_4": {
526
490
"locked": {
527
-
"lastModified": 1682134069,
528
-
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
491
+
"lastModified": 1728538411,
492
+
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
529
493
"owner": "NixOS",
530
494
"repo": "nixpkgs",
531
-
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
532
-
"type": "github"
533
-
},
534
-
"original": {
535
-
"id": "nixpkgs",
536
-
"type": "indirect"
537
-
}
538
-
},
539
-
"nixpkgs_5": {
540
-
"locked": {
541
-
"lastModified": 1709356872,
542
-
"narHash": "sha256-mvxCirJbtkP0cZ6ABdwcgTk0u3bgLoIoEFIoYBvD6+4=",
543
-
"owner": "NixOS",
544
-
"repo": "nixpkgs",
545
-
"rev": "458b097d81f90275b3fdf03796f0563844926708",
495
+
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
546
496
"type": "github"
547
497
},
548
498
"original": {
···
552
502
"type": "github"
553
503
}
554
504
},
555
-
"nixpkgs_6": {
505
+
"nvim": {
506
+
"inputs": {
507
+
"gen-luarc": "gen-luarc",
508
+
"nixpkgs": [
509
+
"nixpkgs"
510
+
],
511
+
"nixpkgs-emmy": "nixpkgs-emmy",
512
+
"parts": [
513
+
"parts"
514
+
],
515
+
"wrapper-manager": "wrapper-manager"
516
+
},
556
517
"locked": {
557
-
"lastModified": 1681358109,
558
-
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
559
-
"owner": "NixOS",
560
-
"repo": "nixpkgs",
561
-
"rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9",
518
+
"lastModified": 1748686149,
519
+
"narHash": "sha256-RdLAPiha8lr1wQiL158p4DTFhLcWcjRv6ioCTd3athQ=",
520
+
"owner": "nobbz",
521
+
"repo": "nobbz-vim",
522
+
"rev": "a22303075cac32d83edfd79ef79c0386a38b02ce",
562
523
"type": "github"
563
524
},
564
525
"original": {
565
-
"owner": "NixOS",
566
-
"ref": "nixpkgs-unstable",
567
-
"repo": "nixpkgs",
526
+
"owner": "nobbz",
527
+
"repo": "nobbz-vim",
568
528
"type": "github"
569
529
}
570
530
},
571
531
"parts": {
572
532
"inputs": {
573
-
"nixpkgs-lib": "nixpkgs-lib"
533
+
"nixpkgs-lib": [
534
+
"nixpkgs"
535
+
]
574
536
},
575
537
"locked": {
576
-
"lastModified": 1709336216,
577
-
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
538
+
"lastModified": 1748821116,
539
+
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
578
540
"owner": "hercules-ci",
579
541
"repo": "flake-parts",
580
-
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
542
+
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
581
543
"type": "github"
582
544
},
583
545
"original": {
···
589
551
"programsdb": {
590
552
"inputs": {
591
553
"nixpkgs": [
592
-
"unstable"
554
+
"nixpkgs"
593
555
],
594
556
"utils": "utils"
595
557
},
596
558
"locked": {
597
-
"lastModified": 1709585526,
598
-
"narHash": "sha256-c33YNdfeooa6VlM56P8IyEJQHCifQg9ys5EynWjyfvU=",
559
+
"lastModified": 1749055058,
560
+
"narHash": "sha256-OgCTSX0WXPpEi/ukjbBRrElSo+TR2/pzCCcY5yfou58=",
599
561
"owner": "wamserma",
600
562
"repo": "flake-programs-sqlite",
601
-
"rev": "f62cd6c7c492145c9e5ba4500d4037127a5b0c73",
563
+
"rev": "78d23d728abddce902528922f93967f0630f1cfe",
602
564
"type": "github"
603
565
},
604
566
"original": {
···
609
571
},
610
572
"root": {
611
573
"inputs": {
612
-
"alejandra": "alejandra",
613
574
"emacs": "emacs",
614
-
"flake-utils": "flake-utils_2",
615
575
"home-manager": "home-manager",
616
-
"master": "master",
617
-
"nil": "nil",
618
576
"nix": "nix",
577
+
"nix-gl": "nix-gl",
619
578
"nixos-vscode-server": "nixos-vscode-server",
620
-
"nixpkgs": [
621
-
"nixpkgs-unstable"
579
+
"nixpkgs": "nixpkgs_2",
580
+
"nixpkgs-insync-v3": [
581
+
"nixpkgs"
622
582
],
623
-
"nixpkgs-2211": "nixpkgs-2211",
624
-
"nixpkgs-insync-v3": "nixpkgs-insync-v3",
625
-
"nixpkgs-unstable": "nixpkgs-unstable",
583
+
"nixpkgs-pre-rust": "nixpkgs-pre-rust",
584
+
"nvim": "nvim",
626
585
"parts": "parts",
627
586
"programsdb": "programsdb",
628
587
"sops-nix": "sops-nix",
629
-
"stable": [
630
-
"nixpkgs-2211"
631
-
],
632
-
"switcher": "switcher",
633
-
"unstable": [
634
-
"nixpkgs-unstable"
635
-
]
636
-
}
637
-
},
638
-
"rust-analyzer-src": {
639
-
"flake": false,
640
-
"locked": {
641
-
"lastModified": 1657557289,
642
-
"narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=",
643
-
"owner": "rust-lang",
644
-
"repo": "rust-analyzer",
645
-
"rev": "caf23f29144b371035b864a1017dbc32573ad56d",
646
-
"type": "github"
647
-
},
648
-
"original": {
649
-
"owner": "rust-lang",
650
-
"ref": "nightly",
651
-
"repo": "rust-analyzer",
652
-
"type": "github"
588
+
"switcher": "switcher"
653
589
}
654
590
},
655
591
"rust-overlay": {
656
592
"inputs": {
657
-
"flake-utils": [
658
-
"nil",
659
-
"flake-utils"
660
-
],
661
-
"nixpkgs": [
662
-
"nil",
663
-
"nixpkgs"
664
-
]
593
+
"nixpkgs": "nixpkgs_4"
665
594
},
666
595
"locked": {
667
-
"lastModified": 1704593904,
668
-
"narHash": "sha256-nDoXZDTRdgF3b4n3m011y99nYFewvOl9UpzFvP8Rb3c=",
596
+
"lastModified": 1734402816,
597
+
"narHash": "sha256-cgQ8mjUJz7J3fp97lnvl0dSJ6vLt8yzUSmw3B7QKw94=",
669
598
"owner": "oxalica",
670
599
"repo": "rust-overlay",
671
-
"rev": "c36fd70a99decfa6e110c86f296a97613034a680",
672
-
"type": "github"
673
-
},
674
-
"original": {
675
-
"owner": "oxalica",
676
-
"repo": "rust-overlay",
677
-
"type": "github"
678
-
}
679
-
},
680
-
"rust-overlay_2": {
681
-
"inputs": {
682
-
"flake-utils": "flake-utils_6",
683
-
"nixpkgs": "nixpkgs_6"
684
-
},
685
-
"locked": {
686
-
"lastModified": 1687746941,
687
-
"narHash": "sha256-wsSRCmPQ1+uXsDNnEH2mN4ZVtHHpfavA4FrQnCb5A44=",
688
-
"owner": "oxalica",
689
-
"repo": "rust-overlay",
690
-
"rev": "b91d162355e88de89b379f3d6a459ade92704474",
600
+
"rev": "e38fbd6e56e8cd1d61c65a21bbb7785e966707b4",
691
601
"type": "github"
692
602
},
693
603
"original": {
···
698
608
},
699
609
"sops-nix": {
700
610
"inputs": {
701
-
"nixpkgs": "nixpkgs_5",
702
-
"nixpkgs-stable": "nixpkgs-stable_2"
611
+
"nixpkgs": "nixpkgs_3"
703
612
},
704
613
"locked": {
705
-
"lastModified": 1709591996,
706
-
"narHash": "sha256-0sQcalXSgqlO6mnxBTXkSQChBHy2GQsokB1XY8r+LpQ=",
614
+
"lastModified": 1747603214,
615
+
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
707
616
"owner": "Mic92",
708
617
"repo": "sops-nix",
709
-
"rev": "291aad29b59ceda517a06e59809f35cb0bb17c6b",
618
+
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
710
619
"type": "github"
711
620
},
712
621
"original": {
···
722
631
"parts"
723
632
],
724
633
"nixpkgs": [
725
-
"unstable"
634
+
"nixpkgs"
726
635
],
727
-
"rust-overlay": "rust-overlay_2"
636
+
"rust-overlay": "rust-overlay"
728
637
},
729
638
"locked": {
730
-
"lastModified": 1707998256,
731
-
"narHash": "sha256-+rca2uGRu3k6PcXE5wwYeqURaWwLsZ0PGWUuM1tSSR0=",
639
+
"lastModified": 1734435961,
640
+
"narHash": "sha256-HIw4Naoc0Gcl9VOT4JkagzKDvAdBwyzlq2majy5pSks=",
732
641
"owner": "nobbz",
733
642
"repo": "nix-switcher",
734
-
"rev": "cd05c5fb56b2aed48162b89d47fd0c970f302257",
643
+
"rev": "6f12e77ff6b46d53a5e58567803f94708e15660e",
735
644
"type": "github"
736
645
},
737
646
"original": {
···
771
680
"type": "github"
772
681
}
773
682
},
774
-
"systems_3": {
775
-
"locked": {
776
-
"lastModified": 1681028828,
777
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
778
-
"owner": "nix-systems",
779
-
"repo": "default",
780
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
781
-
"type": "github"
782
-
},
783
-
"original": {
784
-
"owner": "nix-systems",
785
-
"repo": "default",
786
-
"type": "github"
787
-
}
788
-
},
789
-
"systems_4": {
790
-
"locked": {
791
-
"lastModified": 1681028828,
792
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
793
-
"owner": "nix-systems",
794
-
"repo": "default",
795
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
796
-
"type": "github"
797
-
},
798
-
"original": {
799
-
"owner": "nix-systems",
800
-
"repo": "default",
801
-
"type": "github"
802
-
}
803
-
},
804
-
"systems_5": {
805
-
"locked": {
806
-
"lastModified": 1681028828,
807
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
808
-
"owner": "nix-systems",
809
-
"repo": "default",
810
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
811
-
"type": "github"
812
-
},
813
-
"original": {
814
-
"owner": "nix-systems",
815
-
"repo": "default",
816
-
"type": "github"
817
-
}
818
-
},
819
-
"systems_6": {
820
-
"locked": {
821
-
"lastModified": 1681028828,
822
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
823
-
"owner": "nix-systems",
824
-
"repo": "default",
825
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
826
-
"type": "github"
827
-
},
828
-
"original": {
829
-
"owner": "nix-systems",
830
-
"repo": "default",
831
-
"type": "github"
832
-
}
833
-
},
834
683
"utils": {
835
684
"locked": {
836
685
"lastModified": 1678901627,
···
843
692
"original": {
844
693
"owner": "numtide",
845
694
"repo": "flake-utils",
695
+
"type": "github"
696
+
}
697
+
},
698
+
"wrapper-manager": {
699
+
"inputs": {
700
+
"nixpkgs": [
701
+
"nvim",
702
+
"nixpkgs"
703
+
]
704
+
},
705
+
"locked": {
706
+
"lastModified": 1747562021,
707
+
"narHash": "sha256-XfF+5zjoWbAcAiGNb++og6yDGJRwWYpADr9P6WuieQA=",
708
+
"owner": "viperml",
709
+
"repo": "wrapper-manager",
710
+
"rev": "f2b0bec5140403cf24cae96f6764d97b5d59b0e2",
711
+
"type": "github"
712
+
},
713
+
"original": {
714
+
"owner": "viperml",
715
+
"repo": "wrapper-manager",
846
716
"type": "github"
847
717
}
848
718
}
+47
-43
flake.nix
+47
-43
flake.nix
···
1
1
{
2
-
inputs = {
3
-
nixpkgs-2211.url = "github:nixos/nixpkgs/nixos-22.11";
4
-
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
5
-
master.url = "github:nixos/nixpkgs/master";
6
-
nixpkgs-insync-v3.url = "github:nixos/nixpkgs?ref=32fdc268e921994e3f38088486ddfe765d11df93";
7
-
8
-
switcher.url = "github:nobbz/nix-switcher?ref=main";
9
-
switcher.inputs.nixpkgs.follows = "unstable";
10
-
switcher.inputs.flake-parts.follows = "parts";
11
-
12
-
parts.url = "github:hercules-ci/flake-parts";
13
-
14
-
programsdb.url = "github:wamserma/flake-programs-sqlite";
15
-
programsdb.inputs.nixpkgs.follows = "unstable";
16
-
17
-
# The following is required to make flake-parts work.
18
-
nixpkgs.follows = "nixpkgs-unstable";
19
-
unstable.follows = "nixpkgs-unstable";
20
-
stable.follows = "nixpkgs-2211";
21
-
22
-
nix.url = "github:nixos/nix";
23
-
24
-
nil.url = "github:oxalica/nil";
25
-
26
-
home-manager.url = "github:nix-community/home-manager";
27
-
home-manager.inputs.nixpkgs.follows = "unstable";
28
-
29
-
flake-utils.url = "github:numtide/flake-utils";
30
-
31
-
emacs.url = "github:nix-community/emacs-overlay";
32
-
emacs.inputs.nixpkgs.follows = "master";
33
-
34
-
nixos-vscode-server.url = "github:msteen/nixos-vscode-server";
35
-
36
-
sops-nix.url = "github:Mic92/sops-nix";
37
-
38
-
alejandra.url = "github:kamadorueda/alejandra/3.0.0";
39
-
};
40
-
41
2
outputs = {parts, ...} @ inputs:
42
3
parts.lib.mkFlake {inherit inputs;} {
43
4
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
···
47
8
imports = [
48
9
./parts/auxiliary.nix
49
10
./parts/home_configs.nix
11
+
./parts/home_modules.nix
12
+
./parts/nixos_modules.nix
50
13
./parts/system_configs.nix
51
14
52
15
./nixos/configurations
53
16
./home/configurations
54
17
18
+
./home/modules
19
+
./nixos/modules
20
+
55
21
./packages
56
22
];
57
23
58
24
flake = {
59
-
nixosModules = import ./nixos/modules inputs;
60
-
61
-
homeModules = import ./home/modules inputs;
62
-
63
25
mixedModules = import ./mixed inputs;
64
26
65
27
checks.x86_64-linux = import ./checks inputs;
66
28
};
67
29
};
30
+
31
+
inputs = {
32
+
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
33
+
# nixpkgs-insync-v3.url = "github:nixos/nixpkgs?ref=32fdc268e921994e3f38088486ddfe765d11df93";
34
+
nixpkgs-insync-v3.follows = "nixpkgs";
35
+
nixpkgs-pre-rust.url = "github:nixos/nixpkgs?ref=57d0d4a8f302";
36
+
37
+
nvim.url = "github:nobbz/nobbz-vim";
38
+
nvim.inputs.parts.follows = "parts";
39
+
nvim.inputs.nixpkgs.follows = "nixpkgs";
40
+
41
+
switcher.url = "github:nobbz/nix-switcher?ref=main";
42
+
switcher.inputs.nixpkgs.follows = "nixpkgs";
43
+
switcher.inputs.flake-parts.follows = "parts";
44
+
45
+
parts.url = "github:hercules-ci/flake-parts";
46
+
parts.inputs.nixpkgs-lib.follows = "nixpkgs";
47
+
48
+
programsdb.url = "github:wamserma/flake-programs-sqlite";
49
+
programsdb.inputs.nixpkgs.follows = "nixpkgs";
50
+
51
+
nix.url = "github:nixos/nix";
52
+
nix.inputs.flake-parts.follows = "parts";
53
+
# a libgit2 in the current version fails to build with the nix provided patches.
54
+
# therefore using upstreams pin for now.
55
+
# nix.inputs.nixpkgs.follows = "nixpkgs";
56
+
57
+
nix-gl.url = "github:nix-community/nixgl";
58
+
nix-gl.inputs.nixpkgs.follows = "nixpkgs";
59
+
60
+
home-manager.url = "github:nix-community/home-manager";
61
+
home-manager.inputs.nixpkgs.follows = "nixpkgs";
62
+
63
+
emacs.url = "github:nix-community/emacs-overlay";
64
+
emacs.inputs.nixpkgs.follows = "nixpkgs";
65
+
emacs.inputs.nixpkgs-stable.follows = "nixpkgs";
66
+
67
+
nixos-vscode-server.url = "github:msteen/nixos-vscode-server";
68
+
nixos-vscode-server.inputs.nixpkgs.follows = "nixpkgs";
69
+
70
+
sops-nix.url = "github:Mic92/sops-nix";
71
+
};
68
72
}
-9
home/configurations/default.nix
-9
home/configurations/default.nix
···
1
1
_: {
2
-
_file = ./default.nix;
3
-
4
2
nobbz.homeConfigurations."nmelzer@mimas".system = "x86_64-linux";
5
-
nobbz.homeConfigurations."nmelzer@enceladeus".system = "x86_64-linux";
6
-
nobbz.homeConfigurations."nmelzer@hyperion".system = "aarch64-linux";
7
3
nobbz.homeConfigurations."nmelzer@phoebe".system = "x86_64-linux";
8
-
9
-
nobbz.homeConfigurations."nmelzer@Titan.local" = {
10
-
system = "aarch64-darwin";
11
-
hostname = "titan";
12
-
};
13
4
}
-39
home/configurations/nmelzer_at_enceladeus.nix
-39
home/configurations/nmelzer_at_enceladeus.nix
···
1
-
{self, ...}: {
2
-
config,
3
-
pkgs,
4
-
lib,
5
-
...
6
-
}: {
7
-
_file = ./nmelzer_at_enceladeus.nix;
8
-
9
-
config = {
10
-
nixpkgs.allowedUnfree = ["google-chrome" "vscode"];
11
-
12
-
nixpkgs.config.contentAddressedByDefault = false;
13
-
14
-
activeProfiles = ["browsing" "development"];
15
-
16
-
xsession.windowManager.awesome.autostart = [
17
-
"${pkgs.blueman}/bin/blueman-applet"
18
-
"${pkgs.networkmanagerapplet}/bin/nm-applet"
19
-
];
20
-
21
-
programs.emacs.enable = lib.mkForce false;
22
-
23
-
services.rustic = {
24
-
enable = true;
25
-
globs = let
26
-
mkHome = e: "${config.home.homeDirectory}/${e}";
27
-
mkIgnore = e: "!${e}";
28
-
29
-
home = map mkHome [".cache" ".cabal" ".cargo" ".emacs.d/eln-cache" ".emacs.d/.cache" ".gem" ".gradle" ".hex" ".kube" ".local" ".m2" ".minikube" ".minishift" ".mix" ".mozilla" "npm" ".opam" ".rancher" ".vscode-oss" "go/pkg"];
30
-
patterns = ["_build" "deps" "result" "target" ".elixir_ls" "ccls-cache" ".direnv"];
31
-
in
32
-
map mkIgnore (home ++ patterns);
33
-
oneFileSystem = true;
34
-
repo = "rest:https://restic.mimas.internal.nobbz.dev/nobbz";
35
-
};
36
-
37
-
home.packages = [pkgs.vscode];
38
-
};
39
-
}
-43
home/configurations/nmelzer_at_hyperion.nix
-43
home/configurations/nmelzer_at_hyperion.nix
···
1
-
{
2
-
unstable,
3
-
self,
4
-
...
5
-
}: {
6
-
config,
7
-
pkgs,
8
-
lib,
9
-
...
10
-
}: {
11
-
_file = ./nmelzer_at_hyperion.nix;
12
-
13
-
config = {
14
-
nixpkgs.allowedUnfree = ["vscode"];
15
-
# nixpkgs.config.allowBroken = true;
16
-
17
-
activeProfiles = ["development"];
18
-
19
-
dconf.enable = true;
20
-
21
-
enabledLanguages = [];
22
-
23
-
xsession.enable = lib.mkForce false;
24
-
xsession.windowManager.awesome.enable = lib.mkForce false;
25
-
xsession.numlock.enable = lib.mkForce false;
26
-
27
-
programs.emacs.splashScreen = false;
28
-
29
-
home.packages = builtins.attrValues {
30
-
inherit (pkgs) vscode keepassxc nix-output-monitor;
31
-
inherit (pkgs.gnome) gnome-tweaks;
32
-
};
33
-
34
-
programs.htop = {
35
-
settings = {
36
-
detailed_cpu_time = true;
37
-
};
38
-
};
39
-
};
40
-
# environment.pathsToLink = [ "/share/zsh" ];
41
-
}
42
-
# /nix/store/7skqa8vxfydq7w3cix55ffvkmjb3b5da-python-2.7.18
43
-
+107
-82
home/configurations/nmelzer_at_mimas.nix
+107
-82
home/configurations/nmelzer_at_mimas.nix
···
1
-
{
2
-
master,
3
-
unstable,
4
-
self,
5
-
...
6
-
}: {
1
+
{self, ...}: {
7
2
config,
8
3
pkgs,
9
4
lib,
10
5
...
11
6
}: {
12
-
_file = ./nmelzer_at_mimas.nix;
7
+
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian"];
13
8
14
-
config = {
15
-
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian"];
9
+
activeProfiles = ["browsing" "development"];
16
10
17
-
activeProfiles = ["browsing" "development"];
11
+
sops.age.sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
12
+
sops.defaultSopsFile = "${self}/secrets/mimas/nmelzer/default.yaml";
18
13
19
-
sops.age.sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
20
-
sops.defaultSopsFile = "${self}/secrets/mimas/nmelzer/default.yaml";
14
+
sops.secrets.rustic.path = "${config.xdg.configHome}/rustic/password";
21
15
22
-
sops.secrets.rustic.path = "${config.xdg.configHome}/rustic/password";
16
+
dconf.enable = true;
23
17
24
-
dconf.enable = true;
18
+
home.packages = builtins.attrValues {
19
+
inherit (pkgs) keybase-gui freerdp keepassxc nix-output-monitor discord;
20
+
inherit (pkgs) obsidian;
21
+
inherit (pkgs) gnome-tweaks;
22
+
inherit (pkgs) vscode wezterm;
23
+
};
25
24
26
-
enabledLanguages = ["nix"];
25
+
programs.obs-studio.enable = true;
26
+
programs.obs-studio.plugins = builtins.attrValues {
27
+
inherit (pkgs.obs-studio-plugins) obs-backgroundremoval;
28
+
};
29
+
programs.htop = {
30
+
settings = {
31
+
detailed_cpu_time = true;
32
+
};
33
+
# meters.right = [
34
+
# { kind = "Battery"; mode = 1; }
35
+
# "Tasks"
36
+
# "LoadAverage"
37
+
# "Uptime"
38
+
# ];
39
+
};
27
40
28
-
programs.emacs.splashScreen = false;
41
+
programs.yazi.enable = true;
29
42
30
-
home.packages = let
31
-
mpkgs = import master {
32
-
inherit (config.nixpkgs) config;
33
-
inherit (pkgs) system;
34
-
};
35
-
in
36
-
builtins.attrValues {
37
-
inherit (pkgs) keybase-gui freerdp keepassxc nix-output-monitor discord;
38
-
inherit (pkgs) obsidian;
39
-
inherit (pkgs.gnome) gnome-tweaks;
40
-
# https://nixpk.gs/pr-tracker.html?pr=248167
41
-
# ^^ once in unstable, revert this commit ^^
42
-
inherit (mpkgs) vscode;
43
-
};
43
+
xsession.windowManager.awesome.autostart = [
44
+
"${pkgs.blueman}/bin/blueman-applet"
45
+
"${pkgs.networkmanagerapplet}/bin/nm-applet"
46
+
];
44
47
45
-
programs.obs-studio.enable = true;
46
-
programs.htop = {
47
-
settings = {
48
-
detailed_cpu_time = true;
49
-
};
50
-
# meters.right = [
51
-
# { kind = "Battery"; mode = 1; }
52
-
# "Tasks"
53
-
# "LoadAverage"
54
-
# "Uptime"
55
-
# ];
56
-
};
48
+
systemd.user.tmpfiles.rules = [
49
+
"d ${config.home.homeDirectory}/tmp 700 ${config.home.username} users 14d"
50
+
];
57
51
58
-
xsession.windowManager.awesome.autostart = [
59
-
"${pkgs.blueman}/bin/blueman-applet"
60
-
"${pkgs.networkmanagerapplet}/bin/nm-applet"
61
-
];
52
+
services = {
53
+
keybase.enable = true;
54
+
kbfs.enable = true;
55
+
insync.enable = true;
56
+
playerctld.enable = true;
57
+
flameshot.enable = true;
62
58
63
-
services = {
64
-
keybase.enable = true;
65
-
kbfs.enable = true;
66
-
insync.enable = true;
67
-
playerctld.enable = true;
68
-
flameshot.enable = true;
69
-
70
-
rustic = {
71
-
enable = true;
72
-
passwordFile = config.sops.secrets.rustic.path;
73
-
globs = let
74
-
mkHome = e: "${config.home.homeDirectory}/${e}";
75
-
mkIgnore = e: "!${e}";
59
+
rustic = {
60
+
enable = true;
61
+
passwordFile = config.sops.secrets.rustic.path;
62
+
globs = let
63
+
mkHome = e: "${config.home.homeDirectory}/${e}";
64
+
mkIgnore = e: "!${e}";
76
65
77
-
home = map mkHome ["Downloads" ".cache" ".cabal" ".cargo" ".emacs.d/eln-cache" ".emacs.d/.cache" ".gem" ".gradle" ".hex" ".kube" ".local" ".m2" ".minikube" ".minishift" ".mix" ".mozilla" "npm" ".opam" ".rancher" ".vscode-oss" "go/pkg" "timmelzer@gmail.com/restic_repos" ".local/share/libvirt" ".bitmonero"];
78
-
patterns = ["_build" "Cache" "deps" "result" "target" ".elixir_ls" "ccls-cache" ".direnv" "direnv" "node_modules"];
79
-
in
80
-
map mkIgnore (home ++ patterns);
81
-
oneFileSystem = true;
82
-
repo = "rest:https://restic.mimas.internal.nobbz.dev/nobbz";
83
-
};
66
+
home = map mkHome ["Downloads" ".cache" ".cabal" ".cargo" ".emacs.d/eln-cache" ".emacs.d/.cache" ".gem" ".gradle" ".hex" ".kube" ".local" ".m2" ".minikube" ".minishift" ".mix" ".mozilla" "npm" ".opam" ".rancher" ".vscode-oss" "go/pkg" "timmelzer@gmail.com/restic_repos" ".local/share/libvirt" ".bitmonero"];
67
+
patterns = ["_build" "Cache" "deps" "result" "target" ".elixir_ls" "ccls-cache" ".direnv" "direnv" "node_modules"];
68
+
in
69
+
map mkIgnore (home ++ patterns);
70
+
oneFileSystem = true;
71
+
repo = "rest:https://restic.mimas.internal.nobbz.dev/nobbz";
84
72
};
73
+
};
85
74
86
-
systemd.user.services = {
87
-
rustic.Unit.After = ["sops-nix.service"];
88
-
keybase-gui = {
89
-
Unit = {
90
-
Description = "Keybase GUI";
91
-
Requires = ["keybase.service" "kbfs.service"];
92
-
After = ["keybase.service" "kbfs.service"];
93
-
};
94
-
Service = {
95
-
ExecStart = "${pkgs.keybase-gui}/share/keybase/Keybase";
96
-
PrivateTmp = true;
97
-
# Slice = "keybase.slice";
98
-
};
75
+
systemd.user.services = {
76
+
rustic.Unit.After = ["sops-nix.service"];
77
+
keybase-gui = {
78
+
Unit = {
79
+
Description = "Keybase GUI";
80
+
Requires = ["keybase.service" "kbfs.service"];
81
+
After = ["keybase.service" "kbfs.service"];
82
+
};
83
+
Service = {
84
+
ExecStart = "${pkgs.keybase-gui}/share/keybase/Keybase";
85
+
PrivateTmp = true;
86
+
# Slice = "keybase.slice";
99
87
};
100
88
};
101
89
};
102
-
# environment.pathsToLink = [ "/share/zsh" ];
90
+
91
+
xdg.configFile = {
92
+
"rustic/mimas-hetzner.toml".text =
93
+
# toml
94
+
''
95
+
[repository]
96
+
repository = "rclone:hetzner-restic:mimas"
97
+
password-file = "${config.sops.secrets.rustic.path}"
98
+
'';
99
+
"rustic/mimas.toml".text =
100
+
# toml
101
+
''
102
+
[repository]
103
+
repository = "rest:https://restic.mimas.internal.nobbz.dev/mimas"
104
+
password-file = "${config.sops.secrets.rustic.path}"
105
+
106
+
[copy]
107
+
targets = ["mimas-hetzner"]
108
+
'';
109
+
110
+
"rustic/nobbz-hetzner.toml".text =
111
+
# toml
112
+
''
113
+
[repository]
114
+
repository = "rclone:hetzner-restic:nobbz"
115
+
password-file = "${config.sops.secrets.rustic.path}"
116
+
'';
117
+
"rustic/nobbz.toml".text =
118
+
# toml
119
+
''
120
+
[repository]
121
+
repository = "rest:https://restic.mimas.internal.nobbz.dev/nobbz"
122
+
password-file = "${config.sops.secrets.rustic.path}"
123
+
124
+
[copy]
125
+
targets = ["nobbz-hetzner"]
126
+
'';
127
+
};
128
+
129
+
home.stateVersion = "20.09";
103
130
}
104
-
# /nix/store/7skqa8vxfydq7w3cix55ffvkmjb3b5da-python-2.7.18
105
-
+23
-4
home/configurations/nmelzer_at_phoebe.nix
+23
-4
home/configurations/nmelzer_at_phoebe.nix
···
1
-
{self, ...}: {
1
+
{
2
+
self,
3
+
nix,
4
+
...
5
+
}: {
2
6
config,
3
7
pkgs,
4
8
lib,
···
6
10
}: let
7
11
sshConfigPath = "${config.home.homeDirectory}/.ssh";
8
12
inherit (lib.hm) dag;
13
+
spkgs = self.packages.${pkgs.system};
9
14
in {
10
-
_file = ./nmelzer_at_phoebe.nix;
11
-
12
15
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"];
13
16
nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"];
17
+
profiles.base.needsGL = true;
18
+
19
+
nix.checkConfig = false;
20
+
nix.settings.extra-experimental-features = ["flakes" "nix-command"];
21
+
nix.extraOptions = "!include ${config.sops.secrets."access-tokens".path}";
22
+
nix.package = nix.packages.${pkgs.system}.nix-cli;
14
23
15
24
activeProfiles = ["development"];
16
25
···
18
27
sops.defaultSopsFile = "${self}/secrets/phoebe/nmelzer/default.yaml";
19
28
20
29
sops.secrets.ssh.path = "${sshConfigPath}/nightwing_config";
30
+
31
+
sops.secrets."access-tokens" = {
32
+
path = "${config.home.homeDirectory}/.config/nix/access-tokens.conf";
33
+
mode = "0400";
34
+
sopsFile = "${self}/secrets/users/nmelzer/default.yaml";
35
+
};
21
36
22
37
sops.secrets."github" = {
23
38
path = "${sshConfigPath}/github";
···
44
59
45
60
home.packages = builtins.attrValues {
46
61
inherit (pkgs) keepassxc nix-output-monitor discord obsidian vscode slack;
62
+
inherit (config.nix) package;
63
+
inherit (spkgs) switcher;
47
64
};
48
65
49
66
xsession.windowManager.awesome.enable = lib.mkForce false;
···
51
68
52
69
services.playerctld.enable = true;
53
70
54
-
home.file."${config.gtk.gtk2.configLocation}".force = true;
71
+
gtk.gtk2.force = true;
55
72
56
73
programs.ssh.includes = [
57
74
config.sops.secrets.ssh.path
···
71
88
user = "nmelzer";
72
89
});
73
90
};
91
+
92
+
home.stateVersion = "20.09";
74
93
}
-22
home/configurations/nmelzer_at_titan.nix
-22
home/configurations/nmelzer_at_titan.nix
···
1
-
{self, ...}: {
2
-
pkgs,
3
-
lib,
4
-
...
5
-
}: {
6
-
_file = ./nmelzer_at_titan.nix;
7
-
8
-
nixpkgs.allowedUnfree = [];
9
-
10
-
activeProfiles = ["base" "development"];
11
-
enabledLanguages = [];
12
-
13
-
xsession.enable = lib.mkForce false;
14
-
xsession.windowManager.awesome.enable = lib.mkForce false;
15
-
xsession.numlock.enable = lib.mkForce false;
16
-
17
-
gtk.theme.package = lib.mkForce null;
18
-
19
-
home.packages = builtins.attrValues {
20
-
inherit (pkgs) neovim;
21
-
};
22
-
}
+19
-28
home/modules/default.nix
+19
-28
home/modules/default.nix
···
1
-
inputs: {
2
-
"profiles" = import ./profiles inputs;
3
-
"profiles/base" = import ./profiles/base inputs;
4
-
"profiles/browsing" = import ./profiles/browsing inputs;
5
-
"profiles/development" = import ./profiles/development inputs;
1
+
{
2
+
nobbz.homeManagerModules = {
3
+
"profiles" = ./profiles;
4
+
"profiles/base" = ./profiles/base;
5
+
"profiles/browsing" = ./profiles/browsing;
6
+
"profiles/development" = ./profiles/development;
6
7
7
-
"languages" = import ./languages inputs;
8
-
"languages/nix" = import ./languages/nix inputs;
8
+
"programs/advcp" = ./programs/advcp;
9
+
"programs/eza" = ./programs/eza;
10
+
"programs/ghostty" = ./programs/ghostty;
11
+
"programs/nixpkgs" = ./programs/nixpkgs;
12
+
"programs/p10k" = ./programs/p10k;
13
+
"programs/rbw" = ./programs/rbw;
14
+
"programs/wezterm" = ./programs/wezterm;
9
15
10
-
"programs/advcp" = import ./programs/advcp inputs;
11
-
"programs/emacs" = import ./programs/emacs inputs;
12
-
"programs/emacs/beacon" = import ./programs/emacs/beacon.nix inputs;
13
-
"programs/emacs/company" = import ./programs/emacs/company.nix inputs;
14
-
"programs/emacs/helm" = import ./programs/emacs/helm.nix inputs;
15
-
"programs/emacs/lib" = import ./programs/emacs/lib.nix inputs;
16
-
"programs/emacs/lsp" = import ./programs/emacs/lsp.nix inputs;
17
-
"programs/emacs/projectile" = import ./programs/emacs/projectile.nix inputs;
18
-
"programs/emacs/telephoneline" = import ./programs/emacs/telephoneline.nix inputs;
19
-
"programs/emacs/whichkey" = import ./programs/emacs/whichkey inputs;
20
-
"programs/eza" = import ./programs/eza inputs;
21
-
"programs/nixpkgs" = import ./programs/nixpkgs inputs;
22
-
"programs/openshift" = import ./programs/openshift inputs;
23
-
"programs/p10k" = import ./programs/p10k inputs;
16
+
"services/insync" = ./services/insync;
17
+
"services/rustic" = ./services/rustic;
24
18
25
-
"services/insync" = import ./services/insync inputs;
26
-
"services/restic" = import ./services/restic inputs;
27
-
"services/rustic" = import ./services/rustic inputs;
28
-
29
-
"misc/awesome" = import ./misc/awesome inputs;
30
-
"misc/home" = import ./misc/home inputs;
31
-
"misc/rofi" = import ./misc/rofi inputs;
19
+
"misc/awesome" = ./misc/awesome;
20
+
"misc/home" = ./misc/home;
21
+
"misc/rofi" = ./misc/rofi;
22
+
};
32
23
}
-19
home/modules/languages/default.nix
-19
home/modules/languages/default.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
langsEnabler = let
7
-
reducer = l: r: {"${r}".enable = true;} // l;
8
-
in
9
-
builtins.foldl' reducer {} config.enabledLanguages;
10
-
in {
11
-
_file = ./default.nix;
12
-
13
-
options.enabledLanguages = lib.mkOption {
14
-
default = [];
15
-
type = lib.types.listOf lib.types.str;
16
-
};
17
-
18
-
config = {languages = langsEnabler;};
19
-
}
-39
home/modules/languages/nix/default.nix
-39
home/modules/languages/nix/default.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
pkgs,
5
-
...
6
-
}: let
7
-
cfg = config.languages.nix;
8
-
9
-
# rnixLsp = rnix-lsp.defaultPackage.x86_64-linux;
10
-
rnixLsp = pkgs.rnix-lsp;
11
-
in {
12
-
_file = ./default.nix;
13
-
14
-
options.languages.nix = {
15
-
enable = lib.mkEnableOption "Enable support for the nix language";
16
-
};
17
-
18
-
config = lib.mkIf cfg.enable {
19
-
programs.emacs.extraPackages = ep: [ep.lsp-mode ep.nix-mode ep.flycheck];
20
-
21
-
programs.emacs.extraInit = ''
22
-
(require 'lsp-mode)
23
-
24
-
;; make lsp-mode aware of nix
25
-
(add-to-list 'lsp-language-id-configuration '(nix-mode . "nix"))
26
-
(lsp-register-client
27
-
(make-lsp-client :new-connection (lsp-stdio-connection '("${rnixLsp}/bin/rnix-lsp"))
28
-
:major-modes '(nix-mode)
29
-
:server-id 'nix))
30
-
31
-
(add-hook 'nix-mode-hook
32
-
(lambda ()
33
-
(lsp)
34
-
(subword-mode)
35
-
(company-mode)
36
-
(flycheck-mode)))
37
-
'';
38
-
};
39
-
}
+1
-3
home/modules/misc/awesome/default.nix
+1
-3
home/modules/misc/awesome/default.nix
···
79
79
-- }}}
80
80
'';
81
81
in {
82
-
_file = ./default.nix;
83
-
84
82
options.xsession.windowManager.awesome = {
85
83
terminalEmulator = lib.mkOption {
86
84
type = lib.types.str;
87
-
default = "${pkgs.konsole}/bin/konsole";
85
+
default = "${lib.getExe pkgs.wezterm}";
88
86
};
89
87
90
88
lockCommand = lib.mkOption {
+1
-12
home/modules/misc/home/default.nix
+1
-12
home/modules/misc/home/default.nix
···
1
-
{
2
-
nixpkgs-2211,
3
-
unstable,
4
-
self,
5
-
...
6
-
}: {
1
+
{self, ...}: {
7
2
config,
8
3
pkgs,
9
4
lib,
···
11
6
}: let
12
7
self' = self.packages.${pkgs.system};
13
8
in {
14
-
_file = ./default.nix;
15
-
16
9
profiles.base.enable = true;
17
10
fonts.fontconfig.enable = true;
18
11
···
27
20
28
21
packages = let
29
22
p = pkgs;
30
-
s = self';
31
23
in [
32
24
p.cachix
33
25
p.exercism
34
26
p.tmate
35
-
s."dracula/konsole"
36
27
37
28
# There is a conflict with the ZSH completion plugin, installed by default
38
29
# therefore we need to override here
···
48
39
exec ${p.timewarrior}/bin/timew "$@"
49
40
'')
50
41
];
51
-
52
-
stateVersion = "20.09";
53
42
};
54
43
}
+2
-2
home/modules/misc/rofi/common.rasi
+2
-2
home/modules/misc/rofi/common.rasi
+23
-17
home/modules/misc/rofi/default.nix
+23
-17
home/modules/misc/rofi/default.nix
···
1
1
{self, ...}: {
2
2
pkgs,
3
3
lib,
4
+
npins,
4
5
...
5
6
}: let
6
7
self' = self.packages.x86_64-linux;
7
8
8
-
launcherConfig = pkgs.writeText "launcher-config" ''
9
-
configuration {
10
-
modes: "drun#run#ssh";
11
-
}
12
-
@import "${./common.rasi}"
9
+
common_rasi = pkgs.runCommandNoCC "common.rasi" {preferLocalBuild = true;} ''
10
+
substitute ${./common.rasi} $out \
11
+
--subst-var-by TERMINAL ${lib.getExe pkgs.wezterm}
13
12
'';
14
13
15
-
windowSwitcherConfig = pkgs.writeText "window-switcher-config" ''
16
-
configuration {
17
-
modes: "window";
18
-
}
19
-
@import "${./common.rasi}"
14
+
catppuccin = pkgs.runCommandNoCC "catppuccin.rasi" {preferLocalBuild = true;} ''
15
+
substitute ${npins.catppuccin-rofi}/catppuccin-default.rasi $out \
16
+
--replace-fail '"catppuccin-mocha"' '"${npins.catppuccin-rofi}/themes/catppuccin-mocha.rasi"'
20
17
'';
21
18
22
-
emojiConfig = pkgs.writeText "window-switcher-config" ''
23
-
configuration {
24
-
modes: "emoji#unicode:${self'."rofi/unicode"}/bin/rofiunicode.sh";
25
-
}
26
-
@import "${./common.rasi}"
19
+
writeConfig = name: body:
20
+
pkgs.writeText name
21
+
# rasi
22
+
''
23
+
configuration {
24
+
${body}
25
+
}
26
+
@theme "${catppuccin}"
27
+
@import "${common_rasi}"
28
+
'';
29
+
30
+
windowSwitcherConfig = writeConfig "window-switcher-config" ''modes: "window";'';
31
+
emojiConfig = writeConfig "emoji-config" ''modes: "emoji#unicode:${self'."rofi/unicode"}/bin/rofiunicode.sh";'';
32
+
launcherConfig = writeConfig "launcher-config" ''
33
+
modes: "drun#run#ssh";
34
+
ssh-command: "{terminal} ssh {host}";
27
35
'';
28
36
29
37
wrapper = rofi: config:
···
49
57
windowSwitcher = wrapper windowSwitcherPkg windowSwitcherConfig;
50
58
emoji = wrapper emojiPkg emojiConfig;
51
59
in {
52
-
_file = ./default.nix;
53
-
54
60
xsession.windowManager.awesome.launcher = "${lib.getExe launcher} -show drun";
55
61
xsession.windowManager.awesome.windowSwitcher = "${lib.getExe windowSwitcher} -show window";
56
62
xsession.windowManager.awesome.emojiPicker = "${lib.getExe emoji} -show emoji";
+11
home/modules/profiles/base/colums-fix.patch
+11
home/modules/profiles/base/colums-fix.patch
···
1
+
--- a/fzf-tab.zsh
2
+
+++ b/fzf-tab.zsh
3
+
@@ -102,7 +102,7 @@ builtin unalias -m '[^+]*'
4
+
5
+
# must run with user options; don't move `emulate -L zsh` above this line
6
+
(( $+builtins[fzf-tab-compcap-generate] )) && fzf-tab-compcap-generate -i
7
+
- COLUMNS=500 _ftb__main_complete "$@" || ret=$?
8
+
+ _ftb__main_complete "$@" || ret=$?
9
+
(( $+builtins[fzf-tab-compcap-generate] )) && fzf-tab-compcap-generate -o
10
+
11
+
emulate -L zsh -o extended_glob
+93
-29
home/modules/profiles/base/default.nix
+93
-29
home/modules/profiles/base/default.nix
···
1
-
{self, ...}: {
1
+
{
2
+
self,
3
+
nix,
4
+
nvim,
5
+
nix-gl,
6
+
...
7
+
}: {
2
8
config,
3
9
lib,
4
10
pkgs,
···
7
13
}: let
8
14
cfg = config.profiles.base;
9
15
10
-
inherit (self.packages.${pkgs.system}) emacs;
11
16
inherit (lib.hm) dag;
12
17
13
18
# TODO: make these a bit more nice, so that repeating the hosts and individual config isn't necessary.
···
26
31
cp $src $out/_nix
27
32
'';
28
33
};
34
+
35
+
fzf-tab = pkgs.stdenv.mkDerivation {
36
+
pname = "fzf-tab";
37
+
version = "0-unstable-${npins.fzf-tab.revision}";
38
+
39
+
src = npins.fzf-tab;
40
+
41
+
# we need this patch due to a bug between fzf-tab and p10k:
42
+
# https://github.com/Aloxaf/fzf-tab/issues/176
43
+
patches = [./colums-fix.patch];
44
+
45
+
installPhase = ''
46
+
mkdir -p $out
47
+
cp -rv . $out
48
+
'';
49
+
};
29
50
in {
30
-
_file = ./default.nix;
31
-
32
51
options.profiles.base = {
33
52
enable = lib.mkEnableOption "The base profile, should be always enabled";
53
+
54
+
needsGL = lib.mkEnableOption "nix-gl wrappers";
34
55
};
35
56
36
57
config = lib.mkIf cfg.enable {
58
+
sops.secrets.nix-community = {
59
+
path = "${config.home.homeDirectory}/.ssh/nix-community";
60
+
mode = "0400";
61
+
sopsFile = "${self}/secrets/users/nmelzer/nix-community";
62
+
format = "binary";
63
+
};
64
+
65
+
programs.rbw.enable = true;
66
+
37
67
manual.manpages.enable = false;
38
68
39
69
services.vscode-server.enable = lib.mkDefault pkgs.stdenv.isLinux;
40
70
41
-
home.sessionVariables = rec {
42
-
EDITOR = "emacs -nw";
43
-
VISUAL = "emacs";
44
-
GIT_EDITOR = EDITOR;
71
+
home.sessionVariables = {
72
+
EDITOR = "nvim";
45
73
};
46
74
47
75
gtk.enable = true;
48
-
gtk.theme.package = pkgs.gnome.gnome-themes-extra;
76
+
gtk.theme.package = pkgs.gnome-themes-extra;
49
77
gtk.theme.name = "Adwaita-dark";
50
78
79
+
services.pueue.enable = true;
80
+
51
81
home.keyboard.layout = "de";
52
82
home.packages = let
53
83
optisave =
···
71
101
| sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \
72
102
"$(numfmt --to=none --format="%'f" ''${saved})"
73
103
'';
104
+
neovide =
105
+
if cfg.needsGL
106
+
then
107
+
pkgs.writeShellScriptBin nvim.packages.x86_64-linux.neovide.meta.mainProgram ''
108
+
exec ${lib.getExe nix-gl.packages.x86_64-linux.nixGLIntel} ${lib.getExe nvim.packages.x86_64-linux.neovide} "$@"
109
+
''
110
+
else nvim.packages.x86_64-linux.neovide;
74
111
in
75
-
[optisave pkgs.hydra-check] ++ lib.optionals pkgs.stdenv.isLinux [pkgs.dconf];
112
+
lib.mkMerge [
113
+
[optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.neovim neovide]
114
+
(lib.mkIf pkgs.stdenv.isLinux [pkgs.dconf])
115
+
];
76
116
77
117
# dconf.enable = lib.mkMerge [
78
118
# (lib.mkIf pkgs.stdenv.isLinux true)
···
89
129
90
130
programs = {
91
131
advancedCopy.enable = true;
92
-
bat.enable = true;
93
132
direnv.enable = true;
94
133
direnv.nix-direnv.enable = true;
134
+
direnv.nix-direnv.package = pkgs.nix-direnv.override {nix = nix.packages.${pkgs.system}.default;};
95
135
eza.enable = true;
96
136
fzf.enable = true;
97
137
home-manager.enable = true;
98
138
htop.enable = true;
99
139
jq.enable = true;
100
140
p10k.enable = true;
141
+
zoxide.enable = true;
142
+
143
+
bat = {
144
+
enable = true;
145
+
146
+
config.theme = "mocha";
147
+
148
+
themes.mocha = {
149
+
src = npins.catppuccin-bat;
150
+
file = "themes/Catppuccin Mocha.tmTheme";
151
+
};
152
+
};
101
153
102
154
ssh = {
103
155
enable = true;
···
110
162
user = "nmelzer";
111
163
};
112
164
165
+
"build-box.nix-community.org" = {
166
+
identityFile = config.sops.secrets.nix-community.path;
167
+
user = "nobbz";
168
+
};
169
+
170
+
"aarch64-build-box.nix-community.org" = {
171
+
identityFile = config.sops.secrets.nix-community.path;
172
+
user = "nobbz";
173
+
};
174
+
113
175
"ryzen-ubuntu.adoring_suess.zerotier" = {
114
176
hostname = "172.24.237.73";
115
177
};
···
139
201
};
140
202
};
141
203
142
-
emacs = {
143
-
enable = true;
144
-
package = emacs;
145
-
};
146
-
147
204
tmux = {
148
205
enable = true;
149
206
150
207
clock24 = true;
151
208
historyLimit = 10000;
152
-
terminal = "screen-256color";
209
+
terminal = "tmux-256color";
210
+
211
+
plugins = [
212
+
{
213
+
plugin = pkgs.tmuxPlugins.catppuccin;
214
+
extraConfig = ''
215
+
set -g @catppuccin_flavor "mocha"
216
+
set -g @catppuccin_window_status_style "rounded"
217
+
'';
218
+
}
219
+
];
220
+
221
+
extraConfig = ''
222
+
set -ag terminal-overrides ",xterm-256color:RGB"
223
+
'';
153
224
};
154
225
155
226
zsh = {
156
227
enable = true;
157
228
158
229
enableCompletion = true;
159
-
enableAutosuggestions = true;
230
+
autosuggestion.enable = true;
160
231
161
232
autocd = true;
162
233
···
167
238
plugins = [
168
239
{
169
240
name = "fzf-tab";
170
-
src = npins.fzf-tab;
241
+
src = fzf-tab;
171
242
}
172
243
{
173
244
name = "nix-zsh-complete.zsh";
···
180
251
}
181
252
];
182
253
183
-
initExtra = ''
254
+
initContent = ''
184
255
bindkey "^[[1;5D" backward-word
185
256
bindkey "^[[1;5C" forward-word
186
257
···
188
259
'';
189
260
190
261
sessionVariables = {
191
-
# NIX_PATH = builtins.concatStringsSep ":" [
192
-
# "nixpkgs=${inputs.nixpkgs}"
193
-
# "nixos-config=/etc/nixos/configuration.nix"
194
-
# "/nix/var/nix/profiles/per-user/root/channels"
195
-
# ];
262
+
PROMPT_EOL_MARK = "%F{243}ยถ%f";
196
263
};
197
264
198
265
shellAliases.fixstore = "sudo nix-store --verify --check-contents --repair";
266
+
shellAliases.pq = "pueue";
199
267
};
200
268
};
201
-
202
-
# htop has some nastly problem that is saves a new config when you change by which column to sort
203
-
# this workaround will always overwrite any changes made by the running system
204
-
xdg.configFile = lib.mkIf (config.programs.htop.settings != {}) {"htop/htoprc".force = true;};
205
269
};
206
270
}
-2
home/modules/profiles/browsing/default.nix
-2
home/modules/profiles/browsing/default.nix
-2
home/modules/profiles/default.nix
-2
home/modules/profiles/default.nix
+19
-14
home/modules/profiles/development/default.nix
+19
-14
home/modules/profiles/development/default.nix
···
6
6
}: let
7
7
cfg = config.profiles.development;
8
8
in {
9
-
_file = ./default.nix;
10
-
11
9
options.profiles.development = {
12
10
enable =
13
11
lib.mkEnableOption
···
15
13
};
16
14
17
15
config = lib.mkIf cfg.enable {
18
-
programs.emacs = {
19
-
extraPackages = ep: [ep.magit];
20
-
extraInit = ''
21
-
;; prepare magit use from shell
22
-
(require 'magit)
23
-
(global-git-commit-mode)
16
+
programs.jujutsu = {
17
+
enable = true;
18
+
settings = {
19
+
user = {
20
+
name = config.programs.git.userName;
21
+
email = config.programs.git.userEmail;
22
+
};
24
23
25
-
;; let magit autorefresh on file save within emacs
26
-
(add-hook 'after-save-hook 'magit-after-save-refresh-status t)
27
-
'';
24
+
ui.diff.tool = [config.programs.git.extraConfig.diff.external "$left" "$right"];
25
+
};
28
26
};
29
27
30
28
programs.gh.enable = true;
···
40
38
inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;};
41
39
interpreter = "${pkgs.bash}/bin/bash";
42
40
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
43
-
} ''
41
+
}
42
+
# bash
43
+
''
44
44
git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" |
45
45
fzf --ansi --no-sort --reverse --tiebreak=index \
46
46
--bind=ctrl-s:toggle-sort \
···
53
53
inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;};
54
54
interpreter = "${pkgs.bash}/bin/bash";
55
55
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
56
-
} ''
56
+
}
57
+
# bash
58
+
''
57
59
# Function to determine the ref type
58
60
function get_ref_type() {
59
61
local ref="$1"
···
133
135
hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f'';
134
136
comfix = "!${mkFixupAlias "fixup"}";
135
137
comreb = "!${mkFixupAlias "rebase"}";
138
+
show = "show --ext-diff";
139
+
lp = "log -p --ext-diff";
136
140
};
137
141
138
142
extraConfig = {
139
143
init.defaultBranch = "main";
144
+
diff.external = lib.getExe pkgs.difftastic;
140
145
pull.rebase = false;
141
146
rerere.enabled = true;
142
147
};
···
181
186
];
182
187
};
183
188
184
-
home.packages = [pkgs.ripgrep];
189
+
home.packages = [pkgs.ripgrep pkgs.difftastic];
185
190
};
186
191
}
-2
home/modules/programs/advcp/default.nix
-2
home/modules/programs/advcp/default.nix
-33
home/modules/programs/emacs/beacon.nix
-33
home/modules/programs/emacs/beacon.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
cfg = config.programs.emacs.packages.beacon;
7
-
in {
8
-
_file = ./beacon.nix;
9
-
10
-
options.programs.emacs.packages.beacon = {
11
-
enable = lib.mkOption {
12
-
type = lib.types.bool;
13
-
default = true;
14
-
description = ''
15
-
Enable `beacon' for emacs.
16
-
'';
17
-
};
18
-
};
19
-
20
-
config = lib.mkIf cfg.enable {
21
-
programs.emacs.localPackages."init-beacon" = {
22
-
tag = "Setup beacon";
23
-
comments = [];
24
-
requires = [];
25
-
code = ''
26
-
;; enable the beacon minor mode globally.
27
-
(beacon-mode 1)
28
-
'';
29
-
};
30
-
31
-
programs.emacs.extraPackages = ep: [ep.beacon];
32
-
};
33
-
}
-40
home/modules/programs/emacs/company.nix
-40
home/modules/programs/emacs/company.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
# emacs = config.programs.emacs;
7
-
inherit (config.programs) emacs;
8
-
in {
9
-
_file = ./company.nix;
10
-
11
-
config = lib.mkIf emacs.enable {
12
-
programs.emacs.extraPackages = ep: [ep.company];
13
-
14
-
programs.emacs.localPackages."init-company" = {
15
-
tag = "Setup and initialise company";
16
-
comments = [];
17
-
requires = [];
18
-
code = ''
19
-
;; company
20
-
(setq tab-always-indent 'complete)
21
-
(add-to-list 'completion-styles 'initials t)
22
-
23
-
;; (eval-when-compile (require 'company))
24
-
25
-
(add-hook 'after-init-hook 'global-company-mode)
26
-
(with-eval-after-load 'company
27
-
28
-
;; (diminish 'company-mode "CMP")
29
-
(define-key company-mode-map (kbd "M-+") '("complete" . 'company-complete))
30
-
(define-key company-active-map (kbd "M-+") '("change backend" . 'company-other-backend))
31
-
(define-key company-active-map (kbd "C-n") '("next" . 'company-select-next))
32
-
(define-key company-active-map (kbd "C-p") '("previous" . 'company-select-previous))
33
-
(setq-default company-dabbrev-other-buffers 'all
34
-
company-tooltip-align-annotations t
35
-
company-minimum-prefix-length 1
36
-
company-idle-delay 0.05))
37
-
'';
38
-
};
39
-
};
40
-
}
-181
home/modules/programs/emacs/default.nix
-181
home/modules/programs/emacs/default.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
pkgs,
5
-
...
6
-
}: let
7
-
emacsEnabled = config.programs.emacs.enable;
8
-
cfg = config.programs.emacs;
9
-
10
-
bool2Lisp = b:
11
-
if b
12
-
then "t"
13
-
else "nil";
14
-
15
-
confPackages = let
16
-
fileContent =
17
-
lib.attrsets.mapAttrs'
18
-
(k: v: {
19
-
name = "${k}";
20
-
value = {
21
-
ep = v.packageRequires;
22
-
src =
23
-
config.lib.emacs.generatePackage k v.tag v.comments v.requires
24
-
v.code;
25
-
};
26
-
})
27
-
cfg.localPackages;
28
-
derivations =
29
-
lib.attrsets.mapAttrs
30
-
(k: v: {
31
-
# ep = v.ep;
32
-
inherit (v) ep;
33
-
src = pkgs.writeText "${k}.el" v.src;
34
-
})
35
-
fileContent;
36
-
in
37
-
derivations;
38
-
39
-
lispRequires = let
40
-
names = lib.attrsets.mapAttrsToList (n: _: n) cfg.localPackages;
41
-
sorted = builtins.sort (l: r: l < r) names;
42
-
required = builtins.map (r: "(require '${r})") sorted;
43
-
in
44
-
builtins.concatStringsSep "\n" required;
45
-
in {
46
-
_file = ./default.nix;
47
-
48
-
options.programs.emacs = {
49
-
splashScreen = lib.mkOption {
50
-
type = lib.types.bool;
51
-
default = true;
52
-
example = false;
53
-
description = ''
54
-
Enable the startup screen.
55
-
'';
56
-
};
57
-
58
-
localPackages = lib.mkOption {
59
-
type = lib.types.attrsOf (lib.types.submodule (_: {
60
-
options = {
61
-
tag = lib.mkOption {type = lib.types.str;};
62
-
comments = lib.mkOption {type = lib.types.listOf lib.types.str;};
63
-
requires = lib.mkOption {type = lib.types.listOf lib.types.str;};
64
-
code = lib.mkOption {type = lib.types.str;};
65
-
packageRequires = lib.mkOption {
66
-
type = lib.types.unspecified;
67
-
default = _: [];
68
-
};
69
-
};
70
-
}));
71
-
};
72
-
73
-
extraInit = lib.mkOption {
74
-
type = lib.types.lines;
75
-
default = "";
76
-
description = ''
77
-
Extra preferences to add to <filename>init.el</filename>.
78
-
'';
79
-
};
80
-
81
-
module = lib.mkOption {
82
-
description = "Attribute set of modules to link into emacs configuration";
83
-
default = {};
84
-
};
85
-
};
86
-
87
-
config = lib.mkIf emacsEnabled {
88
-
programs.emacs.extraInit = ''
89
-
;; adjust the load-path to find further down required files
90
-
(add-to-list 'load-path
91
-
(expand-file-name "lisp" user-emacs-directory))
92
-
93
-
(fset 'yes-or-no-p 'y-or-n-p)
94
-
95
-
;; Move backups and autosaves out of the way
96
-
(setq backup-directory-alist
97
-
`((".*" . ,temporary-file-directory)))
98
-
(setq auto-save-file-name-transforms
99
-
`((".*" ,temporary-file-directory)))
100
-
101
-
;; use a dark theme
102
-
(load-theme 'dracula t)
103
-
104
-
;; Set a font
105
-
(add-to-list 'default-frame-alist
106
-
'(font . "Cascadia Code PL-10"))
107
-
108
-
;; require all those local packages
109
-
${lispRequires}
110
-
(require 'pest-mode)
111
-
(add-to-list #'auto-mode-alist '("\\.pest\\'" . pest-mode))
112
-
113
-
(global-auto-revert-mode)
114
-
(global-whitespace-mode)
115
-
(global-linum-mode)
116
-
117
-
(setq-default indent-tabs-mode nil)
118
-
(setq-default tab-width 2)
119
-
(setq-default whitespace-style
120
-
'(face
121
-
tabs
122
-
spaces
123
-
trailing
124
-
lines-tail
125
-
newline
126
-
missing-newline-at-eof
127
-
space-before-tab
128
-
indentation
129
-
empty
130
-
space-after-tab
131
-
space-mark
132
-
tab-mark
133
-
newline-mark))
134
-
135
-
;; set splash screen
136
-
(setq inhibit-startup-screen ${bool2Lisp (!cfg.splashScreen)})
137
-
'';
138
-
139
-
programs.emacs.extraPackages = ep:
140
-
[
141
-
ep.company-go
142
-
ep.dracula-theme
143
-
ep.docker-compose-mode
144
-
ep.dockerfile-mode
145
-
ep.go-mode
146
-
ep.markdown-mode
147
-
ep.yaml-mode
148
-
ep.adoc-mode
149
-
ep.k8s-mode
150
-
ep.buttercup
151
-
ep.adoc-mode
152
-
ep.hledger-mode
153
-
ep.typescript-mode
154
-
ep.earthfile-mode
155
-
ep.ledger-mode
156
-
ep.pest-mode
157
-
158
-
# ep.bazel-mode
159
-
160
-
# (ep.trivialBuild { pname = "configuration"; src = confPackages; })
161
-
]
162
-
++ lib.attrsets.mapAttrsToList
163
-
(pname: v:
164
-
ep.trivialBuild {
165
-
inherit pname;
166
-
version = "0.0.0";
167
-
inherit (v) src;
168
-
packageRequires = v.ep ep;
169
-
})
170
-
confPackages;
171
-
172
-
home.file = {
173
-
".emacs.d/init.el" = {
174
-
text =
175
-
config.lib.emacs.generatePackage "init"
176
-
"Initialises emacs configuration" [] []
177
-
cfg.extraInit;
178
-
};
179
-
};
180
-
};
181
-
}
-35
home/modules/programs/emacs/helm.nix
-35
home/modules/programs/emacs/helm.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
emacsCfg = config.programs.emacs;
7
-
in {
8
-
_file = ./helm.nix;
9
-
10
-
config = lib.mkIf emacsCfg.enable {
11
-
programs.emacs = {
12
-
localPackages."init-helm" = {
13
-
tag = "Setup helm";
14
-
comments = [];
15
-
requires = ["helm"];
16
-
packageRequires = ep: [ep.helm ep.helm-rg];
17
-
code = ''
18
-
;; enable and configure auto resize
19
-
(helm-autoresize-mode t)
20
-
(setq-default
21
-
helm-autoresize-max-height 20 ; take at most 20% of the screen
22
-
helm-autoresize-min-height 1) ; get as small as necessary
23
-
24
-
;; set up key bindings
25
-
(global-set-key (kbd "M-x") 'helm-M-x)
26
-
(global-set-key (kbd "C-x C-f") 'helm-find-files)
27
-
(global-set-key (kbd "C-x C-b") 'helm-buffers-list)
28
-
29
-
;; enable helm
30
-
(helm-mode t)
31
-
'';
32
-
};
33
-
};
34
-
};
35
-
}
-62
home/modules/programs/emacs/lib.nix
-62
home/modules/programs/emacs/lib.nix
···
1
-
_: let
2
-
generatePackage = {
3
-
name,
4
-
tagLine,
5
-
commentLines,
6
-
requireList,
7
-
code,
8
-
}: let
9
-
prelude = generatePrelude {inherit name tagLine commentLines;};
10
-
requires = generateRequires requireList;
11
-
postlude = generatePostlude name;
12
-
in ''
13
-
${prelude}
14
-
15
-
${requires}
16
-
17
-
${code}
18
-
19
-
${postlude}
20
-
'';
21
-
22
-
generatePrelude = {
23
-
name,
24
-
tagLine,
25
-
commentLines,
26
-
}: let
27
-
generated = "This file is generated! DO NOT CHANGE!";
28
-
comments =
29
-
builtins.concatStringsSep "\n"
30
-
(builtins.map (l:
31
-
if l == ""
32
-
then ""
33
-
else ";; ${l}")
34
-
([generated] ++ commentLines));
35
-
in ''
36
-
;;; ${name} --- ${tagLine}
37
-
38
-
;;; Commentary:
39
-
40
-
${comments}
41
-
42
-
;;; Code:
43
-
'';
44
-
45
-
generatePostlude = name: ''
46
-
(provide '${name})
47
-
;;; ${name}.el ends here
48
-
'';
49
-
50
-
generateRequires = list: let
51
-
sorted = builtins.sort (l: r: l < r) list;
52
-
required = builtins.map (r: "(require '${r})") sorted;
53
-
in
54
-
builtins.concatStringsSep "\n" required;
55
-
in {
56
-
_file = ./lib.nix;
57
-
58
-
config.lib.emacs.generatePackage = name: tagLine: commentLines: requireList: code:
59
-
generatePackage {
60
-
inherit name code tagLine commentLines requireList;
61
-
};
62
-
}
-67
home/modules/programs/emacs/lsp.nix
-67
home/modules/programs/emacs/lsp.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
cfg = config.programs.emacs.lsp-mode;
7
-
8
-
mode-hooks = with lib; let
9
-
sorted = builtins.sort (l: r: l < r) cfg.languages;
10
-
uni = unique sorted;
11
-
hooks = builtins.map (l: "'${l}-mode-hook") uni;
12
-
add-hooks = builtins.map (h: "(add-hook ${h} #'lsp)") hooks;
13
-
in
14
-
builtins.concatStringsSep "\n" add-hooks;
15
-
in {
16
-
_file = ./lsp.nix;
17
-
18
-
options.programs.emacs.lsp-mode = {
19
-
enable = lib.mkEnableOption "Enables and installs lsp-mode";
20
-
21
-
languages = lib.mkOption {
22
-
type = lib.types.listOf lib.types.str;
23
-
default = [];
24
-
description = ''
25
-
The prefixes of the prog-mode that shall be handled through lsp-mode.
26
-
'';
27
-
example = ["erlang"];
28
-
};
29
-
};
30
-
31
-
config = lib.mkIf cfg.enable {
32
-
programs.emacs = {
33
-
localPackages."init-lsp" = {
34
-
tag = "Setup and prepare the LSP mode";
35
-
comments = [];
36
-
requires = ["lsp-mode"];
37
-
packageRequires = ep: [
38
-
# ep.company-lsp
39
-
ep.helm-lsp
40
-
ep.lsp-mode
41
-
ep.lsp-origami
42
-
ep.lsp-ui
43
-
ep.yasnippet
44
-
];
45
-
code = ''
46
-
(yas-global-mode t)
47
-
48
-
(setq lsp-log-io t)
49
-
(setq lsp-ui-sideline-enable t)
50
-
(setq lsp-ui-doc-enable t)
51
-
(setq lsp-ui-doc-position 'bottom)
52
-
53
-
(eval-after-load 'company
54
-
'(push 'company-lsp company-backend))
55
-
56
-
(dolist (match
57
-
'("[/\\\\].direnv$"
58
-
"[/\\\\]node_modules$"
59
-
"/nix/store"))
60
-
(add-to-list 'lsp-file-watch-ignored match))
61
-
62
-
${mode-hooks}
63
-
'';
64
-
};
65
-
};
66
-
};
67
-
}
-36
home/modules/programs/emacs/polymode/default.nix
-36
home/modules/programs/emacs/polymode/default.nix
···
1
-
{
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
inherit (config.programs) emacs;
7
-
in {
8
-
_file = ./default.nix;
9
-
10
-
config = lib.mkIf emacs.enable {
11
-
programs.emacs.extraPackages = ep: [ep.polymode];
12
-
13
-
programs.emacs.localPackages."init-polymode" = {
14
-
tag = "Setup and initialise polymode";
15
-
comments = [];
16
-
requires = [];
17
-
code = ''
18
-
;; polymode
19
-
(add-to-list 'auto-mode-alist '("\\.nix$" . poly-nix-mode))
20
-
21
-
(define-hostmode poly-nix-hostmode :mode 'nix-mode)
22
-
23
-
(define-innermode poly-elisp-expr-nix-innermode
24
-
:mode 'emacs-lisp-mode
25
-
:head-matcher (cons "'''\n\\( *;;.*\n\\)" 1)
26
-
:tail-matcher " *''';$"
27
-
:head-mode 'body
28
-
:tail-mode 'host)
29
-
30
-
(define-polymode poly-nix-mode
31
-
:hostmode 'poly-nix-hostmode
32
-
:innermodes '(poly-elisp-expr-nix-innermode))
33
-
'';
34
-
};
35
-
};
36
-
}
-27
home/modules/programs/emacs/projectile.nix
-27
home/modules/programs/emacs/projectile.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
emacsCfg = config.programs.emacs;
7
-
in {
8
-
_file = ./phojectile.nix;
9
-
10
-
config = lib.mkIf emacsCfg.enable {
11
-
programs.emacs = {
12
-
localPackages."init-projectile" = {
13
-
tag = "Setup projectile";
14
-
comments = [];
15
-
requires = ["projectile" "helm-projectile" "tramp"];
16
-
packageRequires = ep: [ep.projectile ep.helm-projectile];
17
-
code = ''
18
-
;; enable projectile
19
-
(projectile-mode t)
20
-
(helm-projectile-on)
21
-
22
-
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
23
-
'';
24
-
};
25
-
};
26
-
};
27
-
}
-33
home/modules/programs/emacs/telephoneline.nix
-33
home/modules/programs/emacs/telephoneline.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
ecfg = config.programs.emacs;
7
-
in {
8
-
_file = ./telephoneline.nix;
9
-
10
-
config = lib.mkIf ecfg.enable {
11
-
programs.emacs.localPackages."init-telephoneline" = {
12
-
tag = "Setup telephone line";
13
-
comments = [];
14
-
requires = [];
15
-
code = ''
16
-
;; set up telephone line
17
-
(setq-default
18
-
telephone-line-lhs '((accent . (telephone-line-vc-segment
19
-
telephone-line-erc-modified-channels-segment
20
-
telephone-line-process-segment))
21
-
(nil . (telephone-line-minor-mode-segment
22
-
telephone-line-buffer-segment)))
23
-
telephone-line-rhs '((nil . (telephone-line-misc-info-segment))
24
-
(accent . (telephone-line-major-mode-segment))
25
-
(accent . (telephone-line-airline-position-segment))))
26
-
27
-
(telephone-line-mode t)
28
-
'';
29
-
};
30
-
31
-
programs.emacs.extraPackages = ep: [ep.telephone-line];
32
-
};
33
-
}
-74
home/modules/programs/emacs/whichkey/default.nix
-74
home/modules/programs/emacs/whichkey/default.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}:
6
-
with lib; let
7
-
cfg = config.programs.emacs.whichkey;
8
-
enabled = config.programs.emacs.enable;
9
-
10
-
keyReplacementType = types.listOf (types.submodule (_: {
11
-
options = {
12
-
keys = lib.mkOption {
13
-
type = types.str;
14
-
description = ''
15
-
Keys that shall get a description.
16
-
'';
17
-
};
18
-
replace = lib.mkOption {
19
-
type = types.str;
20
-
description = ''
21
-
Human readable description for the keycombination
22
-
'';
23
-
};
24
-
};
25
-
}));
26
-
27
-
replacements =
28
-
lib.concatStringsSep "\n "
29
-
(builtins.map ({
30
-
keys,
31
-
replace,
32
-
...
33
-
}: ''"${keys}" "${replace}"'')
34
-
cfg.replacement);
35
-
in {
36
-
_file = ./default.nix;
37
-
38
-
options.programs.emacs.whichkey = {
39
-
replacement = lib.mkOption {type = keyReplacementType;};
40
-
};
41
-
42
-
config = lib.mkIf enabled {
43
-
programs.emacs = {
44
-
whichkey.replacement = [
45
-
{
46
-
keys = "C-x C-f";
47
-
replace = "find file";
48
-
}
49
-
{
50
-
keys = "C-x C-s";
51
-
replace = "write file";
52
-
}
53
-
{
54
-
keys = "C-x C-c";
55
-
replace = "leave emacs";
56
-
}
57
-
];
58
-
extraPackages = ep: [ep.which-key];
59
-
localPackages."init-whichkey" = {
60
-
tag = "Setup and initialise whichkey";
61
-
comments = [];
62
-
requires = [];
63
-
code = ''
64
-
;; which-key
65
-
(which-key-mode t)
66
-
(setq-default which-key-idle-delay 0.1)
67
-
68
-
(which-key-add-key-based-replacements
69
-
${replacements})
70
-
'';
71
-
};
72
-
};
73
-
};
74
-
}
+1
-2
home/modules/programs/eza/default.nix
+1
-2
home/modules/programs/eza/default.nix
···
6
6
}: let
7
7
cfg = config.programs.eza;
8
8
in {
9
-
_file = ./default.nix;
10
-
11
9
config = lib.mkIf cfg.enable {
12
10
programs.eza.package = pkgs.eza;
13
11
programs.zsh.shellAliases = {
14
12
ll = "eza --header --git --classify --long --binary --group --time-style=long-iso --links --all --all --group-directories-first --sort=name";
13
+
tree = "eza --tree";
15
14
};
16
15
};
17
16
}
+15
home/modules/programs/ghostty/default.nix
+15
home/modules/programs/ghostty/default.nix
···
1
+
_: {pkgs, ...}: {
2
+
xdg.configFile."ghostty/config".text =
3
+
# toml
4
+
''
5
+
font-family = "Departure Mono"
6
+
7
+
## uncomment once keybindings have been set to something I am familiar
8
+
## with. The bar contains the menu, which I need for splits for nowโฆ
9
+
# gtk-titlebar = false
10
+
11
+
theme = "catppuccin-mocha"
12
+
'';
13
+
14
+
home.packages = [pkgs.ghostty];
15
+
}
-2
home/modules/programs/nixpkgs/default.nix
-2
home/modules/programs/nixpkgs/default.nix
-25
home/modules/programs/openshift/default.nix
-25
home/modules/programs/openshift/default.nix
···
1
-
_: {
2
-
pkgs,
3
-
lib,
4
-
config,
5
-
...
6
-
}: let
7
-
cfg = config.programs.openshift;
8
-
in {
9
-
_file = ./default.nix;
10
-
11
-
options.programs.openshift = {
12
-
enable = lib.mkEnableOption "Tools to manage openshift instances";
13
-
};
14
-
15
-
config = lib.mkIf cfg.enable {
16
-
home.packages = [pkgs.sops pkgs.openshift (lib.setPrio 0 pkgs.kubectl) pkgs.kubernetes-helm];
17
-
18
-
programs.zsh.initExtra = ''
19
-
# Enable autocomplete for oc, kubectl and helm
20
-
eval "$(${pkgs.openshift}/bin/oc completion zsh)"
21
-
eval "$(${pkgs.kubectl}/bin/kubectl completion zsh)"
22
-
eval "$(${pkgs.kubernetes-helm}/bin/helm completion zsh)"
23
-
'';
24
-
};
25
-
}
-2
home/modules/programs/p10k/default.nix
-2
home/modules/programs/p10k/default.nix
+17
home/modules/programs/rbw/default.nix
+17
home/modules/programs/rbw/default.nix
···
1
+
_: {
2
+
config,
3
+
lib,
4
+
pkgs,
5
+
...
6
+
}: let
7
+
cfg = config.programs.rbw;
8
+
in {
9
+
config = lib.mkIf cfg.enable {
10
+
programs.rbw.settings = {
11
+
inherit (pkgs) pinentry;
12
+
13
+
email = "timmelzer@gmail.com";
14
+
base_url = "https://passwords.mimas.internal.nobbz.dev";
15
+
};
16
+
};
17
+
}
+60
home/modules/programs/wezterm/default.nix
+60
home/modules/programs/wezterm/default.nix
···
1
+
_: {
2
+
config,
3
+
pkgs,
4
+
...
5
+
}: {
6
+
home.packages = [pkgs.wezterm];
7
+
8
+
xdg.configFile."wezterm/wezterm.lua".text =
9
+
# lua
10
+
''
11
+
-- Pull in the wezterm API
12
+
local wezterm = require 'wezterm'
13
+
14
+
-- This table will hold the configuration.
15
+
local config = {}
16
+
17
+
-- In newer versions of wezterm, use the config_builder which will
18
+
-- help provide clearer error messages
19
+
if wezterm.config_builder then
20
+
config = wezterm.config_builder()
21
+
end
22
+
23
+
-- This is where you actually apply your config choices
24
+
25
+
-- bells
26
+
config.audible_bell = "Disabled"
27
+
config.visual_bell = {
28
+
fade_in_function = "EaseIn",
29
+
fade_in_duration_ms = 150,
30
+
fade_out_function = "EaseOut",
31
+
fade_out_duration_ms = 150,
32
+
}
33
+
34
+
-- For example, changing the color scheme:
35
+
config.color_scheme = "Catppuccin Mocha"
36
+
37
+
-- show a scrollbar
38
+
config.enable_scroll_bar = true
39
+
40
+
-- forbid window size change on change of fontsize
41
+
config.adjust_window_size_when_changing_font_size = false
42
+
43
+
-- disable ligatures
44
+
config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }
45
+
46
+
-- set the font
47
+
config.font_dirs = { '${pkgs.departure-mono}/share/fonts/otf' }
48
+
config.font_size = 11.0 * 1.25
49
+
config.font = wezterm.font("Departure Mono")
50
+
51
+
-- setting up keybindings
52
+
config.keys = {
53
+
-- The default is `C-Z` (so also pressing SHIFT), I prefer to not have SHIFT pressed
54
+
{ key = 'z', mods = 'CTRL', action = wezterm.action.TogglePaneZoomState, },
55
+
}
56
+
57
+
-- and finally, return the configuration to wezterm
58
+
return config
59
+
'';
60
+
}
+1
-3
home/modules/services/insync/default.nix
+1
-3
home/modules/services/insync/default.nix
···
10
10
}: let
11
11
cfg = config.services.insync;
12
12
in {
13
-
_file = ./default.nix;
14
-
15
13
options.services.insync = {
16
14
enable = lib.mkEnableOption "Insync cloud sync tool";
17
15
···
23
21
inherit (config.nixpkgs) config;
24
22
};
25
23
in
26
-
ipkgs.insync-v3;
24
+
ipkgs.insync;
27
25
description = ''
28
26
The insync package to use.
29
27
-87
home/modules/services/restic/default.nix
-87
home/modules/services/restic/default.nix
···
1
-
{self, ...}: {
2
-
config,
3
-
lib,
4
-
pkgs,
5
-
self,
6
-
...
7
-
}: let
8
-
cfg = config.services.restic;
9
-
10
-
bin = "${cfg.package}/bin/restic";
11
-
excludes = builtins.concatStringsSep " " (builtins.map (e: "--exclude=${e}") cfg.exclude);
12
-
xFlags = lib.optionalString cfg.oneFileSystem "-x";
13
-
compressFlag = "--compression ${cfg.compression}";
14
-
flags = "${xFlags} ${compressFlag} ${excludes}";
15
-
16
-
command = "${bin} --tag home -vv backup ${flags} %h";
17
-
in {
18
-
_file = ./default.nix;
19
-
20
-
options.services.restic = {
21
-
enable = lib.mkEnableOption "Restic Backup Tool";
22
-
23
-
package = lib.mkOption {
24
-
type = lib.types.package;
25
-
default = pkgs.restic;
26
-
description = "Restic derivation to use";
27
-
};
28
-
29
-
exclude = lib.mkOption {
30
-
type = lib.types.listOf lib.types.str;
31
-
default = [];
32
-
description = "Corresponds to `--exclude`. Use `%h` instead of `~`";
33
-
};
34
-
35
-
oneFileSystem = lib.mkOption {
36
-
type = lib.types.bool;
37
-
default = false;
38
-
description = "If true, exclude other file systems, don't cross filesystem boundaries and subvolumes";
39
-
};
40
-
41
-
repo = lib.mkOption {
42
-
type = lib.types.str;
43
-
description = "Location of the repository";
44
-
};
45
-
46
-
compression = lib.mkOption {
47
-
type = lib.types.enum ["off" "auto" "max"];
48
-
description = "The compression mode to use";
49
-
default = "auto";
50
-
};
51
-
52
-
# TODO: Add options for inlcude, password file, etc
53
-
};
54
-
55
-
config = lib.mkIf cfg.enable {
56
-
home.packages = [cfg.package];
57
-
58
-
systemd.user.services.restic-backup = {
59
-
Unit = {
60
-
Description = "Restic Backup Tool";
61
-
StartLimitIntervalSec = "25m";
62
-
StartLimitBurst = "4";
63
-
};
64
-
65
-
Service = {
66
-
Environment = [
67
-
"PATH=${lib.makeBinPath [pkgs.openssh]}"
68
-
"RESTIC_PASSWORD_FILE=%h/.config/restic/password"
69
-
"RESTIC_REPOSITORY=${cfg.repo}"
70
-
];
71
-
Type = "oneshot";
72
-
ExecStart = command;
73
-
Restart = "on-failure";
74
-
RestartSec = "2m";
75
-
};
76
-
};
77
-
78
-
systemd.user.timers.restic-backup = {
79
-
Unit.Description = "Restic periodic backup";
80
-
Timer = {
81
-
Unit = "restic-backup.service";
82
-
OnCalendar = "hourly";
83
-
};
84
-
Install.WantedBy = ["timers.target"];
85
-
};
86
-
};
87
-
}
-4
home/modules/services/rustic/default.nix
-4
home/modules/services/rustic/default.nix
···
6
6
}: let
7
7
cfg = config.services.rustic;
8
8
9
-
osConfig = config;
10
-
11
9
bin = lib.getExe cfg.package;
12
10
13
11
globs = let lines = map (g: "${g}\n") cfg.globs; in lib.concatStrings lines;
···
62
60
};
63
61
};
64
62
in {
65
-
_file = ./default.nix;
66
-
67
63
options.services.rustic = {
68
64
enable = lib.mkEnableOption "rustic";
69
65
-2
mixed/ip_addresses.nix
-2
mixed/ip_addresses.nix
-2
nixos/configurations/bootloader/enceladeus.nix
-2
nixos/configurations/bootloader/enceladeus.nix
-2
nixos/configurations/bootloader/hyperion.nix
-2
nixos/configurations/bootloader/hyperion.nix
-2
nixos/configurations/bootloader/mimas.nix
-2
nixos/configurations/bootloader/mimas.nix
-4
nixos/configurations/default.nix
-4
nixos/configurations/default.nix
-164
nixos/configurations/enceladeus.nix
-164
nixos/configurations/enceladeus.nix
···
1
-
# Edit this configuration file to define what should be installed on
2
-
# your system. Help is available in the configuration.nix(5) man page
3
-
# and in the NixOS manual (accessible by running โnixos-helpโ).
4
-
_: {
5
-
config,
6
-
pkgs,
7
-
lib,
8
-
...
9
-
}: {
10
-
_file = ./enceladeus.nix;
11
-
12
-
nix.allowedUnfree = ["b43-firmware" "zerotierone"];
13
-
nixpkgs.config.contentAddressedByDefault = false;
14
-
nix.distributedBuilds = true;
15
-
# nix.enabledMachines = ["mimas"];
16
-
17
-
# nixpkgs.hostPlatform.gcc.arch = "core2";
18
-
# nixpkgs.hostPlatform.system = "x86_64-linux";
19
-
# nixpkgs.buildPlatform.gcc.arch = "haswell";
20
-
# nixpkgs.buildPlatform.system = "x86_64-linux";
21
-
22
-
nixpkgs.overlays = [
23
-
# (final: prev: {
24
-
# abseil-cpp = nixpkgs.legacyPackages.${final.system}.abseil-cpp;
25
-
# #bash = prev.bash.override { stdenv = nixpkgs.legacyPackages.${final.system}.stdenv; };
26
-
# })
27
-
];
28
-
29
-
services.lvm.boot.thin.enable = true;
30
-
boot.kernelPackages = pkgs.linuxPackages_6_6; # WiFi kernel module doesn't build on newer kernels
31
-
services.lvm.dmeventd.enable = true;
32
-
boot.blacklistedKernelModules = ["rtl8xxxu"];
33
-
boot.extraModulePackages = with config.boot.kernelPackages; [
34
-
rtl8192eu
35
-
];
36
-
37
-
boot.kernel.sysctl = {
38
-
"vm.swappiness" = 75;
39
-
};
40
-
41
-
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
42
-
# Per-interface useDHCP will be mandatory in the future, so this generated config
43
-
# replicates the default behaviour.
44
-
networking.networkmanager.enable = true;
45
-
networking.networkmanager.unmanaged = [
46
-
"mac:0c:60:76:3f:c1:31"
47
-
];
48
-
networking.enableB43Firmware = true;
49
-
50
-
networking.useDHCP = false;
51
-
networking.interfaces.enp0s25.useDHCP = false;
52
-
networking.interfaces.wlan0.useDHCP = false;
53
-
networking.hostId = "62a007d6"; # required by ZFS
54
-
55
-
# Configure network proxy if necessary
56
-
# networking.proxy.default = "http://user:password@proxy:port/";
57
-
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
58
-
59
-
# Select internationalisation properties.
60
-
i18n.defaultLocale = "en_US.UTF-8";
61
-
console = {
62
-
font = "Lat2-Terminus16";
63
-
keyMap = "de";
64
-
};
65
-
66
-
# Set your time zone.
67
-
time.timeZone = "Europe/Berlin";
68
-
69
-
# List packages installed in system profile. To search, run:
70
-
# $ nix search wget
71
-
environment.systemPackages = with pkgs; [
72
-
unison # Sadly required on the host for unison copy to work :(
73
-
nix-output-monitor
74
-
];
75
-
76
-
# Some programs need SUID wrappers, can be configured further or are
77
-
# started in user sessions.
78
-
programs.gnupg.agent = {
79
-
enable = true;
80
-
enableSSHSupport = true;
81
-
};
82
-
programs.zsh.enable = true;
83
-
84
-
# List services that you want to enable:
85
-
86
-
# Enable the OpenSSH daemon.
87
-
services.openssh.enable = true;
88
-
89
-
# Open ports in the firewall.
90
-
networking.firewall.allowedTCPPorts = [9002];
91
-
# networking.firewall.allowedUDPPorts = [ ... ];
92
-
# Or disable the firewall altogether.
93
-
# networking.firewall.enable = false;
94
-
networking.firewall.trustedInterfaces = [
95
-
"ztrta4jrxj"
96
-
];
97
-
98
-
# Enable CUPS to print documents.
99
-
# services.printing.enable = true;
100
-
101
-
# Enable sound.
102
-
sound.enable = true;
103
-
hardware.pulseaudio.enable = true;
104
-
105
-
# Enable the X11 windowing system.
106
-
services.xserver.enable = true;
107
-
services.xserver.xkb.layout = "de";
108
-
# services.xserver.xkbOptions = "eurosign:e";
109
-
110
-
# Enable touchpad support.
111
-
services.xserver.libinput.enable = true;
112
-
113
-
# Enable the KDE Desktop Environment.
114
-
services.xserver.displayManager.lightdm.enable = true;
115
-
services.xserver.desktopManager.plasma5.enable = false;
116
-
services.xserver.windowManager.awesome.enable = true;
117
-
118
-
virtualisation.docker.enable = false;
119
-
120
-
# Define a user account. Don't forget to set a password with โpasswdโ.
121
-
users.users = {
122
-
nmelzer = {
123
-
isNormalUser = true;
124
-
shell = pkgs.zsh;
125
-
extraGroups = ["wheel" "networkmanager"];
126
-
};
127
-
128
-
aroemer = {
129
-
isNormalUser = true;
130
-
};
131
-
132
-
proemer = {
133
-
isNormalUser = true;
134
-
};
135
-
};
136
-
137
-
services.prometheus = {
138
-
exporters = {
139
-
node = {
140
-
enable = true;
141
-
enabledCollectors = ["systemd"];
142
-
port = 9002;
143
-
};
144
-
};
145
-
};
146
-
147
-
# This value determines the NixOS release with which your system is to be
148
-
# compatible, in order to avoid breaking some software such as database
149
-
# servers. You should change this only after NixOS release notes say you
150
-
# should.
151
-
system.stateVersion = "19.09"; # Did you read the comment?
152
-
153
-
security.sudo.extraRules = [
154
-
{
155
-
commands = [
156
-
{
157
-
command = "/run/current-system/sw/bin/nixos-rebuild";
158
-
options = ["NOPASSWD"];
159
-
}
160
-
];
161
-
groups = ["wheel"];
162
-
}
163
-
];
164
-
}
-4
nixos/configurations/hardware/enceladeus.nix
-4
nixos/configurations/hardware/enceladeus.nix
···
2
2
# and may be overwritten by future invocations. Please make changes
3
3
# to /etc/nixos/configuration.nix instead.
4
4
{lib, ...}: {
5
-
_file = ./enceladeus.nix;
6
-
7
-
imports = [];
8
-
9
5
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci"];
10
6
boot.initrd.kernelModules = ["dm-snapshot"];
11
7
boot.kernelModules = ["kvm-intel" "wl"];
-2
nixos/configurations/hardware/hyperion.nix
-2
nixos/configurations/hardware/hyperion.nix
+8
-4
nixos/configurations/hardware/mimas.nix
+8
-4
nixos/configurations/hardware/mimas.nix
···
6
6
pkgs,
7
7
...
8
8
}: {
9
-
_file = ./mimas.nix;
10
-
11
9
imports = [];
12
10
13
11
boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "rtsx_pci_sdmmc"];
···
15
13
boot.kernelModules = ["kvm-intel"];
16
14
boot.kernelParams = ["intel_pstate=active"];
17
15
boot.extraModulePackages = [];
18
-
boot.supportedFilesystems = ["ntfs" "exfat" "avfs"];
16
+
boot.supportedFilesystems = ["ntfs" "exfat" "avfs" "xfs"];
19
17
20
18
hardware.cpu.intel.updateMicrocode = true;
21
19
hardware.enableRedistributableFirmware = true;
···
77
75
options = ["nofail"];
78
76
};
79
77
78
+
fileSystems."/var/lib/actual" = {
79
+
device = "/dev/pool/actual";
80
+
fsType = "xfs";
81
+
options = ["nofail"];
82
+
};
83
+
80
84
fileSystems."/boot" = {
81
85
device = "/dev/disk/by-uuid/7000-3A85";
82
86
fsType = "vfat";
···
92
96
nix.settings.max-jobs = lib.mkDefault 4;
93
97
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
94
98
95
-
hardware.opengl.extraPackages = with pkgs; [
99
+
hardware.graphics.extraPackages = with pkgs; [
96
100
vaapiIntel
97
101
vaapiVdpau
98
102
libvdpau-va-gl
-53
nixos/configurations/hyperion.nix
-53
nixos/configurations/hyperion.nix
···
1
-
_: {pkgs, ...}: {
2
-
_file = ./hyperion.nix;
3
-
4
-
nix.allowedUnfree = ["zerotierone"];
5
-
6
-
networking.hostName = "hyperion";
7
-
networking.networkmanager.enable = true;
8
-
9
-
time.timeZone = "Europe/Berlin";
10
-
11
-
i18n.defaultLocale = "en_US.UTF-8";
12
-
13
-
services.xserver.enable = true;
14
-
15
-
# Enable the LXQT Desktop Environment.
16
-
services.xserver.displayManager.lightdm.enable = true;
17
-
services.xserver.desktopManager.lxqt.enable = true;
18
-
services.xserver.desktopManager.plasma5.enable = true;
19
-
services.xserver.desktopManager.enlightenment.enable = true;
20
-
21
-
services.qemuGuest.enable = true;
22
-
services.spice-vdagentd.enable = true;
23
-
24
-
services.openssh.enable = true;
25
-
26
-
services.acpid.enable = true;
27
-
28
-
# Configure keymap in X11
29
-
services.xserver.xkb = {
30
-
layout = "de";
31
-
variant = "";
32
-
};
33
-
34
-
# Configure console keymap
35
-
console.keyMap = "de";
36
-
37
-
services.printing.enable = true;
38
-
39
-
programs.zsh.enable = true;
40
-
41
-
users.users.nmelzer = {
42
-
isNormalUser = true;
43
-
description = "Norbert Melzer";
44
-
extraGroups = ["networkmanager" "wheel"];
45
-
shell = pkgs.zsh;
46
-
packages = [
47
-
pkgs.firefox
48
-
# thunderbird
49
-
];
50
-
};
51
-
52
-
system.stateVersion = "22.11";
53
-
}
+71
nixos/configurations/mimas/gitea.nix
+71
nixos/configurations/mimas/gitea.nix
···
1
+
{
2
+
pkgs,
3
+
lib,
4
+
config,
5
+
...
6
+
}: let
7
+
writeNuBin = pkgs.writers.writeNuBin.override {makeBinaryWrapper = pkgs.makeShellWrapper;};
8
+
9
+
find = lib.getExe pkgs.findutils;
10
+
git = lib.getExe pkgs.git;
11
+
systemd-notify = lib.getExe' pkgs.systemd "systemd-notify";
12
+
13
+
gitea-gc-script =
14
+
writeNuBin "gitea-gc"
15
+
# nu
16
+
''
17
+
use std log
18
+
19
+
def main [
20
+
repositories_base_folder: string,
21
+
] {
22
+
log info $"Performing garbage collection for all repos in ($repositories_base_folder)"
23
+
24
+
let repo_paths = run-external ${find} $repositories_base_folder "-maxdepth" 2 "-name" '*.git' | lines
25
+
let repo_count = $repo_paths | length
26
+
27
+
run-external ${systemd-notify} "--ready"
28
+
29
+
$repo_paths | enumerate | each {|itm|
30
+
let repo = $itm.item
31
+
let idx = $itm.index
32
+
33
+
let short_name = $repo | str substring --grapheme-clusters ($repositories_base_folder + "/" | str length)..-1
34
+
35
+
log info $"Starting garbage collection for ($short_name)"
36
+
run-external ${systemd-notify} $"--status=($idx + 1)/($repo_count): ($short_name)"
37
+
run-external ${git} "-C" $repo gc "--aggressive" "--no-quiet"
38
+
log info $"Finished garbage collection for ($short_name)"
39
+
}
40
+
41
+
run-external ${systemd-notify} "--stopping"
42
+
43
+
log info "Overall garbage collection suceeded"
44
+
}
45
+
'';
46
+
in {
47
+
systemd = {
48
+
services.gitea-gc = {
49
+
description = "Garbage Collect gitea repositories";
50
+
restartIfChanged = false;
51
+
environment = {
52
+
NU_LOG_LEVEL = "DEBUG";
53
+
};
54
+
serviceConfig = {
55
+
CPUAccounting = true;
56
+
CPUQuota = "200%";
57
+
CPUWeight = "idle";
58
+
ExecStart = "${lib.getExe gitea-gc-script} /var/lib/gitea/repositories";
59
+
NotifyAccess = "all";
60
+
Type = "notify";
61
+
User = config.services.gitea.user;
62
+
};
63
+
};
64
+
65
+
timers.gitea-gc = {
66
+
description = "Garbage Collection for gitea repositories - timer";
67
+
wantedBy = ["timers.target"];
68
+
timerConfig.OnCalendar = "Mon 01:00:00";
69
+
};
70
+
};
71
+
}
+1
-3
nixos/configurations/mimas/paperless.nix
+1
-3
nixos/configurations/mimas/paperless.nix
-2
nixos/configurations/mimas/restic.nix
-2
nixos/configurations/mimas/restic.nix
+212
nixos/configurations/mimas/rustic-timers.nix
+212
nixos/configurations/mimas/rustic-timers.nix
···
1
+
_: {
2
+
config,
3
+
pkgs,
4
+
lib,
5
+
...
6
+
}: let
7
+
profile_name = template: lib.removeSuffix ".toml" config.sops.templates."${template}".path;
8
+
9
+
environment = {
10
+
RUSTIC_NO_PROGRESS = "true";
11
+
RUSTIC_CACHE_DIR = "%T/rustic";
12
+
};
13
+
14
+
mimas_template =
15
+
# toml
16
+
''
17
+
[repository]
18
+
repository = "rest:https://restic.mimas.internal.nobbz.dev/mimas"
19
+
password-file = "${config.sops.secrets.rustic.path}"
20
+
21
+
[copy]
22
+
targets = ["${profile_name "mimas_hetzner.toml"}"]
23
+
'';
24
+
mimas_hetzner_template =
25
+
# toml
26
+
''
27
+
[repository]
28
+
repository = "opendal:sftp"
29
+
password-file = "${config.sops.secrets.rustic.path}"
30
+
31
+
[repository.options]
32
+
endpoint = "ssh://${config.sops.placeholder.rustic-user}.your-storagebox.de:23"
33
+
user = "${config.sops.placeholder.rustic-user}"
34
+
key = "/root/.ssh/id_ed25519"
35
+
root = "/home/mimas"
36
+
'';
37
+
38
+
nobbz_template =
39
+
# toml
40
+
''
41
+
[repository]
42
+
repository = "rest:https://restic.mimas.internal.nobbz.dev/nobbz"
43
+
password-file = "${config.sops.secrets.rustic.path}"
44
+
45
+
[copy]
46
+
targets = ["${profile_name "nobbz_hetzner.toml"}"]
47
+
'';
48
+
49
+
nobbz_hetzner_template =
50
+
# toml
51
+
''
52
+
[repository]
53
+
repository = "opendal:sftp"
54
+
password-file = "${config.sops.secrets.rustic.path}"
55
+
56
+
[repository.options]
57
+
endpoint = "ssh://${config.sops.placeholder.rustic-user}.your-storagebox.de:23"
58
+
user = "${config.sops.placeholder.rustic-user}"
59
+
key = "/root/.ssh/id_ed25519"
60
+
root = "/home/nobbz"
61
+
'';
62
+
63
+
schedule = {
64
+
rustic-mimas-clean = "*-*-* 01:00:00";
65
+
rustic-nobbz-clean = "*-*-* 01:30:00";
66
+
rustic-mimas-hetzner-clean = "*-*-* 02:00:00";
67
+
rustic-nobbz-hetzner-clean = "*-*-* 03:00:00";
68
+
};
69
+
70
+
mkTimer = name: calendar: {
71
+
"${name}" = {
72
+
wantedBy = ["timers.target"];
73
+
timerConfig.OnCalendar = calendar;
74
+
};
75
+
};
76
+
77
+
notify = lib.getExe' pkgs.systemd "systemd-notify";
78
+
in {
79
+
sops.secrets.rustic = {};
80
+
sops.secrets.rustic-user = {};
81
+
82
+
sops.templates."mimas.toml".content = mimas_template;
83
+
sops.templates."mimas_hetzner.toml".content = mimas_hetzner_template;
84
+
sops.templates."nobbz.toml".content = nobbz_template;
85
+
sops.templates."nobbz_hetzner.toml".content = nobbz_hetzner_template;
86
+
87
+
systemd.timers = lib.pipe schedule [
88
+
(lib.mapAttrsToList mkTimer)
89
+
lib.mkMerge
90
+
];
91
+
92
+
systemd.services = {
93
+
rustic-mimas-clean = {
94
+
path = [pkgs.rustic pkgs.openssh];
95
+
inherit environment;
96
+
serviceConfig = {
97
+
NotifyAccess = "all";
98
+
Type = "notify";
99
+
};
100
+
script = ''
101
+
${notify} --ready
102
+
${notify} --status=forget
103
+
rustic forget -P ${profile_name "mimas.toml"} \
104
+
--keep-last 4 \
105
+
--keep-within-hourly 1d \
106
+
--keep-within-daily 5d \
107
+
--keep-within-weekly 35d \
108
+
--keep-within-monthly 100d \
109
+
--keep-within-yearly 2y
110
+
111
+
${notify} --status=prune
112
+
rustic prune -P ${profile_name "mimas.toml"} \
113
+
--max-unused=0B \
114
+
--keep-delete=12h \
115
+
--max-repack=50GiB
116
+
117
+
${notify} --status=copy
118
+
rustic copy -P ${profile_name "mimas.toml"}
119
+
120
+
${notify} --stopping --status=""
121
+
'';
122
+
};
123
+
124
+
rustic-nobbz-clean = {
125
+
path = [pkgs.rustic pkgs.openssh];
126
+
inherit environment;
127
+
serviceConfig = {
128
+
NotifyAccess = "all";
129
+
Type = "notify";
130
+
};
131
+
script = ''
132
+
${notify} --ready
133
+
${notify} --status=forget
134
+
rustic forget -P ${profile_name "nobbz.toml"} \
135
+
--filter-tags home \
136
+
--keep-last 4 \
137
+
--keep-within-hourly 1d \
138
+
--keep-within-daily 5d \
139
+
--keep-within-weekly 35d \
140
+
--keep-within-monthly 100d \
141
+
--keep-within-yearly 2y
142
+
143
+
${notify} --status=prune
144
+
rustic prune -P ${profile_name "nobbz.toml"} \
145
+
--max-unused=0B \
146
+
--keep-delete=12h \
147
+
--max-repack=50GiB
148
+
149
+
${notify} --status=copy
150
+
rustic copy -P ${profile_name "nobbz.toml"}
151
+
152
+
${notify} --stopping --status=""
153
+
'';
154
+
};
155
+
156
+
rustic-nobbz-hetzner-clean = {
157
+
path = [pkgs.rustic pkgs.openssh];
158
+
inherit environment;
159
+
serviceConfig = {
160
+
NotifyAccess = "all";
161
+
Type = "notify";
162
+
};
163
+
script = ''
164
+
${notify} --ready
165
+
${notify} --status=forget
166
+
rustic forget -P ${profile_name "nobbz_hetzner.toml"} \
167
+
--keep-last 1 \
168
+
--keep-within-hourly 2h \
169
+
--keep-within-daily 10d \
170
+
--keep-within-weekly 65d \
171
+
--keep-within-monthly 190d \
172
+
--keep-within-yearly 5y
173
+
174
+
${notify} --status=prune
175
+
rustic prune -P ${profile_name "nobbz_hetzner.toml"} \
176
+
--max-unused 0B \
177
+
--max-repack 20GiB \
178
+
--keep-delete 11h
179
+
180
+
${notify} --stopping --status=""
181
+
'';
182
+
};
183
+
184
+
rustic-mimas-hetzner-clean = {
185
+
path = [pkgs.rustic pkgs.openssh];
186
+
inherit environment;
187
+
serviceConfig = {
188
+
NotifyAccess = "all";
189
+
Type = "notify";
190
+
};
191
+
script = ''
192
+
${notify} --ready
193
+
${notify} --status=forget
194
+
rustic forget -P ${profile_name "mimas_hetzner.toml"} \
195
+
--keep-last 1 \
196
+
--keep-within-hourly 2h \
197
+
--keep-within-daily 10d \
198
+
--keep-within-weekly 65d \
199
+
--keep-within-monthly 190d \
200
+
--keep-within-yearly 5y
201
+
202
+
${notify} --status=prune
203
+
rustic prune -P ${profile_name "mimas_hetzner.toml"} \
204
+
--max-unused 0B \
205
+
--max-repack 20GiB \
206
+
--keep-delete 11h
207
+
208
+
${notify} --stopping --status=""
209
+
'';
210
+
};
211
+
};
212
+
}
-2
nixos/configurations/mimas/vaultwarden.nix
-2
nixos/configurations/mimas/vaultwarden.nix
+34
-29
nixos/configurations/mimas.nix
+34
-29
nixos/configurations/mimas.nix
···
1
1
# Edit this configuration file to define what should be installed on
2
2
# your system. Help is available in the configuration.nix(5) man page
3
3
# and in the NixOS manual (accessible by running โnixos-helpโ).
4
-
{
5
-
self,
6
-
unstable,
7
-
nixpkgs-2211,
8
-
...
9
-
} @ inputs: {
4
+
{self, ...} @ inputs: {
10
5
config,
11
6
pkgs,
12
7
lib,
13
8
...
14
9
}: let
15
-
upkgs = unstable.legacyPackages.x86_64-linux;
16
-
steamPackages = ["steam" "steam-run" "steam-original" "steam-runtime"];
17
-
printerPackages = ["hplip" "samsung-UnifiedLinuxDriver"];
10
+
steamPackages = ["steam" "steam-run" "steam-original" "steam-runtime" "steam-unwrapped"];
18
11
in {
19
-
_file = ./mimas.nix;
20
-
21
12
imports = [
13
+
(import ./mimas/paperless.nix inputs)
22
14
(import ./mimas/restic.nix inputs)
23
-
(import ./mimas/paperless.nix inputs)
15
+
(import ./mimas/rustic-timers.nix inputs)
24
16
(import ./mimas/vaultwarden.nix inputs)
17
+
./mimas/gitea.nix
25
18
];
26
19
20
+
services.tailscale.enable = true;
21
+
22
+
security.pam.services.i3lock.enable = true;
23
+
security.pam.services.i3lock-color.enable = true;
24
+
27
25
sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
28
26
sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml";
29
27
30
28
sops.secrets.restic = {};
31
29
sops.secrets.traefik = {};
32
30
33
-
nix.allowedUnfree = ["zerotierone"] ++ printerPackages ++ steamPackages;
31
+
nix.allowedUnfree = ["zerotierone"] ++ steamPackages;
34
32
nix.settings.experimental-features = ["ca-derivations" "impure-derivations"];
35
33
nix.distributedBuilds = true;
36
34
# nix.enabledMachines = ["enceladeus"];
···
104
102
105
103
# Enable CUPS to print documents.
106
104
services.printing.enable = true;
107
-
services.printing.drivers = [pkgs.hplipWithPlugin pkgs.samsung-unified-linux-driver];
108
105
109
106
services.avahi.enable = true;
110
107
services.avahi.nssmdns4 = true;
···
126
123
# };
127
124
# networking.firewall.allowedTCPPorts = [ 3000 ];
128
125
129
-
# Enable sound.
130
-
sound.enable = true;
131
-
hardware.pulseaudio = {
132
-
enable = true;
133
-
package = pkgs.pulseaudioFull;
134
-
};
126
+
# Enable pulse compat.
127
+
services.pipewire.pulse.enable = true;
128
+
135
129
hardware.bluetooth.enable = true;
136
130
137
131
# Enable the X11 windowing system.
138
132
services.xserver.enable = true;
139
133
services.xserver.xkb.layout = "de";
140
-
# services.xserver.xkbOptions = "eurosign:e";
141
134
142
135
# Enable touchpad support.
143
136
# services.xserver.libinput.enable = true;
144
137
145
138
# Enable the KDE Desktop Environment.
146
-
services.xserver.displayManager.sddm.enable = true;
139
+
services.displayManager.sddm.enable = true;
147
140
services.xserver.desktopManager.plasma5.enable = true;
148
141
services.xserver.windowManager.awesome.enable = true;
149
142
···
163
156
zsh.enableCompletion = false;
164
157
};
165
158
166
-
hardware.opengl.driSupport32Bit = true;
167
-
hardware.pulseaudio.support32Bit = true;
168
-
169
-
hardware.opengl.enable = true;
170
-
hardware.opengl.extraPackages = [pkgs.vaapiIntel];
159
+
hardware.graphics.enable = true;
160
+
hardware.graphics.extraPackages = [pkgs.vaapiIntel];
171
161
172
162
services.gitea = {
173
163
enable = true;
···
188
178
enable = true;
189
179
# storageDriver = "zfs";
190
180
# extraOptions = "--storage-opt zfs.fsname=rpool/local/docker";
191
-
package = upkgs.docker;
181
+
package = pkgs.docker;
192
182
extraOptions = "--dns 1.1.1.1";
193
183
};
194
184
···
262
252
263
253
hardware.keyboard.zsa.enable = true;
264
254
hardware.sane.enable = true;
265
-
hardware.sane.extraBackends = [pkgs.hplipWithPlugin];
266
255
267
256
services.traefik.enable = true;
268
257
systemd.services.traefik.serviceConfig.EnvironmentFile = [config.sops.secrets.traefik.path];
···
398
387
}
399
388
];
400
389
};
390
+
391
+
nix.buildMachines = let
392
+
communityBuilder = name: system: {
393
+
hostName = "${name}.nix-community.org";
394
+
inherit system;
395
+
sshKey = "/root/.ssh/id_ed25519";
396
+
sshUser = "NobbZ";
397
+
maxJobs = 8;
398
+
protocol = "ssh";
399
+
speedFactor = 4;
400
+
supportedFeatures = ["nixos-test" "benchmark" "big-parallel" "kvm"];
401
+
};
402
+
in [
403
+
(communityBuilder "build-box" "x86_64-linux")
404
+
(communityBuilder "aarch64-build.box" "aarch64-linux")
405
+
];
401
406
402
407
# This value determines the NixOS release with which your system is to be
403
408
# compatible, in order to avoid breaking some software such as database
+12
-10
nixos/modules/default.nix
+12
-10
nixos/modules/default.nix
···
1
-
inputs: {
2
-
cachix = import ./cachix inputs;
3
-
distributed = import ./distributed.nix inputs;
4
-
flake = import ./flake.nix inputs;
5
-
hostnames = import ./hostnames.nix inputs;
6
-
kernel = import ./kernel.nix inputs;
7
-
moonlander = import ./moonlander.nix inputs;
8
-
nix = import ./nix.nix inputs;
9
-
switcher = import ./switcher.nix inputs;
10
-
zerotier = import ./zerotier.nix inputs;
1
+
{
2
+
nobbz.nixosModules = {
3
+
cachix = ./cachix;
4
+
distributed = ./distributed.nix;
5
+
flake = ./flake.nix;
6
+
hostnames = ./hostnames.nix;
7
+
kernel = ./kernel.nix;
8
+
moonlander = ./moonlander.nix;
9
+
nix = ./nix.nix;
10
+
switcher = ./switcher.nix;
11
+
zerotier = ./zerotier.nix;
12
+
};
11
13
}
-2
nixos/modules/distributed.nix
-2
nixos/modules/distributed.nix
+5
-11
nixos/modules/flake.nix
+5
-11
nixos/modules/flake.nix
···
1
1
{
2
-
unstable,
3
-
nixpkgs-2211,
4
2
nix,
3
+
nixpkgs,
5
4
programsdb,
6
5
...
7
6
}: {
···
12
11
}: let
13
12
base = "/etc/nixpkgs/channels";
14
13
nixpkgsPath = "${base}/nixpkgs";
15
-
nixpkgs2211Path = "${base}/nixpkgs2211";
16
14
in {
17
-
_file = ./flake.nix;
18
-
19
15
options.nix.flakes.enable = lib.mkEnableOption "nix flakes";
20
16
21
17
config = lib.mkIf config.nix.flakes.enable {
22
18
programs.command-not-found.dbPath = programsdb.packages.${pkgs.system}.programs-sqlite;
23
19
24
20
nix = {
25
-
package = lib.mkDefault nix.packages.${pkgs.system}.nix;
21
+
package = lib.mkDefault nix.packages.${pkgs.system}.nix-cli;
22
+
26
23
settings.experimental-features = ["nix-command" "flakes"];
27
24
28
-
registry.nixpkgs.flake = unstable;
29
-
registry.nixpkgs2211.flake = nixpkgs-2211;
25
+
registry.nixpkgs.flake = nixpkgs;
30
26
31
27
nixPath = [
32
28
"nixpkgs=${nixpkgsPath}"
33
-
"nixpkgs2211=${nixpkgs2211Path}"
34
29
"/nix/var/nix/profiles/per-user/root/channels"
35
30
];
36
31
};
37
32
38
33
systemd.tmpfiles.rules = [
39
-
"L+ ${nixpkgsPath} - - - - ${unstable}"
40
-
"L+ ${nixpkgs2211Path} - - - - ${nixpkgs-2211}"
34
+
"L+ ${nixpkgsPath} - - - - ${nixpkgs}"
41
35
];
42
36
};
43
37
}
-2
nixos/modules/hostnames.nix
-2
nixos/modules/hostnames.nix
-2
nixos/modules/kernel.nix
-2
nixos/modules/kernel.nix
···
10
10
else builtins.attrNames (lib.filterAttrs (_name: value: value) (config.boot.supportedFilesystems // config.boot.initrd.supportedFilesystems));
11
11
zfsUsed = lib.lists.elem "zfs" supportedFilesystems;
12
12
in {
13
-
_file = ./kernel.nix;
14
-
15
13
boot.kernelPackages = lib.mkDefault (
16
14
if zfsUsed
17
15
then pkgs.zfs.latestCompatibleLinuxPackages
-2
nixos/modules/moonlander.nix
-2
nixos/modules/moonlander.nix
-2
nixos/modules/nix.nix
-2
nixos/modules/nix.nix
-2
nixos/modules/switcher.nix
-2
nixos/modules/switcher.nix
+14
-3
nixos/modules/zerotier.nix
+14
-3
nixos/modules/zerotier.nix
···
1
-
_: {
2
-
_file = ./zerotier.nix;
3
-
1
+
{nixpkgs-pre-rust, ...}: {
2
+
config,
3
+
pkgs,
4
+
...
5
+
}: {
4
6
services.zerotierone.enable = true;
5
7
services.zerotierone.joinNetworks = ["8286ac0e4768c8ae"];
8
+
9
+
services.zerotierone.localConf = {};
10
+
11
+
services.zerotierone.package =
12
+
(import nixpkgs-pre-rust {
13
+
inherit (config.nixpkgs) config;
14
+
inherit (pkgs) system;
15
+
})
16
+
.zerotierone;
6
17
}
+28
-16
npins/sources.json
+28
-16
npins/sources.json
···
1
1
{
2
2
"pins": {
3
-
"fzf-tab": {
3
+
"catppuccin-bat": {
4
4
"type": "Git",
5
5
"repository": {
6
6
"type": "GitHub",
7
-
"owner": "Aloxaf",
8
-
"repo": "fzf-tab"
7
+
"owner": "catppuccin",
8
+
"repo": "bat"
9
9
},
10
-
"branch": "master",
11
-
"revision": "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9",
12
-
"url": "https://github.com/Aloxaf/fzf-tab/archive/c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9.tar.gz",
13
-
"hash": "1b4pksrc573aklk71dn2zikiymsvq19bgvamrdffpf7azpq6kxl2"
10
+
"branch": "main",
11
+
"revision": "699f60fc8ec434574ca7451b444b880430319941",
12
+
"url": "https://github.com/catppuccin/bat/archive/699f60fc8ec434574ca7451b444b880430319941.tar.gz",
13
+
"hash": "1lirgwgh2hnz6j60py19bbmhvgaqs7i6wf6702k6n83lgw4aixg9"
14
14
},
15
-
"konsole": {
15
+
"catppuccin-rofi": {
16
16
"type": "Git",
17
17
"repository": {
18
18
"type": "GitHub",
19
-
"owner": "dracula",
20
-
"repo": "konsole"
19
+
"owner": "catppuccin",
20
+
"repo": "rofi"
21
+
},
22
+
"branch": "main",
23
+
"revision": "c24a212a6b07c2d45f32d01d7f10b4d88ddc9f45",
24
+
"url": "https://github.com/catppuccin/rofi/archive/c24a212a6b07c2d45f32d01d7f10b4d88ddc9f45.tar.gz",
25
+
"hash": "0236bcwad4cmr1fhnywvcnzf7xdmhhwgrkrq8jdg8livhh1h8rjq"
26
+
},
27
+
"fzf-tab": {
28
+
"type": "Git",
29
+
"repository": {
30
+
"type": "GitHub",
31
+
"owner": "Aloxaf",
32
+
"repo": "fzf-tab"
21
33
},
22
34
"branch": "master",
23
-
"revision": "030486c75f12853e9d922b59eb37c25aea4f66f4",
24
-
"url": "https://github.com/dracula/konsole/archive/030486c75f12853e9d922b59eb37c25aea4f66f4.tar.gz",
25
-
"hash": "123dll2w2mbflgxfgdjg0a3gbr4srnwbyj3zd6wg1hx5miki48xj"
35
+
"revision": "6aced3f35def61c5edf9d790e945e8bb4fe7b305",
36
+
"url": "https://github.com/Aloxaf/fzf-tab/archive/6aced3f35def61c5edf9d790e945e8bb4fe7b305.tar.gz",
37
+
"hash": "1brljd9744wg8p9v3q39kdys33jb03d27pd0apbg1cz0a2r1wqqi"
26
38
},
27
39
"zsh-syntax-highlighting": {
28
40
"type": "Git",
···
32
44
"repo": "zsh-syntax-highlighting"
33
45
},
34
46
"branch": "master",
35
-
"revision": "1386f1213eb0b0589d73cd3cf7c56e6a972a9bfd",
36
-
"url": "https://github.com/zsh-users/zsh-syntax-highlighting/archive/1386f1213eb0b0589d73cd3cf7c56e6a972a9bfd.tar.gz",
37
-
"hash": "0a39xfwxdq8zmzw8s40fvham7689am1icn03lhdj1882qjb7pb48"
47
+
"revision": "5eb677bb0fa9a3e60f0eff031dc13926e093df92",
48
+
"url": "https://github.com/zsh-users/zsh-syntax-highlighting/archive/5eb677bb0fa9a3e60f0eff031dc13926e093df92.tar.gz",
49
+
"hash": "1x33gk7hhp07jqq7yjvrsp2vmdbxmadlv3335ixx29bc6h8106r9"
38
50
}
39
51
},
40
52
"version": 3
+1
packages/advcp/default.nix
+1
packages/advcp/default.nix
+2
-26
packages/default.nix
+2
-26
packages/default.nix
···
1
1
{inputs, ...}: {
2
-
_file = ./default.nix;
3
-
4
2
perSystem = {
5
3
system,
6
4
pkgs,
···
8
6
inputs',
9
7
...
10
8
}: let
11
-
upkgs = inputs'.nixpkgs-unstable.legacyPackages;
9
+
upkgs = inputs'.nixpkgs.legacyPackages;
12
10
13
-
epkgs = upkgs.extend inputs.emacs.overlay;
14
-
chromePkgs = import inputs.master {
11
+
chromePkgs = import inputs.nixpkgs {
15
12
inherit system;
16
13
config.allowUnfree = true;
17
14
config.google-chrome.enableWideVine = true;
18
15
};
19
-
20
-
nilBase =
21
-
if upkgs.stdenv.isLinux
22
-
then inputs'.nil.packages.nil
23
-
else upkgs.nil;
24
-
25
-
rnil-lsp = upkgs.writeShellScriptBin "rnix-lsp" ''
26
-
exec ${nilBase}/bin/nil "$@"
27
-
'';
28
-
29
-
nil = upkgs.symlinkJoin {
30
-
name = "nil";
31
-
paths = [nilBase rnil-lsp];
32
-
};
33
16
in {
34
17
packages = lib.mkMerge [
35
18
{
36
-
inherit nil;
37
-
38
19
advcp = upkgs.callPackage ./advcp {};
39
-
"dracula/konsole" = upkgs.callPackage ./dracula/konsole {};
40
-
emacs = epkgs.emacs-unstable;
41
20
"rofi/unicode" = upkgs.callPackage ./rofi-unicode {};
42
-
"zx" = upkgs.nodePackages.zx;
43
-
44
-
alejandra = inputs'.alejandra.packages.default;
45
21
}
46
22
(lib.mkIf pkgs.stdenv.isLinux {
47
23
inherit (inputs'.switcher.packages) switcher;
-16
packages/dracula/konsole/default.nix
-16
packages/dracula/konsole/default.nix
···
1
-
{stdenv}: let
2
-
npins = import ../../../npins;
3
-
in
4
-
stdenv.mkDerivation (self: {
5
-
pname = "dracula-konsole-theme";
6
-
version = npins.konsole.revision;
7
-
8
-
src = npins.konsole;
9
-
10
-
phases = ["unpackPhase" "installPhase"];
11
-
12
-
installPhase = ''
13
-
mkdir -p $out/share/konsole
14
-
cp Dracula.colorscheme $out/share/konsole
15
-
'';
16
-
})
+1
packages/rofi-unicode/default.nix
+1
packages/rofi-unicode/default.nix
+4
-6
parts/auxiliary.nix
+4
-6
parts/auxiliary.nix
···
1
-
{self, ...}: {
2
-
_file = ./auxiliary.nix;
3
-
1
+
_: {
4
2
perSystem = {
5
3
config,
6
4
pkgs,
···
9
7
system,
10
8
...
11
9
}: {
12
-
formatter = self.packages.${system}.alejandra;
10
+
formatter = pkgs.alejandra;
13
11
12
+
apps.rotate.meta.description = "rotate keys for sops";
14
13
apps.rotate.program = let
15
14
sopsrotate = pkgs.writeShellScript "sops-rotate" ''
16
15
file=$1
···
30
29
31
30
devShells.default = pkgs.mkShell {
32
31
packages = builtins.attrValues {
33
-
inherit (self'.packages) nil alejandra;
34
-
inherit (inputs'.unstable.legacyPackages) npins sops age ssh-to-age;
32
+
inherit (pkgs) npins sops age ssh-to-age nil alejandra;
35
33
};
36
34
};
37
35
};
+3
-4
parts/home_configs.nix
+3
-4
parts/home_configs.nix
···
14
14
15
15
packages = builtins.attrValues (builtins.mapAttrs (_: config: config.packageModule) enabledCfgs);
16
16
in {
17
-
_file = ./home_configs.nix;
18
-
19
17
options = {
20
18
nobbz.homeConfigurations = lib.mkOption {
21
19
type = lib.types.attrsOf (lib.types.submodule ({
···
101
99
[
102
100
config.entryPoint
103
101
{home = {inherit (config) username homeDirectory;};}
104
-
{systemd.user.startServices = "legacy";}
102
+
{systemd.user.startServices = "sd-switch";}
103
+
{news.display = "silent";}
105
104
inputs.nixos-vscode-server.nixosModules.home
106
105
inputs.sops-nix.homeManagerModules.sops
107
106
]
108
107
++ config.modules
109
-
++ builtins.attrValues self.homeModules
108
+
++ builtins.attrValues self.homeManagerModules
110
109
++ builtins.attrValues self.mixedModules;
111
110
112
111
packageName = "home/config/${name}";
+21
parts/home_modules.nix
+21
parts/home_modules.nix
···
1
+
{
2
+
self,
3
+
inputs,
4
+
config,
5
+
lib,
6
+
...
7
+
}: let
8
+
cfg = config.nobbz.homeManagerModules;
9
+
10
+
inherit (import ./module_helpers.nix lib inputs) submodule;
11
+
12
+
modules = builtins.mapAttrs (_: config: config.wrappedModule) cfg;
13
+
in {
14
+
options = {
15
+
nobbz.homeManagerModules = lib.mkOption {
16
+
type = lib.types.attrsOf submodule;
17
+
};
18
+
};
19
+
20
+
config.flake.homeManagerModules = modules;
21
+
}
+51
parts/module_helpers.nix
+51
parts/module_helpers.nix
···
1
+
lib: inputs: let
2
+
inherit (builtins) isString isPath;
3
+
4
+
callModule = module: args: let
5
+
moduleToImport =
6
+
if args == null
7
+
then module
8
+
else import module args;
9
+
in
10
+
{imports = [moduleToImport];}
11
+
// lib.optionalAttrs (builtins.any (p: p module) [isPath isString]) {_file = module;};
12
+
13
+
from = lib.types.oneOf [lib.types.str lib.types.path];
14
+
15
+
submodule = lib.types.coercedTo from (m: {module = m;}) (lib.types.submodule ({
16
+
name,
17
+
config,
18
+
...
19
+
}: {
20
+
options = {
21
+
name = lib.mkOption {
22
+
type = lib.types.str;
23
+
default = name;
24
+
};
25
+
26
+
module = lib.mkOption {
27
+
type = lib.types.oneOf [
28
+
lib.types.str
29
+
lib.types.path
30
+
# TODO: add sets and functions
31
+
];
32
+
};
33
+
34
+
extraArgs = lib.mkOption {
35
+
type = lib.types.nullOr (lib.types.attrsOf lib.types.unspecified);
36
+
default = inputs;
37
+
};
38
+
39
+
wrappedModule = lib.mkOption {
40
+
type = lib.types.unspecified;
41
+
readOnly = true;
42
+
};
43
+
};
44
+
45
+
config = {
46
+
wrappedModule = callModule config.module config.extraArgs;
47
+
};
48
+
}));
49
+
in {
50
+
inherit callModule submodule;
51
+
}
+21
parts/nixos_modules.nix
+21
parts/nixos_modules.nix
···
1
+
{
2
+
self,
3
+
inputs,
4
+
config,
5
+
lib,
6
+
...
7
+
}: let
8
+
cfg = config.nobbz.nixosModules;
9
+
10
+
inherit (import ./module_helpers.nix lib inputs) submodule;
11
+
12
+
modules = builtins.mapAttrs (_: config: config.wrappedModule) cfg;
13
+
in {
14
+
options = {
15
+
nobbz.nixosModules = lib.mkOption {
16
+
type = lib.types.attrsOf submodule;
17
+
};
18
+
};
19
+
20
+
config.flake.nixosModules = modules;
21
+
}
-2
parts/system_configs.nix
-2
parts/system_configs.nix
+18
-16
secrets/mimas/default.yaml
+18
-16
secrets/mimas/default.yaml
···
1
-
restic: ENC[AES256_GCM,data:L1S0WEBMbr3gQA==,iv:9NdaTuhLR57mv8OaCSyso9cfr8V1iQNuQuWInKyi3bI=,tag:L2H0EeCxx6hGk85Z+ObShg==,type:str]
2
-
traefik: ENC[AES256_GCM,data:MuG+NilIrc8FOh/H5ze81S12rd4ORFaJLVJ4kuDxGjwOhM71muxGw26/NVsUKHPSOL6VLePENZ7fpZ28PuzR1DwQYF4j6Ltlpci7RLAsEKdxYg==,iv:ZL90s3YuBmwafBz7VEwCTr2flnkguUxJgPp9OrnyfGA=,tag:lEkO4UN5s3n3ZUxNwSg7Jw==,type:str]
3
-
warden: ENC[AES256_GCM,data:uLWCQ/w0FqyGKvCBp0Z6wpYgvQzZDRYHCBNrKqFA9ykwglPEvN60WnQJdhmLDHpdfeWVSlldkC74m3msQ3SAItYtu8jBN5LJi4ns5gQvbR1PaZ6BnPQnzAYPGEMbKjT9p02OVXs9ZxGExYqn4quZj6auvIl/ZD0OBikP+SSLjtC/2lyCeCOdN0q31xU7dGeEOl+pZp/KxeJIrKl7/vsxLRIhzat6UL2e2mnE/HBrGrxkkvU23/QJChpPoX3gEvnwLFtt0JBh3KCdSVSJ+iBSm+FJ/E6kYeRJ6JHAmXXQZu1tbrzyLoWf2ua26xtYRYL5k9Y5WDIy/otFQnw=,iv:OauSp63ywmrkENIqBVGVQ99Ozyom0o+DfSqYaL46Ujg=,tag:aWpRcFPIcCxW73ztvOk4mw==,type:str]
1
+
restic: ENC[AES256_GCM,data:XMkh9jvehbD3Zg==,iv:9NdaTuhLR57mv8OaCSyso9cfr8V1iQNuQuWInKyi3bI=,tag:Kz08EadPaIWcytF6ASJssw==,type:str]
2
+
rustic: ENC[AES256_GCM,data:ETWxyvBz3AlXNp0=,iv:MXlQuvTJa2mZuXeiCX/YYpbqKpT1+RE5TNahBrUMM3Y=,tag:Vl7n0JF5M9Q+xZD32G1njQ==,type:str]
3
+
rustic-user: ENC[AES256_GCM,data:2hwYQS4nAA==,iv:y0pbF5axrPRdYRGAmx+kp7jkmSl77R8LQMUKQaiDWak=,tag:8kgcxNtvjmyT9PPc/WjrOg==,type:str]
4
+
traefik: ENC[AES256_GCM,data:kMnWaxpt0fLxJeX3oYLQrnZPS+pq/xjqVINleaCfaiXeMlJ8qno0eHBkx82gjldeObvTO1ENFz5k5EJ0ICbnS0ny6qHxeBAMaNVF3dZ+XmKx7w==,iv:ZL90s3YuBmwafBz7VEwCTr2flnkguUxJgPp9OrnyfGA=,tag:UeyiUtdQwOlyQoHObL+80w==,type:str]
5
+
warden: ENC[AES256_GCM,data:H3So3oZfZ6MBKsjxJNnxk/6UZi6J5D6H5bCMsb1E7rk/r51qYDe+1z2Gq1o0qqwX0k/O4Dxq7wJPaelLO4kE9bxQHvoT1NJQIZolnYF5G/PMqMKWIE4bxq6uLmxNKBmjOkJLo3hBiOHT8MjD/S6rOkUAB6Mn4YRKqcG+EG1Wz0sw1a+6KcNFMqO9xdcwD44MZYrreexOiwVx6UMPSJc/67fvzJ4ms/E3gQEOq6VvCHpxmk4bujo9ucqajfPGK4ewHqkdn4r0vQvrYxXMBkX7AXcL6CHSZ+ht0Hcw0A+m12GuTSHC0g38Avz5klP3FIruzj7oWcjv6XPBYfk=,iv:OauSp63ywmrkENIqBVGVQ99Ozyom0o+DfSqYaL46Ujg=,tag:ZcYkapCUZZE9DDh0PSfZEg==,type:str]
4
6
sops:
5
7
kms: []
6
8
gcp_kms: []
···
10
12
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
11
13
enc: |
12
14
-----BEGIN AGE ENCRYPTED FILE-----
13
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFYmVvZm13amgwLzBOSmtE
14
-
Q0hrNFFlZ0gwZ2RvTmFDSHgrQVJMMjUwckJVCkxrQWVQVXVCT0d0V0l6WDM5UjEv
15
-
RDd6eHBnbHd6ZU51ZzIvQmFXT1VwY00KLS0tIC9EeDJJT0RpWmI4aGw5ek16QVhs
16
-
dEtjc2hZM25lY1luOVZwUjVqRWJ4cmsK0w53owK2lhMFRY/NljyTOkeMUgp3Wab/
17
-
83g/SrFTmdI0rNIHpBAQSEHOYi2J/4O2+BRd8fbtdsFDJsS4A0cOQA==
15
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRkRBcWlnM25ablJBdit2
16
+
b0Y1Zy9PM2FjRmg5ajN0YWpsaitJUStTTXlBCnpuL2wvU0hxZFpDREhiTmhnaFFi
17
+
LzkxMmVHYWo4TkZOaStJeHZsK3pIZG8KLS0tIC9DSjUyUVk0SG9mNHd0aGdXN1ow
18
+
N2Q4QWk3RU83dUxuSG85V1N5TzFkSVEK58cE6fE6mxjRCgtHRMqqahqMkwYeUnhx
19
+
F2Bdg5oPPQxoqIf769fZD9L1y/+LZ6Vi4YhJkjfMVFXk6YtEjKJSmQ==
18
20
-----END AGE ENCRYPTED FILE-----
19
21
- recipient: age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa
20
22
enc: |
21
23
-----BEGIN AGE ENCRYPTED FILE-----
22
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrS3BlcnAzdkM5MkJMVS9F
23
-
dzFvZ3NHZzVrTnNFdlE2Ni9tY1NuYXRhY0dVCmNQVi83dW9ld1JjVnNTdTBaNUVQ
24
-
a2tJRlFLRndVQVEzVWhaK0UrVWdyZEUKLS0tIDk4TEVzZllYNEZJNFZyR0dGR0pY
25
-
SUl2MVg1dm1DOVhGMkd1bXloZXltQUkKk1p+BMWj7RpRZSNgrGXtf4VS8MveRCrs
26
-
qBqMVgAh7GpeSlBZ4Ip5T5b14D3QC08eD8rERJjn+LFUX9pQBjz5SA==
24
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkY3EzZyt1YXFTTlVhK3Rk
25
+
djUvWmVjeDBSajlENCtNc0RZMVRVWUVuRWtBCnFpa0NnVjBvb0J2NCtpYitoMngv
26
+
WkxNaDNIQnRSSm0vSXF4a1RYcmNsK2MKLS0tIE5zSkExNVVJYkZsV244eElwMTd0
27
+
N3ZuTHhVdFo0aGZVMXFlaTdsRi9lRUUK+K5CUVCdjtMVegVydoKRIb6kpPnfBiy1
28
+
FxkXAp3a1qU2WqNvXCSO3gtUwYaMG+MPSCWI1gA3oBjGGtTasHyHsQ==
27
29
-----END AGE ENCRYPTED FILE-----
28
-
lastmodified: "2024-01-05T08:11:43Z"
29
-
mac: ENC[AES256_GCM,data:jYrC74CR9aAMNbaKDKFnwTUusWpIVyh58JswO5hE5HZg0xZvtEi2+fXC+pK/fgdS8ADczYvDXO6SuhJgzLrihecGdpjQFK2HciyULpDOIBNplj06gF0KVn8Wl40gZCph6bjNnUG8rDEFsADjEbwdoW9UWhjcnd4wpDo3eLg93bQ=,iv:fDuFh18JRxyyoxQ/85RIC8DVbxDq3UkBgGlHpcYiJt8=,tag:Yx4EKxW5iGBkbUQkVw87dA==,type:str]
30
+
lastmodified: "2025-03-08T10:44:25Z"
31
+
mac: ENC[AES256_GCM,data:iKKmalnJnmm8EkDupTPKmKJydLLYkbAabLy5KJdQfKGvRj6vbJAQHZ3u0Pu2TI0oi5Xv3dtPh7ww04kT0Whe1E97p4t3RPyNCCGNqA8OqQiCPDUn6uqTQwOo1//3xIGFnnRC0VSYrQT0rjebbL96RnWE9XF67TefycxIMHusUXU=,iv:FU6VTW2zkEIlH5P/rr58gmuMnz16TCLP+UtEVkiLueg=,tag:uf7I1GwWxXOT190y8Hddow==,type:str]
30
32
pgp: []
31
33
unencrypted_suffix: _unencrypted
32
-
version: 3.8.1
34
+
version: 3.9.4
+13
-13
secrets/mimas/nmelzer/default.yaml
+13
-13
secrets/mimas/nmelzer/default.yaml
···
1
-
rustic: ENC[AES256_GCM,data:QK9mADaNKklucd0=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:ndJxlYQ+X0Zb4jIxLRysvw==,type:str]
1
+
rustic: ENC[AES256_GCM,data:aYi1wQgLgRL3n40=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:k13fNK3kDcylC53d/haqog==,type:str]
2
2
sops:
3
3
kms: []
4
4
gcp_kms: []
···
8
8
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
9
9
enc: |
10
10
-----BEGIN AGE ENCRYPTED FILE-----
11
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2KzZIbTZ3WlNhZGVSU29v
12
-
anBVeHUwZTFHSk9xQ25jY0c2S0VIaGo3aDBjCldGb2JUd1p4SVVqUHJpUGhGKzFX
13
-
SS9DNUdXMGdEMFFpYzBlbHJOQ1NTUVUKLS0tIEVYVmNuVUlZN2xUdnhISEMxRncv
14
-
MWh4dzd2anJjdHRhZjV1cGRxLzJCTFEKkKpygRo8CQQTQLzFS7wicEfDFSSdbAo9
15
-
coSDMYHMVhvIw8PwLCwPjAGXhEYhgIdM/ipv1h/O2oCHIWBFWYh8Ig==
11
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3U1ExOVN2aWVRVnB2M3RR
12
+
QmxQNDZnSWVWMW1IZWh5YmFmNTZYbGRzSFVRCjdvSGp1WThzc29aNUZQMHJDMThJ
13
+
MXNURHJUVVpDQ1hmUDBFamJ3TnRUSzQKLS0tIExXdWNoRm9aL29nUldQemwxOXdV
14
+
aktSY1lQZmxkTThpcU82Q0dwSUUzUmcKm2VCJHEUzjz2vXAJH1wOovNqzK6Hkk2z
15
+
hoIQzqgfQL3a4WA1q0Oj+R8wBChuRMUAYW4+TWCIAckKKwLqRyzBcQ==
16
16
-----END AGE ENCRYPTED FILE-----
17
17
- recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6
18
18
enc: |
19
19
-----BEGIN AGE ENCRYPTED FILE-----
20
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNaUN1OUkxMFVlVnUrM3Bo
21
-
OE1RU2paTkEyUXE1QVc3MXdhRFQrMTVoUEhnCnhsR1hhNnJJMlY3VDNHTEp3L055
22
-
eG5TSlU5NXlBWm1FenMvdDcyRk14RTQKLS0tIHlwUXNoMndrUzRjbHNieWJqanRp
23
-
aVdOcEpoejR5UklreTVyQjIreERvN1kK93GhDqvbHXZqXCo5L/XhJyEdypSxE5Em
24
-
h4Uw3QdvX3wH4hcEVblrkqEh7SjZm90TLmV8Y3depj0URZm9gHqg2g==
20
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSamQ1R0tHZGIxUlN3NWtV
21
+
Q1htSVdJMG5rUEN6Rm1QTStONys3YjNiVEdzCmE0bDJCa1VaVTIyK1IvTDBFbVhs
22
+
ZWVGSzdwUWpVZTNSYUkvNjNtTERnZHMKLS0tIHRLSnBxTm8rVVo5ME4vS0dKZXF5
23
+
MjdaWk9mZEczVGVxZEpnN3pCQTdMOFEKO4oemn8P9PYZVTsJ81oDy17PRAaeu3pn
24
+
zxZ5a8/IrS/lZfMJ1vYwlZf0AEgOMTSyjVMNyOkWAgWIq8z1UkrpUA==
25
25
-----END AGE ENCRYPTED FILE-----
26
-
lastmodified: "2024-01-05T08:11:43Z"
27
-
mac: ENC[AES256_GCM,data:MBNbxnG5Gf9Xd4eaPzHWWAB4SatXkZsGO/PNRsRORe0l3QvDY8c/bnh1l6ImBRW3Z0QxsZot0knXu7w4ZYVFPdvaSLdsb+yT9WeVcrqqz6lFX+3qu/W3iekj/4qKXE553i+dL8w3LzT+2gWtYv4+oTtPQn1iBtcmsYuL1K7kA1s=,iv:3N6vlPOnGiSIA+6cknRom1H0oki0f1xW4z0pCI8pI/U=,tag:BMcV2nm581OoHCp+Okw/Bg==,type:str]
26
+
lastmodified: "2025-03-08T10:28:45Z"
27
+
mac: ENC[AES256_GCM,data:k+Ui8hxJM/W4vHxZtSkTO86L81ZnzXHcX+VEzef438dfoB6rhIUhz6OaVfLnF6v3RSzRPsYCoDP8L2p1vHAY42ljl4jzZvMqrIYU2N7ATTNFc+m2FO1lcfmKbsOqjkrVQxnux8lwBdD9e2H4/xOB+nAivuCEDd3rihYR0yRYiMI=,iv:yMu0MA0VTdwUsKkZUZAVo91iI9qaT+qOVVI3hlmZC0c=,tag:bbKM/vE0lEpvPHIKWk9llQ==,type:str]
28
28
pgp: []
29
29
unencrypted_suffix: _unencrypted
30
30
version: 3.8.1
+14
-14
secrets/phoebe/nmelzer/default.yaml
+14
-14
secrets/phoebe/nmelzer/default.yaml
···
1
-
ssh: ENC[AES256_GCM,data:X0m5YkuFHljTCAOOwjdgtYd6PmNyznjPZ95gZWyps7H5drrxiQlt7FiFBvXO5gcggXIkGf2hMCFlfDtNHHlfXjzDLx1bc45lPduuQe53qBVoj1kutFHhJtCj/ttfVcUgHVm65NAWy7gFaccXrY/xcY8HBnOQUbk1TVSIngzIThFFAHvTqMRjuzxEQqpevSloWP/ItJcRqlPt80opCrD8iv0dpOGWRbBMS2p0o8ynFAySmJIs,iv:Z99RVmMuDZvFJP/heCsdxIZd7uV4+lBfBvXMasBb2Yk=,tag:3OJgUL/AWESRHUXlB05gDA==,type:str]
1
+
ssh: ENC[AES256_GCM,data:Ti7PvRp+ooyu/MHGv90zlACZVzE5EseJUFk5KvxwYbE+bLcEKnTWW8yV+BBa3xoOe50P4X0GeNFHLsaCcCtrjNshNJSxZ3QHt1TQjLABvKrQvpU8BgN3qT3RMo019NMj0+UxWL4/5icaR4XAax+JWCTBXhncqFzyXqcB/IbLLJKKqqFTWe4zYhvQitBDF+oU6nTv/qTtj/6B7XN6byTbGPjTJrEXLotmbvl8ll/LiEkTPmuu,iv:poHvd4U4dJha27Bqf4hA1pFhna29kO/RnFNjJsflpaA=,tag:uUfl6tjzVQQ5oaKOcmUYQA==,type:str]
2
2
sops:
3
3
kms: []
4
4
gcp_kms: []
···
8
8
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
9
9
enc: |
10
10
-----BEGIN AGE ENCRYPTED FILE-----
11
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArNzkwZkVJc1dDY3VTQXpy
12
-
U0xORFhibHNaZkdGbno2c244UkFlZFlOWUUwCkhUUkowemhzN1ZySzRLSDl2aDBS
13
-
M0JRTUZVUFIxemZrZEprWmphOGNpNXcKLS0tIEllTjA3SkszajlLV0lobVRmNkpa
14
-
V0VZMktqbm5YV2RyWkUrMzFpZUdBd0kKEjwAbf8MUTxY89VPINxOw6mdY66DzUJs
15
-
VY7hbMmDZ/9Rw1RFIx93H5U4M435imr+4m3MX4gXO/VGH95RtoFtSQ==
11
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwMnNzT2dFWWVPRjh2QUdF
12
+
VUZkUzdsQXRISG9kaHVqSGp2UWhCNlN3cVFJCmtQbE9LelRkbW4yU3ZyWG9MdnZB
13
+
b1k1QUwrOXBZQTVoRTArNGFtTEJSU0kKLS0tIG5KS3ZFd0hKMEhsSkV4ck5za2VQ
14
+
YzFLSjNUVXNRaklnczVKdGQ4V0JYUE0KGVHj8sWKKvVGwMrYmx0Js1uI1DmD028V
15
+
R+Y+p8H766496hBt6Eza6r7JhKtLXR5CrcoItq8m+fWU6lu+ElsnAw==
16
16
-----END AGE ENCRYPTED FILE-----
17
17
- recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna
18
18
enc: |
19
19
-----BEGIN AGE ENCRYPTED FILE-----
20
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPQkNSaUhyMEVLN0VwZ3Ax
21
-
UkFadjhKaThnYkt6UVA1VUhIeXpPNWpUVkJJCmh4TG80VTRwV2lnTDFRUlNpWERq
22
-
cnpKRUltUlB1Rm1hby9lMm1NSlM5SUkKLS0tIFRGOHJvQVVIQnJrNjhobUIwT2FR
23
-
b3FRZ1ltcXkyN080UndZT3ZkZVNSRzgKlfe+kFXYc9y7jvGXj7nwVIBrfPQVI8Ke
24
-
WXRGvmmcm52dEqbcppcGcNx9u4jckDKiCQ6YeaDR9/U/cyHsincmhg==
20
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRSTB0dGxWOFhTK0FHcGxI
21
+
VkFKV2NkZTlJRVNSZ1dnWVBKQk02YmZ3aERnClZaeTFSYzRJZ3ZWQjNPc1BnanhU
22
+
ak1RZ0w0MDExZVlJWVNrYjZxMHZsNEkKLS0tIE9tWHlVMEFpek1VTFdROE8zUFZa
23
+
VU9yempBMGVXenkxdkpHZC9YdlFZYm8KsdOmOI4ah0pEjqPt9XnJNxMyFSY4eYsI
24
+
UOgJZqRhlG8Y4NL6J1DyJPfeKeIroTAbNoCb65lxWHHWfoPvt3gU3A==
25
25
-----END AGE ENCRYPTED FILE-----
26
-
lastmodified: "2024-01-05T08:11:43Z"
27
-
mac: ENC[AES256_GCM,data:9NsFvPhM0XZx9+63uY+tt7aoARQkRpLeIupfWBPck+BcgB37u1duvs/YwazCNVBF7y3QF6aNz9WLW4uCmJFyvxhuq6pY+Xf9dM7ccVtLizfUjtgWTn6k6aFbcfJP+BEXKqDZHHCvtg7ixRI7Y8OrkY/wYQwCedihu5k2eCFp4eI=,iv:h4OAZXkxVkljYNtxEmUNHxwomVZ1IXNhVH2Yu2WUTCA=,tag:rnCd14bHerVtk25ARzHBOg==,type:str]
26
+
lastmodified: "2025-03-08T10:28:45Z"
27
+
mac: ENC[AES256_GCM,data:ycmOZIduc6cbx9daCGmLOL6eNSroAkGJw9dSnR79feaplXi6hmvycijcSJkys2vA3m81K2E7MW465GfodkpW1YWT1xW8RPp+WOOlqZvu3qoSu3F2T/VJxx4wCzTaXwvkcY9APAqb+WydN5KQDzakWaJfw+gTP3OS8LTRkYCDtcc=,iv:soCcQcGoi41g+g5X1SVDNH7iH28BCSImZqY1OE/H1Bo=,tag:RGY47osA22GETBuOynX1Dg==,type:str]
28
28
pgp: []
29
29
unencrypted_suffix: _unencrypted
30
-
version: 3.8.1
30
+
version: 3.9.1
+57
secrets/users/nmelzer/default.yaml
+57
secrets/users/nmelzer/default.yaml
···
1
+
access-tokens: ENC[AES256_GCM,data:sLkIWAyispOwNUZJqXfTFVl8NbUcLhWhgLIVI2rahROYHMO3aU/0x8BOtmm0QkPYHA3C7GwzyvatMoASJWrqn6ife48=,iv:BPI8HwuKwfzOMT2gs7U0cpbpP77f+X/HvCcfvIJh9Q4=,tag:Kf2wZ+3xtKhaSY5S1QjTuw==,type:str]
2
+
sops:
3
+
kms: []
4
+
gcp_kms: []
5
+
azure_kv: []
6
+
hc_vault: []
7
+
age:
8
+
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
9
+
enc: |
10
+
-----BEGIN AGE ENCRYPTED FILE-----
11
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcVV6MWRlWjhSQUt6V2E4
12
+
R3h5ZTlTei9QaTBnSm0zQXU4Q2dkVFdkL0JRCjVnbHFpQ0VaVis1TENCbVQ0Tm9F
13
+
bmxZakNpMmIyTmZTdy9aRDJKNGU0dWMKLS0tIHYwMGJxV3VhNTd3b1gwRUREMWVW
14
+
MUVzclBGZmV5d2lZcFJyMzViZGxXbFkKpgyVR4xv8NA6J7keZwVvJX0QSjoTAaW7
15
+
9fu5UR/d/pYIoJswd7jPNdhnClRLnTpJB62RZf+HHzGU2uq6aND1AA==
16
+
-----END AGE ENCRYPTED FILE-----
17
+
- recipient: age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86
18
+
enc: |
19
+
-----BEGIN AGE ENCRYPTED FILE-----
20
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeGFqL0NVaFYxaWVNdVFa
21
+
Y3JKdFE3dnh0cFhQRVFqZjdXWHJ6VjV4eVdZCmZQUmJXNDZUbmVvWjRaMk5VSkxL
22
+
dFpVTDRqR05xcm5OMDYxc2NjNXNJYTAKLS0tIFNmZ0JsR2MwSzhWeWhwUEx0WlUy
23
+
ZlM1NXhPSjdQaGZlVDN1UGZLNDJRNVEKLmyd5dcZhNPKltxgVgHjJR1KQEcYOJ1V
24
+
6jY2Pq1dw8n8CswcThH4GmWBTqttEirFV8tB8CkYvHGk7oJCpX8gIg==
25
+
-----END AGE ENCRYPTED FILE-----
26
+
- recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6
27
+
enc: |
28
+
-----BEGIN AGE ENCRYPTED FILE-----
29
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTEZRbk42bk9UdWh5bUFY
30
+
MlBoVUFScE0yUlJNeUlDOFNkZTNmZ2ZYZXg4CnV0a3JTOEZmZXdJYmxUOUlQR2pm
31
+
QzRmcGhWZW5RcGpLYURTWGoxcEtZVVUKLS0tIHVieWVteHcyMFRUOEZFVVYxN1oz
32
+
SklxWSs3RDhtNHdjZ2tZb0ZSRG4ydlkKvjxtjpOtaNmzeGnVqVLbkI8cEh0wKsLH
33
+
k5J7At247/4BFnQApfnw2cbeve2aQVsDjO6a6aZwcVrYQrErq/Ltog==
34
+
-----END AGE ENCRYPTED FILE-----
35
+
- recipient: age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq
36
+
enc: |
37
+
-----BEGIN AGE ENCRYPTED FILE-----
38
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvemdIMXNVSFNibjBmc3cz
39
+
YXR3dHNGVGpUZDhtWGtSZVMwWHdKcU9zQ0VjCnNpdmMzNldvYi91ZWdGTkJyaWlF
40
+
R2tBcHg5aXpFR2x3M2Q0RU0vVWU0OUEKLS0tIEZYRWVpc2JLWGEvVExpSktDcFNQ
41
+
ZDFySCtOdk1Kdm1yRnlaTzFZRkpvQVUKGZoNU9KJgFOJau7Gxge47txwpAlMh2rQ
42
+
6Hfjf8E1igzLnbjvxQcGa2xVvI95KqhKZZclzPX9Vagl1z3XnoCvSw==
43
+
-----END AGE ENCRYPTED FILE-----
44
+
- recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna
45
+
enc: |
46
+
-----BEGIN AGE ENCRYPTED FILE-----
47
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1ci9GbWNmMWU4S1lGelFi
48
+
TVAvUUE0TmtxNE9nSURqQjVSb244bnBjdlJBCkY5eHhaRUxiOXA2OFhSTkthR0d4
49
+
dDhMUGhNeXA3aHcvemNZczU2bVpsQkkKLS0tIFZEMFFyTGJwWkR6QXFvYnZHVnNs
50
+
OUR3N2IyMkxJc3RqcmorUFBOYjRpa2cKPQT3cmtP7I2C38OPaRqxudCXv6CEObnp
51
+
DOVPG5JpeQGEu74kK5WTqbWlQU8AToOXmJdc+ru7ea1wAiXZiKEG4Q==
52
+
-----END AGE ENCRYPTED FILE-----
53
+
lastmodified: "2025-03-08T10:28:45Z"
54
+
mac: ENC[AES256_GCM,data:VktkGG1xk+tFtgdmLrM7rLQ+NEqDMATyu0kdm4iRe61mcMppNVR7ZxjP7Ryfz6kkiwAfqrv5g8pzaoHHCJoLAOShgCDdHB49USDVR7OZHp/BiNJkSwSYgSWsWQf4Wxve2lADcGJNrOD/l8jmO9DcUDldLdGEGJeZ6waej3g7z7Q=,iv:FhfHa/LN9UVC8fnilYv2NxlNT+xRRXdsKIejOqug4cc=,tag:mTBuhaR2AxulRrfPSB6F+Q==,type:str]
55
+
pgp: []
56
+
unencrypted_suffix: _unencrypted
57
+
version: 3.9.1
+8
-8
secrets/users/nmelzer/github
+8
-8
secrets/users/nmelzer/github
···
1
1
{
2
-
"data": "ENC[AES256_GCM,data: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,iv:+pnvwKJLNUD+0tpxurFocDgK0qOGzVsYkcV6b6KYock=,tag:x+BZqIeR6y/nXuzLBBjq+Q==,type:str]",
2
+
"data": "ENC[AES256_GCM,data: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,iv:+pnvwKJLNUD+0tpxurFocDgK0qOGzVsYkcV6b6KYock=,tag:oVCamxWlyuQU7McVwxZUKw==,type:str]",
3
3
"sops": {
4
4
"kms": null,
5
5
"gcp_kms": null,
···
8
8
"age": [
9
9
{
10
10
"recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r",
11
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3b3RucHhPRXM5aTc1eXgz\nUlM4QnNXdXlvckJCeEh2eWRsT3lnK1dJYXpzCmpzZkc3N1B6Ylc3Qm1Rb0JJQnRI\nNzZmenBLWHhSTk5LLytIWXE4NDhDN0kKLS0tIG10eE9xU0dwK09EaHI0M3Bwb0Ix\nYzlEcm84a1lhUC94dE9oKzcxQTZIMGsK8jfRhXgwa4z5YXoOeicUr1Q9R1BY31nh\nbQl5KF9l7Sy/8fFPWrqI7U4a3KrhBNtZ31uWg//ASFm0OfLnj/F4sA==\n-----END AGE ENCRYPTED FILE-----\n"
11
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSEw0c0dWY0JhdGpMVFo1\nc2kzQm1FdHZIaEtuRG4zYUIyU0Z0QmVOdVZFCkpNTFJpTi9ha1VFb2l5czJONnl4\na3lYU1VmNmpBNzNBdVZEMjNRVjF0RG8KLS0tIFRhTEs1RFF0cTRnNTJqbDVJajh5\naG5UWExpVVl5YjZKUUQrT3gxR09CbVkKc64s7ROfryegUfEr+lS1KkbUDJo7+hso\nBvdJ4EJqS1Uu6H2XugpwBco640PKknJABrkL68LdUGlsUsITqK/MFQ==\n-----END AGE ENCRYPTED FILE-----\n"
12
12
},
13
13
{
14
14
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDamExODlXKzdGMVVHODJy\nczhLU0pVdkdPd3VPWkloSjZuc1R1UDdNMGc4Cjd1NXAwMnpKM1NCc1hzNk1RY3Ux\nSFp6U2ZmTHRjbzdjeENaWGNYbWVBNlkKLS0tIDROanovTC9SZ2xLaEdlNGxLSXQ2\nY3VvL240aGZxZGtWd015MmcvdXdCQzQKHITzWYR55c03CVXT8bZ/RSuWn7imPBmA\nHEAwngLKSW4YGI95uMgy+fKqPgdwdHAhU0lFKLXBndeUMFKNcs8yxQ==\n-----END AGE ENCRYPTED FILE-----\n"
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGOFBxeFNVU1RTSUNCOG1B\nZGhZQm1WSjR1NmsrYkpBd3A0M3liNlNEYXdZCkJKUkp3TGRsMzMrZ2RvU1YxVU0y\nMDJGT0dwQzM3T2pHZFplcFozYi9Pek0KLS0tIFlEb3VuaVJ1QlJPRWlVVDJaMnV4\nQzNhNzBuL1JZeFljb1hwMkp6NE9hY0EKtSZY/B+DbKkDW6cof3sjud77Qz+S6qO4\n81N0I13ywjMmLKLE/eXKEwRXvZkTV8o4AfkZIZo+JPvMgXcujrTFzA==\n-----END AGE ENCRYPTED FILE-----\n"
16
16
},
17
17
{
18
18
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOd0EvM1NLQ09ac1BYSmxM\nWHBGdi95d0FJM01TblFqa3h2ck1TTS9aVlNrCjBXTmFMdFI5ZUVidnVIMWxSSTRj\nVVFXYTBnYWVwS0Uvc1cyb1hlZDc1WUUKLS0tIC82RU9ManhDMDBVR2FVa0RJeUxZ\nSERKNG1Va2pnaVhZYXBjcGp4RVNwVWsKaDV4Fh1hP+bU3dQKNr/mQAxX0TmZRyii\nS9Qtv/yxoGmZ5f5qbukOIsgQKQqwaTr45lqJpspMPY/JCMrLs8AcqQ==\n-----END AGE ENCRYPTED FILE-----\n"
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMHA0ZHRjU2tYSEZna2ZV\nUjFTRDdMV1B1Ny9YbGlXVmEyRUNuMlRWSDFjClR6cjhHaHVKRFFGWEJHdERZZDRw\nQU9sVC9SNGZUUGxrVUdJWlVwbGpBa1EKLS0tIHYyeWZtS2ZjWTVJZWExTkJWdzFJ\na3NDMUNhSEtiamhIVUV6T2luNjI0S1UKIVHr+P3jpJY/k44EEE1RYB/PQxI4E3lw\n1DdyulRw0CvhuxVoZsINckTjgNIfRSeJlqS2OYEYfHPvqg2xcBNlGg==\n-----END AGE ENCRYPTED FILE-----\n"
20
20
},
21
21
{
22
22
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTRy9JOFZJZTF0VmZ2OGRQ\nbW5hbWJZVDN1LzNnN29DKy8waGdDaEJjb2tNCkVMMzZwUThXUG1Qblg0Z21iTjVx\nSjdkV1JpbFhMaEF4c21wMWpVdHFkM1UKLS0tIEhJZHFxV3Q1Nk9vbitDSFFXZ1lM\nQTducUpSTkFhV2huZnA5WXhwUldRSm8Kn+5TIEkydl1g5UdGj7/1qxO6WcDDfcLU\nGmZd7M6R2VBnchhPdU5uubmUnJfFFnxtIFH6QJxGp5MMuQE7iK1dew==\n-----END AGE ENCRYPTED FILE-----\n"
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRWhuWVNScC9IK0Vya2oz\nZ1JSRERnSmpJVEVNY3VlWnZLcUFESUxVM2dBCjFSdUtEbTVDZ3V1eERja1hnb09I\nWGNLcmNKcW5wOHFIMjJUWTJrTXh4M2MKLS0tIGI2OFh2ak5PTEV4MFZKWjhIVSsv\nZXA1dFFRY2FjVnI1MnE0TUtJemoxTEkKcCGDk5Mj16JL4/fevQCXYuTdY5ZVE2rb\n7nP+oqXXRTQAMVYsWwWIftNjd2XCM43UkTUKetMktGlcBMd/vNh/Xg==\n-----END AGE ENCRYPTED FILE-----\n"
24
24
},
25
25
{
26
26
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwTW9KRElXbmFOWEFOZjBD\nZVRLU2tMRGd5OGRxWWFheVhORFFvckpRRHh3CitJVDNNa2NXSU96N1ZYY2k3TFVn\nVVVjQmtKOUVyMC9ZRWpsTUljejJ1YU0KLS0tIFU3Rk05WnFubzU2QXdyU2ZTcEtq\nV2JYdkhVV3c2YWJEbTVaRmFobVY5SnMKequGw+rgOliLndlArYrR6B2QJfnBRu1U\nJOHOVrp4yKk6xDmvJwS5F+nLhQm2jS7Apzi35QtBpfKeOWkHbT6guA==\n-----END AGE ENCRYPTED FILE-----\n"
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1RE0rOU1pYWVQOFU0N3da\nd2NmNjlZVWtEdisvcTVJa2ExRzVsK2lFcDNvCnkzb0dTQ1ZkM085VFpLQ09NZXBR\nd2VKNWtmWVp4YVViV2dpeUJyblBoNHcKLS0tIGUybXNsQ2tsaU81MURmKzJ5YThY\nS280YUMyL2JyK2pHMWlRTnNpSjRqNmsKg80xYn2ZE2zjt/t6pSUpXm0umg1+OM3h\niWJzu2RPayXglUc22hIiC08kahueHA+iJ+OPvMkl+NEM0FBMHotGLA==\n-----END AGE ENCRYPTED FILE-----\n"
28
28
}
29
29
],
30
-
"lastmodified": "2024-01-05T08:11:43Z",
31
-
"mac": "ENC[AES256_GCM,data:QIXIgYrq9WbFq5bAtl4bkOhyUtqe+QBW3oVeXeqsaPXc2KggLJTZt1vGxnOZqf94kat/6Fff6uzocVvi4YliPDCYcBqeaC7j0le4WEG37R9f/0vfHGEkjX4dHMUCXoH4KRaCTdiP8KziMhAAjFja3LzyE+nmxP7u9iW7lwzOnJw=,iv:hZVFfIa3Fn0P3uFE8w8PXCY7IWrk9o8c40rynFt5ZBA=,tag:lLYwc1g2+nJTGKZwJCCVKw==,type:str]",
30
+
"lastmodified": "2025-03-08T10:28:45Z",
31
+
"mac": "ENC[AES256_GCM,data:xbFr0rhkcvO/+fTrGrOLCcmE52QVVxvwEu2Zg2vQ8DIt9aa+8p/aXI5ndY8TDoHsrl27IqZUetTYReXgyNBWuYhCbh6pLlJ/9GBipq+HTtyTuorj/hAREnaWDI049awM9yR6S6jELBSvPfUSKDi8JfBYelO04D9a2VinuAyP8/A=,iv:HzqLaMQbsNhwgBCX2YZj4pNbnLf73hc/IpJ8Hm5+pDQ=,tag:3rBwAgrscRB7hSKKj8ps6Q==,type:str]",
32
32
"pgp": null,
33
33
"unencrypted_suffix": "_unencrypted",
34
34
"version": "3.8.1"
+8
-8
secrets/users/nmelzer/gitlab
+8
-8
secrets/users/nmelzer/gitlab
···
1
1
{
2
-
"data": "ENC[AES256_GCM,data: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,iv:wutx8cOVSjjC69NzlIrojwRLhs28QvNXRnRJSC6MMb0=,tag:iIdVAlnF3hqwqtNcZqKN1A==,type:str]",
2
+
"data": "ENC[AES256_GCM,data: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,iv:wutx8cOVSjjC69NzlIrojwRLhs28QvNXRnRJSC6MMb0=,tag:cPf78d+51Op/58UiaM8IqQ==,type:str]",
3
3
"sops": {
4
4
"kms": null,
5
5
"gcp_kms": null,
···
8
8
"age": [
9
9
{
10
10
"recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r",
11
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1bXI2UkhFelNNSkEvTHJS\nN1BVSFpPSDViWGE3QitCSm5aV3hxMWg0c1c0Ck1adUtvSVdGMDlFOTVVR1NTTVFH\nWGZiOFZQc3hGNytROWhZbUMrY1ozaUkKLS0tIFR1WWRRQzltQVJPSWhjMC8xUWwx\nUmF3OHMxQnNhMnh4QitLYSs2L1VGdEkK3LIxNohQyG66Nd3KMOKyFNiqBfa0Qy3T\nSjgXLR5EJ01i2QFJHvx02SYvODsbqenOHbS0VI0s54tuTcGjeROZ5g==\n-----END AGE ENCRYPTED FILE-----\n"
11
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc1N0MUNwVFNlTEdjUElq\nUWlsTG8vc2xQYitYNWlUTlRGRTVLVzRyY1dBCmlMVG9OcUU5bjhzNDhpWStDaWVn\nRTcxZ1QySFhabklhQzJKL3BqSVVydncKLS0tIGhIamdINjdJZERnbXowZTlNRGtY\nOVVJSEZ1Q2NNNXNXV3UrbldUTy8yTlUKeLwquuhjLHDwzzL8JERFELXD9b6HWlKD\n6YXv+mHaeKtcN0y61uzH2O51U13e79ipex9AeYj8YSIZx1DRiJAg5Q==\n-----END AGE ENCRYPTED FILE-----\n"
12
12
},
13
13
{
14
14
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcElyazI3ZGZxTDZyd2hx\nMW5aVlZnY2ttWHZib1kzZXd5a2M4Zjk5bEU0CmdsaitJZGdGbVdpUlNDcysxdjlK\naEtDeDJNTmxVWllLZUM0SjU3RXhycUkKLS0tIE4rcEhtanZRUHQrZ2dORGxySzZ0\nUUdwY0RXVjhwV0tzQjNzVjEwK1FsdEUKCW/Y1UhhK4X86LG24CJIZXPXHuZkht4o\nHrRedZMKa5c2GCGpxN5oeCkfVhA9hgM6yQIVdAESlVYv3h4hO9VeCg==\n-----END AGE ENCRYPTED FILE-----\n"
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlU2tFSTgwSXFyVEo4YVdO\naUx5R2F3UGxhY0RBbStMNDdpMWZCdkVzMEc4CmcwOVVFbDBGRlZDS3dhdGZNNUtI\nWWNCRDRUelhvVzA2ZFIwZ09QYUhZWk0KLS0tIDRORmpMZk5CcDdOL2pvMW51clA2\naFpFS1k2dW9rY1dQR2hwb2FlMWVrREUKL3F0eiR8lKlDfQMYekRvxUo/c/qDVgKJ\nl5+yOsCMh6iu2u696gRcrnzrZ/aX23TJE98ttYS97DeUjUCc0Dpo1w==\n-----END AGE ENCRYPTED FILE-----\n"
16
16
},
17
17
{
18
18
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5K1J4K3dIQ01KbUZFem1s\nN0h2NVQ0eEZBekJISExIdFVVYk1GMEdyRTJjCmM3aVFTNXhTQUkvYnpROFdEZE1E\nUlI5ZzY1Qk9GbUVoSENmd3ZuZmFKQ2sKLS0tIEcvRG1OTWdMbzQ3N1VQOUNNaHZp\nRHprN0xyWnZPQlBYczFYb1dOTWJTQ1UKBowFP6F/pz/f5ozX+ZrbT/rA2Vhz/KWS\nHuCndZfghTfKD2RGEHyRT/Orr7Rj+ZEyGOZJaB2tfxQjSCqYyu4o8A==\n-----END AGE ENCRYPTED FILE-----\n"
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcUhZOU9kQ1FkMWY4TkdS\neStwOThKdkpWa04xYUU4MENrbjZRQ29ya3pZCkpqaHRGeVUyeGdDemZUeXNkMlo5\nTkg3dFNlL3c1NWJNS1FzWUJ3b3FSYkkKLS0tIG9aUkxYTTVDRitCWTh1TmRFMXoy\nU3p6RHk4cUVOOTlDamNSZFdIVmc3STQKdvB/aVmyKhVAA+JKT8aQo1VmDa2WhGl7\nzGIGX77gsjDiy9Jb15Z3KWGu4AP+bonUTmTkUWA5Oiqe1rhOe9MDMA==\n-----END AGE ENCRYPTED FILE-----\n"
20
20
},
21
21
{
22
22
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXWHZxSFVJaHN2UUdicVE4\nc25CSGVKVUxVTVN1QjUrRjVoNXMyM0hRZ1hBCjVSK3lMeEdNSlhrbVhVOHZ3VU1w\nN0dMSWZja3dFYjQrWFN0R1hyTEdCY2cKLS0tIHlXbmNuMGUxOE5tUmw2UFFxNlhp\nRHRIZitZUEZ3NmQ3MmFLVUJIaFg1L28KC3oO8D0bEY9LsnattyhpQs0/HPxxtQTa\nGw7tfPR5QV+y7m1VRISdruds3ezayQBhgkv01fFCkvEp8SB+j/JdGg==\n-----END AGE ENCRYPTED FILE-----\n"
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNWhBaWQycm1EZ0JwKzIv\nSit2UjFhNUsrd00wSzhua2xONXZwZlA1WjMwCk80WG5acXNGTkFEdmxyYlRCNlIv\nc05CY0RQM3Z0ZXZNTkswOXVsaVcwS0EKLS0tIHBrNnpZbFRpY1BuMm5ocnlYWXNZ\nTXdBMkhROGxBM0R1MDdPNHhKM1NYYVUKjZaHwqh/0OKB+ybatAfxEF4OmskYW2E9\nYEjuhy9jdcqi2a3hm2bI6rdSCsemAADJPW2PWsqjNc2TB9QeAK9ZgQ==\n-----END AGE ENCRYPTED FILE-----\n"
24
24
},
25
25
{
26
26
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKazJxRVN2eWNlLzBIVklq\nTFZhamtCWUE2aEdYMTk4dnRxYkN2MGtiR3pZCjdubEw0RmRKNERYNWVDb0VPSDA4\nMXgya2tYU2ZTQlU2WmsyR3R6MjBJNncKLS0tIHIzR1NLWlJaOHBTeklsSDU2U2V2\najBjV2hUZStmYmJtd1BPYjZIczhWZDAKI/p+UGlPxJ6xZ8CiSJd0rDirr3BdF3+E\nQewJpDAL1uB9PgW44FvTGJZNFYzhO5j+ne1bGDE4FikXD2rgY+O2zA==\n-----END AGE ENCRYPTED FILE-----\n"
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTUEJ4ZjV5aUhLNUVxNlZp\nY1N1WUEwNE5odUQ2ZkdqdFV5cjB6WW1LWkRNCndObExzUDB4ZFdsYVVNbUtBbFE2\nSU5kZy9iK3RlY3FLWXFrR1pzZmhYOU0KLS0tIG04dm85SGtMQmZmT2RqTGYyRWlS\nTVhCRVUwWGhUaGdpUExPVjIxUVl1ZzQKkcnzuMCngr9oWFDynRENTlJQEFIbRJV/\nY8THko3rajg5QrIcoDTHeQ85WM6ucapUakAUTbis+Sa9xBoQ2coqDg==\n-----END AGE ENCRYPTED FILE-----\n"
28
28
}
29
29
],
30
-
"lastmodified": "2024-01-05T08:11:43Z",
31
-
"mac": "ENC[AES256_GCM,data:ghmebKFDGUPTtWDC9esVRp0SJgCWRzqfkBjf9trmvlyl/NT7AvZCDKC1U/UtJYe9BPBez01cGDzx/bOGpovsZjMEf6mWBiFyVAXLRm209zlGVDuUZQYXAqFymoFNuMQiuhPJJOS/bynhwkAEAsp3jEYklmfEQkDQnYmW7JNlFfw=,iv:rEyAkRv8bTit3BPra0/oFt30uHnwDQQyMnqYo/HaOug=,tag:ZSwgjzm2Z1f/Q0DaFg4yAA==,type:str]",
30
+
"lastmodified": "2025-03-08T10:28:45Z",
31
+
"mac": "ENC[AES256_GCM,data:1Y93EdZwSxZ3u+F0umtNc0jxzHHR7CdF2OUDb+DhxhmJrt9dEBoK1pRAN2qkdTMRMu5SDZVh0oilbQQC8HSC0iegpvlJo7lkG/qXyo1ixqEdp/P+mjqZTRqyxt2F/fFTPU9ggXhpQKyJcDgV6fjGm1pyYcTSMsvm0hOyrFq2+fE=,iv:rBYnAsB8PFoK2y0rb3G8YgX7e0yACTSE/AO1fYoRV8Q=,tag:TR6ZqCdPll7zPVSL/qUTzg==,type:str]",
32
32
"pgp": null,
33
33
"unencrypted_suffix": "_unencrypted",
34
34
"version": "3.8.1"
+36
secrets/users/nmelzer/nix-community
+36
secrets/users/nmelzer/nix-community
···
1
+
{
2
+
"data": "ENC[AES256_GCM,data:beYSt9kq8a7NhS+FQcWQFFz0AjJP+Ybz1o5tYhAXkFo88OlxooLKCEpFgSDmN8jKgoE/IItxuLNVJJmPmo7+QUbQZgZq2Gs5xE5Am40ckfWc5vdGshxa5cPFqt1v+Sq/D6+oMj+8wxRC8zbUXGAH7Pah9Zaht/O/8gYcdnuypokYz6iKn9J713JbKAUHNNK358UUQhkEuVHWIgsWjbe6FylP+GlNtziYm2d4FwhAebuoOmZx3prQidP2qAcuul/FWjvRa5tJX3mEEa/oA1z44Q54jkPyWHvaMbsXMwdmq/3iFL26pMMZJl7FrM5OjfcxsTPNFHZFe9zonVWzffvdgu3KDpNcGTDK2OZRbOszr6kXy3BZYkzt/EMHoqH75mJ+WNCaGIZ41c3MMWBjEr0AkDLrLWA59EcVAJdH0WQ0TaVUErncLG6kR9UfGTMNm6dFs50IJy0PfGISHAKrnNL+2NkAdEVKlhHouP/0nlCqgB9Zg33nWzHniP7e4j2yDz6jfIkoIUjBHuwYPh44MEFE,iv:liL/qeyXe5Wbm3WtMCR8iIUk0O7gdIqYTOS9sBJSyqo=,tag:pkKFZEKNNBvl3/SfjH2nwQ==,type:str]",
3
+
"sops": {
4
+
"kms": null,
5
+
"gcp_kms": null,
6
+
"azure_kv": null,
7
+
"hc_vault": null,
8
+
"age": [
9
+
{
10
+
"recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r",
11
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtZ2c0aUJiRENZM1FNamJX\ndElNRmNsdlRBMFZNeG5vRHdVcjFyWEhYTnhBClJEbWF4ZFkxM3NoS0hXS2tnaTJY\nM29oY2xzQldidzdBcE54c2pTdkhCNncKLS0tIEFLNC94aUZmUkdLc09oSEkrb0VS\nM29wT2h4SEdjUE9CMWtFMmYwSHVSaUEKN9MEDf76Wa5JNjk0DSy8MExMDjyxhpSu\nBCPeuJpyYqac2vpwc09ttV4vqbzRzrGHlMGPpgFkgkYvvzX5lqehkQ==\n-----END AGE ENCRYPTED FILE-----\n"
12
+
},
13
+
{
14
+
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeGZtQ2xERDlxd3l1TzFW\nTFhmRDJnOUJxUW0vemtZM1FORCsyMHFyTkJFCmtvR3I4eWhuSjFrNTJDdkd4Z29k\nRkt4eHM0aWVtNTZuc2txVGNKc2N1SDQKLS0tIEZ4bE5qU3hSSGpXb3lGWHp6MGti\nb2QzWDRYRmluWDllTVNJNmJaMlMxZDAKB0LOonMk7ypELophUHLnR2eEOclM5CgD\nrbgkmmKZPXMSvXLXDoQDICxleDNoFD2mWi4JvwZWZuRpaNs/1KPraw==\n-----END AGE ENCRYPTED FILE-----\n"
16
+
},
17
+
{
18
+
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGdTVoVUI4UzM1VmlTZWVy\nblZxZE04TmIxaU1zOGhrREh6NnJaaTIwSjBBClFHejZwdHlFRTQyMC9YOFFsczhI\nMjh6cjJzcklFUGlHV1p6TnJUdzNPVGsKLS0tIFVQTDI1K0Jydno1ZVgrN2p2aDdi\nQ01mR3lNVzRmSEptQklBR0tIbWR0WE0KKND3aAMOLmMLjQV4iexO+XnjZIgZSSOj\nbK3qtICJ7E9lcRgoXtHDJm6+e5BzpBOUVkfX7cKAEWWtbfwrHbYnyA==\n-----END AGE ENCRYPTED FILE-----\n"
20
+
},
21
+
{
22
+
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZTVyRU9DQmNIRm1HWDQy\nUmhQUGVPM21ldGhCSzMydGpMK2JBdUNZU1JrCkpTa1krT1haWGo3OEdnLzFQZzh5\nTkFYb21JZjhGdmZxTjU1U1hRU0hkaGMKLS0tIDl0M3NaeE0vOTlTU0psSnVpYUw1\nYUE3ZGxXUmk0WUZmWUlQdjJNMTRBclEKPCZVzELeRe9jUC+dY/LTFrk0yrk4uWn0\nhNCROYc6jQPAHLhYRnCbWkENCQHfhBrxVLeyzLmELoU5ZdM0KgtPyA==\n-----END AGE ENCRYPTED FILE-----\n"
24
+
},
25
+
{
26
+
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3aU02ZFlIcDFpUXU5ZUg3\nUFZTR0Uya2JDUkw5L29tK3d2cmg2N05XVFRJClZnWVpwVHo3cFp2b0h3QVh0Wk15\nWGFOclBuQVMvcVdMcklGOUVST2JGYVkKLS0tIHFrRUl1aW1OZ1Z2SkF5K3FMRmFu\nQXlDZjdlWVFVZWEzaXN5NnNFc25iRkUKk6/f0mFEON/gplXSDCviVm4+e+duQJlw\nBT1oJflU2VHXK9RJBiUl9sV3tGHF41MeXpt3WoEO1AKMsk8Q3Q++1w==\n-----END AGE ENCRYPTED FILE-----\n"
28
+
}
29
+
],
30
+
"lastmodified": "2025-03-08T10:28:45Z",
31
+
"mac": "ENC[AES256_GCM,data:yenOYHB/Eax95Z8YqLd2kWq6bHUIbDXHj/qQntzLgLmBTUpnWW4DKuyligR3iBH91WD4evWBc+bDU5sMfGuozDQpgynsoIjPiOsNXPlLOURZLQf4tnqPzd4VzSkWsH2Q+b5bQvEteqYwYt9EI0XUxOfIF0X10yrjCM6axV6bsu8=,iv:du8kmJ2P/33SsLOih+5oCMrdvIEgWsFEC4ys51ASLJ4=,tag:4jsUew+WAfIj6pAUTGymLg==,type:str]",
32
+
"pgp": null,
33
+
"unencrypted_suffix": "_unencrypted",
34
+
"version": "3.9.2"
35
+
}
36
+
}
+8
-8
secrets/users/nmelzer/nobbz_dev
+8
-8
secrets/users/nmelzer/nobbz_dev
···
1
1
{
2
-
"data": "ENC[AES256_GCM,data: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,iv:iwfQiWkkxmB52x5mVXlhS3pbzKL3/ctoJMctdhHGQuk=,tag:m8/TR6abg/1Ipl00mtZmmA==,type:str]",
2
+
"data": "ENC[AES256_GCM,data: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,iv:iwfQiWkkxmB52x5mVXlhS3pbzKL3/ctoJMctdhHGQuk=,tag:VQ0GWz0xyQiCx/WpYq1itA==,type:str]",
3
3
"sops": {
4
4
"kms": null,
5
5
"gcp_kms": null,
···
8
8
"age": [
9
9
{
10
10
"recipient": "age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r",
11
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0ZEF1bHhUb01qbitBWE92\nU1N3Kzl1cnpyZ2MwcW13eExweXZzYWdZV0FBCndqeXRQSmVpRStXU1RaTnEyOE12\nSmxBYVdMMFlOZnVuVDI0d2RyMTNWemMKLS0tIENkSVNTS2R0dEtpVWdPWkI4d2o3\nL2R0aHBCeWtCYkl5U2IrTFZZYk9HRjgKeuxfwNJ6ioWUZJfPEC5dT9FALWHW2aQX\n1UB89WqFlPOWVaDfqodk/13eERyyHXJLWgPhL/ftAlCmq7xJ367cSw==\n-----END AGE ENCRYPTED FILE-----\n"
11
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtQUpwZ2JXYTUybXc5Tm9T\na1p6azYvbno0NzY0UGNrWnNjQUd3SnJMakV3CjVMemhwQ3NmOWFJSGEzQ2ZsL1pF\najgrM2g2THQ2dkxTUUM0QlpnODRjbUkKLS0tIDZKaFYydnZRYWdxZFIzYnNZbjZ3\nWkxPcWdHbm9ZZnZNNVpIQmZ5djVHTGcKAiKFm4r93FBNXxt/jgofvKS3pn0NbdWW\njDacQ7VUubSqpmHax/s/FNV75g5ynIm8ldOJVoW6lgNxPWxcfucTLA==\n-----END AGE ENCRYPTED FILE-----\n"
12
12
},
13
13
{
14
14
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMFdVTWxwK0drekFHaGZL\nTUVrOHFoTHF2QWRKaFlDMnhnenpYdys0d0FFCnBVekcrQUNZeDA2Vm1lY0k0cEY5\ncm1BTGg4UWFaNS9IenkvbEhiVG9UczQKLS0tIG1IbCttN0pLWUlneUJpSmdDUjhj\nZC85dVRHWnMxd2YxUWV1MW9xY2lpVTgKI1ecaeTwJzDgjt+iux8rnjzLsKxpgAvt\ndHt3F8i9S7HgoWaBon5MTqzMKwwR8QZ2pmqZhB4aoRsfyTnpcn1ryw==\n-----END AGE ENCRYPTED FILE-----\n"
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLMU5ycnhZSlJyQ0UrRXVo\naVIra1o2TkRmbTFFMHFzeTN2d1NGQUluTVRzCk4wRm41Sy8rNWh4OXI0eUdKdDhH\nRjZwcE80K1NUbGxubGp1akh1WVFTWU0KLS0tIFZraWFpdmU3dlRCMnVtMHN3RnFD\nYmN5dmIwRUlJQktKTmUzZllTb1lOUTQKkJLBrTeUlPaZ1C/pGWu9WQNFCBgsJVqS\nYnPpsvYJiOE/6WmCzB34OVpO8vdrv1mE5jR/Ila3YQVjBt8JHo7Zqw==\n-----END AGE ENCRYPTED FILE-----\n"
16
16
},
17
17
{
18
18
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDRG5BZlUreG9hMUpMdk5r\nOWZqUURBTGhrNC9wN3BGYXNmVXRJbGE3UnpRClEvanl0ZGRKZzRWN0tBM0IvUXFF\nUXpDUmlydUUwaUFVdFZBZDJDR0RwVGcKLS0tIHZCd0NBVFhXY1EwNnl4aXh0aUsz\nQzN6d1pjWS9jb3hUOUxGa2Zxdm1aak0K1hr6OIZlgP1hOkWUoBPGLmO3RxYUMq+J\ng9zl9TGWvks9ooUrLZE5RyZmz4LOKrhYVsHcx0qliBbWoNZ5Wmp4Pg==\n-----END AGE ENCRYPTED FILE-----\n"
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVUEx6UkEveUI1UVRqQm1n\ncE9OcFNnZFM4eU5iM2NpQjQ5R0NteFZOMlhZCk1Kd3JxVy9tTk5oTU1GSUgyTjNO\nY1hmaTZjYmZkZHVnazl3Q1ViT1R6RVUKLS0tIE9udElPWU9vNWpYYWtmMmluTWQ2\nK0hWL25OemxpVStNMFZJUGI4UUc4MmsKs7DTAfnY74yp33cmdyYiF6fPiNgheehm\nRO9PDQ/Yh6wIq/6j/brPsMJLyYrC7+Mjgx/oX5lNmMwTVLBrCe/qdg==\n-----END AGE ENCRYPTED FILE-----\n"
20
20
},
21
21
{
22
22
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtT1EranB0ZEEyWTU4MXQv\nODFvOVZqekVXYnpQVm5kSXA4eXpFSkEzVVRZCnNsU1Z3Z2R6NXkrNXdGUGY1d2c2\nd2h2ck9ZYk15QTcrdHBoL2lidElJMUkKLS0tIEE1VlR2ZnNGUzNJL0xseTBFRjVY\nbEl0Ry9VSkpQVlhIZEVKVThhUVQwMVkKYB0jDj/SyMOsR39lUqaONd4Hwcx3WeoN\n/hE/un4uYyLjPg1BTwOzmjfRA7tMJenvGsGYJJb1JTWj+CVMxcRelQ==\n-----END AGE ENCRYPTED FILE-----\n"
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqVW5aVUVpZk14U1pYK2NJ\nRVpGbGdXVzlLQ25PSWYyWjR6bGRCWkIxM3dVCnlGd1h3Z2pJNmNweTgwRmUyL1Bo\nNVBoaFprQWVUK1pQbi9YOTgreFBpcDgKLS0tIFhCUE5WQ2w4R3J1eXVhSFJEOGRp\nMlZpSnovWnpvc3lGemE3WmJkK2xQWVkKkNZaVbq8X99+MXfei0BzbXBwzibERWvR\nV26mOEEYcfv/3/KqCLOjBVCLEE3RSuB9AtniAAFC6Fj0/jHnMzaghQ==\n-----END AGE ENCRYPTED FILE-----\n"
24
24
},
25
25
{
26
26
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
-
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRHlYeTBKc3dTbWZiSEtQ\nRlE2amZCNXBKVzVtM0FDL0RTSHpUQTRjMmdNClkvWG9XQ3UyWmpibXcvejY3aytn\nN3p1YXh4ZDVpemhtY2Qyc3Vhc3ExaEkKLS0tIGJVRmlDOXpISnJwRHdXMlJkdWJ5\nR1orc1dZdFZCdUxxZVdqbExRaUovbTAKkWDi9yQvbyHQ3qSWGlRKea8ZW8W+16Oz\njHbrkJWlloMzUfqOA1i5aj9XoN3a6t5iWJKLjxlekvmO9nIftv/CEA==\n-----END AGE ENCRYPTED FILE-----\n"
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQdlIzc3NQM2JkdW1TQzVX\nYVRjR2hEY3NrME9GeHJhbitpQURVbUdoTWlrCm81Wmt5dWpWWlVtaHJKcnNnMVJm\nekZnM0gycDdlZi9ZdUhYMTRpTFhjK28KLS0tIHcrcFQ3SEphOW1oeEsvcDdBUFRI\nU1psVWVldkZ0TXp3QnBmMUxHdm1ocmsKn/oYX+0hYRZvC32KGQ9hNRDMdlxclv5x\nekDM5wPeI9wT/j62bxmykEtNnI40WEpEopz7MSZvRnj6B8zF9boFPw==\n-----END AGE ENCRYPTED FILE-----\n"
28
28
}
29
29
],
30
-
"lastmodified": "2024-01-05T08:11:43Z",
31
-
"mac": "ENC[AES256_GCM,data:mOqIA9zbSvNl7jjHxo7YLEBcrrucrlgOtDa4Z9Wc7QR60m58ne8H5Hrudqt68G/DulXxXtxYgeI0q4tBWjlecyFEUYy0NenMQ0282m1IOgM2umWdr4kZHpOO+9OfojdFuM0nGJ6ttxpFWp40BzWo9bU0t9htrgUdoTXoS2XnyOk=,iv:iYRpfJWGPE/+WJQwu9n4VXoXqyywtFg2pXgItt8R83w=,tag:8E5sYSJznl7cNT7KYySKtg==,type:str]",
30
+
"lastmodified": "2025-03-08T10:28:45Z",
31
+
"mac": "ENC[AES256_GCM,data:7XBQhTfVn9Uq4ZjjpLdMyvw+kDhIJ+dUEjI1j7Lq8QzoxLN7kqWyrotavl4T7x3kbhGseqA/RtuldK5cvw90OK7FVvWD0H5WSsxDCG2zuNRCELmiOEM8O4Iw47J6ye3wY9F+05F7ggG/GrZGJK09YojuZyek4G+/slHfp/Zgxy0=,iv:vAqJx7GT28f4wC0iH0w+K/HRywJlMb6/N/5Lb1/4q80=,tag:L3odjAh/IWuddrzg7vP/Sg==,type:str]",
32
32
"pgp": null,
33
33
"unencrypted_suffix": "_unencrypted",
34
34
"version": "3.8.1"