+47
-46
.github/workflows/flake-update.yml
+47
-46
.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 }}
14
14
steps:
15
15
- name: Clone repository
16
-
uses: actions/checkout@v3
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@v20
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.12.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
-
uses: actions/checkout@v3
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@v20
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.12.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
···
62
62
- name: Update the flake
63
63
run: nix flake update
64
64
- name: Store flake.lock
65
-
uses: actions/upload-artifact@v3
65
+
uses: actions/upload-artifact@v4
66
66
with:
67
67
name: flake_lock
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
···
78
78
steps:
79
79
# - name: Prepare store folder
80
80
# run: sudo mkdir -p /nix
81
-
# - name: Free diskspace
82
-
# uses: easimon/maximize-build-space@master
83
-
# with:
84
-
# build-mount-path: /nix
85
-
# remove-dotnet: true
86
-
# remove-android: true
87
-
# remove-haskell: true
81
+
- name: Free diskspace
82
+
uses: easimon/maximize-build-space@master
83
+
with:
84
+
build-mount-path: /nix
85
+
root-reserve-mb: 5120
86
+
remove-dotnet: true
87
+
remove-android: true
88
+
remove-haskell: true
88
89
- name: Clone repository
89
-
uses: actions/checkout@v3
90
+
uses: actions/checkout@v4
90
91
with:
91
-
token: "${{ secrets.GITHUB_TOKEN }}"
92
+
token: "${{ secrets.TEST_TOKEN }}"
92
93
- name: Install nix
93
-
uses: cachix/install-nix-action@v20
94
+
uses: cachix/install-nix-action@v31
94
95
with:
95
96
extra_nix_config: |
96
97
auto-optimise-store = true
97
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
98
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
98
99
experimental-features = nix-command flakes
99
100
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
100
101
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
101
-
install_url: https://releases.nixos.org/nix/nix-2.12.0/install
102
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
102
103
- name: Set up cachix
103
104
uses: cachix/cachix-action@master # pathsToPush, please update once we have v11!
104
105
with:
···
106
107
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
107
108
pathsToPush: result
108
109
- name: Restore flake.lock
109
-
uses: actions/download-artifact@v3
110
+
uses: actions/download-artifact@v4
110
111
with:
111
112
name: flake_lock
112
113
- name: Build everything
113
114
run: nix build .#${{ matrix.package }}
114
115
115
116
build_checks:
116
-
runs-on: ubuntu-20.04
117
+
runs-on: ubuntu-24.04
117
118
needs: [generate_matrix, update_flake]
118
119
strategy:
119
120
fail-fast: false
···
122
123
check: ${{fromJson(needs.generate_matrix.outputs.checks)}}
123
124
steps:
124
125
- name: Clone repository
125
-
uses: actions/checkout@v3
126
+
uses: actions/checkout@v4
126
127
with:
127
-
token: "${{ secrets.GITHUB_TOKEN }}"
128
+
token: "${{ secrets.TEST_TOKEN }}"
128
129
- name: Install nix
129
-
uses: cachix/install-nix-action@v20
130
+
uses: cachix/install-nix-action@v31
130
131
with:
131
132
extra_nix_config: |
132
133
auto-optimise-store = true
133
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
134
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
134
135
experimental-features = nix-command flakes
135
136
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
136
137
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
137
-
install_url: https://releases.nixos.org/nix/nix-2.12.0/install
138
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
138
139
- name: Set up cachix
139
140
uses: cachix/cachix-action@master # pathsToPush, please update once we have v11!
140
141
with:
···
142
143
signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}"
143
144
skipPush: true
144
145
- name: Restore flake.lock
145
-
uses: actions/download-artifact@v3
146
+
uses: actions/download-artifact@v4
146
147
with:
147
148
name: flake_lock
148
149
- name: Build everything
149
150
run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link
150
151
151
152
check_flake:
152
-
runs-on: ubuntu-20.04
153
+
runs-on: ubuntu-24.04
153
154
needs: [update_flake]
154
155
continue-on-error: true
155
156
steps:
156
157
- name: Clone repository
157
-
uses: actions/checkout@v3
158
+
uses: actions/checkout@v4
158
159
with:
159
-
token: "${{ secrets.GITHUB_TOKEN }}"
160
+
token: "${{ secrets.TEST_TOKEN }}"
160
161
- name: Install nix
161
-
uses: cachix/install-nix-action@v20
162
+
uses: cachix/install-nix-action@v31
162
163
with:
163
164
extra_nix_config: |
164
165
auto-optimise-store = true
165
-
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
166
+
access-tokens = github.com=${{ secrets.TEST_TOKEN }}
166
167
experimental-features = nix-command flakes
167
168
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
168
169
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
169
-
install_url: https://releases.nixos.org/nix/nix-2.12.0/install
170
+
install_url: https://releases.nixos.org/nix/nix-2.25.0/install
170
171
- name: Restore flake.lock
171
-
uses: actions/download-artifact@v3
172
+
uses: actions/download-artifact@v4
172
173
with:
173
174
name: flake_lock
174
175
- name: Build everything
···
176
177
nix flake check --keep-going
177
178
178
179
push_update:
179
-
runs-on: ubuntu-20.04
180
+
runs-on: ubuntu-24.04
180
181
permissions: write-all
181
182
needs: [update_flake, build_flake, build_checks, check_flake]
182
183
steps:
183
184
- name: Clone repository
184
-
uses: actions/checkout@v3
185
+
uses: actions/checkout@v4
185
186
with:
186
-
token: "${{ secrets.GITHUB_TOKEN }}"
187
+
token: "${{ secrets.TEST_TOKEN }}"
187
188
- name: Restore flake.lock
188
-
uses: actions/download-artifact@v3
189
+
uses: actions/download-artifact@v4
189
190
with:
190
191
name: flake_lock
191
192
- name: Set up git
···
206
207
--title "Auto update $(date -I)")
207
208
gh pr merge $PR --merge --delete-branch
208
209
env:
209
-
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
+12
.sops.yaml
+12
.sops.yaml
···
2
2
- &admin_nobbz age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
3
3
- &host_mimas age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa
4
4
- &user_nmelzer_mimas age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6
5
+
- &user_nmelzer_phoebe age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna
5
6
creation_rules:
6
7
- path_regex: secrets/[^/]+\.yaml$
7
8
key_groups:
···
18
19
- age:
19
20
- *admin_nobbz
20
21
- *user_nmelzer_mimas
22
+
- path_regex: secrets/phoebe/nmelzer/[^/]+
23
+
key_groups:
24
+
- age:
25
+
- *admin_nobbz
26
+
- *user_nmelzer_phoebe
27
+
- path_regex: secrets/users/nmelzer/[^/]+$
28
+
key_groups:
29
+
- age:
30
+
- *admin_nobbz
31
+
- *user_nmelzer_mimas
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 {};
+329
-500
flake.lock
+329
-500
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": 1660510326,
11
-
"narHash": "sha256-xFumnivtVwu5fFBOrTxrv6fv3geHKF04RGP23EsDVaI=",
12
-
"owner": "kamadorueda",
13
-
"repo": "alejandra",
14
-
"rev": "ef03f7ef74ec97fd91a016a51c9c9667fb315652",
15
-
"type": "github"
16
-
},
17
-
"original": {
18
-
"owner": "kamadorueda",
19
-
"ref": "3.0.0",
20
-
"repo": "alejandra",
21
-
"type": "github"
22
-
}
23
-
},
24
-
"alejandra_2": {
3
+
"cargo2nix": {
25
4
"inputs": {
26
-
"fenix": "fenix_2",
27
-
"flakeCompat": "flakeCompat_2",
5
+
"flake-compat": "flake-compat_3",
6
+
"flake-utils": "flake-utils_3",
28
7
"nixpkgs": [
29
8
"switcher",
30
-
"dream2nix",
31
-
"nixpkgs"
32
-
]
33
-
},
34
-
"locked": {
35
-
"lastModified": 1658427149,
36
-
"narHash": "sha256-ToD/1z/q5VHsLMrS2h96vjJoLho59eNRtknOUd19ey8=",
37
-
"owner": "kamadorueda",
38
-
"repo": "alejandra",
39
-
"rev": "f5a22afd2adfb249b4e68e0b33aa1f0fb73fb1be",
40
-
"type": "github"
41
-
},
42
-
"original": {
43
-
"owner": "kamadorueda",
44
-
"repo": "alejandra",
45
-
"type": "github"
46
-
}
47
-
},
48
-
"crane": {
49
-
"flake": false,
50
-
"locked": {
51
-
"lastModified": 1670900067,
52
-
"narHash": "sha256-VXVa+KBfukhmWizaiGiHRVX/fuk66P8dgSFfkVN4/MY=",
53
-
"owner": "ipetkov",
54
-
"repo": "crane",
55
-
"rev": "59b31b41a589c0a65e4a1f86b0e5eac68081468b",
56
-
"type": "github"
57
-
},
58
-
"original": {
59
-
"owner": "ipetkov",
60
-
"repo": "crane",
61
-
"type": "github"
62
-
}
63
-
},
64
-
"devshell": {
65
-
"flake": false,
66
-
"locked": {
67
-
"lastModified": 1663445644,
68
-
"narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=",
69
-
"owner": "numtide",
70
-
"repo": "devshell",
71
-
"rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66",
72
-
"type": "github"
73
-
},
74
-
"original": {
75
-
"owner": "numtide",
76
-
"repo": "devshell",
77
-
"type": "github"
78
-
}
79
-
},
80
-
"dream2nix": {
81
-
"inputs": {
82
-
"alejandra": "alejandra_2",
83
-
"all-cabal-json": [
84
-
"switcher",
85
9
"nixpkgs"
86
10
],
87
-
"crane": "crane",
88
-
"devshell": "devshell",
89
-
"flake-parts": [
90
-
"switcher",
91
-
"flake-parts"
92
-
],
93
-
"flake-utils-pre-commit": "flake-utils-pre-commit",
94
-
"ghc-utils": "ghc-utils",
95
-
"gomod2nix": "gomod2nix",
96
-
"mach-nix": "mach-nix",
97
-
"nix-pypi-fetcher": "nix-pypi-fetcher",
98
-
"nixpkgs": [
11
+
"rust-overlay": [
99
12
"switcher",
100
-
"nixpkgs"
101
-
],
102
-
"poetry2nix": "poetry2nix",
103
-
"pre-commit-hooks": "pre-commit-hooks",
104
-
"pruned-racket-catalog": "pruned-racket-catalog"
13
+
"rust-overlay"
14
+
]
105
15
},
106
16
"locked": {
107
-
"lastModified": 1677289985,
108
-
"narHash": "sha256-lUp06cTTlWubeBGMZqPl9jODM99LpWMcwxRiscFAUJg=",
109
-
"owner": "nix-community",
110
-
"repo": "dream2nix",
111
-
"rev": "28b973a8d4c30cc1cbb3377ea2023a76bc3fb889",
17
+
"lastModified": 1705129117,
18
+
"narHash": "sha256-LgdDHibvimzYhxBK3kxCk2gAL7k4Hyigl5KI0X9cijA=",
19
+
"owner": "cargo2nix",
20
+
"repo": "cargo2nix",
21
+
"rev": "ae19a9e1f8f0880c088ea155ab66cee1fa001f59",
112
22
"type": "github"
113
23
},
114
24
"original": {
115
-
"owner": "nix-community",
116
-
"repo": "dream2nix",
25
+
"owner": "cargo2nix",
26
+
"repo": "cargo2nix",
117
27
"type": "github"
118
28
}
119
29
},
120
30
"emacs": {
121
31
"inputs": {
122
-
"flake-utils": "flake-utils",
123
32
"nixpkgs": [
124
-
"master"
33
+
"nixpkgs"
34
+
],
35
+
"nixpkgs-stable": [
36
+
"nixpkgs"
125
37
]
126
38
},
127
39
"locked": {
128
-
"lastModified": 1678296165,
129
-
"narHash": "sha256-nEU+1PKIvYfD+oQ53KO13J2LwMPzUgWc89tFzrES9K4=",
40
+
"lastModified": 1749090069,
41
+
"narHash": "sha256-uN3Mp+o7IfVT9H/OuwEtJ17NktCaF4t9Ond3TKt+BE4=",
130
42
"owner": "nix-community",
131
43
"repo": "emacs-overlay",
132
-
"rev": "5b3d95676be5c6963c4d16f21ecf82beb14c6c05",
44
+
"rev": "c17506666090e412a50b01c57944386ab81d2aa8",
133
45
"type": "github"
134
46
},
135
47
"original": {
···
138
50
"type": "github"
139
51
}
140
52
},
141
-
"fenix": {
142
-
"inputs": {
143
-
"nixpkgs": [
144
-
"alejandra",
145
-
"nixpkgs"
146
-
],
147
-
"rust-analyzer-src": "rust-analyzer-src"
148
-
},
53
+
"flake-compat": {
54
+
"flake": false,
149
55
"locked": {
150
-
"lastModified": 1657607339,
151
-
"narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=",
152
-
"owner": "nix-community",
153
-
"repo": "fenix",
154
-
"rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d",
56
+
"lastModified": 1733328505,
57
+
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
58
+
"owner": "edolstra",
59
+
"repo": "flake-compat",
60
+
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
155
61
"type": "github"
156
62
},
157
63
"original": {
158
-
"owner": "nix-community",
159
-
"repo": "fenix",
64
+
"owner": "edolstra",
65
+
"repo": "flake-compat",
160
66
"type": "github"
161
67
}
162
68
},
163
-
"fenix_2": {
164
-
"inputs": {
165
-
"nixpkgs": [
166
-
"switcher",
167
-
"dream2nix",
168
-
"alejandra",
169
-
"nixpkgs"
170
-
],
171
-
"rust-analyzer-src": "rust-analyzer-src_2"
172
-
},
69
+
"flake-compat_2": {
70
+
"flake": false,
173
71
"locked": {
174
-
"lastModified": 1657607339,
175
-
"narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=",
176
-
"owner": "nix-community",
177
-
"repo": "fenix",
178
-
"rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d",
72
+
"lastModified": 1696426674,
73
+
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
74
+
"owner": "edolstra",
75
+
"repo": "flake-compat",
76
+
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
179
77
"type": "github"
180
78
},
181
79
"original": {
182
-
"owner": "nix-community",
183
-
"repo": "fenix",
80
+
"owner": "edolstra",
81
+
"repo": "flake-compat",
184
82
"type": "github"
185
83
}
186
84
},
187
-
"flake-utils": {
85
+
"flake-compat_3": {
86
+
"flake": false,
188
87
"locked": {
189
-
"lastModified": 1667395993,
190
-
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
191
-
"owner": "numtide",
192
-
"repo": "flake-utils",
193
-
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
88
+
"lastModified": 1696426674,
89
+
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
90
+
"owner": "edolstra",
91
+
"repo": "flake-compat",
92
+
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
194
93
"type": "github"
195
94
},
196
95
"original": {
197
-
"owner": "numtide",
198
-
"repo": "flake-utils",
96
+
"owner": "edolstra",
97
+
"repo": "flake-compat",
199
98
"type": "github"
200
99
}
201
100
},
202
-
"flake-utils-pre-commit": {
101
+
"flake-utils": {
203
102
"locked": {
204
-
"lastModified": 1644229661,
205
-
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
103
+
"lastModified": 1659877975,
104
+
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
206
105
"owner": "numtide",
207
106
"repo": "flake-utils",
208
-
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
107
+
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
209
108
"type": "github"
210
109
},
211
110
"original": {
···
215
114
}
216
115
},
217
116
"flake-utils_2": {
117
+
"inputs": {
118
+
"systems": "systems"
119
+
},
218
120
"locked": {
219
-
"lastModified": 1676283394,
220
-
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
121
+
"lastModified": 1681202837,
122
+
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
221
123
"owner": "numtide",
222
124
"repo": "flake-utils",
223
-
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
125
+
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
224
126
"type": "github"
225
127
},
226
128
"original": {
···
230
132
}
231
133
},
232
134
"flake-utils_3": {
135
+
"inputs": {
136
+
"systems": "systems_2"
137
+
},
233
138
"locked": {
234
-
"lastModified": 1676283394,
235
-
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
139
+
"lastModified": 1694529238,
140
+
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
236
141
"owner": "numtide",
237
142
"repo": "flake-utils",
238
-
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
143
+
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
239
144
"type": "github"
240
145
},
241
146
"original": {
···
244
149
"type": "github"
245
150
}
246
151
},
247
-
"flakeCompat": {
248
-
"flake": false,
152
+
"gen-luarc": {
153
+
"inputs": {
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
+
]
164
+
},
249
165
"locked": {
250
-
"lastModified": 1650374568,
251
-
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
252
-
"owner": "edolstra",
253
-
"repo": "flake-compat",
254
-
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
166
+
"lastModified": 1724097937,
167
+
"narHash": "sha256-Q4tgm8ZHAQUdvsNft86MqIbHQAm7OF7RT/wwYWXqSdY=",
168
+
"owner": "mrcjkb",
169
+
"repo": "nix-gen-luarc-json",
170
+
"rev": "b36b69c4ded9f31b079523bc452e23458734cf00",
255
171
"type": "github"
256
172
},
257
173
"original": {
258
-
"owner": "edolstra",
259
-
"repo": "flake-compat",
174
+
"owner": "mrcjkb",
175
+
"repo": "nix-gen-luarc-json",
260
176
"type": "github"
261
177
}
262
178
},
263
-
"flakeCompat_2": {
264
-
"flake": false,
179
+
"git-hooks": {
180
+
"inputs": {
181
+
"flake-compat": "flake-compat_2",
182
+
"gitignore": "gitignore",
183
+
"nixpkgs": [
184
+
"nvim",
185
+
"gen-luarc",
186
+
"nixpkgs"
187
+
],
188
+
"nixpkgs-stable": "nixpkgs-stable"
189
+
},
265
190
"locked": {
266
-
"lastModified": 1650374568,
267
-
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
268
-
"owner": "edolstra",
269
-
"repo": "flake-compat",
270
-
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
191
+
"lastModified": 1723803910,
192
+
"narHash": "sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc=",
193
+
"owner": "cachix",
194
+
"repo": "git-hooks.nix",
195
+
"rev": "bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba",
271
196
"type": "github"
272
197
},
273
198
"original": {
274
-
"owner": "edolstra",
275
-
"repo": "flake-compat",
199
+
"owner": "cachix",
200
+
"repo": "git-hooks.nix",
276
201
"type": "github"
277
202
}
278
203
},
279
-
"ghc-utils": {
280
-
"flake": false,
204
+
"git-hooks-nix": {
205
+
"inputs": {
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
+
},
281
221
"locked": {
282
-
"lastModified": 1662774800,
283
-
"narHash": "sha256-1Rd2eohGUw/s1tfvkepeYpg8kCEXiIot0RijapUjAkE=",
284
-
"ref": "refs/heads/master",
285
-
"rev": "bb3a2d3dc52ff0253fb9c2812bd7aa2da03e0fea",
286
-
"revCount": 1072,
287
-
"type": "git",
288
-
"url": "https://gitlab.haskell.org/bgamari/ghc-utils"
222
+
"lastModified": 1734279981,
223
+
"narHash": "sha256-NdaCraHPp8iYMWzdXAt5Nv6sA3MUzlCiGiR586TCwo0=",
224
+
"owner": "cachix",
225
+
"repo": "git-hooks.nix",
226
+
"rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785",
227
+
"type": "github"
289
228
},
290
229
"original": {
291
-
"type": "git",
292
-
"url": "https://gitlab.haskell.org/bgamari/ghc-utils"
230
+
"owner": "cachix",
231
+
"repo": "git-hooks.nix",
232
+
"type": "github"
293
233
}
294
234
},
295
-
"gomod2nix": {
296
-
"flake": false,
235
+
"gitignore": {
236
+
"inputs": {
237
+
"nixpkgs": [
238
+
"nvim",
239
+
"gen-luarc",
240
+
"git-hooks",
241
+
"nixpkgs"
242
+
]
243
+
},
297
244
"locked": {
298
-
"lastModified": 1627572165,
299
-
"narHash": "sha256-MFpwnkvQpauj799b4QTBJQFEddbD02+Ln5k92QyHOSk=",
300
-
"owner": "tweag",
301
-
"repo": "gomod2nix",
302
-
"rev": "67f22dd738d092c6ba88e420350ada0ed4992ae8",
245
+
"lastModified": 1709087332,
246
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
247
+
"owner": "hercules-ci",
248
+
"repo": "gitignore.nix",
249
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
303
250
"type": "github"
304
251
},
305
252
"original": {
306
-
"owner": "tweag",
307
-
"repo": "gomod2nix",
253
+
"owner": "hercules-ci",
254
+
"repo": "gitignore.nix",
308
255
"type": "github"
309
256
}
310
257
},
311
258
"home-manager": {
312
259
"inputs": {
313
260
"nixpkgs": [
314
-
"unstable"
315
-
],
316
-
"utils": "utils"
261
+
"nixpkgs"
262
+
]
317
263
},
318
264
"locked": {
319
-
"lastModified": 1678271387,
320
-
"narHash": "sha256-H2dv/i1LRlunRtrESirELzfPWdlG/6ElDB1ksO529H4=",
265
+
"lastModified": 1749062139,
266
+
"narHash": "sha256-gGGLujmeWU+ZjFzfMvFMI0hp9xONsSbm88187wJr82Q=",
321
267
"owner": "nix-community",
322
268
"repo": "home-manager",
323
-
"rev": "36999b8d19eb6eebb41983ef017d7e0095316af2",
269
+
"rev": "86b95fc1ed2b9b04a451a08ccf13d78fb421859c",
324
270
"type": "github"
325
271
},
326
272
"original": {
···
329
275
"type": "github"
330
276
}
331
277
},
332
-
"lowdown-src": {
278
+
"luvit-meta": {
333
279
"flake": false,
334
280
"locked": {
335
-
"lastModified": 1633514407,
336
-
"narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
337
-
"owner": "kristapsdz",
338
-
"repo": "lowdown",
339
-
"rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
281
+
"lastModified": 1705776742,
282
+
"narHash": "sha256-zAAptV/oLuLAAsa2zSB/6fxlElk4+jNZd/cPr9oxFig=",
283
+
"owner": "Bilal2453",
284
+
"repo": "luvit-meta",
285
+
"rev": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60",
340
286
"type": "github"
341
287
},
342
288
"original": {
343
-
"owner": "kristapsdz",
344
-
"repo": "lowdown",
345
-
"type": "github"
346
-
}
347
-
},
348
-
"mach-nix": {
349
-
"flake": false,
350
-
"locked": {
351
-
"lastModified": 1634711045,
352
-
"narHash": "sha256-m5A2Ty88NChLyFhXucECj6+AuiMZPHXNbw+9Kcs7F6Y=",
353
-
"owner": "DavHau",
354
-
"repo": "mach-nix",
355
-
"rev": "4433f74a97b94b596fa6cd9b9c0402104aceef5d",
356
-
"type": "github"
357
-
},
358
-
"original": {
359
-
"id": "mach-nix",
360
-
"type": "indirect"
361
-
}
362
-
},
363
-
"master": {
364
-
"locked": {
365
-
"lastModified": 1678328039,
366
-
"narHash": "sha256-Nh+WyRqcXK6YY+X7HvGZHiOAVzduNwvqTqf+L4CuIjg=",
367
-
"owner": "nixos",
368
-
"repo": "nixpkgs",
369
-
"rev": "78ac44af766f967a2c9dfb88d13688729fba4595",
370
-
"type": "github"
371
-
},
372
-
"original": {
373
-
"owner": "nixos",
374
-
"ref": "master",
375
-
"repo": "nixpkgs",
376
-
"type": "github"
377
-
}
378
-
},
379
-
"nil": {
380
-
"inputs": {
381
-
"flake-utils": "flake-utils_3",
382
-
"nixpkgs": "nixpkgs_2",
383
-
"rust-overlay": "rust-overlay"
384
-
},
385
-
"locked": {
386
-
"lastModified": 1678313833,
387
-
"narHash": "sha256-HUkOzLVYDTYzxH4zMeR2JIrh1zY/n3LIs8rtNnKeOTA=",
388
-
"owner": "oxalica",
389
-
"repo": "nil",
390
-
"rev": "d1017418841c612552f73d1f670d87f57dc5e090",
391
-
"type": "github"
392
-
},
393
-
"original": {
394
-
"owner": "oxalica",
395
-
"repo": "nil",
289
+
"owner": "Bilal2453",
290
+
"repo": "luvit-meta",
396
291
"type": "github"
397
292
}
398
293
},
399
294
"nix": {
400
295
"inputs": {
401
-
"lowdown-src": "lowdown-src",
402
-
"nixpkgs": "nixpkgs_3",
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",
403
303
"nixpkgs-regression": "nixpkgs-regression"
404
304
},
405
305
"locked": {
406
-
"lastModified": 1678307130,
407
-
"narHash": "sha256-r+qhW2BBxqqVKam2lFJDU5l2AiUWIr9fzOsD+VIjJKc=",
306
+
"lastModified": 1749012568,
307
+
"narHash": "sha256-7IltFTct/oe6pGkwB6f/1WhWA65hFnsBY6XaGjodf3k=",
408
308
"owner": "nixos",
409
309
"repo": "nix",
410
-
"rev": "d25322e7c0dd4b196d04af4d6bc66e2b3e3b7d4c",
310
+
"rev": "4751cbef6303d10479f3db1b13db69197d9c3446",
411
311
"type": "github"
412
312
},
413
313
"original": {
···
416
316
"type": "github"
417
317
}
418
318
},
419
-
"nix-pypi-fetcher": {
420
-
"flake": false,
319
+
"nix-gl": {
320
+
"inputs": {
321
+
"flake-utils": "flake-utils",
322
+
"nixpkgs": [
323
+
"nixpkgs"
324
+
]
325
+
},
421
326
"locked": {
422
-
"lastModified": 1669065297,
423
-
"narHash": "sha256-UStjXjNIuIm7SzMOWvuYWIHBkPUKQ8Id63BMJjnIDoA=",
424
-
"owner": "DavHau",
425
-
"repo": "nix-pypi-fetcher",
426
-
"rev": "a9885ac6a091576b5195d547ac743d45a2a615ac",
327
+
"lastModified": 1713543440,
328
+
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
329
+
"owner": "nix-community",
330
+
"repo": "nixgl",
331
+
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
427
332
"type": "github"
428
333
},
429
334
"original": {
430
-
"owner": "DavHau",
431
-
"repo": "nix-pypi-fetcher",
335
+
"owner": "nix-community",
336
+
"repo": "nixgl",
432
337
"type": "github"
433
338
}
434
339
},
435
340
"nixos-vscode-server": {
436
341
"inputs": {
437
-
"nixpkgs": "nixpkgs_4"
342
+
"flake-utils": "flake-utils_2",
343
+
"nixpkgs": [
344
+
"nixpkgs"
345
+
]
438
346
},
439
347
"locked": {
440
-
"lastModified": 1676501444,
441
-
"narHash": "sha256-H+uQetkzd5GIga56HmCDwl5eihdQgeN2jVdNrkXzDyo=",
348
+
"lastModified": 1729422940,
349
+
"narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=",
442
350
"owner": "msteen",
443
351
"repo": "nixos-vscode-server",
444
-
"rev": "57f1716bc625d2892579294cc207956679e3d94c",
352
+
"rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f",
445
353
"type": "github"
446
354
},
447
355
"original": {
···
452
360
},
453
361
"nixpkgs": {
454
362
"locked": {
455
-
"lastModified": 1657425264,
456
-
"narHash": "sha256-3aHvoI2e8vJKw3hvnHECaBpSsL5mxVsVtaLCnTdNcH8=",
457
-
"owner": "nixos",
363
+
"lastModified": 1747179050,
364
+
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
365
+
"owner": "NixOS",
458
366
"repo": "nixpkgs",
459
-
"rev": "de5b3dd17034e6106e75746e81618e5bd408de8a",
367
+
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
460
368
"type": "github"
461
369
},
462
370
"original": {
463
-
"owner": "nixos",
464
-
"ref": "nixos-unstable-small",
371
+
"owner": "NixOS",
372
+
"ref": "nixos-unstable",
465
373
"repo": "nixpkgs",
466
374
"type": "github"
467
375
}
468
376
},
469
-
"nixpkgs-2211": {
377
+
"nixpkgs-23-11": {
470
378
"locked": {
471
-
"lastModified": 1678230755,
472
-
"narHash": "sha256-SFAXgNjNTXzcAideXcP0takfUGVft/VR5CACmYHg+Fc=",
473
-
"owner": "nixos",
379
+
"lastModified": 1717159533,
380
+
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
381
+
"owner": "NixOS",
474
382
"repo": "nixpkgs",
475
-
"rev": "a7cc81913bb3cd1ef05ed0ece048b773e1839e51",
383
+
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
476
384
"type": "github"
477
385
},
478
386
"original": {
479
-
"owner": "nixos",
480
-
"ref": "nixos-22.11",
387
+
"owner": "NixOS",
481
388
"repo": "nixpkgs",
389
+
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
482
390
"type": "github"
483
391
}
484
392
},
485
-
"nixpkgs-insync-v3": {
393
+
"nixpkgs-emmy": {
486
394
"locked": {
487
-
"lastModified": 1674552486,
488
-
"narHash": "sha256-FK9Y4P5Q7lzq9hjXIflr9oW+Cxw+5gxP/dN9+R/bHnA=",
489
-
"owner": "nixos",
395
+
"lastModified": 1719675406,
396
+
"narHash": "sha256-bZgaUZikDI7ZS1EY0jjZnbcO4vNeSRhIekb17FyUMf0=",
397
+
"owner": "NixOS",
490
398
"repo": "nixpkgs",
491
-
"rev": "32fdc268e921994e3f38088486ddfe765d11df93",
399
+
"rev": "2feb215c297f2c9ae272336f55d54a962d71a9ff",
492
400
"type": "github"
493
401
},
494
402
"original": {
495
-
"owner": "nixos",
496
-
"ref": "32fdc268e921994e3f38088486ddfe765d11df93",
403
+
"owner": "NixOS",
404
+
"ref": "pull/323401/head",
497
405
"repo": "nixpkgs",
498
406
"type": "github"
499
407
}
500
408
},
501
-
"nixpkgs-lib": {
409
+
"nixpkgs-pre-rust": {
502
410
"locked": {
503
-
"dir": "lib",
504
-
"lastModified": 1677407201,
505
-
"narHash": "sha256-3blwdI9o1BAprkvlByHvtEm5HAIRn/XPjtcfiunpY7s=",
506
-
"owner": "NixOS",
411
+
"lastModified": 1723634395,
412
+
"narHash": "sha256-K1ohl/M/HWXqieqNtsF39FbWqtaNX/mUgulrqcOO1KU=",
413
+
"owner": "nixos",
507
414
"repo": "nixpkgs",
508
-
"rev": "7f5639fa3b68054ca0b062866dc62b22c3f11505",
415
+
"rev": "57d0d4a8f3025e2b902d2b4403bcece26ad1ea74",
509
416
"type": "github"
510
417
},
511
418
"original": {
512
-
"dir": "lib",
513
-
"owner": "NixOS",
514
-
"ref": "nixos-unstable",
419
+
"owner": "nixos",
420
+
"ref": "57d0d4a8f302",
515
421
"repo": "nixpkgs",
516
422
"type": "github"
517
423
}
···
534
440
},
535
441
"nixpkgs-stable": {
536
442
"locked": {
537
-
"lastModified": 1677948530,
538
-
"narHash": "sha256-BkQjq8AGHD55RJe4PUnrWRZZ8jS64p/k0bGDck5wKwY=",
443
+
"lastModified": 1720386169,
444
+
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
539
445
"owner": "NixOS",
540
446
"repo": "nixpkgs",
541
-
"rev": "d51554151a91cd4543a7620843cc378e3cbc767e",
447
+
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
542
448
"type": "github"
543
449
},
544
450
"original": {
545
451
"owner": "NixOS",
546
-
"ref": "release-22.11",
547
-
"repo": "nixpkgs",
548
-
"type": "github"
549
-
}
550
-
},
551
-
"nixpkgs-unstable": {
552
-
"locked": {
553
-
"lastModified": 1678293141,
554
-
"narHash": "sha256-lLlQHaR0y+q6nd6kfpydPTGHhl1rS9nU9OQmztzKOYs=",
555
-
"owner": "nixos",
556
-
"repo": "nixpkgs",
557
-
"rev": "c90c4025bb6e0c4eaf438128a3b2640314b1c58d",
558
-
"type": "github"
559
-
},
560
-
"original": {
561
-
"owner": "nixos",
562
-
"ref": "nixos-unstable",
452
+
"ref": "nixos-24.05",
563
453
"repo": "nixpkgs",
564
454
"type": "github"
565
455
}
566
456
},
567
457
"nixpkgs_2": {
568
458
"locked": {
569
-
"lastModified": 1677622273,
570
-
"narHash": "sha256-LUqCVhzxr7EVY+SzW1uTXaMoVRUR2OP4Fr/tmJV7lHE=",
459
+
"lastModified": 1748929857,
460
+
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
571
461
"owner": "nixos",
572
462
"repo": "nixpkgs",
573
-
"rev": "995edc972ad3a1e291ac22d74b9610821357175f",
463
+
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
574
464
"type": "github"
575
465
},
576
466
"original": {
577
467
"owner": "nixos",
578
-
"ref": "nixpkgs-unstable",
468
+
"ref": "nixos-unstable",
579
469
"repo": "nixpkgs",
580
470
"type": "github"
581
471
}
582
472
},
583
473
"nixpkgs_3": {
584
474
"locked": {
585
-
"lastModified": 1670461440,
586
-
"narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=",
475
+
"lastModified": 1744868846,
476
+
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
587
477
"owner": "NixOS",
588
478
"repo": "nixpkgs",
589
-
"rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425",
479
+
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
590
480
"type": "github"
591
481
},
592
482
"original": {
593
483
"owner": "NixOS",
594
-
"ref": "nixos-22.11-small",
484
+
"ref": "nixpkgs-unstable",
595
485
"repo": "nixpkgs",
596
486
"type": "github"
597
487
}
598
488
},
599
489
"nixpkgs_4": {
600
490
"locked": {
601
-
"lastModified": 1672441588,
602
-
"narHash": "sha256-jx5kxOyeObnVD44HRebKYL3cjWrcKhhcDmEYm0/naDY=",
491
+
"lastModified": 1728538411,
492
+
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
603
493
"owner": "NixOS",
604
494
"repo": "nixpkgs",
605
-
"rev": "6a0d2701705c3cf6f42c15aa92b7885f1f8a477f",
606
-
"type": "github"
607
-
},
608
-
"original": {
609
-
"id": "nixpkgs",
610
-
"type": "indirect"
611
-
}
612
-
},
613
-
"nixpkgs_5": {
614
-
"locked": {
615
-
"lastModified": 1677852945,
616
-
"narHash": "sha256-liiVJjkBTuBTAkRW3hrI8MbPD2ImYzwUpa7kvteiKhM=",
617
-
"owner": "NixOS",
618
-
"repo": "nixpkgs",
619
-
"rev": "f5ffd5787786dde3a8bf648c7a1b5f78c4e01abb",
495
+
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
620
496
"type": "github"
621
497
},
622
498
"original": {
···
626
502
"type": "github"
627
503
}
628
504
},
629
-
"parts": {
505
+
"nvim": {
630
506
"inputs": {
631
-
"nixpkgs-lib": "nixpkgs-lib"
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"
632
516
},
633
517
"locked": {
634
-
"lastModified": 1677714448,
635
-
"narHash": "sha256-Hq8qLs8xFu28aDjytfxjdC96bZ6pds21Yy09mSC156I=",
636
-
"owner": "hercules-ci",
637
-
"repo": "flake-parts",
638
-
"rev": "dc531e3a9ce757041e1afaff8ee932725ca60002",
518
+
"lastModified": 1748686149,
519
+
"narHash": "sha256-RdLAPiha8lr1wQiL158p4DTFhLcWcjRv6ioCTd3athQ=",
520
+
"owner": "nobbz",
521
+
"repo": "nobbz-vim",
522
+
"rev": "a22303075cac32d83edfd79ef79c0386a38b02ce",
639
523
"type": "github"
640
524
},
641
525
"original": {
642
-
"owner": "hercules-ci",
643
-
"repo": "flake-parts",
644
-
"type": "github"
645
-
}
646
-
},
647
-
"poetry2nix": {
648
-
"flake": false,
649
-
"locked": {
650
-
"lastModified": 1666918719,
651
-
"narHash": "sha256-BkK42fjAku+2WgCOv2/1NrPa754eQPV7gPBmoKQBWlc=",
652
-
"owner": "nix-community",
653
-
"repo": "poetry2nix",
654
-
"rev": "289efb187123656a116b915206e66852f038720e",
655
-
"type": "github"
656
-
},
657
-
"original": {
658
-
"owner": "nix-community",
659
-
"ref": "1.36.0",
660
-
"repo": "poetry2nix",
526
+
"owner": "nobbz",
527
+
"repo": "nobbz-vim",
661
528
"type": "github"
662
529
}
663
530
},
664
-
"pre-commit-hooks": {
531
+
"parts": {
665
532
"inputs": {
666
-
"flake-utils": [
667
-
"switcher",
668
-
"dream2nix",
669
-
"flake-utils-pre-commit"
670
-
],
671
-
"nixpkgs": [
672
-
"switcher",
673
-
"dream2nix",
533
+
"nixpkgs-lib": [
674
534
"nixpkgs"
675
535
]
676
536
},
677
537
"locked": {
678
-
"lastModified": 1646153636,
679
-
"narHash": "sha256-AlWHMzK+xJ1mG267FdT8dCq/HvLCA6jwmx2ZUy5O8tY=",
680
-
"owner": "cachix",
681
-
"repo": "pre-commit-hooks.nix",
682
-
"rev": "b6bc0b21e1617e2b07d8205e7fae7224036dfa4b",
538
+
"lastModified": 1748821116,
539
+
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
540
+
"owner": "hercules-ci",
541
+
"repo": "flake-parts",
542
+
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
683
543
"type": "github"
684
544
},
685
545
"original": {
686
-
"owner": "cachix",
687
-
"repo": "pre-commit-hooks.nix",
546
+
"owner": "hercules-ci",
547
+
"repo": "flake-parts",
688
548
"type": "github"
689
549
}
690
550
},
691
551
"programsdb": {
692
552
"inputs": {
693
553
"nixpkgs": [
694
-
"unstable"
554
+
"nixpkgs"
695
555
],
696
-
"utils": "utils_2"
556
+
"utils": "utils"
697
557
},
698
558
"locked": {
699
-
"lastModified": 1678326146,
700
-
"narHash": "sha256-jk3vDfte2xoPr3hHc7N5QvYfp1RFtFKkqdwDrQsUFJM=",
559
+
"lastModified": 1749055058,
560
+
"narHash": "sha256-OgCTSX0WXPpEi/ukjbBRrElSo+TR2/pzCCcY5yfou58=",
701
561
"owner": "wamserma",
702
562
"repo": "flake-programs-sqlite",
703
-
"rev": "57d1c51b36aac659d0b8eb6638de9485bd56199a",
563
+
"rev": "78d23d728abddce902528922f93967f0630f1cfe",
704
564
"type": "github"
705
565
},
706
566
"original": {
···
709
569
"type": "github"
710
570
}
711
571
},
712
-
"pruned-racket-catalog": {
713
-
"flake": false,
714
-
"locked": {
715
-
"lastModified": 1672537287,
716
-
"narHash": "sha256-SuOvXVcLfakw18oJB/PuRMyvGyGG1+CQD3R+TGHIv44=",
717
-
"owner": "nix-community",
718
-
"repo": "pruned-racket-catalog",
719
-
"rev": "c8b89557fb53b36efa2ee48a769c7364df0f6262",
720
-
"type": "github"
721
-
},
722
-
"original": {
723
-
"owner": "nix-community",
724
-
"ref": "catalog",
725
-
"repo": "pruned-racket-catalog",
726
-
"type": "github"
727
-
}
728
-
},
729
572
"root": {
730
573
"inputs": {
731
-
"alejandra": "alejandra",
732
574
"emacs": "emacs",
733
-
"flake-utils": "flake-utils_2",
734
575
"home-manager": "home-manager",
735
-
"master": "master",
736
-
"nil": "nil",
737
576
"nix": "nix",
577
+
"nix-gl": "nix-gl",
738
578
"nixos-vscode-server": "nixos-vscode-server",
739
-
"nixpkgs": [
740
-
"nixpkgs-unstable"
579
+
"nixpkgs": "nixpkgs_2",
580
+
"nixpkgs-insync-v3": [
581
+
"nixpkgs"
741
582
],
742
-
"nixpkgs-2211": "nixpkgs-2211",
743
-
"nixpkgs-insync-v3": "nixpkgs-insync-v3",
744
-
"nixpkgs-unstable": "nixpkgs-unstable",
583
+
"nixpkgs-pre-rust": "nixpkgs-pre-rust",
584
+
"nvim": "nvim",
745
585
"parts": "parts",
746
586
"programsdb": "programsdb",
747
587
"sops-nix": "sops-nix",
748
-
"stable": [
749
-
"nixpkgs-2211"
750
-
],
751
-
"switcher": "switcher",
752
-
"unstable": [
753
-
"nixpkgs-unstable"
754
-
]
755
-
}
756
-
},
757
-
"rust-analyzer-src": {
758
-
"flake": false,
759
-
"locked": {
760
-
"lastModified": 1657557289,
761
-
"narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=",
762
-
"owner": "rust-lang",
763
-
"repo": "rust-analyzer",
764
-
"rev": "caf23f29144b371035b864a1017dbc32573ad56d",
765
-
"type": "github"
766
-
},
767
-
"original": {
768
-
"owner": "rust-lang",
769
-
"ref": "nightly",
770
-
"repo": "rust-analyzer",
771
-
"type": "github"
772
-
}
773
-
},
774
-
"rust-analyzer-src_2": {
775
-
"flake": false,
776
-
"locked": {
777
-
"lastModified": 1657557289,
778
-
"narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=",
779
-
"owner": "rust-lang",
780
-
"repo": "rust-analyzer",
781
-
"rev": "caf23f29144b371035b864a1017dbc32573ad56d",
782
-
"type": "github"
783
-
},
784
-
"original": {
785
-
"owner": "rust-lang",
786
-
"ref": "nightly",
787
-
"repo": "rust-analyzer",
788
-
"type": "github"
588
+
"switcher": "switcher"
789
589
}
790
590
},
791
591
"rust-overlay": {
792
592
"inputs": {
793
-
"flake-utils": [
794
-
"nil",
795
-
"flake-utils"
796
-
],
797
-
"nixpkgs": [
798
-
"nil",
799
-
"nixpkgs"
800
-
]
593
+
"nixpkgs": "nixpkgs_4"
801
594
},
802
595
"locked": {
803
-
"lastModified": 1677638104,
804
-
"narHash": "sha256-vbdOoDYnQ1QYSchMb3fYGCLYeta3XwmGvMrlXchST5s=",
596
+
"lastModified": 1734402816,
597
+
"narHash": "sha256-cgQ8mjUJz7J3fp97lnvl0dSJ6vLt8yzUSmw3B7QKw94=",
805
598
"owner": "oxalica",
806
599
"repo": "rust-overlay",
807
-
"rev": "f388187efb41ce4195b2f4de0b6bb463d3cd0a76",
600
+
"rev": "e38fbd6e56e8cd1d61c65a21bbb7785e966707b4",
808
601
"type": "github"
809
602
},
810
603
"original": {
···
815
608
},
816
609
"sops-nix": {
817
610
"inputs": {
818
-
"nixpkgs": "nixpkgs_5",
819
-
"nixpkgs-stable": "nixpkgs-stable"
611
+
"nixpkgs": "nixpkgs_3"
820
612
},
821
613
"locked": {
822
-
"lastModified": 1678264398,
823
-
"narHash": "sha256-COgbuQH/oAQZUBFTTQgSifabzZ5/GRCCbBIqZJjR3s0=",
614
+
"lastModified": 1747603214,
615
+
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
824
616
"owner": "Mic92",
825
617
"repo": "sops-nix",
826
-
"rev": "00e9e9cd46600d68dd98a392025d4894c3711b58",
618
+
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
827
619
"type": "github"
828
620
},
829
621
"original": {
···
834
626
},
835
627
"switcher": {
836
628
"inputs": {
837
-
"dream2nix": "dream2nix",
629
+
"cargo2nix": "cargo2nix",
838
630
"flake-parts": [
839
631
"parts"
840
632
],
841
633
"nixpkgs": [
842
-
"unstable"
843
-
]
634
+
"nixpkgs"
635
+
],
636
+
"rust-overlay": "rust-overlay"
844
637
},
845
638
"locked": {
846
-
"lastModified": 1677480135,
847
-
"narHash": "sha256-3YkdL1xNKMyhK6FooB4+NIT4+zqxrNh3nANTuOvzywE=",
639
+
"lastModified": 1734435961,
640
+
"narHash": "sha256-HIw4Naoc0Gcl9VOT4JkagzKDvAdBwyzlq2majy5pSks=",
848
641
"owner": "nobbz",
849
642
"repo": "nix-switcher",
850
-
"rev": "77a09a74f8c94d7394def1988b786f150638b62a",
643
+
"rev": "6f12e77ff6b46d53a5e58567803f94708e15660e",
851
644
"type": "github"
852
645
},
853
646
"original": {
···
857
650
"type": "github"
858
651
}
859
652
},
653
+
"systems": {
654
+
"locked": {
655
+
"lastModified": 1681028828,
656
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
657
+
"owner": "nix-systems",
658
+
"repo": "default",
659
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
660
+
"type": "github"
661
+
},
662
+
"original": {
663
+
"owner": "nix-systems",
664
+
"repo": "default",
665
+
"type": "github"
666
+
}
667
+
},
668
+
"systems_2": {
669
+
"locked": {
670
+
"lastModified": 1681028828,
671
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
672
+
"owner": "nix-systems",
673
+
"repo": "default",
674
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
675
+
"type": "github"
676
+
},
677
+
"original": {
678
+
"owner": "nix-systems",
679
+
"repo": "default",
680
+
"type": "github"
681
+
}
682
+
},
860
683
"utils": {
861
684
"locked": {
862
-
"lastModified": 1676283394,
863
-
"narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
685
+
"lastModified": 1678901627,
686
+
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
864
687
"owner": "numtide",
865
688
"repo": "flake-utils",
866
-
"rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
689
+
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
867
690
"type": "github"
868
691
},
869
692
"original": {
···
872
695
"type": "github"
873
696
}
874
697
},
875
-
"utils_2": {
698
+
"wrapper-manager": {
699
+
"inputs": {
700
+
"nixpkgs": [
701
+
"nvim",
702
+
"nixpkgs"
703
+
]
704
+
},
876
705
"locked": {
877
-
"lastModified": 1667395993,
878
-
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
879
-
"owner": "numtide",
880
-
"repo": "flake-utils",
881
-
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
706
+
"lastModified": 1747562021,
707
+
"narHash": "sha256-XfF+5zjoWbAcAiGNb++og6yDGJRwWYpADr9P6WuieQA=",
708
+
"owner": "viperml",
709
+
"repo": "wrapper-manager",
710
+
"rev": "f2b0bec5140403cf24cae96f6764d97b5d59b0e2",
882
711
"type": "github"
883
712
},
884
713
"original": {
885
-
"owner": "numtide",
886
-
"repo": "flake-utils",
714
+
"owner": "viperml",
715
+
"repo": "wrapper-manager",
887
716
"type": "github"
888
717
}
889
718
}
+50
-50
flake.nix
+50
-50
flake.nix
···
1
1
{
2
+
outputs = {parts, ...} @ inputs:
3
+
parts.lib.mkFlake {inherit inputs;} {
4
+
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
5
+
6
+
_module.args.npins = import ./npins;
7
+
8
+
imports = [
9
+
./parts/auxiliary.nix
10
+
./parts/home_configs.nix
11
+
./parts/home_modules.nix
12
+
./parts/nixos_modules.nix
13
+
./parts/system_configs.nix
14
+
15
+
./nixos/configurations
16
+
./home/configurations
17
+
18
+
./home/modules
19
+
./nixos/modules
20
+
21
+
./packages
22
+
];
23
+
24
+
flake = {
25
+
mixedModules = import ./mixed inputs;
26
+
27
+
checks.x86_64-linux = import ./checks inputs;
28
+
};
29
+
};
30
+
2
31
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";
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";
7
40
8
41
switcher.url = "github:nobbz/nix-switcher?ref=main";
9
-
switcher.inputs.nixpkgs.follows = "unstable";
42
+
switcher.inputs.nixpkgs.follows = "nixpkgs";
10
43
switcher.inputs.flake-parts.follows = "parts";
11
44
12
45
parts.url = "github:hercules-ci/flake-parts";
46
+
parts.inputs.nixpkgs-lib.follows = "nixpkgs";
13
47
14
48
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";
49
+
programsdb.inputs.nixpkgs.follows = "nixpkgs";
21
50
22
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";
23
56
24
-
nil.url = "github:oxalica/nil";
57
+
nix-gl.url = "github:nix-community/nixgl";
58
+
nix-gl.inputs.nixpkgs.follows = "nixpkgs";
25
59
26
60
home-manager.url = "github:nix-community/home-manager";
27
-
home-manager.inputs.nixpkgs.follows = "unstable";
28
-
29
-
flake-utils.url = "github:numtide/flake-utils";
61
+
home-manager.inputs.nixpkgs.follows = "nixpkgs";
30
62
31
63
emacs.url = "github:nix-community/emacs-overlay";
32
-
emacs.inputs.nixpkgs.follows = "master";
64
+
emacs.inputs.nixpkgs.follows = "nixpkgs";
65
+
emacs.inputs.nixpkgs-stable.follows = "nixpkgs";
33
66
34
67
nixos-vscode-server.url = "github:msteen/nixos-vscode-server";
68
+
nixos-vscode-server.inputs.nixpkgs.follows = "nixpkgs";
35
69
36
70
sops-nix.url = "github:Mic92/sops-nix";
37
-
38
-
alejandra.url = "github:kamadorueda/alejandra/3.0.0";
39
71
};
40
-
41
-
outputs = {
42
-
self,
43
-
parts,
44
-
...
45
-
} @ inputs:
46
-
parts.lib.mkFlake {inherit inputs;} {
47
-
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
48
-
49
-
imports = [
50
-
./parts/auxiliary.nix
51
-
./parts/home_configs.nix
52
-
./parts/system_configs.nix
53
-
54
-
./nixos/configurations
55
-
./home/configurations
56
-
];
57
-
58
-
flake = {
59
-
nixosModules = import ./nixos/modules inputs;
60
-
61
-
homeModules = import ./home/modules inputs;
62
-
63
-
mixedModules = import ./mixed inputs;
64
-
65
-
packages.x86_64-linux = import ./packages inputs "x86_64-linux";
66
-
packages.aarch64-linux = import ./packages inputs "aarch64-linux";
67
-
packages.aarch64-darwin = import ./packages inputs "aarch64-darwin";
68
-
69
-
checks.x86_64-linux = import ./checks inputs;
70
-
};
71
-
};
72
72
}
+1
-7
home/configurations/default.nix
+1
-7
home/configurations/default.nix
···
1
1
_: {
2
2
nobbz.homeConfigurations."nmelzer@mimas".system = "x86_64-linux";
3
-
nobbz.homeConfigurations."nmelzer@enceladeus".system = "x86_64-linux";
4
-
nobbz.homeConfigurations."nmelzer@hyperion".system = "aarch64-linux";
5
-
6
-
nobbz.homeConfigurations."nmelzer@Titan.local" = {
7
-
system = "aarch64-darwin";
8
-
hostname = "titan";
9
-
};
3
+
nobbz.homeConfigurations."nmelzer@phoebe".system = "x86_64-linux";
10
4
}
-37
home/configurations/nmelzer@enceladeus.nix
-37
home/configurations/nmelzer@enceladeus.nix
···
1
-
{self, ...}: {
2
-
config,
3
-
pkgs,
4
-
lib,
5
-
...
6
-
}: {
7
-
config = {
8
-
nixpkgs.allowedUnfree = ["google-chrome" "vscode"];
9
-
10
-
nixpkgs.config.contentAddressedByDefault = false;
11
-
12
-
activeProfiles = ["browsing" "development"];
13
-
14
-
xsession.windowManager.awesome.autostart = [
15
-
"${pkgs.blueman}/bin/blueman-applet"
16
-
"${pkgs.networkmanagerapplet}/bin/nm-applet"
17
-
];
18
-
19
-
programs.emacs.enable = lib.mkForce false;
20
-
21
-
services.rustic = {
22
-
enable = true;
23
-
globs = let
24
-
mkHome = e: "${config.home.homeDirectory}/${e}";
25
-
mkIgnore = e: "!${e}";
26
-
27
-
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"];
28
-
patterns = ["_build" "deps" "result" "target" ".elixir_ls" "ccls-cache" ".direnv"];
29
-
in
30
-
map mkIgnore (home ++ patterns);
31
-
oneFileSystem = true;
32
-
repo = "rest:https://restic.mimas.internal.nobbz.dev/nobbz";
33
-
};
34
-
35
-
home.packages = [pkgs.vscode];
36
-
};
37
-
}
-42
home/configurations/nmelzer@hyperion.nix
-42
home/configurations/nmelzer@hyperion.nix
···
1
-
{
2
-
unstable,
3
-
self,
4
-
...
5
-
}: {
6
-
config,
7
-
pkgs,
8
-
lib,
9
-
...
10
-
}: {
11
-
config = {
12
-
nixpkgs.allowedUnfree = ["vscode"];
13
-
# nixpkgs.config.allowBroken = true;
14
-
15
-
activeProfiles = ["development"];
16
-
17
-
dconf.enable = true;
18
-
19
-
enabledLanguages = [];
20
-
21
-
xsession.enable = lib.mkForce false;
22
-
xsession.windowManager.awesome.enable = lib.mkForce false;
23
-
xsession.numlock.enable = lib.mkForce false;
24
-
25
-
programs.emacs.splashScreen = false;
26
-
27
-
home.packages = builtins.attrValues {
28
-
inherit (pkgs) vscode keepassxc nix-output-monitor;
29
-
inherit (pkgs.gnome) gnome-tweaks;
30
-
inherit (self.packages.aarch64-linux) gnucash-de;
31
-
};
32
-
33
-
programs.htop = {
34
-
settings = {
35
-
detailed_cpu_time = true;
36
-
};
37
-
};
38
-
};
39
-
# environment.pathsToLink = [ "/share/zsh" ];
40
-
}
41
-
# /nix/store/7skqa8vxfydq7w3cix55ffvkmjb3b5da-python-2.7.18
42
-
-93
home/configurations/nmelzer@mimas.nix
-93
home/configurations/nmelzer@mimas.nix
···
1
-
{
2
-
unstable,
3
-
self,
4
-
...
5
-
}: {
6
-
config,
7
-
pkgs,
8
-
...
9
-
}: {
10
-
config = {
11
-
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord"];
12
-
nixpkgs.config.allowBroken = true;
13
-
14
-
activeProfiles = ["browsing" "development"];
15
-
16
-
sops.age.sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
17
-
sops.defaultSopsFile = "${self}/secrets/mimas/nmelzer/default.yaml";
18
-
19
-
sops.secrets.rustic.path = "${config.xdg.configHome}/rustic/password";
20
-
sops.secrets.gh_hosts.path = "${config.xdg.configHome}/gh/hosts.yml";
21
-
22
-
dconf.enable = true;
23
-
24
-
enabledLanguages = ["nix"];
25
-
26
-
programs.emacs.splashScreen = false;
27
-
28
-
home.packages = builtins.attrValues {
29
-
inherit (pkgs) keybase-gui freerdp vscode keepassxc nix-output-monitor discord;
30
-
inherit (pkgs.gnome) gnome-tweaks;
31
-
inherit (self.packages.x86_64-linux) gnucash-de;
32
-
};
33
-
34
-
programs.obs-studio.enable = true;
35
-
programs.htop = {
36
-
settings = {
37
-
detailed_cpu_time = true;
38
-
};
39
-
# meters.right = [
40
-
# { kind = "Battery"; mode = 1; }
41
-
# "Tasks"
42
-
# "LoadAverage"
43
-
# "Uptime"
44
-
# ];
45
-
};
46
-
47
-
xsession.windowManager.awesome.autostart = [
48
-
"${pkgs.blueman}/bin/blueman-applet"
49
-
"${pkgs.networkmanagerapplet}/bin/nm-applet"
50
-
];
51
-
52
-
services = {
53
-
keybase.enable = true;
54
-
kbfs.enable = true;
55
-
insync.enable = true;
56
-
playerctld.enable = true;
57
-
58
-
rustic = {
59
-
enable = true;
60
-
passwordFile = config.sops.secrets.rustic.path;
61
-
globs = let
62
-
mkHome = e: "${config.home.homeDirectory}/${e}";
63
-
mkIgnore = e: "!${e}";
64
-
65
-
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" "timmelzer@gmail.com/restic_repos"];
66
-
patterns = ["_build" "Cache" "deps" "result" "target" ".elixir_ls" "ccls-cache" ".direnv" "direnv" "node_modules"];
67
-
in
68
-
map mkIgnore (home ++ patterns);
69
-
oneFileSystem = true;
70
-
repo = "rest:https://restic.mimas.internal.nobbz.dev/nobbz";
71
-
};
72
-
};
73
-
74
-
systemd.user.services = {
75
-
rustic.Unit.After = ["sops-nix.service"];
76
-
keybase-gui = {
77
-
Unit = {
78
-
Description = "Keybase GUI";
79
-
Requires = ["keybase.service" "kbfs.service"];
80
-
After = ["keybase.service" "kbfs.service"];
81
-
};
82
-
Service = {
83
-
ExecStart = "${pkgs.keybase-gui}/share/keybase/Keybase";
84
-
PrivateTmp = true;
85
-
# Slice = "keybase.slice";
86
-
};
87
-
};
88
-
};
89
-
};
90
-
# environment.pathsToLink = [ "/share/zsh" ];
91
-
}
92
-
# /nix/store/7skqa8vxfydq7w3cix55ffvkmjb3b5da-python-2.7.18
93
-
-20
home/configurations/nmelzer@titan.nix
-20
home/configurations/nmelzer@titan.nix
···
1
-
{self, ...}: {
2
-
pkgs,
3
-
lib,
4
-
...
5
-
}: {
6
-
nixpkgs.allowedUnfree = [];
7
-
8
-
activeProfiles = ["base" "development"];
9
-
enabledLanguages = [];
10
-
11
-
xsession.enable = lib.mkForce false;
12
-
xsession.windowManager.awesome.enable = lib.mkForce false;
13
-
xsession.numlock.enable = lib.mkForce false;
14
-
15
-
gtk.theme.package = lib.mkForce null;
16
-
17
-
home.packages = builtins.attrValues {
18
-
inherit (pkgs) neovim;
19
-
};
20
-
}
+130
home/configurations/nmelzer_at_mimas.nix
+130
home/configurations/nmelzer_at_mimas.nix
···
1
+
{self, ...}: {
2
+
config,
3
+
pkgs,
4
+
lib,
5
+
...
6
+
}: {
7
+
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian"];
8
+
9
+
activeProfiles = ["browsing" "development"];
10
+
11
+
sops.age.sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
12
+
sops.defaultSopsFile = "${self}/secrets/mimas/nmelzer/default.yaml";
13
+
14
+
sops.secrets.rustic.path = "${config.xdg.configHome}/rustic/password";
15
+
16
+
dconf.enable = true;
17
+
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
+
};
24
+
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
+
};
40
+
41
+
programs.yazi.enable = true;
42
+
43
+
xsession.windowManager.awesome.autostart = [
44
+
"${pkgs.blueman}/bin/blueman-applet"
45
+
"${pkgs.networkmanagerapplet}/bin/nm-applet"
46
+
];
47
+
48
+
systemd.user.tmpfiles.rules = [
49
+
"d ${config.home.homeDirectory}/tmp 700 ${config.home.username} users 14d"
50
+
];
51
+
52
+
services = {
53
+
keybase.enable = true;
54
+
kbfs.enable = true;
55
+
insync.enable = true;
56
+
playerctld.enable = true;
57
+
flameshot.enable = true;
58
+
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}";
65
+
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";
72
+
};
73
+
};
74
+
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";
87
+
};
88
+
};
89
+
};
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";
130
+
}
+93
home/configurations/nmelzer_at_phoebe.nix
+93
home/configurations/nmelzer_at_phoebe.nix
···
1
+
{
2
+
self,
3
+
nix,
4
+
...
5
+
}: {
6
+
config,
7
+
pkgs,
8
+
lib,
9
+
...
10
+
}: let
11
+
sshConfigPath = "${config.home.homeDirectory}/.ssh";
12
+
inherit (lib.hm) dag;
13
+
spkgs = self.packages.${pkgs.system};
14
+
in {
15
+
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"];
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;
23
+
24
+
activeProfiles = ["development"];
25
+
26
+
sops.age.sshKeyPaths = ["${sshConfigPath}/id_ed25519"];
27
+
sops.defaultSopsFile = "${self}/secrets/phoebe/nmelzer/default.yaml";
28
+
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
+
};
36
+
37
+
sops.secrets."github" = {
38
+
path = "${sshConfigPath}/github";
39
+
mode = "0400";
40
+
sopsFile = "${self}/secrets/users/nmelzer/github";
41
+
format = "binary";
42
+
};
43
+
44
+
sops.secrets."gitlab" = {
45
+
path = "${sshConfigPath}/gitlab";
46
+
mode = "0400";
47
+
sopsFile = "${self}/secrets/users/nmelzer/gitlab";
48
+
format = "binary";
49
+
};
50
+
51
+
sops.secrets."nobbz_dev" = {
52
+
path = "${sshConfigPath}/nobbz_dev";
53
+
mode = "0400";
54
+
sopsFile = "${self}/secrets/users/nmelzer/nobbz_dev";
55
+
format = "binary";
56
+
};
57
+
58
+
dconf.enable = true;
59
+
60
+
home.packages = builtins.attrValues {
61
+
inherit (pkgs) keepassxc nix-output-monitor discord obsidian vscode slack;
62
+
inherit (config.nix) package;
63
+
inherit (spkgs) switcher;
64
+
};
65
+
66
+
xsession.windowManager.awesome.enable = lib.mkForce false;
67
+
xsession.enable = lib.mkForce false;
68
+
69
+
services.playerctld.enable = true;
70
+
71
+
gtk.gtk2.force = true;
72
+
73
+
programs.ssh.includes = [
74
+
config.sops.secrets.ssh.path
75
+
];
76
+
77
+
programs.ssh.matchBlocks = {
78
+
# TODO: properly use seperate key
79
+
"gitlab.com-bravo" = dag.entryAfter ["gitlab.com"] {
80
+
hostname = "gitlab.com";
81
+
addressFamily = "inet";
82
+
identityFile = "~/.ssh/id_ed25519";
83
+
};
84
+
85
+
# TODO: Make the actual hosts identity file configurable by other means. Actually moving all the logic over to `home/modules/profiles/base/default.nix`.
86
+
"*.internal.nobbz.dev" = lib.mkForce (dag.entryAfter ["delly-nixos.adoring_suess.zerotier" "tux-nixos.adoring_suess.zerotier" "nixos.adoring_suess.zerotier"] {
87
+
identityFile = "~/.ssh/id_ed25519";
88
+
user = "nmelzer";
89
+
});
90
+
};
91
+
92
+
home.stateVersion = "20.09";
93
+
}
+19
-26
home/modules/default.nix
+19
-26
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/openshift" = import ./programs/openshift inputs;
12
-
"programs/nixpkgs" = import ./programs/nixpkgs inputs;
13
-
"programs/exa" = import ./programs/exa inputs;
14
-
"programs/emacs" = import ./programs/emacs inputs;
15
-
"programs/emacs/beacon" = import ./programs/emacs/beacon.nix inputs;
16
-
"programs/emacs/company" = import ./programs/emacs/company.nix inputs;
17
-
"programs/emacs/helm" = import ./programs/emacs/helm.nix inputs;
18
-
"programs/emacs/lsp" = import ./programs/emacs/lsp.nix inputs;
19
-
"programs/emacs/projectile" = import ./programs/emacs/projectile.nix inputs;
20
-
"programs/emacs/telephoneline" = import ./programs/emacs/telephoneline.nix inputs;
21
-
"programs/emacs/lib" = import ./programs/emacs/lib.nix inputs;
22
-
"programs/emacs/whichkey" = import ./programs/emacs/whichkey inputs;
16
+
"services/insync" = ./services/insync;
17
+
"services/rustic" = ./services/rustic;
23
18
24
-
"services/insync" = import ./services/insync inputs;
25
-
"services/restic" = import ./services/restic inputs;
26
-
"services/rustic" = import ./services/rustic inputs;
27
-
28
-
"misc/awesome" = import ./misc/awesome inputs;
29
-
"misc/home" = import ./misc/home inputs;
19
+
"misc/awesome" = ./misc/awesome;
20
+
"misc/home" = ./misc/home;
21
+
"misc/rofi" = ./misc/rofi;
22
+
};
30
23
}
-17
home/modules/languages/default.nix
-17
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
-
options.enabledLanguages = lib.mkOption {
12
-
default = [];
13
-
type = lib.types.listOf lib.types.str;
14
-
};
15
-
16
-
config = {languages = langsEnabler;};
17
-
}
-37
home/modules/languages/nix/default.nix
-37
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
-
options.languages.nix = {
13
-
enable = lib.mkEnableOption "Enable support for the nix language";
14
-
};
15
-
16
-
config = lib.mkIf cfg.enable {
17
-
programs.emacs.extraPackages = ep: [ep.lsp-mode ep.nix-mode ep.flycheck];
18
-
19
-
programs.emacs.extraInit = ''
20
-
(require 'lsp-mode)
21
-
22
-
;; make lsp-mode aware of nix
23
-
(add-to-list 'lsp-language-id-configuration '(nix-mode . "nix"))
24
-
(lsp-register-client
25
-
(make-lsp-client :new-connection (lsp-stdio-connection '("${rnixLsp}/bin/rnix-lsp"))
26
-
:major-modes '(nix-mode)
27
-
:server-id 'nix))
28
-
29
-
(add-hook 'nix-mode-hook
30
-
(lambda ()
31
-
(lsp)
32
-
(subword-mode)
33
-
(company-mode)
34
-
(flycheck-mode)))
35
-
'';
36
-
};
37
-
}
+39
-11
home/modules/misc/awesome/default.nix
+39
-11
home/modules/misc/awesome/default.nix
···
6
6
}: let
7
7
cfg = config.xsession.windowManager.awesome;
8
8
9
-
rofi = pkgs.rofi.override {
10
-
plugins = [pkgs.rofi-emoji];
11
-
};
9
+
flameshot = lib.getExe pkgs.flameshot;
12
10
13
-
self' = self.packages.x86_64-linux;
11
+
bls = lib.getExe (pkgs.betterlockscreen.override {withDunst = false;});
12
+
scrot = lib.getExe pkgs.scrot;
13
+
14
+
locker = pkgs.writeShellScript "betterlockscreen-with-screenshot" ''
15
+
tmpf="$(mktemp -d)"
16
+
file="$tmpf/screenshot.png"
17
+
${scrot} -z $file
18
+
${bls} -u $file --display 1 --span --fx blur --blur 1.0
19
+
rm -rf $tmpf
20
+
${bls} -l blur --display 1 --span --off 30
21
+
'';
14
22
15
23
mediaKeys = let
16
24
keyMap = let
···
74
82
options.xsession.windowManager.awesome = {
75
83
terminalEmulator = lib.mkOption {
76
84
type = lib.types.str;
77
-
default = "${pkgs.konsole}/bin/konsole";
85
+
default = "${lib.getExe pkgs.wezterm}";
86
+
};
87
+
88
+
lockCommand = lib.mkOption {
89
+
type = lib.types.str;
90
+
# default = "${lib.getExe pkgs.i3lock}";
91
+
default = "${locker}";
78
92
};
79
93
80
94
launcher = lib.mkOption {
81
95
type = lib.types.str;
82
-
default = "${rofi}/bin/rofi -modi drun#run#window#ssh#emoji#unicode:${self'."rofi/unicode"}/bin/rofiunicode.sh -show drun -show-icons";
96
+
default = "${pkgs.rofi}/bin/rofi -modi drun -show drun -show-icons";
97
+
};
98
+
99
+
windowSwitcher = lib.mkOption {
100
+
type = lib.types.str;
101
+
default = "${pkgs.rofi}/bin/rofi -modi window -show window -show-icons";
102
+
};
103
+
104
+
emojiPicker = lib.mkOption {
105
+
type = lib.types.str;
106
+
default = "${pkgs.rofi}/bin/rofi -modi drun -show drun -show-icons";
83
107
};
84
108
85
109
autostart = lib.mkOption {
···
173
197
-- Create a launcher widget and a main menu
174
198
myawesomemenu = {
175
199
{ "launcher", '${cfg.launcher}' },
200
+
{ "windows", '${cfg.windowSwitcher}' },
201
+
{ "emoji", '${cfg.emojiPicker}' },
176
202
{ "hotkeys", function() return false, hotkeys_popup.show_help end},
177
203
{ "manual", terminal .. " -e man awesome" },
178
204
{ "edit config", editor_cmd .. " " .. awesome.conffile },
179
-
{ "lock session", '${pkgs.i3lock}/bin/i3lock' },
205
+
{ "lock session", '${cfg.lockCommand}' },
180
206
{ "restart", awesome.restart },
181
207
{ "quit", function() awesome.quit() end}
182
208
}
···
346
372
end,
347
373
{description = "focus previous by index", group = "client"}
348
374
),
349
-
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
350
-
{description = "show main menu", group = "awesome"}),
351
375
352
376
-- Layout manipulation
353
377
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
···
409
433
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
410
434
{description = "run prompt", group = "launcher"}),
411
435
412
-
awful.key({ modkey }, "d", function () awful.util.spawn('${cfg.launcher}') end),
413
-
awful.key({ modkey }, "y", function () awful.util.spawn('${pkgs.i3lock}/bin/i3lock') end),
436
+
awful.key({ modkey }, "d", function () awful.util.spawn('${cfg.launcher}') end, {description = "open launcher", group = "launcher"}),
437
+
awful.key({ modkey }, "w", function () awful.util.spawn('${cfg.windowSwitcher}') end, {description = "open window selecter", group = "launcher"}),
438
+
awful.key({ modkey, "Shift" }, "e", function () awful.util.spawn('${cfg.emojiPicker}') end, {description = "open emoji picker", group = "launcher"}),
439
+
440
+
awful.key({ modkey }, "y", function () awful.util.spawn('${cfg.lockCommand}') end, {description = "lock screen", group = "client" }),
441
+
awful.key({ modkey }, "b", function () awful.util.spawn('${flameshot} gui') end, {description = "create screenshot", group = "client" }),
414
442
415
443
awful.key({ modkey }, "x",
416
444
function ()
+5
-12
home/modules/misc/home/default.nix
+5
-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,
···
25
20
26
21
packages = let
27
22
p = pkgs;
28
-
s = self';
29
23
in [
30
24
p.cachix
31
-
p.element-desktop
32
25
p.exercism
33
-
p.nixpkgs-review
34
26
p.tmate
35
-
s."dracula/konsole"
27
+
28
+
# There is a conflict with the ZSH completion plugin, installed by default
29
+
# therefore we need to override here
30
+
(lib.setPrio 0 p.nixpkgs-review)
36
31
37
32
p.fira-code
38
33
p.cascadia-code
···
44
39
exec ${p.timewarrior}/bin/timew "$@"
45
40
'')
46
41
];
47
-
48
-
stateVersion = "20.09";
49
42
};
50
43
}
+22
home/modules/misc/rofi/common.rasi
+22
home/modules/misc/rofi/common.rasi
···
1
+
configuration {
2
+
font: "Departure Mono 22";
3
+
terminal: "@TERMINAL@";
4
+
fixed-num-lines: false;
5
+
show-icons: true;
6
+
drun-show-actions: false;
7
+
sidebar-mode: true;
8
+
window-format: "{w}\t| {c}\t| {t}";
9
+
10
+
location: 2;
11
+
width: 75;
12
+
yoffset: 0;
13
+
14
+
timeout {
15
+
action: "kb-cancel";
16
+
delay: 0;
17
+
}
18
+
filebrowser {
19
+
directories-first: true;
20
+
sorting-method: "name";
21
+
}
22
+
}
+63
home/modules/misc/rofi/default.nix
+63
home/modules/misc/rofi/default.nix
···
1
+
{self, ...}: {
2
+
pkgs,
3
+
lib,
4
+
npins,
5
+
...
6
+
}: let
7
+
self' = self.packages.x86_64-linux;
8
+
9
+
common_rasi = pkgs.runCommandNoCC "common.rasi" {preferLocalBuild = true;} ''
10
+
substitute ${./common.rasi} $out \
11
+
--subst-var-by TERMINAL ${lib.getExe pkgs.wezterm}
12
+
'';
13
+
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"'
17
+
'';
18
+
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}";
35
+
'';
36
+
37
+
wrapper = rofi: config:
38
+
pkgs.callPackage ({
39
+
rofi,
40
+
runCommandNoCC,
41
+
makeWrapper,
42
+
}:
43
+
runCommandNoCC "rofi" {
44
+
nativeBuildInputs = [makeWrapper];
45
+
inherit (rofi) meta;
46
+
} ''
47
+
mkdir -p $out/bin
48
+
makeWrapper ${lib.getExe rofi} $out/bin/rofi \
49
+
--add-flags "-config ${config}"
50
+
'') {inherit rofi;};
51
+
52
+
launcherPkg = pkgs.rofi;
53
+
windowSwitcherPkg = pkgs.rofi;
54
+
emojiPkg = pkgs.rofi.override {plugins = [pkgs.rofi-emoji];};
55
+
56
+
launcher = wrapper launcherPkg launcherConfig;
57
+
windowSwitcher = wrapper windowSwitcherPkg windowSwitcherConfig;
58
+
emoji = wrapper emojiPkg emojiConfig;
59
+
in {
60
+
xsession.windowManager.awesome.launcher = "${lib.getExe launcher} -show drun";
61
+
xsession.windowManager.awesome.windowSwitcher = "${lib.getExe windowSwitcher} -show window";
62
+
xsession.windowManager.awesome.emojiPicker = "${lib.getExe emoji} -show emoji";
63
+
}
+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
+124
-86
home/modules/profiles/base/default.nix
+124
-86
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,
11
+
npins,
5
12
...
6
13
}: let
7
14
cfg = config.profiles.base;
8
15
9
-
npins = import ../../../../npins;
10
-
11
-
inherit (self.packages.${pkgs.system}) emacs;
12
16
inherit (lib.hm) dag;
13
17
14
18
# TODO: make these a bit more nice, so that repeating the hosts and individual config isn't necessary.
···
27
31
cp $src $out/_nix
28
32
'';
29
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
+
};
30
50
in {
31
51
options.profiles.base = {
32
52
enable = lib.mkEnableOption "The base profile, should be always enabled";
53
+
54
+
needsGL = lib.mkEnableOption "nix-gl wrappers";
33
55
};
34
56
35
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
+
36
67
manual.manpages.enable = false;
37
68
38
69
services.vscode-server.enable = lib.mkDefault pkgs.stdenv.isLinux;
39
70
40
-
home.sessionVariables = rec {
41
-
EDITOR = "emacs -nw";
42
-
VISUAL = "emacs";
43
-
GIT_EDITOR = EDITOR;
71
+
home.sessionVariables = {
72
+
EDITOR = "nvim";
44
73
};
45
74
46
75
gtk.enable = true;
47
-
gtk.theme.package = pkgs.gnome.gnome-themes-extra;
76
+
gtk.theme.package = pkgs.gnome-themes-extra;
48
77
gtk.theme.name = "Adwaita-dark";
49
78
79
+
services.pueue.enable = true;
80
+
50
81
home.keyboard.layout = "de";
51
-
home.packages = [pkgs.hydra-check] ++ lib.optionals pkgs.stdenv.isLinux [pkgs.dconf];
82
+
home.packages = let
83
+
optisave =
84
+
pkgs.resholve.writeScriptBin "optisave" {
85
+
inputs = builtins.attrValues {inherit (pkgs) fd pv gawk coreutils gnused;};
86
+
interpreter = "${pkgs.bash}/bin/bash";
87
+
execer = [
88
+
# TODO: Make this `might` or `can` in the long run
89
+
"cannot:${pkgs.fd}/bin/fd"
90
+
];
91
+
} ''
92
+
count=$(fd . /nix/store/.links/ | pv -l | wc -l)
93
+
94
+
# TODO: make resholve understant the call to `stat`
95
+
saved=$(fd . /nix/store/.links/ -X ${pkgs.coreutils}/bin/stat --format='%h %s' {} \
96
+
| pv -altrpe -s $count \
97
+
| awk '{sum += ($1 - 2) * $2} END {print sum}')
98
+
99
+
printf "Currently hardlinking saves %sB (%s B)\n" \
100
+
"$(numfmt --to=iec-i --format='%.2f' ''${saved} \
101
+
| sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \
102
+
"$(numfmt --to=none --format="%'f" ''${saved})"
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;
111
+
in
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
+
];
52
116
53
117
# dconf.enable = lib.mkMerge [
54
118
# (lib.mkIf pkgs.stdenv.isLinux true)
···
65
129
66
130
programs = {
67
131
advancedCopy.enable = true;
68
-
bat.enable = true;
69
132
direnv.enable = true;
70
133
direnv.nix-direnv.enable = true;
71
-
exa.enable = true;
134
+
direnv.nix-direnv.package = pkgs.nix-direnv.override {nix = nix.packages.${pkgs.system}.default;};
135
+
eza.enable = true;
136
+
fzf.enable = true;
72
137
home-manager.enable = true;
73
138
htop.enable = true;
74
139
jq.enable = true;
75
-
openshift.enable = true;
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
+
};
76
153
77
154
ssh = {
78
155
enable = true;
79
156
compression = true;
157
+
controlMaster = "auto";
80
158
81
159
matchBlocks = {
82
160
"*.internal.nobbz.dev" = dag.entryAfter zerotierHosts {
···
84
162
user = "nmelzer";
85
163
};
86
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
+
87
175
"ryzen-ubuntu.adoring_suess.zerotier" = {
88
176
hostname = "172.24.237.73";
89
177
};
···
110
198
"github.com" = {
111
199
identityFile = "~/.ssh/github";
112
200
};
113
-
114
-
"*.actum.internal" = {
115
-
user = "norbert.melzer";
116
-
identityFile = "~/.ssh/actum-gitlab";
117
-
};
118
-
119
-
"*.vcp.internal" = {
120
-
user = "cloudseeds";
121
-
identityFile = "~/.ssh/vogel";
122
-
};
123
-
124
-
"deploy-vogel.custpoc.cloudseeds.de" =
125
-
dag.entryBefore [
126
-
"*.custpoc.cloudseeds.de"
127
-
"*.cloudseeds.de"
128
-
]
129
-
{
130
-
user = "cloudseeds";
131
-
identityFile = "~/.ssh/vogel";
132
-
};
133
-
134
-
"repo.cloudseeds.de" = dag.entryBefore ["*.cloudseeds.de"] {
135
-
identityFile = "~/.ssh/id_rsa";
136
-
};
137
-
138
-
"*.custpoc.cloudseeds.de" = dag.entryBefore ["*.cloudseeds.de"] {
139
-
user = "norbert.melzer";
140
-
identityFile = "~/.ssh/actum-gitlab";
141
-
};
142
-
143
-
"com01.internal.cloudseeds.de" = dag.entryBefore ["*.cloudseeds.de"] {
144
-
hostname = "192.168.123.22";
145
-
user = "root";
146
-
};
147
-
148
-
"ironic.internal.cloudseeds.de" = dag.entryBefore ["*.cloudseeds.de"] {
149
-
hostname = "192.168.123.31";
150
-
user = "root";
151
-
};
152
-
153
-
"*.cloudseeds.de" = {
154
-
user = "norbert.melzer";
155
-
identityFile = "~/.ssh/cloudseeds";
156
-
};
157
-
158
-
"ironic" = {
159
-
hostname = "192.168.123.31";
160
-
user = "root";
161
-
identityFile = "~/.ssh/cloudseeds";
162
-
};
163
201
};
164
202
};
165
203
166
-
emacs = {
167
-
enable = true;
168
-
package = emacs;
169
-
};
170
-
171
204
tmux = {
172
205
enable = true;
173
206
174
207
clock24 = true;
175
208
historyLimit = 10000;
176
-
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
+
'';
177
224
};
178
225
179
226
zsh = {
180
227
enable = true;
181
228
182
229
enableCompletion = true;
183
-
enableAutosuggestions = true;
230
+
autosuggestion.enable = true;
184
231
185
232
autocd = true;
186
233
···
189
236
defaultKeymap = "emacs";
190
237
191
238
plugins = [
239
+
{
240
+
name = "fzf-tab";
241
+
src = fzf-tab;
242
+
}
192
243
{
193
244
name = "nix-zsh-complete.zsh";
194
245
src = zsh-complete;
195
246
file = "_nix";
196
247
}
197
248
{
198
-
name = "powerlevel10k";
199
-
src = pkgs.zsh-powerlevel10k;
200
-
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
201
-
}
202
-
{
203
-
name = "powerlevel10k-config";
204
-
src = ./p10k-config;
205
-
file = "p10k.zsh";
206
-
}
207
-
{
208
249
name = "zsh-syntax-highlighting";
209
250
src = npins.zsh-syntax-highlighting;
210
251
}
211
252
];
212
253
213
-
initExtra = ''
254
+
initContent = ''
214
255
bindkey "^[[1;5D" backward-word
215
256
bindkey "^[[1;5C" forward-word
216
257
···
218
259
'';
219
260
220
261
sessionVariables = {
221
-
# NIX_PATH = builtins.concatStringsSep ":" [
222
-
# "nixpkgs=${inputs.nixpkgs}"
223
-
# "nixos-config=/etc/nixos/configuration.nix"
224
-
# "/nix/var/nix/profiles/per-user/root/channels"
225
-
# ];
262
+
PROMPT_EOL_MARK = "%F{243}ยถ%f";
226
263
};
227
264
228
265
shellAliases.fixstore = "sudo nix-store --verify --check-contents --repair";
266
+
shellAliases.pq = "pueue";
229
267
};
230
268
};
231
269
};
-1469
home/modules/profiles/base/p10k-config/p10k.zsh
-1469
home/modules/profiles/base/p10k-config/p10k.zsh
···
1
-
# Generated by Powerlevel10k configuration wizard on 2020-02-27 at 13:48 UTC.
2
-
# Based on romkatv/powerlevel10k/config/p10k-classic.zsh.
3
-
# Wizard options: powerline, classic, darkest, time, angled separators, sharp heads,
4
-
# flat tails, 2 lines, solid, full frame, compact, concise, transient_prompt,
5
-
# instant_prompt=off.
6
-
# Type `p10k configure` to generate another config.
7
-
#
8
-
# Config for Powerlevel10k with classic powerline prompt style. Type `p10k configure` to generate
9
-
# your own config based on it.
10
-
#
11
-
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
12
-
#
13
-
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
14
-
15
-
# Temporarily change options.
16
-
'builtin' 'local' '-a' 'p10k_config_opts'
17
-
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
18
-
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
19
-
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
20
-
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
21
-
22
-
() {
23
-
emulate -L zsh
24
-
setopt no_unset extended_glob
25
-
26
-
# Unset all configuration options. This allows you to apply configiguration changes without
27
-
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
28
-
unset -m 'POWERLEVEL9K_*'
29
-
30
-
autoload -Uz is-at-least && is-at-least 5.1 || return
31
-
32
-
zmodload zsh/langinfo
33
-
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
34
-
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
35
-
fi
36
-
37
-
# The list of segments shown on the left. Fill it with the most important segments.
38
-
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
39
-
# =========================[ Line #1 ]=========================
40
-
# os_icon # os identifier
41
-
dir # current directory
42
-
vcs # git status
43
-
# =========================[ Line #2 ]=========================
44
-
newline # \n
45
-
# prompt_char # prompt symbol
46
-
)
47
-
48
-
# The list of segments shown on the right. Fill it with less important segments.
49
-
# Right prompt on the last prompt line (where you are typing your commands) gets
50
-
# automatically hidden when the input line reaches it. Right prompt above the
51
-
# last prompt line gets hidden if it would overlap with left prompt.
52
-
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
53
-
# =========================[ Line #1 ]=========================
54
-
status # exit code of the last command
55
-
command_execution_time # duration of the last command
56
-
background_jobs # presence of background jobs
57
-
direnv # direnv status (https://direnv.net/)
58
-
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
59
-
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
60
-
anaconda # conda environment (https://conda.io/)
61
-
pyenv # python environment (https://github.com/pyenv/pyenv)
62
-
goenv # go environment (https://github.com/syndbg/goenv)
63
-
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
64
-
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
65
-
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
66
-
# node_version # node.js version
67
-
# go_version # go version (https://golang.org)
68
-
# rust_version # rustc version (https://www.rust-lang.org)
69
-
# dotnet_version # .NET version (https://dotnet.microsoft.com)
70
-
# php_version # php version (https://www.php.net/)
71
-
# laravel_version # laravel php framework version (https://laravel.com/)
72
-
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
73
-
rvm # ruby version from rvm (https://rvm.io)
74
-
fvm # flutter version management (https://github.com/leoafarias/fvm)
75
-
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
76
-
jenv # java version from jenv (https://github.com/jenv/jenv)
77
-
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
78
-
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
79
-
kubecontext # current kubernetes context (https://kubernetes.io/)
80
-
terraform # terraform workspace (https://www.terraform.io)
81
-
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
82
-
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
83
-
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
84
-
gcloud # google cloud cli account and project (https://cloud.google.com/)
85
-
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
86
-
context # user@hostname
87
-
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
88
-
ranger # ranger shell (https://github.com/ranger/ranger)
89
-
nnn # nnn shell (https://github.com/jarun/nnn)
90
-
vim_shell # vim shell indicator (:sh)
91
-
midnight_commander # midnight commander shell (https://midnight-commander.org/)
92
-
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
93
-
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
94
-
# vpn_ip # virtual private network indicator
95
-
# load # CPU load
96
-
# disk_usage # disk usage
97
-
# ram # free RAM
98
-
# swap # used swap
99
-
todo # todo items (https://github.com/todotxt/todo.txt-cli)
100
-
timewarrior # timewarrior tracking status (https://timewarrior.net/)
101
-
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
102
-
time # current time
103
-
# =========================[ Line #2 ]=========================
104
-
newline # \n
105
-
# ip # ip address and bandwidth usage for a specified network interface
106
-
# public_ip # public IP address
107
-
# proxy # system-wide http/https/ftp proxy
108
-
# battery # internal battery
109
-
# wifi # wifi speed
110
-
# example # example user-defined segment (see prompt_example function below)
111
-
)
112
-
113
-
# To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
114
-
# or set it to '${P9K_VISUAL_IDENTIFIER}'.
115
-
#
116
-
# To remove trailing space from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
117
-
# to '${P9K_VISUAL_IDENTIFIER% }'.
118
-
#
119
-
# To enable default icons for one segment (e.g., dir), set
120
-
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'.
121
-
#
122
-
# To assign a specific icon to one segment (e.g., dir), set
123
-
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='โญ'.
124
-
#
125
-
# To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE),
126
-
# set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='โญ'.
127
-
#
128
-
# Note: You can use $'\u2B50' instead of 'โญ'. It's especially convenient when specifying
129
-
# icons that your text editor cannot render. Don't forget to put $ and use single quotes when
130
-
# defining icons via Unicode codepoints.
131
-
#
132
-
# Note: Many default icons cannot be displayed with system fonts. You'll need to install a
133
-
# capable font to use them. See POWERLEVEL9K_MODE below.
134
-
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
135
-
136
-
# This option makes a difference only when default icons are enabled for all or some prompt
137
-
# segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as
138
-
# $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this
139
-
# parameter depends on the provider of the font your terminal is using.
140
-
#
141
-
# Font Provider | POWERLEVEL9K_MODE
142
-
# ---------------------------------+-------------------
143
-
# Powerline | powerline
144
-
# Font Awesome | awesome-fontconfig
145
-
# Adobe Source Code Pro | awesome-fontconfig
146
-
# Source Code Pro | awesome-fontconfig
147
-
# Awesome-Terminal Fonts (regular) | awesome-fontconfig
148
-
# Awesome-Terminal Fonts (patched) | awesome-patched
149
-
# Nerd Fonts | nerdfont-complete
150
-
# Other | compatible
151
-
#
152
-
# If this looks overwhelming, either stick with a preinstalled system font and set
153
-
# POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
154
-
# https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
155
-
# and set POWERLEVEL9K_MODE=nerdfont-complete.
156
-
typeset -g POWERLEVEL9K_MODE=powerline
157
-
158
-
# When set to true, icons appear before content on both sides of the prompt. When set
159
-
# to false, icons go after content. If empty or not set, icons go before content in the left
160
-
# prompt and after content in the right prompt.
161
-
#
162
-
# You can also override it for a specific segment:
163
-
#
164
-
# POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
165
-
#
166
-
# Or for a specific segment in specific state:
167
-
#
168
-
# POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
169
-
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=
170
-
171
-
# Add an empty line before each prompt.
172
-
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
173
-
174
-
# Connect left prompt lines with these symbols. You'll probably want to use the same color
175
-
# as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
176
-
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%238Fโญโ'
177
-
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%238Fโโ'
178
-
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%238Fโฐโ'
179
-
# Connect right prompt lines with these symbols.
180
-
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%238Fโโฎ'
181
-
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%238Fโโค'
182
-
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%238Fโโฏ'
183
-
184
-
# Filler between left and right prompt on the first prompt line. You can set it to ' ', 'ยท' or
185
-
# 'โ'. The last two make it easier to see the alignment between left and right prompt and to
186
-
# separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
187
-
# for more compact prompt if using using this option.
188
-
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='โ'
189
-
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
190
-
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
191
-
# The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
192
-
# ornaments defined above.
193
-
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=238
194
-
# Start filler from the edge of the screen if there are no left segments on the first line.
195
-
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
196
-
# End filler on the edge of the screen if there are no right segments on the first line.
197
-
typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
198
-
fi
199
-
200
-
# Default background color.
201
-
typeset -g POWERLEVEL9K_BACKGROUND=234
202
-
203
-
# Separator between same-color segments on the left.
204
-
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%242F\uE0B1'
205
-
# Separator between same-color segments on the right.
206
-
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%242F\uE0B3'
207
-
# Separator between different-color segments on the left.
208
-
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
209
-
# Separator between different-color segments on the right.
210
-
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
211
-
# The right end of left prompt.
212
-
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
213
-
# The left end of right prompt.
214
-
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2'
215
-
# The left end of left prompt.
216
-
typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=''
217
-
# The right end of right prompt.
218
-
typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
219
-
# Left prompt terminator for lines without any segments.
220
-
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
221
-
222
-
#################################[ os_icon: os identifier ]##################################
223
-
# OS identifier color.
224
-
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255
225
-
# Make the icon bold.
226
-
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}'
227
-
228
-
################################[ prompt_char: prompt symbol ]################################
229
-
# Transparent background.
230
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=
231
-
# Green prompt symbol if the last command succeeded.
232
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76
233
-
# Red prompt symbol if the last command failed.
234
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196
235
-
# Default prompt symbol.
236
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='โฏ'
237
-
# Prompt symbol in command vi mode.
238
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='โฎ'
239
-
# Prompt symbol in visual vi mode.
240
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='โ
ค'
241
-
# Prompt symbol in overwrite vi mode.
242
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='โถ'
243
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
244
-
# No line terminator if prompt_char is the last segment.
245
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
246
-
# No line introducer if prompt_char is the first segment.
247
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
248
-
# No surrounding whitespace.
249
-
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=
250
-
251
-
##################################[ dir: current directory ]##################################
252
-
# Default current directory color.
253
-
typeset -g POWERLEVEL9K_DIR_FOREGROUND=31
254
-
# If directory is too long, shorten some of its segments to the shortest possible unique
255
-
# prefix. The shortened directory can be tab-completed to the original.
256
-
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
257
-
# Replace removed segment suffixes with this symbol.
258
-
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
259
-
# Color of the shortened directory segments.
260
-
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103
261
-
# Color of the anchor directory segments. Anchor segments are never shortened. The first
262
-
# segment is always an anchor.
263
-
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
264
-
# Display anchor directory segments in bold.
265
-
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
266
-
# Don't shorten directories that contain any of these files. They are anchors.
267
-
local anchor_files=(
268
-
.bzr
269
-
.citc
270
-
.git
271
-
.hg
272
-
.node-version
273
-
.python-version
274
-
.go-version
275
-
.ruby-version
276
-
.lua-version
277
-
.java-version
278
-
.perl-version
279
-
.php-version
280
-
.tool-version
281
-
.shorten_folder_marker
282
-
.svn
283
-
.terraform
284
-
CVS
285
-
Cargo.toml
286
-
composer.json
287
-
go.mod
288
-
package.json
289
-
)
290
-
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
291
-
# If set to true, remove everything before the last (deepest) subdirectory that contains files
292
-
# matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
293
-
# /foo/bar/git_repo/baz, prompt will display git_repo/baz. This assumes that /foo/bar/git_repo
294
-
# contains a marker (.git) and other directories don't.
295
-
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
296
-
# Don't shorten this many last directory segments. They are anchors.
297
-
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
298
-
# Shorten directory if it's longer than this even if there is space for it. The value can
299
-
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
300
-
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
301
-
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
302
-
# If set to `0`, directory will always be shortened to its minimum length.
303
-
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
304
-
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
305
-
# many columns for typing commands.
306
-
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
307
-
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
308
-
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
309
-
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
310
-
# If set to true, embed a hyperlink into the directory. Useful for quickly
311
-
# opening a directory in the file manager simply by clicking the link.
312
-
# Can also be handy when the directory is shortened, as it allows you to see
313
-
# the full directory that was used in previous commands.
314
-
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
315
-
316
-
# Enable special styling for non-writable directories.
317
-
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
318
-
# Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
319
-
# above must be set to true for this parameter to have effect.
320
-
typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='โ
'
321
-
322
-
# Custom prefix.
323
-
# typeset -g POWERLEVEL9K_DIR_PREFIX='%244Fin '
324
-
325
-
# POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories.
326
-
# It must be an array with 3 * N elements. Each triplet consists of:
327
-
#
328
-
# 1. A pattern against which the current directory is matched. Matching is done with
329
-
# extended_glob option enabled.
330
-
# 2. Directory class for the purpose of styling.
331
-
# 3. Icon.
332
-
#
333
-
# Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there
334
-
# are no matches, the directory will have no icon.
335
-
#
336
-
# Example:
337
-
#
338
-
# typeset -g POWERLEVEL9K_DIR_CLASSES=(
339
-
# '~/work(|/*)' WORK '(โฏยฐโกยฐ๏ผโฏ๏ธต โปโโป'
340
-
# '~(|/*)' HOME 'โ'
341
-
# '*' DEFAULT '')
342
-
#
343
-
# With these settings, the current directory in the prompt may look like this:
344
-
#
345
-
# (โฏยฐโกยฐ๏ผโฏ๏ธต โปโโป ~/work/projects/important/urgent
346
-
#
347
-
# Or like this:
348
-
#
349
-
# โ ~/best/powerlevel10k
350
-
#
351
-
# You can also set different colors for directories of different classes. Remember to override
352
-
# FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
353
-
# to have its own color.
354
-
#
355
-
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
356
-
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
357
-
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
358
-
#
359
-
typeset -g POWERLEVEL9K_DIR_CLASSES=()
360
-
361
-
#####################################[ vcs: git status ]######################################
362
-
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
363
-
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
364
-
POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
365
-
366
-
# Untracked files icon. It's really a question mark, your font isn't broken.
367
-
# Change the value of this parameter to show a different icon.
368
-
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
369
-
POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
370
-
371
-
# Formatter for Git status.
372
-
#
373
-
# Example output: master โฃ42โก42 *42 merge ~42 +42 !42 ?42.
374
-
#
375
-
# You can edit the function to customize how Git status looks.
376
-
#
377
-
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
378
-
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
379
-
function my_git_formatter() {
380
-
emulate -L zsh
381
-
382
-
if [[ -n $P9K_CONTENT ]]; then
383
-
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
384
-
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
385
-
typeset -g my_git_format=$P9K_CONTENT
386
-
return
387
-
fi
388
-
389
-
if (( $1 )); then
390
-
# Styling for up-to-date Git status.
391
-
local meta='%244F' # grey foreground
392
-
local clean='%76F' # green foreground
393
-
local modified='%178F' # yellow foreground
394
-
local untracked='%39F' # blue foreground
395
-
local conflicted='%196F' # red foreground
396
-
else
397
-
# Styling for incomplete and stale Git status.
398
-
local meta='%244F' # grey foreground
399
-
local clean='%244F' # grey foreground
400
-
local modified='%244F' # grey foreground
401
-
local untracked='%244F' # grey foreground
402
-
local conflicted='%244F' # grey foreground
403
-
fi
404
-
405
-
local res
406
-
local where # branch or tag
407
-
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
408
-
res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
409
-
where=${(V)VCS_STATUS_LOCAL_BRANCH}
410
-
elif [[ -n $VCS_STATUS_TAG ]]; then
411
-
res+="${meta}#"
412
-
where=${(V)VCS_STATUS_TAG}
413
-
fi
414
-
415
-
# If local branch name or tag is at most 32 characters long, show it in full.
416
-
# Otherwise show the first 12 โฆ the last 12.
417
-
(( $#where > 32 )) && where[13,-13]="โฆ"
418
-
res+="${clean}${where//\%/%%}" # escape %
419
-
420
-
# Display the current Git commit if there is no branch or tag.
421
-
# Tip: To always display the current Git commit, remove `[[ -z $where ]] &&` from the next line.
422
-
[[ -z $where ]] && res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}"
423
-
424
-
# Show tracking branch name if it differs from local branch.
425
-
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
426
-
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
427
-
fi
428
-
429
-
# โฃ42 if behind the remote.
430
-
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}โฃ${VCS_STATUS_COMMITS_BEHIND}"
431
-
# โก42 if ahead of the remote; no leading space if also behind the remote: โฃ42โก42.
432
-
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
433
-
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}โก${VCS_STATUS_COMMITS_AHEAD}"
434
-
# โ 42 if behind the push remote.
435
-
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}โ ${VCS_STATUS_PUSH_COMMITS_BEHIND}"
436
-
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
437
-
# โข42 if ahead of the push remote; no leading space if also behind: โ 42โข42.
438
-
(( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}โข${VCS_STATUS_PUSH_COMMITS_AHEAD}"
439
-
# *42 if have stashes.
440
-
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
441
-
# 'merge' if the repo is in an unusual state.
442
-
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
443
-
# ~42 if have merge conflicts.
444
-
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
445
-
# +42 if have staged changes.
446
-
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
447
-
# !42 if have unstaged changes.
448
-
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
449
-
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
450
-
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
451
-
# Remove the next line if you don't want to see untracked files at all.
452
-
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
453
-
# "โ" if the number of unstaged files is unknown. This can happen due to
454
-
# POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower
455
-
# than the number of files in the Git index, or due to bash.showDirtyState being set to false
456
-
# in the repository config. The number of staged and untracked files may also be unknown
457
-
# in this case.
458
-
(( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}โ"
459
-
460
-
typeset -g my_git_format=$res
461
-
}
462
-
functions -M my_git_formatter 2>/dev/null
463
-
464
-
# Don't count the number of unstaged, untracked and conflicted files in Git repositories with
465
-
# more than this many files in the index. Negative value means infinity.
466
-
#
467
-
# If you are working in Git repositories with tens of millions of files and seeing performance
468
-
# sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output
469
-
# of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's
470
-
# config: `git config bash.showDirtyState false`.
471
-
typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1
472
-
473
-
# Don't show Git status in prompt for repositories whose workdir matches this pattern.
474
-
# For example, if set to '~', the Git repository at $HOME/.git will be ignored.
475
-
# Multiple patterns can be combined with '|': '~|~/some/dir'.
476
-
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'
477
-
478
-
# Disable the default Git status formatting.
479
-
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
480
-
# Install our own Git status formatter.
481
-
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
482
-
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
483
-
# Enable counters for staged, unstaged, etc.
484
-
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
485
-
486
-
# Icon color.
487
-
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
488
-
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
489
-
# Custom icon.
490
-
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
491
-
# Custom prefix.
492
-
# typeset -g POWERLEVEL9K_VCS_PREFIX='%244Fon '
493
-
494
-
# Show status of repositories of these types. You can add svn and/or hg if you are
495
-
# using them. If you do, your prompt may become slow even when your current directory
496
-
# isn't in an svn or hg reposotiry.
497
-
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
498
-
499
-
# These settings are used for respositories other than Git or when gitstatusd fails and
500
-
# Powerlevel10k has to fall back to using vcs_info.
501
-
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
502
-
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
503
-
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
504
-
505
-
##########################[ status: exit code of the last command ]###########################
506
-
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
507
-
# style them independently from the regular OK and ERROR state.
508
-
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
509
-
510
-
# Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
511
-
# it will signify success by turning green.
512
-
typeset -g POWERLEVEL9K_STATUS_OK=true
513
-
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70
514
-
typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='โ'
515
-
516
-
# Status when some part of a pipe command fails but the overall exit status is zero. It may look
517
-
# like this: 1|0.
518
-
typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
519
-
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70
520
-
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='โ'
521
-
522
-
# Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
523
-
# it will signify error by turning red.
524
-
typeset -g POWERLEVEL9K_STATUS_ERROR=true
525
-
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160
526
-
typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='โ'
527
-
528
-
# Status when the last command was terminated by a signal.
529
-
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
530
-
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160
531
-
# Use terse signal names: "INT" instead of "SIGINT(2)".
532
-
typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
533
-
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='โ'
534
-
535
-
# Status when some part of a pipe command fails and the overall exit status is also non-zero.
536
-
# It may look like this: 1|0.
537
-
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
538
-
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160
539
-
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='โ'
540
-
541
-
###################[ command_execution_time: duration of the last command ]###################
542
-
# Show duration of the last command if takes longer than this many seconds.
543
-
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
544
-
# Show this many fractional digits. Zero means round to seconds.
545
-
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
546
-
# Execution time color.
547
-
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=248
548
-
# Duration format: 1d 2h 3m 4s.
549
-
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
550
-
# Custom icon.
551
-
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
552
-
# Custom prefix.
553
-
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%244Ftook '
554
-
555
-
#######################[ background_jobs: presence of background jobs ]#######################
556
-
# Don't show the number of background jobs.
557
-
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
558
-
# Background jobs color.
559
-
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=37
560
-
# Custom icon.
561
-
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='โก'
562
-
563
-
#######################[ direnv: direnv status (https://direnv.net/) ]########################
564
-
# Direnv color.
565
-
typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178
566
-
# Custom icon.
567
-
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
568
-
569
-
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
570
-
# Default asdf color. Only used to display tools for which there is no color override (see below).
571
-
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66
572
-
573
-
# There are four parameters that can be used to hide asdf tools. Each parameter describes
574
-
# conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at
575
-
# least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to
576
-
# hide a tool, it gets shown.
577
-
#
578
-
# Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and
579
-
# POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:
580
-
#
581
-
# asdf local python 3.8.1
582
-
# asdf global python 3.8.1
583
-
#
584
-
# After running both commands the current python version is 3.8.1 and its source is "local" as
585
-
# it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,
586
-
# it'll hide python version in this case because 3.8.1 is the same as the global version.
587
-
# POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't
588
-
# contain "local".
589
-
590
-
# Hide tool versions that don't come from one of these sources.
591
-
#
592
-
# Available sources:
593
-
#
594
-
# - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable"
595
-
# - local `asdf current` says "set by /some/not/home/directory/file"
596
-
# - global `asdf current` says "set by /home/username/file"
597
-
#
598
-
# Note: If this parameter is set to (shell local global), it won't hide tools.
599
-
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.
600
-
typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)
601
-
602
-
# If set to false, hide tool versions that are the same as global.
603
-
#
604
-
# Note: The name of this parameter doesn't reflect its meaning at all.
605
-
# Note: If this parameter is set to true, it won't hide tools.
606
-
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.
607
-
typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false
608
-
609
-
# If set to false, hide tool versions that are equal to "system".
610
-
#
611
-
# Note: If this parameter is set to true, it won't hide tools.
612
-
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.
613
-
typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true
614
-
615
-
# If set to non-empty value, hide tools unless there is a file matching the specified file pattern
616
-
# in the current directory, or its parent diretory, or its grandparent directory, and so on.
617
-
#
618
-
# Note: If this parameter is set to empty value, it won't hide tools.
619
-
# Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.
620
-
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.
621
-
#
622
-
# Example: Hide nodejs version when there is no package.json and no *.js files in the current
623
-
# directory, in `..`, in `../..` and so on.
624
-
#
625
-
# typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'
626
-
typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=
627
-
628
-
# Ruby version from asdf.
629
-
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168
630
-
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='โญ'
631
-
# typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'
632
-
633
-
# Python version from asdf.
634
-
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37
635
-
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='โญ'
636
-
# typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'
637
-
638
-
# Go version from asdf.
639
-
typeset -g POWERLEVEL9K_ASDF_GO_FOREGROUND=37
640
-
# typeset -g POWERLEVEL9K_ASDF_GO_VISUAL_IDENTIFIER_EXPANSION='โญ'
641
-
# typeset -g POWERLEVEL9K_ASDF_GO_SHOW_ON_UPGLOB='*.foo|*.bar'
642
-
643
-
# Node.js version from asdf.
644
-
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70
645
-
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='โญ'
646
-
# typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'
647
-
648
-
# Rust version from asdf.
649
-
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37
650
-
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='โญ'
651
-
# typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'
652
-
653
-
# .NET Core version from asdf.
654
-
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134
655
-
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='โญ'
656
-
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'
657
-
658
-
# Flutter version from asdf.
659
-
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38
660
-
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='โญ'
661
-
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'
662
-
663
-
# Lua version from asdf.
664
-
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32
665
-
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='โญ'
666
-
# typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'
667
-
668
-
# Java version from asdf.
669
-
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32
670
-
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='โญ'
671
-
# typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'
672
-
673
-
# Perl version from asdf.
674
-
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67
675
-
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='โญ'
676
-
# typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'
677
-
678
-
# Erlang version from asdf.
679
-
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125
680
-
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='โญ'
681
-
# typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'
682
-
683
-
# Elixir version from asdf.
684
-
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129
685
-
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='โญ'
686
-
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'
687
-
688
-
# Postgres version from asdf.
689
-
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31
690
-
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='โญ'
691
-
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'
692
-
693
-
# PHP version from asdf.
694
-
typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=99
695
-
# typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='โญ'
696
-
# typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'
697
-
698
-
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
699
-
# NordVPN connection indicator color.
700
-
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
701
-
# Hide NordVPN connection indicator when not connected.
702
-
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
703
-
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
704
-
# Custom icon.
705
-
# typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='โญ'
706
-
707
-
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
708
-
# Ranger shell color.
709
-
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
710
-
# Custom icon.
711
-
typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='โฒ'
712
-
713
-
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
714
-
# Nnn shell color.
715
-
typeset -g POWERLEVEL9K_NNN_FOREGROUND=72
716
-
# Custom icon.
717
-
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='โญ'
718
-
719
-
###########################[ vim_shell: vim shell indicator (:sh) ]###########################
720
-
# Vim shell indicator color.
721
-
typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34
722
-
# Custom icon.
723
-
# typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='โญ'
724
-
725
-
######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######
726
-
# Midnight Commander shell color.
727
-
typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=178
728
-
# Custom icon.
729
-
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='โญ'
730
-
731
-
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
732
-
# Nix shell color.
733
-
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
734
-
735
-
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
736
-
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
737
-
738
-
# Custom icon.
739
-
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='โญ'
740
-
741
-
##################################[ disk_usgae: disk usage ]##################################
742
-
# Colors for different levels of disk usage.
743
-
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
744
-
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=220
745
-
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=160
746
-
# Thresholds for different levels of disk usage (percentage points).
747
-
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90
748
-
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95
749
-
# If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.
750
-
typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false
751
-
# Custom icon.
752
-
# typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='โญ'
753
-
754
-
###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]###########
755
-
# Text and color for normal (a.k.a. command) vi mode.
756
-
typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL
757
-
typeset -g POWERLEVEL9K_VI_MODE_NORMAL_FOREGROUND=106
758
-
# Text and color for visual vi mode.
759
-
typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL
760
-
typeset -g POWERLEVEL9K_VI_MODE_VISUAL_FOREGROUND=68
761
-
# Text and color for overtype (a.k.a. overwrite and replace) vi mode.
762
-
typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE
763
-
typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_FOREGROUND=172
764
-
# Text and color for insert vi mode.
765
-
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
766
-
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=66
767
-
768
-
# Custom icon.
769
-
typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='โฒ'
770
-
771
-
######################################[ ram: free RAM ]#######################################
772
-
# RAM color.
773
-
typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
774
-
# Custom icon.
775
-
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='โญ'
776
-
777
-
#####################################[ swap: used swap ]######################################
778
-
# Swap color.
779
-
typeset -g POWERLEVEL9K_SWAP_FOREGROUND=96
780
-
# Custom icon.
781
-
# typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='โญ'
782
-
783
-
######################################[ load: CPU load ]######################################
784
-
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
785
-
typeset -g POWERLEVEL9K_LOAD_WHICH=5
786
-
# Load color when load is under 50%.
787
-
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
788
-
# Load color when load is between 50% and 70%.
789
-
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
790
-
# Load color when load is over 70%.
791
-
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
792
-
# Custom icon.
793
-
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='โญ'
794
-
795
-
################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################
796
-
# Todo color.
797
-
typeset -g POWERLEVEL9K_TODO_FOREGROUND=110
798
-
# Hide todo when the total number of tasks is zero.
799
-
typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true
800
-
# Hide todo when the number of tasks after filtering is zero.
801
-
typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false
802
-
803
-
# Todo format. The following parameters are available within the expansion.
804
-
#
805
-
# - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks.
806
-
# - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering.
807
-
#
808
-
# These variables correspond to the last line of the output of `todo.sh -p ls`:
809
-
#
810
-
# TODO: 24 of 42 tasks shown
811
-
#
812
-
# Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.
813
-
#
814
-
# typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'
815
-
816
-
# Custom icon.
817
-
# typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='โญ'
818
-
819
-
###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############
820
-
# Timewarrior color.
821
-
typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=110
822
-
# If the tracked task is longer than 24 characters, truncate and append "โฆ".
823
-
# Tip: To always display tasks without truncation, delete the following parameter.
824
-
# Tip: To hide task names and display just the icon when time tracking is enabled, set the
825
-
# value of the following parameter to "".
826
-
typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+โฆ}'
827
-
828
-
# Custom icon.
829
-
# typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='โญ'
830
-
831
-
##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############
832
-
# Taskwarrior color.
833
-
typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=74
834
-
835
-
# Taskwarrior segment format. The following parameters are available within the expansion.
836
-
#
837
-
# - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`.
838
-
# - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`.
839
-
#
840
-
# Zero values are represented as empty parameters.
841
-
#
842
-
# The default format:
843
-
#
844
-
# '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT'
845
-
#
846
-
# typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'
847
-
848
-
# Custom icon.
849
-
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='โญ'
850
-
851
-
##################################[ context: user@hostname ]##################################
852
-
# Context color when running with privileges.
853
-
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
854
-
# Context color in SSH without privileges.
855
-
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180
856
-
# Default context color (no privileges, no SSH).
857
-
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
858
-
859
-
# Context format when running with privileges: bold user@hostname.
860
-
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
861
-
# Context format when in SSH without privileges: user@hostname.
862
-
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
863
-
# Default context format (no privileges, no SSH): user@hostname.
864
-
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
865
-
866
-
# Don't show context unless running with privileges or in SSH.
867
-
# Tip: Remove the next line to always show context.
868
-
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
869
-
870
-
# Custom icon.
871
-
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='โญ'
872
-
# Custom prefix.
873
-
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%244Fwith '
874
-
875
-
###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
876
-
# Python virtual environment color.
877
-
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37
878
-
# Don't show Python version next to the virtual environment name.
879
-
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
880
-
# Separate environment name from Python version only with a space.
881
-
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
882
-
# Custom icon.
883
-
# typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
884
-
885
-
#####################[ anaconda: conda environment (https://conda.io/) ]######################
886
-
# Anaconda environment color.
887
-
typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37
888
-
# Don't show Python version next to the anaconda environment name.
889
-
typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false
890
-
# Separate environment name from Python version only with a space.
891
-
typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
892
-
# Custom icon.
893
-
# typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='โญ'
894
-
895
-
################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
896
-
# Pyenv color.
897
-
typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37
898
-
# Hide python version if it doesn't come from one of these sources.
899
-
typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)
900
-
# If set to false, hide python version if it's the same as global:
901
-
# $(pyenv version-name) == $(pyenv global).
902
-
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
903
-
# Custom icon.
904
-
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
905
-
906
-
################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
907
-
# Goenv color.
908
-
typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37
909
-
# Hide go version if it doesn't come from one of these sources.
910
-
typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)
911
-
# If set to false, hide go version if it's the same as global:
912
-
# $(goenv version-name) == $(goenv global).
913
-
typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
914
-
# Custom icon.
915
-
# typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
916
-
917
-
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
918
-
# Nodenv color.
919
-
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
920
-
# Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global).
921
-
typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
922
-
# Custom icon.
923
-
# typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
924
-
925
-
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
926
-
# Nvm color.
927
-
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
928
-
# Custom icon.
929
-
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
930
-
931
-
############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
932
-
# Nodeenv color.
933
-
typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70
934
-
# Don't show Node version next to the environment name.
935
-
typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
936
-
# Separate environment name from Node version only with a space.
937
-
typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
938
-
# Custom icon.
939
-
# typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
940
-
941
-
##############################[ node_version: node.js version ]###############################
942
-
# Node version color.
943
-
typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70
944
-
# Show node version only when in a directory tree containing package.json.
945
-
typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
946
-
# Custom icon.
947
-
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
948
-
949
-
#######################[ go_version: go version (https://golang.org) ]########################
950
-
# Go version color.
951
-
typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
952
-
# Show go version only when in a go project subdirectory.
953
-
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
954
-
# Custom icon.
955
-
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
956
-
957
-
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
958
-
# Rust version color.
959
-
typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
960
-
# Show rust version only when in a rust project subdirectory.
961
-
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
962
-
# Custom icon.
963
-
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
964
-
965
-
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
966
-
# .NET version color.
967
-
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
968
-
# Show .NET version only when in a .NET project subdirectory.
969
-
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
970
-
# Custom icon.
971
-
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
972
-
973
-
#####################[ php_version: php version (https://www.php.net/) ]######################
974
-
# PHP version color.
975
-
typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=99
976
-
# Show PHP version only when in a PHP project subdirectory.
977
-
typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true
978
-
# Custom icon.
979
-
# typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
980
-
981
-
##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########
982
-
# Laravel version color.
983
-
typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=161
984
-
# Custom icon.
985
-
# typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
986
-
987
-
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
988
-
# Rbenv color.
989
-
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
990
-
# Hide ruby version if it doesn't come from one of these sources.
991
-
typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)
992
-
# If set to false, hide ruby version if it's the same as global:
993
-
# $(rbenv version-name) == $(rbenv global).
994
-
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
995
-
# Custom icon.
996
-
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
997
-
998
-
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
999
-
# Rvm color.
1000
-
typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
1001
-
# Don't show @gemset at the end.
1002
-
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
1003
-
# Don't show ruby- at the front.
1004
-
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
1005
-
# Custom icon.
1006
-
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
1007
-
1008
-
###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############
1009
-
# Fvm color.
1010
-
typeset -g POWERLEVEL9K_FVM_FOREGROUND=38
1011
-
# Custom icon.
1012
-
# typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
1013
-
1014
-
##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########
1015
-
# Lua color.
1016
-
typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=32
1017
-
# Hide lua version if it doesn't come from one of these sources.
1018
-
typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)
1019
-
# If set to false, hide lua version if it's the same as global:
1020
-
# $(luaenv version-name) == $(luaenv global).
1021
-
typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false
1022
-
# Custom icon.
1023
-
# typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1024
-
1025
-
###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
1026
-
# Java color.
1027
-
typeset -g POWERLEVEL9K_JENV_FOREGROUND=32
1028
-
# Hide java version if it doesn't come from one of these sources.
1029
-
typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
1030
-
# If set to false, hide java version if it's the same as global:
1031
-
# $(jenv version-name) == $(jenv global).
1032
-
typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
1033
-
# Custom icon.
1034
-
# typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1035
-
1036
-
###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############
1037
-
# Perl color.
1038
-
typeset -g POWERLEVEL9K_PLENV_FOREGROUND=67
1039
-
# Hide perl version if it doesn't come from one of these sources.
1040
-
typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)
1041
-
# If set to false, hide perl version if it's the same as global:
1042
-
# $(plenv version-name) == $(plenv global).
1043
-
typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false
1044
-
# Custom icon.
1045
-
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1046
-
1047
-
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
1048
-
# PHP color.
1049
-
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
1050
-
# Hide php version if it doesn't come from one of these sources.
1051
-
typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)
1052
-
# If set to false, hide php version if it's the same as global:
1053
-
# $(phpenv version-name) == $(phpenv global).
1054
-
typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false
1055
-
# Custom icon.
1056
-
# typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1057
-
1058
-
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
1059
-
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
1060
-
# in each pair defines a pattern against which the current terraform workspace gets matched.
1061
-
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1062
-
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
1063
-
# you'll see this value in your prompt. The second element of each pair in
1064
-
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
1065
-
# first match wins.
1066
-
#
1067
-
# For example, given these settings:
1068
-
#
1069
-
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
1070
-
# '*prod*' PROD
1071
-
# '*test*' TEST
1072
-
# '*' DEFAULT)
1073
-
#
1074
-
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
1075
-
# doesn't match the pattern '*prod*' but does match '*test*'.
1076
-
#
1077
-
# You can define different colors, icons and content expansions for different classes:
1078
-
#
1079
-
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28
1080
-
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1081
-
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1082
-
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
1083
-
# '*prod*' PROD # These values are examples that are unlikely
1084
-
# '*test*' TEST # to match your needs. Customize them as needed.
1085
-
'*' DEFAULT)
1086
-
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=38
1087
-
# typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โญ'
1088
-
1089
-
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
1090
-
# Show kubecontext only when the the command you are typing invokes one of these tools.
1091
-
# Tip: Remove the next line to always show kubecontext.
1092
-
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc'
1093
-
1094
-
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
1095
-
# different contexts.
1096
-
#
1097
-
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
1098
-
# in each pair defines a pattern against which the current kubernetes context gets matched.
1099
-
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1100
-
# that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
1101
-
# you'll see this value in your prompt. The second element of each pair in
1102
-
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
1103
-
# first match wins.
1104
-
#
1105
-
# For example, given these settings:
1106
-
#
1107
-
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
1108
-
# '*prod*' PROD
1109
-
# '*test*' TEST
1110
-
# '*' DEFAULT)
1111
-
#
1112
-
# If your current kubernetes context is "deathray-testing/default", its class is TEST
1113
-
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
1114
-
#
1115
-
# You can define different colors, icons and content expansions for different classes:
1116
-
#
1117
-
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
1118
-
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1119
-
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1120
-
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
1121
-
# '*prod*' PROD # These values are examples that are unlikely
1122
-
# '*test*' TEST # to match your needs. Customize them as needed.
1123
-
'*' DEFAULT)
1124
-
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134
1125
-
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โ'
1126
-
1127
-
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
1128
-
# segment. Parameter expansions are very flexible and fast, too. See reference:
1129
-
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
1130
-
#
1131
-
# Within the expansion the following parameters are always available:
1132
-
#
1133
-
# - P9K_CONTENT The content that would've been displayed if there was no content
1134
-
# expansion defined.
1135
-
# - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
1136
-
# output of `kubectl config get-contexts`.
1137
-
# - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
1138
-
# output of `kubectl config get-contexts`.
1139
-
# - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
1140
-
# in the output of `kubectl config get-contexts`. If there is no
1141
-
# namespace, the parameter is set to "default".
1142
-
# - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the
1143
-
# output of `kubectl config get-contexts`.
1144
-
#
1145
-
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
1146
-
# the following extra parameters are available:
1147
-
#
1148
-
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
1149
-
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
1150
-
# - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
1151
-
# - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
1152
-
#
1153
-
# P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
1154
-
# if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
1155
-
#
1156
-
# - P9K_KUBECONTEXT_CLOUD_NAME=gke
1157
-
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
1158
-
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
1159
-
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
1160
-
#
1161
-
# If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
1162
-
#
1163
-
# - P9K_KUBECONTEXT_CLOUD_NAME=eks
1164
-
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
1165
-
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
1166
-
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
1167
-
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
1168
-
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
1169
-
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
1170
-
# Append the current context's namespace if it's not "default".
1171
-
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
1172
-
1173
-
# Custom prefix.
1174
-
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%244Fat '
1175
-
1176
-
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
1177
-
# Show aws only when the the command you are typing invokes one of these tools.
1178
-
# Tip: Remove the next line to always show aws.
1179
-
typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi'
1180
-
1181
-
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
1182
-
# in each pair defines a pattern against which the current AWS profile gets matched.
1183
-
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1184
-
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
1185
-
# you'll see this value in your prompt. The second element of each pair in
1186
-
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
1187
-
# first match wins.
1188
-
#
1189
-
# For example, given these settings:
1190
-
#
1191
-
# typeset -g POWERLEVEL9K_AWS_CLASSES=(
1192
-
# '*prod*' PROD
1193
-
# '*test*' TEST
1194
-
# '*' DEFAULT)
1195
-
#
1196
-
# If your current AWS profile is "company_test", its class is TEST
1197
-
# because "company_test" doesn't match the pattern '*prod*' but does match '*test*'.
1198
-
#
1199
-
# You can define different colors, icons and content expansions for different classes:
1200
-
#
1201
-
# typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28
1202
-
# typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1203
-
# typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1204
-
typeset -g POWERLEVEL9K_AWS_CLASSES=(
1205
-
# '*prod*' PROD # These values are examples that are unlikely
1206
-
# '*test*' TEST # to match your needs. Customize them as needed.
1207
-
'*' DEFAULT)
1208
-
typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208
1209
-
# typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โญ'
1210
-
1211
-
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
1212
-
# AWS Elastic Beanstalk environment color.
1213
-
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
1214
-
# Custom icon.
1215
-
typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='eb'
1216
-
1217
-
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
1218
-
# Show azure only when the the command you are typing invokes one of these tools.
1219
-
# Tip: Remove the next line to always show azure.
1220
-
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi'
1221
-
# Azure account name color.
1222
-
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
1223
-
# Custom icon.
1224
-
typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='az'
1225
-
1226
-
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
1227
-
# Show gcloud only when the the command you are typing invokes one of these tools.
1228
-
# Tip: Remove the next line to always show gcloud.
1229
-
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
1230
-
# Google cloud color.
1231
-
typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32
1232
-
1233
-
# Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_CONTENT_EXPANSION if the default
1234
-
# is too verbose or not informative enough.
1235
-
#
1236
-
# P9K_GCLOUD_ACCOUNT: the output of `gcloud config get-value account`
1237
-
# P9K_GCLOUD_PROJECT: the output of `gcloud config get-value project`
1238
-
# ${VARIABLE//\%/%%}: ${VARIABLE} with all occurences of '%' replaced with '%%'.
1239
-
#
1240
-
typeset -g POWERLEVEL9K_GCLOUD_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT//\%/%%}'
1241
-
1242
-
# Custom icon.
1243
-
# typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='โญ'
1244
-
1245
-
#[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#
1246
-
# Show google_app_cred only when the the command you are typing invokes one of these tools.
1247
-
# Tip: Remove the next line to always show google_app_cred.
1248
-
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi'
1249
-
1250
-
# Google application credentials classes for the purpose of using different colors, icons and
1251
-
# expansions with different credentials.
1252
-
#
1253
-
# POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first
1254
-
# element in each pair defines a pattern against which the current kubernetes context gets
1255
-
# matched. More specifically, it's P9K_CONTENT prior to the application of context expansion
1256
-
# (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION
1257
-
# parameters, you'll see this value in your prompt. The second element of each pair in
1258
-
# POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.
1259
-
# The first match wins.
1260
-
#
1261
-
# For example, given these settings:
1262
-
#
1263
-
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
1264
-
# '*:*prod*:*' PROD
1265
-
# '*:*test*:*' TEST
1266
-
# '*' DEFAULT)
1267
-
#
1268
-
# If your current Google application credentials is "service_account deathray-testing x@y.com",
1269
-
# its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.
1270
-
#
1271
-
# You can define different colors, icons and content expansions for different classes:
1272
-
#
1273
-
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28
1274
-
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1275
-
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'
1276
-
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
1277
-
# '*:*prod*:*' PROD # These values are examples that are unlikely
1278
-
# '*:*test*:*' TEST # to match your needs. Customize them as needed.
1279
-
'*' DEFAULT)
1280
-
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=32
1281
-
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โญ'
1282
-
1283
-
# Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by
1284
-
# google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:
1285
-
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
1286
-
#
1287
-
# You can use the following parameters in the expansion. Each of them corresponds to one of the
1288
-
# fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.
1289
-
#
1290
-
# Parameter | JSON key file field
1291
-
# ---------------------------------+---------------
1292
-
# P9K_GOOGLE_APP_CRED_TYPE | type
1293
-
# P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id
1294
-
# P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email
1295
-
#
1296
-
# Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurences of '%' replaced by '%%'.
1297
-
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}'
1298
-
1299
-
###############################[ public_ip: public IP address ]###############################
1300
-
# Public IP color.
1301
-
typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94
1302
-
# Custom icon.
1303
-
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1304
-
1305
-
########################[ vpn_ip: virtual private network indicator ]#########################
1306
-
# VPN IP color.
1307
-
typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
1308
-
# When on VPN, show just an icon without the IP address.
1309
-
# Tip: To display the private IP address when on VPN, remove the next line.
1310
-
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
1311
-
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
1312
-
# to see the name of the interface.
1313
-
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
1314
-
# If set to true, show one segment per matching network interface. If set to false, show only
1315
-
# one segment corresponding to the first matching network interface.
1316
-
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
1317
-
typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false
1318
-
# Custom icon.
1319
-
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1320
-
1321
-
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
1322
-
# IP color.
1323
-
typeset -g POWERLEVEL9K_IP_FOREGROUND=38
1324
-
# The following parameters are accessible within the expansion:
1325
-
#
1326
-
# Parameter | Meaning
1327
-
# ----------------------+---------------
1328
-
# P9K_IP_IP | IP address
1329
-
# P9K_IP_INTERFACE | network interface
1330
-
# P9K_IP_RX_BYTES | total number of bytes received
1331
-
# P9K_IP_TX_BYTES | total number of bytes sent
1332
-
# P9K_IP_RX_RATE | receive rate (since last prompt)
1333
-
# P9K_IP_TX_RATE | send rate (since last prompt)
1334
-
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+%70Fโฃ$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+%215Fโก$P9K_IP_TX_RATE }%38F$P9K_IP_IP'
1335
-
# Show information for the first network interface whose name matches this regular expression.
1336
-
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
1337
-
typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'
1338
-
# Custom icon.
1339
-
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1340
-
1341
-
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
1342
-
# Proxy color.
1343
-
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
1344
-
# Custom icon.
1345
-
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='โญ'
1346
-
1347
-
################################[ battery: internal battery ]#################################
1348
-
# Show battery in red when it's below this level and not connected to power supply.
1349
-
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
1350
-
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
1351
-
# Show battery in green when it's charging or fully charged.
1352
-
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
1353
-
# Show battery in yellow when it's discharging.
1354
-
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
1355
-
# Battery pictograms going from low to high level of charge.
1356
-
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}โ' '%K{232}โ' '%K{232}โ' '%K{232}โ' '%K{232}โ
' '%K{232}โ' '%K{232}โ' '%K{232}โ')
1357
-
# Don't show the remaining time to charge/discharge.
1358
-
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
1359
-
1360
-
#####################################[ wifi: wifi speed ]#####################################
1361
-
# WiFi color.
1362
-
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68
1363
-
# Custom icon.
1364
-
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='โญ'
1365
-
1366
-
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
1367
-
#
1368
-
# # Wifi colors and icons for different signal strength levels (low to high).
1369
-
# typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values
1370
-
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
1371
-
#
1372
-
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
1373
-
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
1374
-
#
1375
-
# The following parameters are accessible within the expansions:
1376
-
#
1377
-
# Parameter | Meaning
1378
-
# ----------------------+---------------
1379
-
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
1380
-
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"
1381
-
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
1382
-
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
1383
-
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
1384
-
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
1385
-
#
1386
-
# All parameters except P9K_WIFI_BARS are extracted from the output of the following command:
1387
-
#
1388
-
# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
1389
-
1390
-
####################################[ time: current time ]####################################
1391
-
# Current time color.
1392
-
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
1393
-
# Format for the current time: 09:51:02. See `man 3 strftime`.
1394
-
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
1395
-
# If set to true, time will update when you hit enter. This way prompts for the past
1396
-
# commands will contain the start times of their commands as opposed to the default
1397
-
# behavior where they contain the end times of their preceding commands.
1398
-
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
1399
-
# Custom icon.
1400
-
typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
1401
-
# Custom prefix.
1402
-
# typeset -g POWERLEVEL9K_TIME_PREFIX='%244Fat '
1403
-
1404
-
# Example of a user-defined prompt segment. Function prompt_example will be called on every
1405
-
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
1406
-
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
1407
-
#
1408
-
# Type `p10k help segment` for documentation and a more sophisticated example.
1409
-
function prompt_example() {
1410
-
p10k segment -f 208 -i 'โญ' -t 'hello, %n'
1411
-
}
1412
-
1413
-
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
1414
-
# is to generate the prompt segment for display in instant prompt. See
1415
-
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
1416
-
#
1417
-
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
1418
-
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
1419
-
# will replay these calls without actually calling instant_prompt_*. It is imperative that
1420
-
# instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this
1421
-
# rule is not observed, the content of instant prompt will be incorrect.
1422
-
#
1423
-
# Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If
1424
-
# instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.
1425
-
function instant_prompt_example() {
1426
-
# Since prompt_example always makes the same `p10k segment` calls, we can call it from
1427
-
# instant_prompt_example. This will give us the same `example` prompt segment in the instant
1428
-
# and regular prompts.
1429
-
prompt_example
1430
-
}
1431
-
1432
-
# User-defined prompt segments can be customized the same way as built-in segments.
1433
-
# typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208
1434
-
# typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='โญ'
1435
-
1436
-
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
1437
-
# when accepting a command line. Supported values:
1438
-
#
1439
-
# - off: Don't change prompt when accepting a command line.
1440
-
# - always: Trim down prompt when accepting a command line.
1441
-
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
1442
-
# typed after changing current working directory.
1443
-
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
1444
-
1445
-
# Instant prompt mode.
1446
-
#
1447
-
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
1448
-
# it incompatible with your zsh configuration files.
1449
-
# - quiet: Enable instant prompt and don't print warnings when detecting console output
1450
-
# during zsh initialization. Choose this if you've read and understood
1451
-
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
1452
-
# - verbose: Enable instant prompt and print a warning when detecting console output during
1453
-
# zsh initialization. Choose this if you've never tried instant prompt, haven't
1454
-
# seen the warning, or if you are unsure what this all means.
1455
-
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
1456
-
1457
-
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
1458
-
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
1459
-
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
1460
-
# really need it.
1461
-
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
1462
-
1463
-
# If p10k is already loaded, reload configuration.
1464
-
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
1465
-
(( ! $+functions[p10k] )) || p10k reload
1466
-
}
1467
-
1468
-
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
1469
-
'builtin' 'unset' 'p10k_config_opts'
+4
-1
home/modules/profiles/default.nix
+4
-1
home/modules/profiles/default.nix
···
8
8
in
9
9
builtins.foldl' reducer {} config.activeProfiles;
10
10
in {
11
-
options.activeProfiles = lib.mkOption {type = lib.types.listOf lib.types.str;};
11
+
options.activeProfiles = lib.mkOption {
12
+
type = lib.types.listOf lib.types.str;
13
+
default = [];
14
+
};
12
15
13
16
config.profiles = profileEnabler;
14
17
}
+98
-12
home/modules/profiles/development/default.nix
+98
-12
home/modules/profiles/development/default.nix
···
13
13
};
14
14
15
15
config = lib.mkIf cfg.enable {
16
-
programs.emacs = {
17
-
extraPackages = ep: [ep.magit];
18
-
extraInit = ''
19
-
;; prepare magit use from shell
20
-
(require 'magit)
21
-
(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
+
};
22
23
23
-
;; let magit autorefresh on file save within emacs
24
-
(add-hook 'after-save-hook 'magit-after-save-refresh-status t)
25
-
'';
24
+
ui.diff.tool = [config.programs.git.extraConfig.diff.external "$left" "$right"];
25
+
};
26
26
};
27
27
28
28
programs.gh.enable = true;
···
38
38
inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;};
39
39
interpreter = "${pkgs.bash}/bin/bash";
40
40
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
41
-
} ''
41
+
}
42
+
# bash
43
+
''
42
44
git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" |
43
45
fzf --ansi --no-sort --reverse --tiebreak=index \
44
46
--bind=ctrl-s:toggle-sort \
···
46
48
{}
47
49
FZF-EOF"
48
50
'';
51
+
gitSwitchFzf =
52
+
pkgs.resholve.writeScript "git-switch-fzf" {
53
+
inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;};
54
+
interpreter = "${pkgs.bash}/bin/bash";
55
+
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
56
+
}
57
+
# bash
58
+
''
59
+
# Function to determine the ref type
60
+
function get_ref_type() {
61
+
local ref="$1"
62
+
if git show-ref --verify --quiet refs/heads/"$ref"; then
63
+
echo "branch"
64
+
elif git show-ref --verify --quiet refs/tags/"$ref"; then
65
+
echo "tag"
66
+
elif git rev-parse --verify --quiet "$ref" >/dev/null; then
67
+
echo "commit"
68
+
else
69
+
echo "unknown"
70
+
fi
71
+
}
72
+
73
+
# Function to select a ref using fzf
74
+
function select_ref_with_fzf() {
75
+
cat <(git branch --format='%(refname:short) [branch]') \
76
+
<(git tag --format='%(refname:short) [tag]') \
77
+
<(git log --pretty=format:'%h %s [commit]') \
78
+
| fzf
79
+
}
80
+
81
+
# If the first argument is -c or -C, forward the arguments as-is to git switch
82
+
if [ "$#" -ge 2 ] && ([[ "$1" == "-c" ]] || [[ "$1" == "-C" ]]); then
83
+
git switch "$@"
84
+
else
85
+
# If an argument is provided and it's not -c or -C, switch to the specified ref
86
+
if [ "$#" -eq 1 ]; then
87
+
ref_name="$1"
88
+
ref_type=$(get_ref_type "$ref_name")
89
+
90
+
if [ "$ref_type" == "unknown" ]; then
91
+
echo "Invalid ref: $ref_name" >&2
92
+
exit 1
93
+
fi
94
+
else
95
+
# If no argument or only -c/-C is provided, use the fzf selection interface to select a ref
96
+
selected_ref=$(select_ref_with_fzf)
97
+
98
+
# Extract the ref name and type from the selected_ref string
99
+
ref_name=$(echo "$selected_ref" | awk '{print $1}')
100
+
ref_type=$(echo "$selected_ref" | awk '{print $NF}' | tr -d '[]')
101
+
fi
102
+
103
+
# Based on the ref type, issue the appropriate git switch command
104
+
case "$ref_type" in
105
+
branch)
106
+
git switch "$ref_name"
107
+
;;
108
+
tag)
109
+
git switch --detach "$ref_name"
110
+
;;
111
+
commit)
112
+
git switch --detach "$ref_name"
113
+
;;
114
+
*)
115
+
# If an invalid ref type is encountered, print an error message and exit
116
+
echo "Invalid ref type: $ref_type" >&2
117
+
exit 1
118
+
;;
119
+
esac
120
+
fi
121
+
'';
49
122
in {
50
123
br = "branch";
51
124
co = "checkout";
125
+
vommit = "commit";
126
+
vomit = "commit";
52
127
graph = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold cyan)%h%C(reset) - %C(green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all";
53
128
pl = "pull";
54
129
ps = "push";
130
+
psf = "push --force-with-lease";
55
131
root = "rev-parse --show-toplevel";
56
132
st = "status";
57
-
sw = "switch";
133
+
sw = "!${gitSwitchFzf}";
58
134
swag = ''!f() { if [ -z "$1" ]; then tag=$(git describe --abbrev=0 --tag); else tag=$(git describe --abbrev=0 --tag "$1"); fi; git switch --detach "''${tag}"; }; f'';
59
135
hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f'';
60
136
comfix = "!${mkFixupAlias "fixup"}";
61
137
comreb = "!${mkFixupAlias "rebase"}";
138
+
show = "show --ext-diff";
139
+
lp = "log -p --ext-diff";
62
140
};
63
141
64
142
extraConfig = {
65
143
init.defaultBranch = "main";
144
+
diff.external = lib.getExe pkgs.difftastic;
66
145
pull.rebase = false;
146
+
rerere.enabled = true;
67
147
};
68
148
69
149
ignores = [
···
97
177
user.email = "norbert.melzer@cloudseeds.de";
98
178
};
99
179
}
180
+
{
181
+
condition = "gitdir:~/Projects/BravoBike/**";
182
+
contents = {
183
+
user.email = "norbert.melzer@bravobike.de";
184
+
};
185
+
}
100
186
];
101
187
};
102
188
103
-
home.packages = [pkgs.ripgrep];
189
+
home.packages = [pkgs.ripgrep pkgs.difftastic];
104
190
};
105
191
}
-31
home/modules/programs/emacs/beacon.nix
-31
home/modules/programs/emacs/beacon.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
cfg = config.programs.emacs.packages.beacon;
7
-
in {
8
-
options.programs.emacs.packages.beacon = {
9
-
enable = lib.mkOption {
10
-
type = lib.types.bool;
11
-
default = true;
12
-
description = ''
13
-
Enable `beacon' for emacs.
14
-
'';
15
-
};
16
-
};
17
-
18
-
config = lib.mkIf cfg.enable {
19
-
programs.emacs.localPackages."init-beacon" = {
20
-
tag = "Setup beacon";
21
-
comments = [];
22
-
requires = [];
23
-
code = ''
24
-
;; enable the beacon minor mode globally.
25
-
(beacon-mode 1)
26
-
'';
27
-
};
28
-
29
-
programs.emacs.extraPackages = ep: [ep.beacon];
30
-
};
31
-
}
-38
home/modules/programs/emacs/company.nix
-38
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
-
config = lib.mkIf emacs.enable {
10
-
programs.emacs.extraPackages = ep: [ep.company];
11
-
12
-
programs.emacs.localPackages."init-company" = {
13
-
tag = "Setup and initialise company";
14
-
comments = [];
15
-
requires = [];
16
-
code = ''
17
-
;; company
18
-
(setq tab-always-indent 'complete)
19
-
(add-to-list 'completion-styles 'initials t)
20
-
21
-
;; (eval-when-compile (require 'company))
22
-
23
-
(add-hook 'after-init-hook 'global-company-mode)
24
-
(with-eval-after-load 'company
25
-
26
-
;; (diminish 'company-mode "CMP")
27
-
(define-key company-mode-map (kbd "M-+") '("complete" . 'company-complete))
28
-
(define-key company-active-map (kbd "M-+") '("change backend" . 'company-other-backend))
29
-
(define-key company-active-map (kbd "C-n") '("next" . 'company-select-next))
30
-
(define-key company-active-map (kbd "C-p") '("previous" . 'company-select-previous))
31
-
(setq-default company-dabbrev-other-buffers 'all
32
-
company-tooltip-align-annotations t
33
-
company-minimum-prefix-length 1
34
-
company-idle-delay 0.05))
35
-
'';
36
-
};
37
-
};
38
-
}
-179
home/modules/programs/emacs/default.nix
-179
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
-
options.programs.emacs = {
47
-
splashScreen = lib.mkOption {
48
-
type = lib.types.bool;
49
-
default = true;
50
-
example = false;
51
-
description = ''
52
-
Enable the startup screen.
53
-
'';
54
-
};
55
-
56
-
localPackages = lib.mkOption {
57
-
type = lib.types.attrsOf (lib.types.submodule (_: {
58
-
options = {
59
-
tag = lib.mkOption {type = lib.types.str;};
60
-
comments = lib.mkOption {type = lib.types.listOf lib.types.str;};
61
-
requires = lib.mkOption {type = lib.types.listOf lib.types.str;};
62
-
code = lib.mkOption {type = lib.types.str;};
63
-
packageRequires = lib.mkOption {
64
-
type = lib.types.unspecified;
65
-
default = _: [];
66
-
};
67
-
};
68
-
}));
69
-
};
70
-
71
-
extraInit = lib.mkOption {
72
-
type = lib.types.lines;
73
-
default = "";
74
-
description = ''
75
-
Extra preferences to add to <filename>init.el</filename>.
76
-
'';
77
-
};
78
-
79
-
module = lib.mkOption {
80
-
description = "Attribute set of modules to link into emacs configuration";
81
-
default = {};
82
-
};
83
-
};
84
-
85
-
config = lib.mkIf emacsEnabled {
86
-
programs.emacs.extraInit = ''
87
-
;; adjust the load-path to find further down required files
88
-
(add-to-list 'load-path
89
-
(expand-file-name "lisp" user-emacs-directory))
90
-
91
-
(fset 'yes-or-no-p 'y-or-n-p)
92
-
93
-
;; Move backups and autosaves out of the way
94
-
(setq backup-directory-alist
95
-
`((".*" . ,temporary-file-directory)))
96
-
(setq auto-save-file-name-transforms
97
-
`((".*" ,temporary-file-directory)))
98
-
99
-
;; use a dark theme
100
-
(load-theme 'dracula t)
101
-
102
-
;; Set a font
103
-
(add-to-list 'default-frame-alist
104
-
'(font . "Cascadia Code PL-10"))
105
-
106
-
;; require all those local packages
107
-
${lispRequires}
108
-
(require 'pest-mode)
109
-
(add-to-list #'auto-mode-alist '("\\.pest\\'" . pest-mode))
110
-
111
-
(global-auto-revert-mode)
112
-
(global-whitespace-mode)
113
-
(global-linum-mode)
114
-
115
-
(setq-default indent-tabs-mode nil)
116
-
(setq-default tab-width 2)
117
-
(setq-default whitespace-style
118
-
'(face
119
-
tabs
120
-
spaces
121
-
trailing
122
-
lines-tail
123
-
newline
124
-
missing-newline-at-eof
125
-
space-before-tab
126
-
indentation
127
-
empty
128
-
space-after-tab
129
-
space-mark
130
-
tab-mark
131
-
newline-mark))
132
-
133
-
;; set splash screen
134
-
(setq inhibit-startup-screen ${bool2Lisp (!cfg.splashScreen)})
135
-
'';
136
-
137
-
programs.emacs.extraPackages = ep:
138
-
[
139
-
ep.company-go
140
-
ep.dracula-theme
141
-
ep.docker-compose-mode
142
-
ep.dockerfile-mode
143
-
ep.go-mode
144
-
ep.markdown-mode
145
-
ep.yaml-mode
146
-
ep.adoc-mode
147
-
ep.k8s-mode
148
-
ep.buttercup
149
-
ep.adoc-mode
150
-
ep.hledger-mode
151
-
ep.typescript-mode
152
-
ep.earthfile-mode
153
-
ep.ledger-mode
154
-
ep.pest-mode
155
-
156
-
# ep.bazel-mode
157
-
158
-
# (ep.trivialBuild { pname = "configuration"; src = confPackages; })
159
-
]
160
-
++ lib.attrsets.mapAttrsToList
161
-
(pname: v:
162
-
ep.trivialBuild {
163
-
inherit pname;
164
-
inherit (v) src;
165
-
# src = v.src;
166
-
packageRequires = v.ep ep;
167
-
})
168
-
confPackages;
169
-
170
-
home.file = {
171
-
".emacs.d/init.el" = {
172
-
text =
173
-
config.lib.emacs.generatePackage "init"
174
-
"Initialises emacs configuration" [] []
175
-
cfg.extraInit;
176
-
};
177
-
};
178
-
};
179
-
}
-33
home/modules/programs/emacs/helm.nix
-33
home/modules/programs/emacs/helm.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
emacsCfg = config.programs.emacs;
7
-
in {
8
-
config = lib.mkIf emacsCfg.enable {
9
-
programs.emacs = {
10
-
localPackages."init-helm" = {
11
-
tag = "Setup helm";
12
-
comments = [];
13
-
requires = ["helm"];
14
-
packageRequires = ep: [ep.helm ep.helm-rg];
15
-
code = ''
16
-
;; enable and configure auto resize
17
-
(helm-autoresize-mode t)
18
-
(setq-default
19
-
helm-autoresize-max-height 20 ; take at most 20% of the screen
20
-
helm-autoresize-min-height 1) ; get as small as necessary
21
-
22
-
;; set up key bindings
23
-
(global-set-key (kbd "M-x") 'helm-M-x)
24
-
(global-set-key (kbd "C-x C-f") 'helm-find-files)
25
-
(global-set-key (kbd "C-x C-b") 'helm-buffers-list)
26
-
27
-
;; enable helm
28
-
(helm-mode t)
29
-
'';
30
-
};
31
-
};
32
-
};
33
-
}
-60
home/modules/programs/emacs/lib.nix
-60
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
-
config.lib.emacs.generatePackage = name: tagLine: commentLines: requireList: code:
57
-
generatePackage {
58
-
inherit name code tagLine commentLines requireList;
59
-
};
60
-
}
-65
home/modules/programs/emacs/lsp.nix
-65
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
-
options.programs.emacs.lsp-mode = {
17
-
enable = lib.mkEnableOption "Enables and installs lsp-mode";
18
-
19
-
languages = lib.mkOption {
20
-
type = lib.types.listOf lib.types.str;
21
-
default = [];
22
-
description = ''
23
-
The prefixes of the prog-mode that shall be handled through lsp-mode.
24
-
'';
25
-
example = ["erlang"];
26
-
};
27
-
};
28
-
29
-
config = lib.mkIf cfg.enable {
30
-
programs.emacs = {
31
-
localPackages."init-lsp" = {
32
-
tag = "Setup and prepare the LSP mode";
33
-
comments = [];
34
-
requires = ["lsp-mode"];
35
-
packageRequires = ep: [
36
-
# ep.company-lsp
37
-
ep.helm-lsp
38
-
ep.lsp-mode
39
-
ep.lsp-origami
40
-
ep.lsp-ui
41
-
ep.yasnippet
42
-
];
43
-
code = ''
44
-
(yas-global-mode t)
45
-
46
-
(setq lsp-log-io t)
47
-
(setq lsp-ui-sideline-enable t)
48
-
(setq lsp-ui-doc-enable t)
49
-
(setq lsp-ui-doc-position 'bottom)
50
-
51
-
(eval-after-load 'company
52
-
'(push 'company-lsp company-backend))
53
-
54
-
(dolist (match
55
-
'("[/\\\\].direnv$"
56
-
"[/\\\\]node_modules$"
57
-
"/nix/store"))
58
-
(add-to-list 'lsp-file-watch-ignored match))
59
-
60
-
${mode-hooks}
61
-
'';
62
-
};
63
-
};
64
-
};
65
-
}
-34
home/modules/programs/emacs/polymode/default.nix
-34
home/modules/programs/emacs/polymode/default.nix
···
1
-
{
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
inherit (config.programs) emacs;
7
-
in {
8
-
config = lib.mkIf emacs.enable {
9
-
programs.emacs.extraPackages = ep: [ep.polymode];
10
-
11
-
programs.emacs.localPackages."init-polymode" = {
12
-
tag = "Setup and initialise polymode";
13
-
comments = [];
14
-
requires = [];
15
-
code = ''
16
-
;; polymode
17
-
(add-to-list 'auto-mode-alist '("\\.nix$" . poly-nix-mode))
18
-
19
-
(define-hostmode poly-nix-hostmode :mode 'nix-mode)
20
-
21
-
(define-innermode poly-elisp-expr-nix-innermode
22
-
:mode 'emacs-lisp-mode
23
-
:head-matcher (cons "'''\n\\( *;;.*\n\\)" 1)
24
-
:tail-matcher " *''';$"
25
-
:head-mode 'body
26
-
:tail-mode 'host)
27
-
28
-
(define-polymode poly-nix-mode
29
-
:hostmode 'poly-nix-hostmode
30
-
:innermodes '(poly-elisp-expr-nix-innermode))
31
-
'';
32
-
};
33
-
};
34
-
}
-25
home/modules/programs/emacs/projectile.nix
-25
home/modules/programs/emacs/projectile.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
emacsCfg = config.programs.emacs;
7
-
in {
8
-
config = lib.mkIf emacsCfg.enable {
9
-
programs.emacs = {
10
-
localPackages."init-projectile" = {
11
-
tag = "Setup projectile";
12
-
comments = [];
13
-
requires = ["projectile" "helm-projectile" "tramp"];
14
-
packageRequires = ep: [ep.projectile ep.helm-projectile];
15
-
code = ''
16
-
;; enable projectile
17
-
(projectile-mode t)
18
-
(helm-projectile-on)
19
-
20
-
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
21
-
'';
22
-
};
23
-
};
24
-
};
25
-
}
-31
home/modules/programs/emacs/telephoneline.nix
-31
home/modules/programs/emacs/telephoneline.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
...
5
-
}: let
6
-
ecfg = config.programs.emacs;
7
-
in {
8
-
config = lib.mkIf ecfg.enable {
9
-
programs.emacs.localPackages."init-telephoneline" = {
10
-
tag = "Setup telephone line";
11
-
comments = [];
12
-
requires = [];
13
-
code = ''
14
-
;; set up telephone line
15
-
(setq-default
16
-
telephone-line-lhs '((accent . (telephone-line-vc-segment
17
-
telephone-line-erc-modified-channels-segment
18
-
telephone-line-process-segment))
19
-
(nil . (telephone-line-minor-mode-segment
20
-
telephone-line-buffer-segment)))
21
-
telephone-line-rhs '((nil . (telephone-line-misc-info-segment))
22
-
(accent . (telephone-line-major-mode-segment))
23
-
(accent . (telephone-line-airline-position-segment))))
24
-
25
-
(telephone-line-mode t)
26
-
'';
27
-
};
28
-
29
-
programs.emacs.extraPackages = ep: [ep.telephone-line];
30
-
};
31
-
}
-72
home/modules/programs/emacs/whichkey/default.nix
-72
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
-
options.programs.emacs.whichkey = {
37
-
replacement = lib.mkOption {type = keyReplacementType;};
38
-
};
39
-
40
-
config = lib.mkIf enabled {
41
-
programs.emacs = {
42
-
whichkey.replacement = [
43
-
{
44
-
keys = "C-x C-f";
45
-
replace = "find file";
46
-
}
47
-
{
48
-
keys = "C-x C-s";
49
-
replace = "write file";
50
-
}
51
-
{
52
-
keys = "C-x C-c";
53
-
replace = "leave emacs";
54
-
}
55
-
];
56
-
extraPackages = ep: [ep.which-key];
57
-
localPackages."init-whichkey" = {
58
-
tag = "Setup and initialise whichkey";
59
-
comments = [];
60
-
requires = [];
61
-
code = ''
62
-
;; which-key
63
-
(which-key-mode t)
64
-
(setq-default which-key-idle-delay 0.1)
65
-
66
-
(which-key-add-key-based-replacements
67
-
${replacements})
68
-
'';
69
-
};
70
-
};
71
-
};
72
-
}
-16
home/modules/programs/exa/default.nix
-16
home/modules/programs/exa/default.nix
···
1
-
_: {
2
-
config,
3
-
lib,
4
-
pkgs,
5
-
...
6
-
}: let
7
-
cfg = config.programs.exa;
8
-
in {
9
-
config = lib.mkIf cfg.enable {
10
-
home.packages = [pkgs.exa];
11
-
12
-
programs.zsh.shellAliases = {
13
-
ll = "exa --header --git --classify --long --binary --group --time-style=long-iso --links --all --all --group-directories-first --sort=name";
14
-
};
15
-
};
16
-
}
+16
home/modules/programs/eza/default.nix
+16
home/modules/programs/eza/default.nix
···
1
+
_: {
2
+
config,
3
+
lib,
4
+
pkgs,
5
+
...
6
+
}: let
7
+
cfg = config.programs.eza;
8
+
in {
9
+
config = lib.mkIf cfg.enable {
10
+
programs.eza.package = pkgs.eza;
11
+
programs.zsh.shellAliases = {
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";
14
+
};
15
+
};
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
+
}
+1
-1
home/modules/programs/nixpkgs/default.nix
+1
-1
home/modules/programs/nixpkgs/default.nix
-23
home/modules/programs/openshift/default.nix
-23
home/modules/programs/openshift/default.nix
···
1
-
_: {
2
-
pkgs,
3
-
lib,
4
-
config,
5
-
...
6
-
}: let
7
-
cfg = config.programs.openshift;
8
-
in {
9
-
options.programs.openshift = {
10
-
enable = lib.mkEnableOption "Tools to manage openshift instances";
11
-
};
12
-
13
-
config = lib.mkIf cfg.enable {
14
-
home.packages = [pkgs.sops pkgs.openshift (lib.setPrio 0 pkgs.kubectl) pkgs.kubernetes-helm];
15
-
16
-
programs.zsh.initExtra = ''
17
-
# Enable autocomplete for oc, kubectl and helm
18
-
eval "$(${pkgs.openshift}/bin/oc completion zsh)"
19
-
eval "$(${pkgs.kubectl}/bin/kubectl completion zsh)"
20
-
eval "$(${pkgs.kubernetes-helm}/bin/helm completion zsh)"
21
-
'';
22
-
};
23
-
}
+28
home/modules/programs/p10k/default.nix
+28
home/modules/programs/p10k/default.nix
···
1
+
_: {
2
+
pkgs,
3
+
lib,
4
+
config,
5
+
...
6
+
}: let
7
+
cfg = config.programs.p10k;
8
+
zsh = config.programs.zsh.enable;
9
+
in {
10
+
options = {
11
+
programs.p10k.enable = lib.mkEnableOption "p10k";
12
+
};
13
+
14
+
config = lib.mkIf (cfg.enable && zsh) {
15
+
programs.zsh.plugins = [
16
+
{
17
+
name = "powerlevel10k";
18
+
src = pkgs.zsh-powerlevel10k;
19
+
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
20
+
}
21
+
{
22
+
name = "powerlevel10k-config";
23
+
src = ./p10k-config;
24
+
file = "p10k.zsh";
25
+
}
26
+
];
27
+
};
28
+
}
+1671
home/modules/programs/p10k/p10k-config/p10k.zsh
+1671
home/modules/programs/p10k/p10k-config/p10k.zsh
···
1
+
# Generated by Powerlevel10k configuration wizard on 2023-03-14 at 22:38 CET.
2
+
# Based on romkatv/powerlevel10k/config/p10k-classic.zsh.
3
+
# Wizard options: powerline, classic, unicode, darkest, 24h time, angled separators,
4
+
# blurred heads, flat tails, 2 lines, solid, full frame, compact, concise,
5
+
# transient_prompt, instant_prompt=verbose.
6
+
# Type `p10k configure` to generate another config.
7
+
#
8
+
# Config for Powerlevel10k with classic powerline prompt style. Type `p10k configure` to generate
9
+
# your own config based on it.
10
+
#
11
+
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
12
+
#
13
+
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
14
+
15
+
# Temporarily change options.
16
+
'builtin' 'local' '-a' 'p10k_config_opts'
17
+
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
18
+
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
19
+
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
20
+
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
21
+
22
+
() {
23
+
emulate -L zsh -o extended_glob
24
+
25
+
# Unset all configuration options. This allows you to apply configuration changes without
26
+
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
27
+
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
28
+
29
+
# Zsh >= 5.1 is required.
30
+
[[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
31
+
32
+
# The list of segments shown on the left. Fill it with the most important segments.
33
+
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
34
+
# =========================[ Line #1 ]=========================
35
+
# os_icon # os identifier
36
+
dir # current directory
37
+
vcs # git status
38
+
# =========================[ Line #2 ]=========================
39
+
newline # \n
40
+
# prompt_char # prompt symbol
41
+
)
42
+
43
+
# The list of segments shown on the right. Fill it with less important segments.
44
+
# Right prompt on the last prompt line (where you are typing your commands) gets
45
+
# automatically hidden when the input line reaches it. Right prompt above the
46
+
# last prompt line gets hidden if it would overlap with left prompt.
47
+
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
48
+
# =========================[ Line #1 ]=========================
49
+
status # exit code of the last command
50
+
command_execution_time # duration of the last command
51
+
background_jobs # presence of background jobs
52
+
direnv # direnv status (https://direnv.net/)
53
+
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
54
+
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
55
+
anaconda # conda environment (https://conda.io/)
56
+
pyenv # python environment (https://github.com/pyenv/pyenv)
57
+
goenv # go environment (https://github.com/syndbg/goenv)
58
+
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
59
+
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
60
+
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
61
+
# node_version # node.js version
62
+
# go_version # go version (https://golang.org)
63
+
# rust_version # rustc version (https://www.rust-lang.org)
64
+
# dotnet_version # .NET version (https://dotnet.microsoft.com)
65
+
# php_version # php version (https://www.php.net/)
66
+
# laravel_version # laravel php framework version (https://laravel.com/)
67
+
# java_version # java version (https://www.java.com/)
68
+
# package # name@version from package.json (https://docs.npmjs.com/files/package.json)
69
+
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
70
+
rvm # ruby version from rvm (https://rvm.io)
71
+
fvm # flutter version management (https://github.com/leoafarias/fvm)
72
+
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
73
+
jenv # java version from jenv (https://github.com/jenv/jenv)
74
+
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
75
+
perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
76
+
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
77
+
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
78
+
haskell_stack # haskell version from stack (https://haskellstack.org/)
79
+
kubecontext # current kubernetes context (https://kubernetes.io/)
80
+
terraform # terraform workspace (https://www.terraform.io)
81
+
# terraform_version # terraform version (https://www.terraform.io)
82
+
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
83
+
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
84
+
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
85
+
gcloud # google cloud cli account and project (https://cloud.google.com/)
86
+
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
87
+
toolbox # toolbox name (https://github.com/containers/toolbox)
88
+
context # user@hostname
89
+
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
90
+
ranger # ranger shell (https://github.com/ranger/ranger)
91
+
nnn # nnn shell (https://github.com/jarun/nnn)
92
+
lf # lf shell (https://github.com/gokcehan/lf)
93
+
xplr # xplr shell (https://github.com/sayanarijit/xplr)
94
+
vim_shell # vim shell indicator (:sh)
95
+
midnight_commander # midnight commander shell (https://midnight-commander.org/)
96
+
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
97
+
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
98
+
# vpn_ip # virtual private network indicator
99
+
# load # CPU load
100
+
# disk_usage # disk usage
101
+
# ram # free RAM
102
+
# swap # used swap
103
+
todo # todo items (https://github.com/todotxt/todo.txt-cli)
104
+
timewarrior # timewarrior tracking status (https://timewarrior.net/)
105
+
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
106
+
# cpu_arch # CPU architecture
107
+
time # current time
108
+
# =========================[ Line #2 ]=========================
109
+
newline # \n
110
+
# ip # ip address and bandwidth usage for a specified network interface
111
+
# public_ip # public IP address
112
+
# proxy # system-wide http/https/ftp proxy
113
+
# battery # internal battery
114
+
# wifi # wifi speed
115
+
# example # example user-defined segment (see prompt_example function below)
116
+
)
117
+
118
+
# Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you.
119
+
typeset -g POWERLEVEL9K_MODE=powerline
120
+
# When set to `moderate`, some icons will have an extra space after them. This is meant to avoid
121
+
# icon overlap when using non-monospace fonts. When set to `none`, spaces are not added.
122
+
typeset -g POWERLEVEL9K_ICON_PADDING=none
123
+
124
+
# When set to true, icons appear before content on both sides of the prompt. When set
125
+
# to false, icons go after content. If empty or not set, icons go before content in the left
126
+
# prompt and after content in the right prompt.
127
+
#
128
+
# You can also override it for a specific segment:
129
+
#
130
+
# POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
131
+
#
132
+
# Or for a specific segment in specific state:
133
+
#
134
+
# POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
135
+
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=
136
+
137
+
# Add an empty line before each prompt.
138
+
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
139
+
140
+
# Connect left prompt lines with these symbols. You'll probably want to use the same color
141
+
# as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
142
+
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%238Fโญโ'
143
+
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%238Fโโ'
144
+
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%238Fโฐโ'
145
+
# Connect right prompt lines with these symbols.
146
+
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%238Fโโฎ'
147
+
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%238Fโโค'
148
+
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%238Fโโฏ'
149
+
150
+
# Filler between left and right prompt on the first prompt line. You can set it to ' ', 'ยท' or
151
+
# 'โ'. The last two make it easier to see the alignment between left and right prompt and to
152
+
# separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
153
+
# for more compact prompt if using this option.
154
+
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='โ'
155
+
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
156
+
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=
157
+
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
158
+
# The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
159
+
# ornaments defined above.
160
+
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=238
161
+
# Start filler from the edge of the screen if there are no left segments on the first line.
162
+
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
163
+
# End filler on the edge of the screen if there are no right segments on the first line.
164
+
typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
165
+
fi
166
+
167
+
# Default background color.
168
+
typeset -g POWERLEVEL9K_BACKGROUND=234
169
+
170
+
# Separator between same-color segments on the left.
171
+
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%242F\uE0B1'
172
+
# Separator between same-color segments on the right.
173
+
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%242F\uE0B3'
174
+
# Separator between different-color segments on the left.
175
+
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
176
+
# Separator between different-color segments on the right.
177
+
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
178
+
# The right end of left prompt.
179
+
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='โโโ'
180
+
# The left end of right prompt.
181
+
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='โโโ'
182
+
# The left end of left prompt.
183
+
typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=''
184
+
# The right end of right prompt.
185
+
typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
186
+
# Left prompt terminator for lines without any segments.
187
+
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
188
+
189
+
#################################[ os_icon: os identifier ]##################################
190
+
# OS identifier color.
191
+
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255
192
+
# Custom icon.
193
+
# typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='โญ'
194
+
195
+
################################[ prompt_char: prompt symbol ]################################
196
+
# Transparent background.
197
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=
198
+
# Green prompt symbol if the last command succeeded.
199
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76
200
+
# Red prompt symbol if the last command failed.
201
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196
202
+
# Default prompt symbol.
203
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='โฏ'
204
+
# Prompt symbol in command vi mode.
205
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='โฎ'
206
+
# Prompt symbol in visual vi mode.
207
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V'
208
+
# Prompt symbol in overwrite vi mode.
209
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='โถ'
210
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
211
+
# No line terminator if prompt_char is the last segment.
212
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
213
+
# No line introducer if prompt_char is the first segment.
214
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
215
+
# No surrounding whitespace.
216
+
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=
217
+
218
+
##################################[ dir: current directory ]##################################
219
+
# Default current directory color.
220
+
typeset -g POWERLEVEL9K_DIR_FOREGROUND=31
221
+
# If directory is too long, shorten some of its segments to the shortest possible unique
222
+
# prefix. The shortened directory can be tab-completed to the original.
223
+
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
224
+
# Replace removed segment suffixes with this symbol.
225
+
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
226
+
# Color of the shortened directory segments.
227
+
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103
228
+
# Color of the anchor directory segments. Anchor segments are never shortened. The first
229
+
# segment is always an anchor.
230
+
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
231
+
# Display anchor directory segments in bold.
232
+
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
233
+
# Don't shorten directories that contain any of these files. They are anchors.
234
+
local anchor_files=(
235
+
.bzr
236
+
.citc
237
+
.git
238
+
.hg
239
+
.node-version
240
+
.python-version
241
+
.go-version
242
+
.ruby-version
243
+
.lua-version
244
+
.java-version
245
+
.perl-version
246
+
.php-version
247
+
.tool-version
248
+
.shorten_folder_marker
249
+
.svn
250
+
.terraform
251
+
CVS
252
+
Cargo.toml
253
+
composer.json
254
+
go.mod
255
+
package.json
256
+
stack.yaml
257
+
)
258
+
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
259
+
# If set to "first" ("last"), remove everything before the first (last) subdirectory that contains
260
+
# files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
261
+
# /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)
262
+
# or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers
263
+
# and other directories don't.
264
+
#
265
+
# Optionally, "first" and "last" can be followed by ":<offset>" where <offset> is an integer.
266
+
# This moves the truncation point to the right (positive offset) or to the left (negative offset)
267
+
# relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0"
268
+
# respectively.
269
+
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
270
+
# Don't shorten this many last directory segments. They are anchors.
271
+
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
272
+
# Shorten directory if it's longer than this even if there is space for it. The value can
273
+
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
274
+
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
275
+
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
276
+
# If set to `0`, directory will always be shortened to its minimum length.
277
+
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
278
+
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
279
+
# many columns for typing commands.
280
+
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
281
+
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
282
+
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
283
+
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
284
+
# If set to true, embed a hyperlink into the directory. Useful for quickly
285
+
# opening a directory in the file manager simply by clicking the link.
286
+
# Can also be handy when the directory is shortened, as it allows you to see
287
+
# the full directory that was used in previous commands.
288
+
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
289
+
290
+
# Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON
291
+
# and POWERLEVEL9K_DIR_CLASSES below.
292
+
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3
293
+
294
+
# The default icon shown next to non-writable and non-existent directories when
295
+
# POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3.
296
+
typeset -g POWERLEVEL9K_LOCK_ICON='๐'
297
+
298
+
# POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different
299
+
# directories. It must be an array with 3 * N elements. Each triplet consists of:
300
+
#
301
+
# 1. A pattern against which the current directory ($PWD) is matched. Matching is done with
302
+
# extended_glob option enabled.
303
+
# 2. Directory class for the purpose of styling.
304
+
# 3. An empty string.
305
+
#
306
+
# Triplets are tried in order. The first triplet whose pattern matches $PWD wins.
307
+
#
308
+
# If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories
309
+
# acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively.
310
+
#
311
+
# For example, given these settings:
312
+
#
313
+
# typeset -g POWERLEVEL9K_DIR_CLASSES=(
314
+
# '~/work(|/*)' WORK ''
315
+
# '~(|/*)' HOME ''
316
+
# '*' DEFAULT '')
317
+
#
318
+
# Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one
319
+
# of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or
320
+
# WORK_NON_EXISTENT.
321
+
#
322
+
# Simply assigning classes to directories doesn't have any visible effects. It merely gives you an
323
+
# option to define custom colors and icons for different directory classes.
324
+
#
325
+
# # Styling for WORK.
326
+
# typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='โญ'
327
+
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
328
+
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
329
+
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
330
+
#
331
+
# # Styling for WORK_NOT_WRITABLE.
332
+
# typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='โญ'
333
+
# typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=31
334
+
# typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=103
335
+
# typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=39
336
+
#
337
+
# # Styling for WORK_NON_EXISTENT.
338
+
# typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='โญ'
339
+
# typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=31
340
+
# typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=103
341
+
# typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=39
342
+
#
343
+
# If a styling parameter isn't explicitly defined for some class, it falls back to the classless
344
+
# parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls
345
+
# back to POWERLEVEL9K_DIR_FOREGROUND.
346
+
#
347
+
typeset -g POWERLEVEL9K_DIR_CLASSES=()
348
+
349
+
# Custom prefix.
350
+
# typeset -g POWERLEVEL9K_DIR_PREFIX='%244Fin '
351
+
352
+
#####################################[ vcs: git status ]######################################
353
+
# Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
354
+
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
355
+
356
+
# Untracked files icon. It's really a question mark, your font isn't broken.
357
+
# Change the value of this parameter to show a different icon.
358
+
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
359
+
360
+
# Formatter for Git status.
361
+
#
362
+
# Example output: master wip โฃ42โก42 *42 merge ~42 +42 !42 ?42.
363
+
#
364
+
# You can edit the function to customize how Git status looks.
365
+
#
366
+
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
367
+
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
368
+
function my_git_formatter() {
369
+
emulate -L zsh
370
+
371
+
if [[ -n $P9K_CONTENT ]]; then
372
+
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
373
+
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
374
+
typeset -g my_git_format=$P9K_CONTENT
375
+
return
376
+
fi
377
+
378
+
if (( $1 )); then
379
+
# Styling for up-to-date Git status.
380
+
local meta='%244F' # grey foreground
381
+
local clean='%76F' # green foreground
382
+
local modified='%178F' # yellow foreground
383
+
local untracked='%39F' # blue foreground
384
+
local conflicted='%196F' # red foreground
385
+
else
386
+
# Styling for incomplete and stale Git status.
387
+
local meta='%244F' # grey foreground
388
+
local clean='%244F' # grey foreground
389
+
local modified='%244F' # grey foreground
390
+
local untracked='%244F' # grey foreground
391
+
local conflicted='%244F' # grey foreground
392
+
fi
393
+
394
+
local res
395
+
396
+
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
397
+
local branch=${(V)VCS_STATUS_LOCAL_BRANCH}
398
+
# If local branch name is at most 32 characters long, show it in full.
399
+
# Otherwise show the first 12 โฆ the last 12.
400
+
# Tip: To always show local branch name in full without truncation, delete the next line.
401
+
(( $#branch > 32 )) && branch[13,-13]="โฆ" # <-- this line
402
+
res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}"
403
+
fi
404
+
405
+
if [[ -n $VCS_STATUS_TAG
406
+
# Show tag only if not on a branch.
407
+
# Tip: To always show tag, delete the next line.
408
+
&& -z $VCS_STATUS_LOCAL_BRANCH # <-- this line
409
+
]]; then
410
+
local tag=${(V)VCS_STATUS_TAG}
411
+
# If tag name is at most 32 characters long, show it in full.
412
+
# Otherwise show the first 12 โฆ the last 12.
413
+
# Tip: To always show tag name in full without truncation, delete the next line.
414
+
(( $#tag > 32 )) && tag[13,-13]="โฆ" # <-- this line
415
+
res+="${meta}#${clean}${tag//\%/%%}"
416
+
fi
417
+
418
+
# Display the current Git commit if there is no branch and no tag.
419
+
# Tip: To always display the current Git commit, delete the next line.
420
+
[[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line
421
+
res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}"
422
+
423
+
# Show tracking branch name if it differs from local branch.
424
+
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
425
+
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}"
426
+
fi
427
+
428
+
# Display "wip" if the latest commit's summary contains "wip" or "WIP".
429
+
if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then
430
+
res+=" ${modified}wip"
431
+
fi
432
+
433
+
# โฃ42 if behind the remote.
434
+
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}โฃ${VCS_STATUS_COMMITS_BEHIND}"
435
+
# โก42 if ahead of the remote; no leading space if also behind the remote: โฃ42โก42.
436
+
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
437
+
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}โก${VCS_STATUS_COMMITS_AHEAD}"
438
+
# โ 42 if behind the push remote.
439
+
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}โ ${VCS_STATUS_PUSH_COMMITS_BEHIND}"
440
+
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
441
+
# โข42 if ahead of the push remote; no leading space if also behind: โ 42โข42.
442
+
(( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}โข${VCS_STATUS_PUSH_COMMITS_AHEAD}"
443
+
# *42 if have stashes.
444
+
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
445
+
# 'merge' if the repo is in an unusual state.
446
+
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
447
+
# ~42 if have merge conflicts.
448
+
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
449
+
# +42 if have staged changes.
450
+
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
451
+
# !42 if have unstaged changes.
452
+
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
453
+
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
454
+
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
455
+
# Remove the next line if you don't want to see untracked files at all.
456
+
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
457
+
# "โ" if the number of unstaged files is unknown. This can happen due to
458
+
# POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower
459
+
# than the number of files in the Git index, or due to bash.showDirtyState being set to false
460
+
# in the repository config. The number of staged and untracked files may also be unknown
461
+
# in this case.
462
+
(( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}โ"
463
+
464
+
typeset -g my_git_format=$res
465
+
}
466
+
functions -M my_git_formatter 2>/dev/null
467
+
468
+
# Don't count the number of unstaged, untracked and conflicted files in Git repositories with
469
+
# more than this many files in the index. Negative value means infinity.
470
+
#
471
+
# If you are working in Git repositories with tens of millions of files and seeing performance
472
+
# sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output
473
+
# of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's
474
+
# config: `git config bash.showDirtyState false`.
475
+
typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1
476
+
477
+
# Don't show Git status in prompt for repositories whose workdir matches this pattern.
478
+
# For example, if set to '~', the Git repository at $HOME/.git will be ignored.
479
+
# Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.
480
+
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'
481
+
482
+
# Disable the default Git status formatting.
483
+
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
484
+
# Install our own Git status formatter.
485
+
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
486
+
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
487
+
# Enable counters for staged, unstaged, etc.
488
+
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
489
+
490
+
# Icon color.
491
+
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
492
+
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
493
+
# Custom icon.
494
+
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
495
+
# Custom prefix.
496
+
# typeset -g POWERLEVEL9K_VCS_PREFIX='%244Fon '
497
+
498
+
# Show status of repositories of these types. You can add svn and/or hg if you are
499
+
# using them. If you do, your prompt may become slow even when your current directory
500
+
# isn't in an svn or hg reposotiry.
501
+
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
502
+
503
+
# These settings are used for repositories other than Git or when gitstatusd fails and
504
+
# Powerlevel10k has to fall back to using vcs_info.
505
+
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
506
+
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
507
+
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
508
+
509
+
##########################[ status: exit code of the last command ]###########################
510
+
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
511
+
# style them independently from the regular OK and ERROR state.
512
+
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
513
+
514
+
# Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
515
+
# it will signify success by turning green.
516
+
typeset -g POWERLEVEL9K_STATUS_OK=true
517
+
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70
518
+
typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='โ'
519
+
520
+
# Status when some part of a pipe command fails but the overall exit status is zero. It may look
521
+
# like this: 1|0.
522
+
typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
523
+
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70
524
+
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='โ'
525
+
526
+
# Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
527
+
# it will signify error by turning red.
528
+
typeset -g POWERLEVEL9K_STATUS_ERROR=true
529
+
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160
530
+
typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='โ'
531
+
532
+
# Status when the last command was terminated by a signal.
533
+
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
534
+
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160
535
+
# Use terse signal names: "INT" instead of "SIGINT(2)".
536
+
typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
537
+
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='โ'
538
+
539
+
# Status when some part of a pipe command fails and the overall exit status is also non-zero.
540
+
# It may look like this: 1|0.
541
+
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
542
+
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160
543
+
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='โ'
544
+
545
+
###################[ command_execution_time: duration of the last command ]###################
546
+
# Show duration of the last command if takes at least this many seconds.
547
+
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
548
+
# Show this many fractional digits. Zero means round to seconds.
549
+
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
550
+
# Execution time color.
551
+
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=248
552
+
# Duration format: 1d 2h 3m 4s.
553
+
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
554
+
# Custom icon.
555
+
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
556
+
# Custom prefix.
557
+
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%244Ftook '
558
+
559
+
#######################[ background_jobs: presence of background jobs ]#######################
560
+
# Don't show the number of background jobs.
561
+
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
562
+
# Background jobs color.
563
+
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=37
564
+
# Custom icon.
565
+
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='โก'
566
+
567
+
#######################[ direnv: direnv status (https://direnv.net/) ]########################
568
+
# Direnv color.
569
+
typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178
570
+
# Custom icon.
571
+
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
572
+
573
+
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
574
+
# Default asdf color. Only used to display tools for which there is no color override (see below).
575
+
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND.
576
+
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66
577
+
578
+
# There are four parameters that can be used to hide asdf tools. Each parameter describes
579
+
# conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at
580
+
# least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to
581
+
# hide a tool, it gets shown.
582
+
#
583
+
# Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and
584
+
# POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:
585
+
#
586
+
# asdf local python 3.8.1
587
+
# asdf global python 3.8.1
588
+
#
589
+
# After running both commands the current python version is 3.8.1 and its source is "local" as
590
+
# it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,
591
+
# it'll hide python version in this case because 3.8.1 is the same as the global version.
592
+
# POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't
593
+
# contain "local".
594
+
595
+
# Hide tool versions that don't come from one of these sources.
596
+
#
597
+
# Available sources:
598
+
#
599
+
# - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable"
600
+
# - local `asdf current` says "set by /some/not/home/directory/file"
601
+
# - global `asdf current` says "set by /home/username/file"
602
+
#
603
+
# Note: If this parameter is set to (shell local global), it won't hide tools.
604
+
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.
605
+
typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)
606
+
607
+
# If set to false, hide tool versions that are the same as global.
608
+
#
609
+
# Note: The name of this parameter doesn't reflect its meaning at all.
610
+
# Note: If this parameter is set to true, it won't hide tools.
611
+
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.
612
+
typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false
613
+
614
+
# If set to false, hide tool versions that are equal to "system".
615
+
#
616
+
# Note: If this parameter is set to true, it won't hide tools.
617
+
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.
618
+
typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true
619
+
620
+
# If set to non-empty value, hide tools unless there is a file matching the specified file pattern
621
+
# in the current directory, or its parent directory, or its grandparent directory, and so on.
622
+
#
623
+
# Note: If this parameter is set to empty value, it won't hide tools.
624
+
# Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.
625
+
# Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.
626
+
#
627
+
# Example: Hide nodejs version when there is no package.json and no *.js files in the current
628
+
# directory, in `..`, in `../..` and so on.
629
+
#
630
+
# typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'
631
+
typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=
632
+
633
+
# Ruby version from asdf.
634
+
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168
635
+
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='โญ'
636
+
# typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'
637
+
638
+
# Python version from asdf.
639
+
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37
640
+
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='โญ'
641
+
# typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'
642
+
643
+
# Go version from asdf.
644
+
typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=37
645
+
# typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='โญ'
646
+
# typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar'
647
+
648
+
# Node.js version from asdf.
649
+
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70
650
+
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='โญ'
651
+
# typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'
652
+
653
+
# Rust version from asdf.
654
+
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37
655
+
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='โญ'
656
+
# typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'
657
+
658
+
# .NET Core version from asdf.
659
+
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134
660
+
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='โญ'
661
+
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'
662
+
663
+
# Flutter version from asdf.
664
+
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38
665
+
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='โญ'
666
+
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'
667
+
668
+
# Lua version from asdf.
669
+
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32
670
+
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='โญ'
671
+
# typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'
672
+
673
+
# Java version from asdf.
674
+
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32
675
+
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='โญ'
676
+
# typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'
677
+
678
+
# Perl version from asdf.
679
+
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67
680
+
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='โญ'
681
+
# typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'
682
+
683
+
# Erlang version from asdf.
684
+
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125
685
+
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='โญ'
686
+
# typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'
687
+
688
+
# Elixir version from asdf.
689
+
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129
690
+
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='โญ'
691
+
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'
692
+
693
+
# Postgres version from asdf.
694
+
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31
695
+
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='โญ'
696
+
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'
697
+
698
+
# PHP version from asdf.
699
+
typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=99
700
+
# typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='โญ'
701
+
# typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'
702
+
703
+
# Haskell version from asdf.
704
+
typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=172
705
+
# typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='โญ'
706
+
# typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar'
707
+
708
+
# Julia version from asdf.
709
+
typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=70
710
+
# typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='โญ'
711
+
# typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar'
712
+
713
+
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
714
+
# NordVPN connection indicator color.
715
+
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
716
+
# Hide NordVPN connection indicator when not connected.
717
+
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
718
+
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
719
+
# Custom icon.
720
+
typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='nord'
721
+
722
+
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
723
+
# Ranger shell color.
724
+
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
725
+
# Custom icon.
726
+
typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='โฒ'
727
+
728
+
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
729
+
# Nnn shell color.
730
+
typeset -g POWERLEVEL9K_NNN_FOREGROUND=72
731
+
# Custom icon.
732
+
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='โญ'
733
+
734
+
######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
735
+
# lf shell color.
736
+
typeset -g POWERLEVEL9K_LF_FOREGROUND=72
737
+
# Custom icon.
738
+
# typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='โญ'
739
+
740
+
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
741
+
# xplr shell color.
742
+
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
743
+
# Custom icon.
744
+
# typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='โญ'
745
+
746
+
###########################[ vim_shell: vim shell indicator (:sh) ]###########################
747
+
# Vim shell indicator color.
748
+
typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34
749
+
# Custom icon.
750
+
# typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='โญ'
751
+
752
+
######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######
753
+
# Midnight Commander shell color.
754
+
typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=178
755
+
# Custom icon.
756
+
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='โญ'
757
+
758
+
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
759
+
# Nix shell color.
760
+
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
761
+
762
+
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
763
+
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
764
+
765
+
# Custom icon.
766
+
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='โญ'
767
+
768
+
##################################[ disk_usage: disk usage ]##################################
769
+
# Colors for different levels of disk usage.
770
+
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
771
+
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=220
772
+
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=160
773
+
# Thresholds for different levels of disk usage (percentage points).
774
+
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90
775
+
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95
776
+
# If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.
777
+
typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false
778
+
# Custom icon.
779
+
# typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='โญ'
780
+
781
+
###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]###########
782
+
# Text and color for normal (a.k.a. command) vi mode.
783
+
typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL
784
+
typeset -g POWERLEVEL9K_VI_MODE_NORMAL_FOREGROUND=106
785
+
# Text and color for visual vi mode.
786
+
typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL
787
+
typeset -g POWERLEVEL9K_VI_MODE_VISUAL_FOREGROUND=68
788
+
# Text and color for overtype (a.k.a. overwrite and replace) vi mode.
789
+
typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE
790
+
typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_FOREGROUND=172
791
+
# Text and color for insert vi mode.
792
+
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
793
+
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=66
794
+
795
+
# Custom icon.
796
+
typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='โฒ'
797
+
798
+
######################################[ ram: free RAM ]#######################################
799
+
# RAM color.
800
+
typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
801
+
# Custom icon.
802
+
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='โญ'
803
+
804
+
#####################################[ swap: used swap ]######################################
805
+
# Swap color.
806
+
typeset -g POWERLEVEL9K_SWAP_FOREGROUND=96
807
+
# Custom icon.
808
+
# typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='โญ'
809
+
810
+
######################################[ load: CPU load ]######################################
811
+
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
812
+
typeset -g POWERLEVEL9K_LOAD_WHICH=5
813
+
# Load color when load is under 50%.
814
+
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
815
+
# Load color when load is between 50% and 70%.
816
+
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
817
+
# Load color when load is over 70%.
818
+
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
819
+
# Custom icon.
820
+
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='โญ'
821
+
822
+
################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################
823
+
# Todo color.
824
+
typeset -g POWERLEVEL9K_TODO_FOREGROUND=110
825
+
# Hide todo when the total number of tasks is zero.
826
+
typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true
827
+
# Hide todo when the number of tasks after filtering is zero.
828
+
typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false
829
+
830
+
# Todo format. The following parameters are available within the expansion.
831
+
#
832
+
# - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks.
833
+
# - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering.
834
+
#
835
+
# These variables correspond to the last line of the output of `todo.sh -p ls`:
836
+
#
837
+
# TODO: 24 of 42 tasks shown
838
+
#
839
+
# Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.
840
+
#
841
+
# typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'
842
+
843
+
# Custom icon.
844
+
# typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='โญ'
845
+
846
+
###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############
847
+
# Timewarrior color.
848
+
typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=110
849
+
# If the tracked task is longer than 24 characters, truncate and append "โฆ".
850
+
# Tip: To always display tasks without truncation, delete the following parameter.
851
+
# Tip: To hide task names and display just the icon when time tracking is enabled, set the
852
+
# value of the following parameter to "".
853
+
typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+โฆ}'
854
+
855
+
# Custom icon.
856
+
# typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='โญ'
857
+
858
+
##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############
859
+
# Taskwarrior color.
860
+
typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=74
861
+
862
+
# Taskwarrior segment format. The following parameters are available within the expansion.
863
+
#
864
+
# - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`.
865
+
# - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`.
866
+
#
867
+
# Zero values are represented as empty parameters.
868
+
#
869
+
# The default format:
870
+
#
871
+
# '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT'
872
+
#
873
+
# typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'
874
+
875
+
# Custom icon.
876
+
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='โญ'
877
+
878
+
################################[ cpu_arch: CPU architecture ]################################
879
+
# CPU architecture color.
880
+
typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172
881
+
882
+
# Hide the segment when on a specific CPU architecture.
883
+
# typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
884
+
# typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
885
+
886
+
# Custom icon.
887
+
# typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='โญ'
888
+
889
+
##################################[ context: user@hostname ]##################################
890
+
# Context color when running with privileges.
891
+
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
892
+
# Context color in SSH without privileges.
893
+
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180
894
+
# Default context color (no privileges, no SSH).
895
+
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
896
+
897
+
# Context format when running with privileges: bold user@hostname.
898
+
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
899
+
# Context format when in SSH without privileges: user@hostname.
900
+
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
901
+
# Default context format (no privileges, no SSH): user@hostname.
902
+
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
903
+
904
+
# Don't show context unless running with privileges or in SSH.
905
+
# Tip: Remove the next line to always show context.
906
+
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
907
+
908
+
# Custom icon.
909
+
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='โญ'
910
+
# Custom prefix.
911
+
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%244Fwith '
912
+
913
+
###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
914
+
# Python virtual environment color.
915
+
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37
916
+
# Don't show Python version next to the virtual environment name.
917
+
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
918
+
# If set to "false", won't show virtualenv if pyenv is already shown.
919
+
# If set to "if-different", won't show virtualenv if it's the same as pyenv.
920
+
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
921
+
# Separate environment name from Python version only with a space.
922
+
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
923
+
# Custom icon.
924
+
# typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
925
+
926
+
#####################[ anaconda: conda environment (https://conda.io/) ]######################
927
+
# Anaconda environment color.
928
+
typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37
929
+
930
+
# Anaconda segment format. The following parameters are available within the expansion.
931
+
#
932
+
# - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment.
933
+
# - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment.
934
+
# - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below).
935
+
# - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version).
936
+
#
937
+
# CONDA_PROMPT_MODIFIER can be configured with the following command:
938
+
#
939
+
# conda config --set env_prompt '({default_env}) '
940
+
#
941
+
# The last argument is a Python format string that can use the following variables:
942
+
#
943
+
# - prefix The same as CONDA_PREFIX.
944
+
# - default_env The same as CONDA_DEFAULT_ENV.
945
+
# - name The last segment of CONDA_PREFIX.
946
+
# - stacked_env Comma-separated list of names in the environment stack. The first element is
947
+
# always the same as default_env.
948
+
#
949
+
# Note: '({default_env}) ' is the default value of env_prompt.
950
+
#
951
+
# The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER
952
+
# without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former
953
+
# is empty.
954
+
typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}'
955
+
956
+
# Custom icon.
957
+
# typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='โญ'
958
+
959
+
################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
960
+
# Pyenv color.
961
+
typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37
962
+
# Hide python version if it doesn't come from one of these sources.
963
+
typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)
964
+
# If set to false, hide python version if it's the same as global:
965
+
# $(pyenv version-name) == $(pyenv global).
966
+
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
967
+
# If set to false, hide python version if it's equal to "system".
968
+
typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true
969
+
970
+
# Pyenv segment format. The following parameters are available within the expansion.
971
+
#
972
+
# - P9K_CONTENT Current pyenv environment (pyenv version-name).
973
+
# - P9K_PYENV_PYTHON_VERSION Current python version (python --version).
974
+
#
975
+
# The default format has the following logic:
976
+
#
977
+
# 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or
978
+
# starts with "$P9K_PYENV_PYTHON_VERSION/".
979
+
# 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION".
980
+
typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}'
981
+
982
+
# Custom icon.
983
+
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
984
+
985
+
################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
986
+
# Goenv color.
987
+
typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37
988
+
# Hide go version if it doesn't come from one of these sources.
989
+
typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)
990
+
# If set to false, hide go version if it's the same as global:
991
+
# $(goenv version-name) == $(goenv global).
992
+
typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
993
+
# If set to false, hide go version if it's equal to "system".
994
+
typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true
995
+
# Custom icon.
996
+
# typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
997
+
998
+
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
999
+
# Nodenv color.
1000
+
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
1001
+
# Hide node version if it doesn't come from one of these sources.
1002
+
typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)
1003
+
# If set to false, hide node version if it's the same as global:
1004
+
# $(nodenv version-name) == $(nodenv global).
1005
+
typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
1006
+
# If set to false, hide node version if it's equal to "system".
1007
+
typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true
1008
+
# Custom icon.
1009
+
# typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1010
+
1011
+
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
1012
+
# Nvm color.
1013
+
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
1014
+
# Custom icon.
1015
+
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
1016
+
1017
+
############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
1018
+
# Nodeenv color.
1019
+
typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70
1020
+
# Don't show Node version next to the environment name.
1021
+
typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
1022
+
# Separate environment name from Node version only with a space.
1023
+
typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
1024
+
# Custom icon.
1025
+
# typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1026
+
1027
+
##############################[ node_version: node.js version ]###############################
1028
+
# Node version color.
1029
+
typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70
1030
+
# Show node version only when in a directory tree containing package.json.
1031
+
typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
1032
+
# Custom icon.
1033
+
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1034
+
1035
+
#######################[ go_version: go version (https://golang.org) ]########################
1036
+
# Go version color.
1037
+
typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
1038
+
# Show go version only when in a go project subdirectory.
1039
+
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
1040
+
# Custom icon.
1041
+
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1042
+
1043
+
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
1044
+
# Rust version color.
1045
+
typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
1046
+
# Show rust version only when in a rust project subdirectory.
1047
+
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
1048
+
# Custom icon.
1049
+
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1050
+
1051
+
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
1052
+
# .NET version color.
1053
+
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
1054
+
# Show .NET version only when in a .NET project subdirectory.
1055
+
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
1056
+
# Custom icon.
1057
+
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1058
+
1059
+
#####################[ php_version: php version (https://www.php.net/) ]######################
1060
+
# PHP version color.
1061
+
typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=99
1062
+
# Show PHP version only when in a PHP project subdirectory.
1063
+
typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true
1064
+
# Custom icon.
1065
+
# typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1066
+
1067
+
##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########
1068
+
# Laravel version color.
1069
+
typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=161
1070
+
# Custom icon.
1071
+
# typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1072
+
1073
+
####################[ java_version: java version (https://www.java.com/) ]####################
1074
+
# Java version color.
1075
+
typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=32
1076
+
# Show java version only when in a java project subdirectory.
1077
+
typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true
1078
+
# Show brief version.
1079
+
typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false
1080
+
# Custom icon.
1081
+
# typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1082
+
1083
+
###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]####
1084
+
# Package color.
1085
+
typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=117
1086
+
# Package format. The following parameters are available within the expansion.
1087
+
#
1088
+
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
1089
+
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
1090
+
#
1091
+
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
1092
+
# Custom icon.
1093
+
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='โญ'
1094
+
1095
+
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
1096
+
# Rbenv color.
1097
+
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
1098
+
# Hide ruby version if it doesn't come from one of these sources.
1099
+
typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)
1100
+
# If set to false, hide ruby version if it's the same as global:
1101
+
# $(rbenv version-name) == $(rbenv global).
1102
+
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
1103
+
# If set to false, hide ruby version if it's equal to "system".
1104
+
typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true
1105
+
# Custom icon.
1106
+
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1107
+
1108
+
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
1109
+
# Rvm color.
1110
+
typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
1111
+
# Don't show @gemset at the end.
1112
+
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
1113
+
# Don't show ruby- at the front.
1114
+
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
1115
+
# Custom icon.
1116
+
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
1117
+
1118
+
###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############
1119
+
# Fvm color.
1120
+
typeset -g POWERLEVEL9K_FVM_FOREGROUND=38
1121
+
# Custom icon.
1122
+
# typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='โญ'
1123
+
1124
+
##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########
1125
+
# Lua color.
1126
+
typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=32
1127
+
# Hide lua version if it doesn't come from one of these sources.
1128
+
typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)
1129
+
# If set to false, hide lua version if it's the same as global:
1130
+
# $(luaenv version-name) == $(luaenv global).
1131
+
typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false
1132
+
# If set to false, hide lua version if it's equal to "system".
1133
+
typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true
1134
+
# Custom icon.
1135
+
# typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1136
+
1137
+
###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
1138
+
# Java color.
1139
+
typeset -g POWERLEVEL9K_JENV_FOREGROUND=32
1140
+
# Hide java version if it doesn't come from one of these sources.
1141
+
typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
1142
+
# If set to false, hide java version if it's the same as global:
1143
+
# $(jenv version-name) == $(jenv global).
1144
+
typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
1145
+
# If set to false, hide java version if it's equal to "system".
1146
+
typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true
1147
+
# Custom icon.
1148
+
# typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1149
+
1150
+
###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############
1151
+
# Perl color.
1152
+
typeset -g POWERLEVEL9K_PLENV_FOREGROUND=67
1153
+
# Hide perl version if it doesn't come from one of these sources.
1154
+
typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)
1155
+
# If set to false, hide perl version if it's the same as global:
1156
+
# $(plenv version-name) == $(plenv global).
1157
+
typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false
1158
+
# If set to false, hide perl version if it's equal to "system".
1159
+
typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true
1160
+
# Custom icon.
1161
+
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1162
+
1163
+
###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
1164
+
# Perlbrew color.
1165
+
typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
1166
+
# Show perlbrew version only when in a perl project subdirectory.
1167
+
typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
1168
+
# Don't show "perl-" at the front.
1169
+
typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
1170
+
# Custom icon.
1171
+
# typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='โญ'
1172
+
1173
+
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
1174
+
# PHP color.
1175
+
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
1176
+
# Hide php version if it doesn't come from one of these sources.
1177
+
typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)
1178
+
# If set to false, hide php version if it's the same as global:
1179
+
# $(phpenv version-name) == $(phpenv global).
1180
+
typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false
1181
+
# If set to false, hide php version if it's equal to "system".
1182
+
typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true
1183
+
# Custom icon.
1184
+
# typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1185
+
1186
+
#######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]#######
1187
+
# Scala color.
1188
+
typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=160
1189
+
# Hide scala version if it doesn't come from one of these sources.
1190
+
typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global)
1191
+
# If set to false, hide scala version if it's the same as global:
1192
+
# $(scalaenv version-name) == $(scalaenv global).
1193
+
typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false
1194
+
# If set to false, hide scala version if it's equal to "system".
1195
+
typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true
1196
+
# Custom icon.
1197
+
# typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='โญ'
1198
+
1199
+
##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]###########
1200
+
# Haskell color.
1201
+
typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=172
1202
+
# Hide haskell version if it doesn't come from one of these sources.
1203
+
#
1204
+
# shell: version is set by STACK_YAML
1205
+
# local: version is set by stack.yaml up the directory tree
1206
+
# global: version is set by the implicit global project (~/.stack/global-project/stack.yaml)
1207
+
typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local)
1208
+
# If set to false, hide haskell version if it's the same as in the implicit global project.
1209
+
typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true
1210
+
# Custom icon.
1211
+
# typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='โญ'
1212
+
1213
+
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
1214
+
# Don't show terraform workspace if it's literally "default".
1215
+
typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false
1216
+
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
1217
+
# in each pair defines a pattern against which the current terraform workspace gets matched.
1218
+
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1219
+
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
1220
+
# you'll see this value in your prompt. The second element of each pair in
1221
+
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
1222
+
# first match wins.
1223
+
#
1224
+
# For example, given these settings:
1225
+
#
1226
+
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
1227
+
# '*prod*' PROD
1228
+
# '*test*' TEST
1229
+
# '*' OTHER)
1230
+
#
1231
+
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
1232
+
# doesn't match the pattern '*prod*' but does match '*test*'.
1233
+
#
1234
+
# You can define different colors, icons and content expansions for different classes:
1235
+
#
1236
+
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28
1237
+
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1238
+
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1239
+
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
1240
+
# '*prod*' PROD # These values are examples that are unlikely
1241
+
# '*test*' TEST # to match your needs. Customize them as needed.
1242
+
'*' OTHER)
1243
+
typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=38
1244
+
# typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='โญ'
1245
+
1246
+
#############[ terraform_version: terraform version (https://www.terraform.io) ]##############
1247
+
# Terraform version color.
1248
+
typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=38
1249
+
# Custom icon.
1250
+
# typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='โญ'
1251
+
1252
+
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
1253
+
# Show kubecontext only when the command you are typing invokes one of these tools.
1254
+
# Tip: Remove the next line to always show kubecontext.
1255
+
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent'
1256
+
1257
+
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
1258
+
# different contexts.
1259
+
#
1260
+
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
1261
+
# in each pair defines a pattern against which the current kubernetes context gets matched.
1262
+
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1263
+
# that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
1264
+
# you'll see this value in your prompt. The second element of each pair in
1265
+
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
1266
+
# first match wins.
1267
+
#
1268
+
# For example, given these settings:
1269
+
#
1270
+
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
1271
+
# '*prod*' PROD
1272
+
# '*test*' TEST
1273
+
# '*' DEFAULT)
1274
+
#
1275
+
# If your current kubernetes context is "deathray-testing/default", its class is TEST
1276
+
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
1277
+
#
1278
+
# You can define different colors, icons and content expansions for different classes:
1279
+
#
1280
+
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
1281
+
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1282
+
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1283
+
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
1284
+
# '*prod*' PROD # These values are examples that are unlikely
1285
+
# '*test*' TEST # to match your needs. Customize them as needed.
1286
+
'*' DEFAULT)
1287
+
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134
1288
+
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โ'
1289
+
1290
+
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
1291
+
# segment. Parameter expansions are very flexible and fast, too. See reference:
1292
+
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
1293
+
#
1294
+
# Within the expansion the following parameters are always available:
1295
+
#
1296
+
# - P9K_CONTENT The content that would've been displayed if there was no content
1297
+
# expansion defined.
1298
+
# - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
1299
+
# output of `kubectl config get-contexts`.
1300
+
# - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
1301
+
# output of `kubectl config get-contexts`.
1302
+
# - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
1303
+
# in the output of `kubectl config get-contexts`. If there is no
1304
+
# namespace, the parameter is set to "default".
1305
+
# - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the
1306
+
# output of `kubectl config get-contexts`.
1307
+
#
1308
+
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
1309
+
# the following extra parameters are available:
1310
+
#
1311
+
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
1312
+
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
1313
+
# - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
1314
+
# - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
1315
+
#
1316
+
# P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
1317
+
# if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
1318
+
#
1319
+
# - P9K_KUBECONTEXT_CLOUD_NAME=gke
1320
+
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
1321
+
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
1322
+
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
1323
+
#
1324
+
# If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
1325
+
#
1326
+
# - P9K_KUBECONTEXT_CLOUD_NAME=eks
1327
+
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
1328
+
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
1329
+
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
1330
+
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
1331
+
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
1332
+
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
1333
+
# Append the current context's namespace if it's not "default".
1334
+
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
1335
+
1336
+
# Custom prefix.
1337
+
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%244Fat '
1338
+
1339
+
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
1340
+
# Show aws only when the command you are typing invokes one of these tools.
1341
+
# Tip: Remove the next line to always show aws.
1342
+
typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
1343
+
1344
+
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
1345
+
# in each pair defines a pattern against which the current AWS profile gets matched.
1346
+
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
1347
+
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
1348
+
# you'll see this value in your prompt. The second element of each pair in
1349
+
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
1350
+
# first match wins.
1351
+
#
1352
+
# For example, given these settings:
1353
+
#
1354
+
# typeset -g POWERLEVEL9K_AWS_CLASSES=(
1355
+
# '*prod*' PROD
1356
+
# '*test*' TEST
1357
+
# '*' DEFAULT)
1358
+
#
1359
+
# If your current AWS profile is "company_test", its class is TEST
1360
+
# because "company_test" doesn't match the pattern '*prod*' but does match '*test*'.
1361
+
#
1362
+
# You can define different colors, icons and content expansions for different classes:
1363
+
#
1364
+
# typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28
1365
+
# typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1366
+
# typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
1367
+
typeset -g POWERLEVEL9K_AWS_CLASSES=(
1368
+
# '*prod*' PROD # These values are examples that are unlikely
1369
+
# '*test*' TEST # to match your needs. Customize them as needed.
1370
+
'*' DEFAULT)
1371
+
typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208
1372
+
# typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โญ'
1373
+
1374
+
# AWS segment format. The following parameters are available within the expansion.
1375
+
#
1376
+
# - P9K_AWS_PROFILE The name of the current AWS profile.
1377
+
# - P9K_AWS_REGION The region associated with the current AWS profile.
1378
+
typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}'
1379
+
1380
+
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
1381
+
# AWS Elastic Beanstalk environment color.
1382
+
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
1383
+
# Custom icon.
1384
+
typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='eb'
1385
+
1386
+
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
1387
+
# Show azure only when the command you are typing invokes one of these tools.
1388
+
# Tip: Remove the next line to always show azure.
1389
+
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
1390
+
# Azure account name color.
1391
+
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
1392
+
# Custom icon.
1393
+
typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='az'
1394
+
1395
+
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
1396
+
# Show gcloud only when the command you are typing invokes one of these tools.
1397
+
# Tip: Remove the next line to always show gcloud.
1398
+
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'
1399
+
# Google cloud color.
1400
+
typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32
1401
+
1402
+
# Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or
1403
+
# POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative
1404
+
# enough. You can use the following parameters in the expansions. Each of them corresponds to the
1405
+
# output of `gcloud` tool.
1406
+
#
1407
+
# Parameter | Source
1408
+
# -------------------------|--------------------------------------------------------------------
1409
+
# P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)'
1410
+
# P9K_GCLOUD_ACCOUNT | gcloud config get-value account
1411
+
# P9K_GCLOUD_PROJECT_ID | gcloud config get-value project
1412
+
# P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)'
1413
+
#
1414
+
# Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'.
1415
+
#
1416
+
# Obtaining project name requires sending a request to Google servers. This can take a long time
1417
+
# and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud
1418
+
# prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets
1419
+
# set and gcloud prompt segment transitions to state COMPLETE.
1420
+
#
1421
+
# You can customize the format, icon and colors of gcloud segment separately for states PARTIAL
1422
+
# and COMPLETE. You can also hide gcloud in state PARTIAL by setting
1423
+
# POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and
1424
+
# POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty.
1425
+
typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}'
1426
+
typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}'
1427
+
1428
+
# Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name
1429
+
# this often. Negative value disables periodic polling. In this mode project name is retrieved
1430
+
# only when the current configuration, account or project id changes.
1431
+
typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60
1432
+
1433
+
# Custom icon.
1434
+
# typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='โญ'
1435
+
1436
+
#[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#
1437
+
# Show google_app_cred only when the command you are typing invokes one of these tools.
1438
+
# Tip: Remove the next line to always show google_app_cred.
1439
+
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'
1440
+
1441
+
# Google application credentials classes for the purpose of using different colors, icons and
1442
+
# expansions with different credentials.
1443
+
#
1444
+
# POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first
1445
+
# element in each pair defines a pattern against which the current kubernetes context gets
1446
+
# matched. More specifically, it's P9K_CONTENT prior to the application of context expansion
1447
+
# (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION
1448
+
# parameters, you'll see this value in your prompt. The second element of each pair in
1449
+
# POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.
1450
+
# The first match wins.
1451
+
#
1452
+
# For example, given these settings:
1453
+
#
1454
+
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
1455
+
# '*:*prod*:*' PROD
1456
+
# '*:*test*:*' TEST
1457
+
# '*' DEFAULT)
1458
+
#
1459
+
# If your current Google application credentials is "service_account deathray-testing x@y.com",
1460
+
# its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.
1461
+
#
1462
+
# You can define different colors, icons and content expansions for different classes:
1463
+
#
1464
+
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28
1465
+
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='โญ'
1466
+
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'
1467
+
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
1468
+
# '*:*prod*:*' PROD # These values are examples that are unlikely
1469
+
# '*:*test*:*' TEST # to match your needs. Customize them as needed.
1470
+
'*' DEFAULT)
1471
+
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=32
1472
+
# typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='โญ'
1473
+
1474
+
# Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by
1475
+
# google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:
1476
+
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
1477
+
#
1478
+
# You can use the following parameters in the expansion. Each of them corresponds to one of the
1479
+
# fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.
1480
+
#
1481
+
# Parameter | JSON key file field
1482
+
# ---------------------------------+---------------
1483
+
# P9K_GOOGLE_APP_CRED_TYPE | type
1484
+
# P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id
1485
+
# P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email
1486
+
#
1487
+
# Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.
1488
+
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}'
1489
+
1490
+
##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]###############
1491
+
# Toolbox color.
1492
+
typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=178
1493
+
# Don't display the name of the toolbox if it matches fedora-toolbox-*.
1494
+
typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}'
1495
+
# Custom icon.
1496
+
# typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='โญ'
1497
+
# Custom prefix.
1498
+
# typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%244Fin '
1499
+
1500
+
###############################[ public_ip: public IP address ]###############################
1501
+
# Public IP color.
1502
+
typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94
1503
+
# Custom icon.
1504
+
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1505
+
1506
+
########################[ vpn_ip: virtual private network indicator ]#########################
1507
+
# VPN IP color.
1508
+
typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
1509
+
# When on VPN, show just an icon without the IP address.
1510
+
# Tip: To display the private IP address when on VPN, remove the next line.
1511
+
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
1512
+
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
1513
+
# to see the name of the interface.
1514
+
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
1515
+
# If set to true, show one segment per matching network interface. If set to false, show only
1516
+
# one segment corresponding to the first matching network interface.
1517
+
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
1518
+
typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false
1519
+
# Custom icon.
1520
+
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1521
+
1522
+
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
1523
+
# IP color.
1524
+
typeset -g POWERLEVEL9K_IP_FOREGROUND=38
1525
+
# The following parameters are accessible within the expansion:
1526
+
#
1527
+
# Parameter | Meaning
1528
+
# ----------------------+-------------------------------------------
1529
+
# P9K_IP_IP | IP address
1530
+
# P9K_IP_INTERFACE | network interface
1531
+
# P9K_IP_RX_BYTES | total number of bytes received
1532
+
# P9K_IP_TX_BYTES | total number of bytes sent
1533
+
# P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt
1534
+
# P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt
1535
+
# P9K_IP_RX_RATE | receive rate (since last prompt)
1536
+
# P9K_IP_TX_RATE | send rate (since last prompt)
1537
+
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+%70Fโฃ$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+%215Fโก$P9K_IP_TX_RATE }%38F$P9K_IP_IP'
1538
+
# Show information for the first network interface whose name matches this regular expression.
1539
+
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
1540
+
typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*'
1541
+
# Custom icon.
1542
+
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='โญ'
1543
+
1544
+
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
1545
+
# Proxy color.
1546
+
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
1547
+
# Custom icon.
1548
+
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='โญ'
1549
+
1550
+
################################[ battery: internal battery ]#################################
1551
+
# Show battery in red when it's below this level and not connected to power supply.
1552
+
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
1553
+
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
1554
+
# Show battery in green when it's charging or fully charged.
1555
+
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
1556
+
# Show battery in yellow when it's discharging.
1557
+
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
1558
+
# Battery pictograms going from low to high level of charge.
1559
+
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}โ' '%K{232}โ' '%K{232}โ' '%K{232}โ' '%K{232}โ
' '%K{232}โ' '%K{232}โ' '%K{232}โ')
1560
+
# Don't show the remaining time to charge/discharge.
1561
+
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
1562
+
1563
+
#####################################[ wifi: wifi speed ]#####################################
1564
+
# WiFi color.
1565
+
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68
1566
+
# Custom icon.
1567
+
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='โญ'
1568
+
1569
+
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
1570
+
#
1571
+
# # Wifi colors and icons for different signal strength levels (low to high).
1572
+
# typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values
1573
+
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
1574
+
#
1575
+
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
1576
+
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
1577
+
#
1578
+
# The following parameters are accessible within the expansions:
1579
+
#
1580
+
# Parameter | Meaning
1581
+
# ----------------------+---------------
1582
+
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
1583
+
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown
1584
+
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
1585
+
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
1586
+
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
1587
+
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
1588
+
1589
+
####################################[ time: current time ]####################################
1590
+
# Current time color.
1591
+
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
1592
+
# Format for the current time: 09:51:02. See `man 3 strftime`.
1593
+
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
1594
+
# If set to true, time will update when you hit enter. This way prompts for the past
1595
+
# commands will contain the start times of their commands as opposed to the default
1596
+
# behavior where they contain the end times of their preceding commands.
1597
+
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
1598
+
# Custom icon.
1599
+
typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
1600
+
# Custom prefix.
1601
+
# typeset -g POWERLEVEL9K_TIME_PREFIX='%244Fat '
1602
+
1603
+
# Example of a user-defined prompt segment. Function prompt_example will be called on every
1604
+
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
1605
+
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
1606
+
#
1607
+
# Type `p10k help segment` for documentation and a more sophisticated example.
1608
+
function prompt_example() {
1609
+
p10k segment -f 208 -i 'โญ' -t 'hello, %n'
1610
+
}
1611
+
1612
+
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
1613
+
# is to generate the prompt segment for display in instant prompt. See
1614
+
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
1615
+
#
1616
+
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
1617
+
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
1618
+
# will replay these calls without actually calling instant_prompt_*. It is imperative that
1619
+
# instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this
1620
+
# rule is not observed, the content of instant prompt will be incorrect.
1621
+
#
1622
+
# Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If
1623
+
# instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.
1624
+
function instant_prompt_example() {
1625
+
# Since prompt_example always makes the same `p10k segment` calls, we can call it from
1626
+
# instant_prompt_example. This will give us the same `example` prompt segment in the instant
1627
+
# and regular prompts.
1628
+
prompt_example
1629
+
}
1630
+
1631
+
# User-defined prompt segments can be customized the same way as built-in segments.
1632
+
# typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208
1633
+
# typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='โญ'
1634
+
1635
+
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
1636
+
# when accepting a command line. Supported values:
1637
+
#
1638
+
# - off: Don't change prompt when accepting a command line.
1639
+
# - always: Trim down prompt when accepting a command line.
1640
+
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
1641
+
# typed after changing current working directory.
1642
+
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
1643
+
1644
+
# Instant prompt mode.
1645
+
#
1646
+
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
1647
+
# it incompatible with your zsh configuration files.
1648
+
# - quiet: Enable instant prompt and don't print warnings when detecting console output
1649
+
# during zsh initialization. Choose this if you've read and understood
1650
+
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
1651
+
# - verbose: Enable instant prompt and print a warning when detecting console output during
1652
+
# zsh initialization. Choose this if you've never tried instant prompt, haven't
1653
+
# seen the warning, or if you are unsure what this all means.
1654
+
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
1655
+
1656
+
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
1657
+
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
1658
+
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
1659
+
# really need it.
1660
+
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
1661
+
1662
+
# If p10k is already loaded, reload configuration.
1663
+
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
1664
+
(( ! $+functions[p10k] )) || p10k reload
1665
+
}
1666
+
1667
+
# Tell `p10k configure` which file it should overwrite.
1668
+
typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
1669
+
1670
+
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
1671
+
'builtin' 'unset' 'p10k_config_opts'
+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
-1
home/modules/services/insync/default.nix
+1
-1
home/modules/services/insync/default.nix
-85
home/modules/services/restic/default.nix
-85
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
-
options.services.restic = {
19
-
enable = lib.mkEnableOption "Restic Backup Tool";
20
-
21
-
package = lib.mkOption {
22
-
type = lib.types.package;
23
-
default = pkgs.restic;
24
-
description = "Restic derivation to use";
25
-
};
26
-
27
-
exclude = lib.mkOption {
28
-
type = lib.types.listOf lib.types.str;
29
-
default = [];
30
-
description = "Corresponds to `--exclude`. Use `%h` instead of `~`";
31
-
};
32
-
33
-
oneFileSystem = lib.mkOption {
34
-
type = lib.types.bool;
35
-
default = false;
36
-
description = "If true, exclude other file systems, don't cross filesystem boundaries and subvolumes";
37
-
};
38
-
39
-
repo = lib.mkOption {
40
-
type = lib.types.str;
41
-
description = "Location of the repository";
42
-
};
43
-
44
-
compression = lib.mkOption {
45
-
type = lib.types.enum ["off" "auto" "max"];
46
-
description = "The compression mode to use";
47
-
default = "auto";
48
-
};
49
-
50
-
# TODO: Add options for inlcude, password file, etc
51
-
};
52
-
53
-
config = lib.mkIf cfg.enable {
54
-
home.packages = [cfg.package];
55
-
56
-
systemd.user.services.restic-backup = {
57
-
Unit = {
58
-
Description = "Restic Backup Tool";
59
-
StartLimitIntervalSec = "25m";
60
-
StartLimitBurst = "4";
61
-
};
62
-
63
-
Service = {
64
-
Environment = [
65
-
"PATH=${lib.makeBinPath [pkgs.openssh]}"
66
-
"RESTIC_PASSWORD_FILE=%h/.config/restic/password"
67
-
"RESTIC_REPOSITORY=${cfg.repo}"
68
-
];
69
-
Type = "oneshot";
70
-
ExecStart = command;
71
-
Restart = "on-failure";
72
-
RestartSec = "2m";
73
-
};
74
-
};
75
-
76
-
systemd.user.timers.restic-backup = {
77
-
Unit.Description = "Restic periodic backup";
78
-
Timer = {
79
-
Unit = "restic-backup.service";
80
-
OnCalendar = "hourly";
81
-
};
82
-
Install.WantedBy = ["timers.target"];
83
-
};
84
-
};
85
-
}
+46
home/modules/services/rustic/default.nix
+46
home/modules/services/rustic/default.nix
···
18
18
flags = lib.concatStringsSep " " flagList;
19
19
20
20
command = "${bin} backup ${flags} %h";
21
+
22
+
profileModule = {
23
+
name,
24
+
config,
25
+
...
26
+
}: {
27
+
enable = lib.mkEnableOption name // {default = true;};
28
+
29
+
repo = lib.mkOption {
30
+
type = lib.types.str;
31
+
description = "Location of the repository";
32
+
};
33
+
34
+
globs = lib.mkOption {
35
+
type = lib.types.listOf lib.types.str;
36
+
default = [];
37
+
description = "Patterns to apply to backup. Use a hardcoded prefix for the home directory";
38
+
};
39
+
40
+
oneFileSystem = lib.mkOption {
41
+
type = lib.types.bool;
42
+
default = false;
43
+
description = "If true, exclude other file systems, don't cross filesystem boundaries and subvolumes";
44
+
};
45
+
46
+
passwordFile = lib.mkOption {
47
+
type = lib.types.path;
48
+
default = "${config.xdg.configHome}/rustic/password";
49
+
description = "Location of the password file";
50
+
};
51
+
52
+
source = lib.mkOption {
53
+
type = lib.types.path;
54
+
description = "Location of the base directory for the backup.Of ";
55
+
};
56
+
57
+
settings = lib.mkOption {
58
+
type = lib.types.attrsOf lib.types.any;
59
+
description = "A nix representation of the profile settings which gets converted to a TOML file";
60
+
};
61
+
};
21
62
in {
22
63
options.services.rustic = {
23
64
enable = lib.mkEnableOption "rustic";
···
49
90
type = lib.types.path;
50
91
default = "${config.xdg.configHome}/rustic/password";
51
92
description = "Location of the password file";
93
+
};
94
+
95
+
profile = lib.mkOption {
96
+
type = lib.types.attrsOf profileModule;
97
+
description = "Specifies the backup profile to use and its settings";
52
98
};
53
99
};
54
100
-1
nixos/configurations/bootloader/enceladeus.nix
-1
nixos/configurations/bootloader/enceladeus.nix
+3
nixos/configurations/bootloader/janus.nix
+3
nixos/configurations/bootloader/janus.nix
-2
nixos/configurations/default.nix
-2
nixos/configurations/default.nix
-159
nixos/configurations/enceladeus.nix
-159
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
-
nix.allowedUnfree = ["b43-firmware" "zerotierone"];
11
-
nixpkgs.config.contentAddressedByDefault = false;
12
-
13
-
# nixpkgs.hostPlatform.gcc.arch = "core2";
14
-
# nixpkgs.hostPlatform.system = "x86_64-linux";
15
-
# nixpkgs.buildPlatform.gcc.arch = "haswell";
16
-
# nixpkgs.buildPlatform.system = "x86_64-linux";
17
-
18
-
nixpkgs.overlays = [
19
-
# (final: prev: {
20
-
# abseil-cpp = nixpkgs.legacyPackages.${final.system}.abseil-cpp;
21
-
# #bash = prev.bash.override { stdenv = nixpkgs.legacyPackages.${final.system}.stdenv; };
22
-
# })
23
-
];
24
-
25
-
services.lvm.boot.thin.enable = true;
26
-
boot.kernelPackages = pkgs.linuxPackages_5_15; # TODO: Figure why I have this and nothing newer?
27
-
services.lvm.dmeventd.enable = true;
28
-
boot.blacklistedKernelModules = ["rtl8xxxu"];
29
-
boot.extraModulePackages = with config.boot.kernelPackages; [
30
-
rtl8192eu
31
-
];
32
-
33
-
boot.kernel.sysctl = {
34
-
"vm.swappiness" = 75;
35
-
};
36
-
37
-
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
38
-
# Per-interface useDHCP will be mandatory in the future, so this generated config
39
-
# replicates the default behaviour.
40
-
networking.networkmanager.enable = true;
41
-
networking.networkmanager.unmanaged = [
42
-
"mac:0c:60:76:3f:c1:31"
43
-
];
44
-
networking.enableB43Firmware = true;
45
-
46
-
networking.useDHCP = false;
47
-
networking.interfaces.enp0s25.useDHCP = false;
48
-
networking.interfaces.wlan0.useDHCP = false;
49
-
networking.hostId = "62a007d6"; # required by ZFS
50
-
51
-
# Configure network proxy if necessary
52
-
# networking.proxy.default = "http://user:password@proxy:port/";
53
-
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
54
-
55
-
# Select internationalisation properties.
56
-
i18n.defaultLocale = "en_US.UTF-8";
57
-
console = {
58
-
font = "Lat2-Terminus16";
59
-
keyMap = "de";
60
-
};
61
-
62
-
# Set your time zone.
63
-
time.timeZone = "Europe/Berlin";
64
-
65
-
# List packages installed in system profile. To search, run:
66
-
# $ nix search wget
67
-
environment.systemPackages = with pkgs; [
68
-
unison # Sadly required on the host for unison copy to work :(
69
-
];
70
-
71
-
# Some programs need SUID wrappers, can be configured further or are
72
-
# started in user sessions.
73
-
programs.gnupg.agent = {
74
-
enable = true;
75
-
enableSSHSupport = true;
76
-
};
77
-
programs.zsh.enable = true;
78
-
79
-
# List services that you want to enable:
80
-
81
-
# Enable the OpenSSH daemon.
82
-
services.openssh.enable = true;
83
-
84
-
# Open ports in the firewall.
85
-
networking.firewall.allowedTCPPorts = [9002];
86
-
# networking.firewall.allowedUDPPorts = [ ... ];
87
-
# Or disable the firewall altogether.
88
-
# networking.firewall.enable = false;
89
-
networking.firewall.trustedInterfaces = [
90
-
"ztrta4jrxj"
91
-
];
92
-
93
-
# Enable CUPS to print documents.
94
-
# services.printing.enable = true;
95
-
96
-
# Enable sound.
97
-
sound.enable = true;
98
-
hardware.pulseaudio.enable = true;
99
-
100
-
# Enable the X11 windowing system.
101
-
services.xserver.enable = true;
102
-
services.xserver.layout = "de";
103
-
# services.xserver.xkbOptions = "eurosign:e";
104
-
105
-
# Enable touchpad support.
106
-
services.xserver.libinput.enable = true;
107
-
108
-
# Enable the KDE Desktop Environment.
109
-
services.xserver.displayManager.lightdm.enable = true;
110
-
services.xserver.desktopManager.plasma5.enable = false;
111
-
services.xserver.windowManager.awesome.enable = true;
112
-
113
-
virtualisation.docker.enable = false;
114
-
115
-
# Define a user account. Don't forget to set a password with โpasswdโ.
116
-
users.users = {
117
-
nmelzer = {
118
-
isNormalUser = true;
119
-
shell = pkgs.zsh;
120
-
extraGroups = ["wheel" "networkmanager"];
121
-
};
122
-
123
-
aroemer = {
124
-
isNormalUser = true;
125
-
};
126
-
127
-
proemer = {
128
-
isNormalUser = true;
129
-
};
130
-
};
131
-
132
-
services.prometheus = {
133
-
exporters = {
134
-
node = {
135
-
enable = true;
136
-
enabledCollectors = ["systemd"];
137
-
port = 9002;
138
-
};
139
-
};
140
-
};
141
-
142
-
# This value determines the NixOS release with which your system is to be
143
-
# compatible, in order to avoid breaking some software such as database
144
-
# servers. You should change this only after NixOS release notes say you
145
-
# should.
146
-
system.stateVersion = "19.09"; # Did you read the comment?
147
-
148
-
security.sudo.extraRules = [
149
-
{
150
-
commands = [
151
-
{
152
-
command = "/run/current-system/sw/bin/nixos-rebuild";
153
-
options = ["NOPASSWD"];
154
-
}
155
-
];
156
-
groups = ["wheel"];
157
-
}
158
-
];
159
-
}
+1
-8
nixos/configurations/hardware/enceladeus.nix
+1
-8
nixos/configurations/hardware/enceladeus.nix
···
1
1
# Do not modify this file! It was generated by โnixos-generate-configโ
2
2
# and may be overwritten by future invocations. Please make changes
3
3
# to /etc/nixos/configuration.nix instead.
4
-
{
5
-
config,
6
-
lib,
7
-
pkgs,
8
-
...
9
-
}: {
10
-
imports = [];
11
-
4
+
{lib, ...}: {
12
5
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci"];
13
6
boot.initrd.kernelModules = ["dm-snapshot"];
14
7
boot.kernelModules = ["kvm-intel" "wl"];
-2
nixos/configurations/hardware/hyperion.nix
-2
nixos/configurations/hardware/hyperion.nix
+55
nixos/configurations/hardware/janus.nix
+55
nixos/configurations/hardware/janus.nix
···
1
+
# Do not modify this file! It was generated by โnixos-generate-configโ
2
+
# and may be overwritten by future invocations. Please make changes
3
+
# to /etc/nixos/configuration.nix instead.
4
+
{
5
+
config,
6
+
lib,
7
+
pkgs,
8
+
modulesPath,
9
+
...
10
+
}: {
11
+
imports = [
12
+
(modulesPath + "/installer/scan/not-detected.nix")
13
+
];
14
+
15
+
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "sdhci_pci"];
16
+
boot.initrd.kernelModules = ["dm-snapshot"];
17
+
boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-partlabel/nixoscrypt";
18
+
boot.kernelModules = ["kvm-intel"];
19
+
boot.extraModulePackages = [];
20
+
21
+
fileSystems."/" = {
22
+
device = "/dev/mainpool/vdo-root";
23
+
fsType = "xfs";
24
+
};
25
+
26
+
fileSystems."/boot" = {
27
+
device = "/dev/nvme0n1p1";
28
+
fsType = "vfat";
29
+
};
30
+
31
+
fileSystems."/nix" = {
32
+
device = "/dev/mainpool/vdo-nix";
33
+
fsType = "xfs";
34
+
};
35
+
36
+
fileSystems."/home" = {
37
+
device = "/dev/mainpool/vdo-home";
38
+
fsType = "xfs";
39
+
};
40
+
41
+
swapDevices = [];
42
+
43
+
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
44
+
# (the default) this is the recommended approach. When using systemd-networkd it's
45
+
# still possible to use this option, but it's recommended to use it in conjunction
46
+
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
47
+
networking.useDHCP = lib.mkDefault true;
48
+
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
49
+
# networking.interfaces.enp56s0u1u1.useDHCP = lib.mkDefault true;
50
+
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
51
+
52
+
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
53
+
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
54
+
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
55
+
}
+8
-3
nixos/configurations/hardware/mimas.nix
+8
-3
nixos/configurations/hardware/mimas.nix
···
2
2
# and may be overwritten by future invocations. Please make changes
3
3
# to /etc/nixos/configuration.nix instead.
4
4
{
5
-
config,
6
5
lib,
7
6
pkgs,
8
7
...
···
14
13
boot.kernelModules = ["kvm-intel"];
15
14
boot.kernelParams = ["intel_pstate=active"];
16
15
boot.extraModulePackages = [];
17
-
boot.supportedFilesystems = ["ntfs" "exfat" "avfs"];
16
+
boot.supportedFilesystems = ["ntfs" "exfat" "avfs" "xfs"];
18
17
19
18
hardware.cpu.intel.updateMicrocode = true;
20
19
hardware.enableRedistributableFirmware = true;
···
76
75
options = ["nofail"];
77
76
};
78
77
78
+
fileSystems."/var/lib/actual" = {
79
+
device = "/dev/pool/actual";
80
+
fsType = "xfs";
81
+
options = ["nofail"];
82
+
};
83
+
79
84
fileSystems."/boot" = {
80
85
device = "/dev/disk/by-uuid/7000-3A85";
81
86
fsType = "vfat";
···
91
96
nix.settings.max-jobs = lib.mkDefault 4;
92
97
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
93
98
94
-
hardware.opengl.extraPackages = with pkgs; [
99
+
hardware.graphics.extraPackages = with pkgs; [
95
100
vaapiIntel
96
101
vaapiVdpau
97
102
libvdpau-va-gl
-51
nixos/configurations/hyperion.nix
-51
nixos/configurations/hyperion.nix
···
1
-
_: {pkgs, ...}: {
2
-
nix.allowedUnfree = ["zerotierone"];
3
-
4
-
networking.hostName = "hyperion";
5
-
networking.networkmanager.enable = true;
6
-
7
-
time.timeZone = "Europe/Berlin";
8
-
9
-
i18n.defaultLocale = "en_US.UTF-8";
10
-
11
-
services.xserver.enable = true;
12
-
13
-
# Enable the LXQT Desktop Environment.
14
-
services.xserver.displayManager.lightdm.enable = true;
15
-
services.xserver.desktopManager.lxqt.enable = true;
16
-
services.xserver.desktopManager.plasma5.enable = true;
17
-
services.xserver.desktopManager.enlightenment.enable = true;
18
-
19
-
services.qemuGuest.enable = true;
20
-
services.spice-vdagentd.enable = true;
21
-
22
-
services.openssh.enable = true;
23
-
24
-
services.acpid.enable = true;
25
-
26
-
# Configure keymap in X11
27
-
services.xserver = {
28
-
layout = "de";
29
-
xkbVariant = "";
30
-
};
31
-
32
-
# Configure console keymap
33
-
console.keyMap = "de";
34
-
35
-
services.printing.enable = true;
36
-
37
-
programs.zsh.enable = true;
38
-
39
-
users.users.nmelzer = {
40
-
isNormalUser = true;
41
-
description = "Norbert Melzer";
42
-
extraGroups = ["networkmanager" "wheel"];
43
-
shell = pkgs.zsh;
44
-
packages = [
45
-
pkgs.firefox
46
-
# thunderbird
47
-
];
48
-
};
49
-
50
-
system.stateVersion = "22.11";
51
-
}
+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
+
}
+2
-2
nixos/configurations/mimas/paperless.nix
+2
-2
nixos/configurations/mimas/paperless.nix
···
1
-
{nixpkgs-2211, ...}: {config, ...}: {
1
+
_: {config, ...}: {
2
2
services.paperless = {
3
3
enable = true;
4
4
address = "0.0.0.0";
5
5
port = 58080;
6
-
extraConfig.PAPERLESS_OCR_LANGUAGE = "deu+eng";
6
+
settings.PAPERLESS_OCR_LANGUAGE = "deu+eng";
7
7
};
8
8
9
9
systemd.services.paperless-consumer.after = ["var-lib-paperless.mount"];
+41
-56
nixos/configurations/mimas/restic.nix
+41
-56
nixos/configurations/mimas/restic.nix
···
6
6
}: let
7
7
resticPort = 9999;
8
8
9
-
inherit (pkgs) writeShellScript proot mount umount restic;
9
+
inherit (pkgs) proot mount umount restic;
10
10
11
11
pools = {
12
12
gitea = "/var/lib/gitea";
···
17
17
18
18
extraPathes = [
19
19
"/var/lib/nixos"
20
+
"/var/lib/redis-paperless"
20
21
];
21
22
22
-
fileFromList = pkgs.writeText "files-from-verbatim" ''
23
-
${lib.concatStringsSep "\n" pathes}
24
-
'';
25
-
26
23
basePath = "/tmp/backup";
27
-
pathes = extraPathes ++ builtins.attrValues pools;
28
-
mounts = lib.flatten (lib.mapAttrsToList (lv: path: ["-b" "${basePath}/${lv}:${path}"]) pools);
24
+
mounts = lib.flatten (
25
+
(lib.mapAttrsToList (lv: path: ["-b" "${basePath}/${lv}:${path}"]) pools)
26
+
++ (builtins.map (path: ["-b" "${path}:${path}"]) extraPathes)
27
+
);
29
28
30
29
snaps = lib.mapAttrs' (lv: _: lib.nameValuePair "${lv}_snap" "pool/${lv}") pools;
31
30
lvcreates = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: origin: "lvcreate -s --name ${name} ${origin}") snaps);
32
-
lvchanges = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: _: "lvchange -ay -Ky pool/${name}") snaps);
31
+
lvactivates = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: _: "lvchange -ay -Ky pool/${name}") snaps);
33
32
mkdirs = lib.concatStringsSep "\n" (lib.mapAttrsToList (lv: _: "mkdir -p ${basePath}/${lv}") pools);
34
33
mountCmds = lib.concatStringsSep "\n" (lib.mapAttrsToList (lv: _: "mount -o ro /dev/pool/${lv}_snap ${basePath}/${lv}") pools);
35
34
36
35
unmountCmds = lib.concatStringsSep "\n" (lib.mapAttrsToList (lv: _: "umount ${basePath}/${lv}") pools);
37
-
lvunchanges = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: _: "lvchange -an pool/${name}") snaps);
38
-
lvremoves = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: origin: "lvremove pool/${name}") snaps);
36
+
uncheckedUnmountCmds = lib.concatStringsSep "\n" (lib.mapAttrsToList (lv: _: "umount ${basePath}/${lv} || true") pools);
37
+
lvdeactivates = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: _: "lvs | grep -E '${name}\\s+.*a' && lvchange -an pool/${name}") snaps);
38
+
lvremoves = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: _: "lvs | grep -E '${name}' && lvremove pool/${name}") snaps);
39
39
40
40
rest_repo = "rest:https://restic.mimas.internal.nobbz.dev/mimas";
41
-
gdrv_repo = "/home/nmelzer/timmelzer@gmail.com/restic_repos/mimas";
42
-
btwo_repo = "b2:nobbz-restic-services";
43
41
pass = config.sops.secrets.restic.path;
44
42
45
-
script = writeShellScript "restic-services-backup" ''
46
-
set -ex
43
+
preStart = ''
44
+
set -x
45
+
46
+
${uncheckedUnmountCmds}
47
47
48
-
# Create the snapshots
48
+
${lvdeactivates}
49
+
${lvremoves}
50
+
49
51
${lvcreates}
50
-
${lvchanges}
52
+
${lvactivates}
53
+
51
54
${mkdirs}
55
+
52
56
${mountCmds}
53
57
58
+
/run/wrappers/bin/sudo -u vaultwarden ${pkgs.sqlite}/bin/sqlite3 /var/lib/bitwarden_rs/db.sqlite3 .dump > /var/lib/bitwarden_rs/dump.sql
59
+
'';
60
+
61
+
script = ''
62
+
set -x
63
+
54
64
# TODO: Make the latter from snapshots as well!
55
-
proot ${lib.escapeShellArgs mounts} restic --tag services -vv backup --files-from-verbatim ${fileFromList}
65
+
proot ${lib.escapeShellArgs mounts} \
66
+
-b /var/lib/bitwarden_rs:/var/lib/bitwarden_rs \
67
+
-b /nix:/nix \
68
+
-b ''${CREDENTIALS_DIRECTORY}:''${CREDENTIALS_DIRECTORY} \
69
+
-b /etc:/etc \
70
+
-b /tmp:/tmp \
71
+
-r /var/empty \
72
+
restic --tag services -vv backup /var/lib
73
+
'';
74
+
75
+
postStart = ''
76
+
set -x
56
77
57
78
${unmountCmds}
58
-
${lvunchanges}
79
+
80
+
${lvdeactivates}
59
81
${lvremoves}
60
82
61
83
rm -rfv ${basePath}
···
93
115
};
94
116
95
117
systemd.services.restic-system-snapshot-backup = {
118
+
inherit preStart script postStart;
96
119
path = [proot restic mount umount config.services.lvm.package];
97
-
script = "${script}";
98
120
serviceConfig.LoadCredential = ["pass:${pass}"];
99
121
environment = {
100
122
RESTIC_REPOSITORY = rest_repo;
···
103
125
};
104
126
serviceConfig = {
105
127
Type = "oneshot";
106
-
};
107
-
};
108
-
109
-
systemd.timers.restic-system-snapshot-sync-and-prune = {
110
-
wantedBy = ["timers.target"];
111
-
timerConfig.OnCalendar = "daily";
112
-
};
113
-
114
-
systemd.services.restic-system-snapshot-sync-and-prune = {
115
-
path = [restic];
116
-
after = ["run-secrets.d.mount"];
117
-
serviceConfig.Type = "oneshot";
118
-
serviceConfig.LoadCredential = [
119
-
"b2:${config.sops.secrets.backblaze.path}"
120
-
"pass:${pass}"
121
-
];
122
-
script = ''
123
-
eval $(cat "$CREDENTIALS_DIRECTORY/b2")
124
-
125
-
restic copy --repo ${rest_repo} --repo2 ${gdrv_repo} -vvv
126
-
restic copy --repo ${rest_repo} --repo2 ${btwo_repo} -vvv
127
-
128
-
restic forget --repo ${rest_repo} --keep-hourly 12 --keep-daily 4 --keep-weekly 3 --keep-monthly 7 --keep-yearly 10
129
-
restic forget --repo ${gdrv_repo} --keep-daily 30 --keep-weekly 4 --keep-monthly 12 --keep-yearly 20
130
-
restic forget --repo ${btwo_repo} --keep-daily 30 --keep-weekly 4 --keep-monthly 12 --keep-yearly 20
131
-
132
-
restic prune --repo ${rest_repo} --max-unused 0
133
-
restic prune --repo ${gdrv_repo} --max-unused 0
134
-
restic prune --repo ${btwo_repo}
135
-
136
-
chown -Rv nmelzer:users /home/nmelzer/timmelzer@gmail.com/restic_repos
137
-
'';
138
-
environment = {
139
-
RESTIC_PASSWORD_FILE = "%d/pass";
140
-
RESTIC_PASSWORD_FILE2 = "%d/pass";
141
-
RESTIC_COMPRESSION = "max";
142
-
XDG_CACHE_HOME = "%C";
143
128
};
144
129
};
145
130
}
+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
+
}
+34
nixos/configurations/mimas/vaultwarden.nix
+34
nixos/configurations/mimas/vaultwarden.nix
···
1
+
_: {config, ...}: let
2
+
host = "passwords.mimas.internal.nobbz.dev";
3
+
wardenPort = 10000;
4
+
in {
5
+
sops.secrets.warden = {};
6
+
7
+
services.vaultwarden = {
8
+
enable = true;
9
+
environmentFile = config.sops.secrets.warden.path;
10
+
config = {
11
+
DOMAIN = "https://${host}";
12
+
DATABASE_MAX_CONNS = "5";
13
+
14
+
# LOG_LEVEL = "debug";
15
+
16
+
ROCKET_ADDRESS = "127.0.0.1";
17
+
ROCKET_PORT = "${toString wardenPort}";
18
+
ROCKET_WORKERS = "5";
19
+
};
20
+
};
21
+
22
+
services.traefik.dynamicConfigOptions.http.routers.warden = {
23
+
entryPoints = ["https" "http"];
24
+
rule = "Host(`${host}`)";
25
+
service = "vaultwarden";
26
+
tls.domains = [{main = "*.mimas.internal.nobbz.dev";}];
27
+
tls.certResolver = "mimasWildcard";
28
+
};
29
+
30
+
services.traefik.dynamicConfigOptions.http.services.vaultwarden.loadBalancer = {
31
+
passHostHeader = false;
32
+
servers = [{url = "http://127.0.0.1:${toString wardenPort}";}];
33
+
};
34
+
}
+54
-46
nixos/configurations/mimas.nix
+54
-46
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
12
imports = [
13
+
(import ./mimas/paperless.nix inputs)
20
14
(import ./mimas/restic.nix inputs)
21
-
(import ./mimas/paperless.nix inputs)
15
+
(import ./mimas/rustic-timers.nix inputs)
16
+
(import ./mimas/vaultwarden.nix inputs)
17
+
./mimas/gitea.nix
22
18
];
23
19
20
+
services.tailscale.enable = true;
21
+
22
+
security.pam.services.i3lock.enable = true;
23
+
security.pam.services.i3lock-color.enable = true;
24
+
24
25
sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
25
26
sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml";
26
27
27
28
sops.secrets.restic = {};
28
-
sops.secrets.backblaze = {};
29
+
sops.secrets.traefik = {};
29
30
30
-
nix.allowedUnfree = ["zerotierone"] ++ printerPackages ++ steamPackages;
31
+
nix.allowedUnfree = ["zerotierone"] ++ steamPackages;
31
32
nix.settings.experimental-features = ["ca-derivations" "impure-derivations"];
33
+
nix.distributedBuilds = true;
34
+
# nix.enabledMachines = ["enceladeus"];
32
35
33
36
security.chromiumSuidSandbox.enable = true;
34
37
···
99
102
100
103
# Enable CUPS to print documents.
101
104
services.printing.enable = true;
102
-
services.printing.drivers = [pkgs.hplipWithPlugin pkgs.samsung-unified-linux-driver];
105
+
106
+
services.avahi.enable = true;
107
+
services.avahi.nssmdns4 = true;
108
+
services.avahi.openFirewall = true;
103
109
104
110
services.ratbagd.enable = true;
111
+
112
+
programs.partition-manager.enable = true;
113
+
# security.polkit.enable = true;
105
114
106
115
# services.hydra = {
107
116
# enable = true;
···
114
123
# };
115
124
# networking.firewall.allowedTCPPorts = [ 3000 ];
116
125
117
-
# Enable sound.
118
-
sound.enable = true;
119
-
hardware.pulseaudio = {
120
-
enable = true;
121
-
package = pkgs.pulseaudioFull;
122
-
};
126
+
# Enable pulse compat.
127
+
services.pipewire.pulse.enable = true;
128
+
123
129
hardware.bluetooth.enable = true;
124
130
125
131
# Enable the X11 windowing system.
126
132
services.xserver.enable = true;
127
-
services.xserver.layout = "de";
128
-
# services.xserver.xkbOptions = "eurosign:e";
133
+
services.xserver.xkb.layout = "de";
129
134
130
135
# Enable touchpad support.
131
136
# services.xserver.libinput.enable = true;
132
137
133
138
# Enable the KDE Desktop Environment.
134
-
services.xserver.displayManager.sddm.enable = true;
139
+
services.displayManager.sddm.enable = true;
135
140
services.xserver.desktopManager.plasma5.enable = true;
136
141
services.xserver.windowManager.awesome.enable = true;
137
142
···
146
151
147
152
programs = {
148
153
steam.enable = true;
154
+
149
155
zsh.enable = true;
150
156
zsh.enableCompletion = false;
151
157
};
152
158
153
-
hardware.opengl.driSupport32Bit = true;
154
-
hardware.pulseaudio.support32Bit = true;
155
-
156
-
hardware.opengl.enable = true;
157
-
hardware.opengl.extraPackages = [pkgs.vaapiIntel pkgs.beignet];
159
+
hardware.graphics.enable = true;
160
+
hardware.graphics.extraPackages = [pkgs.vaapiIntel];
158
161
159
162
services.gitea = {
160
163
enable = true;
161
-
httpAddress = "127.0.0.1";
162
-
domain = "gitea.mimas.internal.nobbz.dev";
164
+
settings.server.DOMAIN = "gitea.mimas.internal.nobbz.dev";
165
+
settings.server.HTTP_ADDR = "127.0.0.1";
163
166
settings.server.ROOT_URL = lib.mkForce "https://gitea.mimas.internal.nobbz.dev/";
164
167
settings."git.timeout".DEFAULT = 3600; # 1 hour
165
168
settings."git.timeout".MIGRATE = 3600; # 1 hour
166
169
settings."git.timeout".MIRROR = 3600; # 1 hour
167
170
settings."git.timeout".CLONE = 3600; # 1 hour
168
171
settings."git.timeout".PULL = 3600; # 1 hour
169
-
settings."git.timeout".GC = 3600;
170
-
}; # 1 hour
172
+
settings."git.timeout".GC = 3600; # 1 hour
173
+
};
171
174
systemd.services.gitea.after = ["var-lib-gitea.mount"];
172
175
173
176
virtualisation = {
···
175
178
enable = true;
176
179
# storageDriver = "zfs";
177
180
# extraOptions = "--storage-opt zfs.fsname=rpool/local/docker";
178
-
package = upkgs.docker;
181
+
package = pkgs.docker;
179
182
extraOptions = "--dns 1.1.1.1";
180
183
};
181
184
···
220
223
};
221
224
};
222
225
223
-
security.sudo.extraRules = [
224
-
{
225
-
commands = [
226
-
{
227
-
command = "/run/current-system/sw/bin/nixos-rebuild";
228
-
options = ["NOPASSWD"];
229
-
}
230
-
];
231
-
groups = ["wheel"];
232
-
}
233
-
];
226
+
security.sudo.extraConfig = "Defaults passwd_timeout=0";
234
227
235
228
# services.wakeonlan.interfaces = [
236
229
# {
···
259
252
260
253
hardware.keyboard.zsa.enable = true;
261
254
hardware.sane.enable = true;
262
-
hardware.sane.extraBackends = [pkgs.hplipWithPlugin];
263
255
264
256
services.traefik.enable = true;
265
-
systemd.services.traefik.serviceConfig.EnvironmentFile = "/etc/traefik/env";
257
+
systemd.services.traefik.serviceConfig.EnvironmentFile = [config.sops.secrets.traefik.path];
266
258
services.traefik.staticConfigOptions = {
267
259
log.level = "DEBUG";
268
260
···
344
336
fritz.loadBalancer.servers = [{url = "http://fritz.box";}];
345
337
346
338
gitea.loadBalancer.passHostHeader = true;
347
-
gitea.loadBalancer.servers = [{url = "http://localhost:${toString config.services.gitea.httpPort}";}];
339
+
gitea.loadBalancer.servers = [{url = "http://localhost:${toString config.services.gitea.settings.server.HTTP_PORT}";}];
348
340
349
341
grafana.loadBalancer.passHostHeader = true;
350
342
grafana.loadBalancer.servers = [{url = "http://localhost:${toString config.services.grafana.settings.server.http_port}";}];
···
395
387
}
396
388
];
397
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
+
];
398
406
399
407
# This value determines the NixOS release with which your system is to be
400
408
# compatible, in order to avoid breaking some software such as database
+12
-9
nixos/modules/default.nix
+12
-9
nixos/modules/default.nix
···
1
-
inputs: {
2
-
cachix = import ./cachix inputs;
3
-
flake = import ./flake.nix inputs;
4
-
hostnames = import ./hostnames.nix inputs;
5
-
kernel = import ./kernel.nix inputs;
6
-
moonlander = import ./moonlander.nix inputs;
7
-
nix = import ./nix.nix inputs;
8
-
switcher = import ./switcher.nix inputs;
9
-
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
+
};
10
13
}
+58
nixos/modules/distributed.nix
+58
nixos/modules/distributed.nix
···
1
+
_: {
2
+
config,
3
+
lib,
4
+
...
5
+
}: let
6
+
machines = {
7
+
# Please try to keep the definitions alphabetically sorted
8
+
enceladeus = {
9
+
systems = ["i686-linux" "x86_64-linux"];
10
+
supportedFeatures = [];
11
+
sshUser = "root";
12
+
sshKey = "/home/nmelzer/.ssh/id_rsa"; # TODO: sopsify
13
+
speedFactor = 1;
14
+
protocol = "ssh-ng";
15
+
maxJobs = 2;
16
+
hostName = "enceladeus";
17
+
};
18
+
19
+
mimas = {
20
+
systems = ["i686-linux" "aarch64-linux" "x86_64-linux"];
21
+
supportedFeatures = ["kvm" "big-parallel"];
22
+
sshUser = "root";
23
+
sshKey = "/home/nmelzer/.ssh/id_rsa"; # TODO: sopsify
24
+
speedFactor = 8;
25
+
protocol = "ssh-ng";
26
+
maxJobs = 4;
27
+
hostName = "mimas";
28
+
};
29
+
};
30
+
31
+
names = builtins.attrNames machines;
32
+
33
+
inherit (lib.types) listOf enum;
34
+
inherit (config.nix) enabledMachines distributedBuilds;
35
+
inherit (config.networking) hostName;
36
+
37
+
selfRemote = builtins.elem hostName enabledMachines;
38
+
in {
39
+
options.nix = {
40
+
enabledMachines = lib.mkOption {
41
+
type = listOf (enum names);
42
+
default = [];
43
+
description = ''
44
+
A list of hosts to use for remote builds.
45
+
'';
46
+
};
47
+
};
48
+
49
+
config = lib.mkIf distributedBuilds {
50
+
assertions = [
51
+
{
52
+
assertion = !selfRemote;
53
+
message = "You are not allowed to use yourself as a distributed builder";
54
+
}
55
+
];
56
+
nix.buildMachines = builtins.map (name: builtins.getAttr name machines) enabledMachines;
57
+
};
58
+
}
+5
-9
nixos/modules/flake.nix
+5
-9
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
15
options.nix.flakes.enable = lib.mkEnableOption "nix flakes";
18
16
···
20
18
programs.command-not-found.dbPath = programsdb.packages.${pkgs.system}.programs-sqlite;
21
19
22
20
nix = {
23
-
package = lib.mkDefault nix.packages.${pkgs.system}.nix; # pkgs.nixUnstable;
21
+
package = lib.mkDefault nix.packages.${pkgs.system}.nix-cli;
22
+
24
23
settings.experimental-features = ["nix-command" "flakes"];
25
24
26
-
registry.nixpkgs.flake = unstable;
27
-
registry.nixpkgs2211.flake = nixpkgs-2211;
25
+
registry.nixpkgs.flake = nixpkgs;
28
26
29
27
nixPath = [
30
28
"nixpkgs=${nixpkgsPath}"
31
-
"nixpkgs2211=${nixpkgs2211Path}"
32
29
"/nix/var/nix/profiles/per-user/root/channels"
33
30
];
34
31
};
35
32
36
33
systemd.tmpfiles.rules = [
37
-
"L+ ${nixpkgsPath} - - - - ${unstable}"
38
-
"L+ ${nixpkgs2211Path} - - - - ${nixpkgs-2211}"
34
+
"L+ ${nixpkgsPath} - - - - ${nixpkgs}"
39
35
];
40
36
};
41
37
}
+5
-1
nixos/modules/kernel.nix
+5
-1
nixos/modules/kernel.nix
···
4
4
config,
5
5
...
6
6
}: let
7
-
zfsUsed = lib.lists.elem "zfs" (config.boot.supportedFilesystems ++ config.boot.initrd.supportedFilesystems);
7
+
supportedFilesystems =
8
+
if builtins.isList config.boot.supportedFilesystems
9
+
then config.boot.supportedFilesystems ++ config.boot.initrd.supportedFilesystems
10
+
else builtins.attrNames (lib.filterAttrs (_name: value: value) (config.boot.supportedFilesystems // config.boot.initrd.supportedFilesystems));
11
+
zfsUsed = lib.lists.elem "zfs" supportedFilesystems;
8
12
in {
9
13
boot.kernelPackages = lib.mkDefault (
10
14
if zfsUsed
+2
-1
nixos/modules/nix.nix
+2
-1
nixos/modules/nix.nix
···
10
10
in {
11
11
options.nix = {
12
12
allowedUnfree = lib.mkOption {
13
-
type = lib.types.listOf lib.types.string;
13
+
type = lib.types.listOf lib.types.str;
14
14
default = [];
15
15
description = ''
16
16
Allows for unfree packages by their name.
···
22
22
(lib.mkIf (allowed != []) {nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) allowed;})
23
23
{nix.settings.auto-optimise-store = lib.mkDefault true;}
24
24
{
25
+
nix.settings.trusted-users = lib.mkDefault ["root" "@wheel"];
25
26
nix.settings.min-free = lib.mkDefault (5 * gibibyte);
26
27
nix.settings.max-free = lib.mkDefault (25 * gibibyte);
27
28
nix.settings.allow-import-from-derivation = lib.mkDefault false;
+13
nixos/modules/prefer-local.patch
+13
nixos/modules/prefer-local.patch
···
1
+
diff --git a/src/build-remote/build-remote.cc b/src/build-remote/build-remote.cc
2
+
index cfc4baaca..4fbaae4fa 100644
3
+
--- a/src/build-remote/build-remote.cc
4
+
+++ b/src/build-remote/build-remote.cc
5
+
@@ -122,6 +122,8 @@ static int main_build_remote(int argc, char * * argv)
6
+
/* It's possible to build this locally right now: */
7
+
bool canBuildLocally = amWilling && couldBuildLocally;
8
+
9
+
+ if (canBuildLocally) continue;
10
+
+
11
+
/* Error ignored here, will be caught later */
12
+
mkdir(currentLoad.c_str(), 0777);
13
+
+24
-1
nixos/modules/switcher.nix
+24
-1
nixos/modules/switcher.nix
···
1
-
{self, ...}: {pkgs, ...}: {
1
+
{self, ...}: {
2
+
pkgs,
3
+
config,
4
+
...
5
+
}: {
2
6
environment.systemPackages = [self.packages."${pkgs.system}".switcher];
7
+
8
+
security.sudo.extraRules = let
9
+
storePrefix = "/nix/store/*";
10
+
commandPrefix = "/run/current-system/sw";
11
+
systemName = "nixos-system-${config.networking.hostName}-*";
12
+
nixEnvCmd = "${commandPrefix}/bin/nix-env";
13
+
systemdPath = "${commandPrefix}/bin/systemd-run";
14
+
systemdRunCmd = "${systemdPath} -E LOCALE_ARCHIVE -E NIXOS_INSTALL_BOOTLOADER --collect --no-ask-password --pty --quiet --same-dir --service-type=exec --unit=nixos-rebuild-switch-to-configuration";
15
+
systemdRunEqCmd = "${systemdPath} -E LOCALE_ARCHIVE -E NIXOS_INSTALL_BOOTLOADER= --collect --no-ask-password --pty --quiet --same-dir --service-type=exec --unit=nixos-rebuild-switch-to-configuration";
16
+
options = ["NOPASSWD"];
17
+
mkRule = command: {
18
+
commands = [{inherit command options;}];
19
+
groups = ["wheel"];
20
+
};
21
+
in [
22
+
(mkRule "${nixEnvCmd} -p /nix/var/nix/profiles/system --set ${storePrefix}-${systemName}")
23
+
(mkRule "${systemdRunCmd} --wait true")
24
+
(mkRule "${systemdRunEqCmd} --wait ${storePrefix}-${systemName}/bin/switch-to-configuration switch")
25
+
];
3
26
}
+14
-1
nixos/modules/zerotier.nix
+14
-1
nixos/modules/zerotier.nix
···
1
-
_: {
1
+
{nixpkgs-pre-rust, ...}: {
2
+
config,
3
+
pkgs,
4
+
...
5
+
}: {
2
6
services.zerotierone.enable = true;
3
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;
4
17
}
+33
-9
npins/sources.json
+33
-9
npins/sources.json
···
1
1
{
2
2
"pins": {
3
-
"konsole": {
3
+
"catppuccin-bat": {
4
+
"type": "Git",
5
+
"repository": {
6
+
"type": "GitHub",
7
+
"owner": "catppuccin",
8
+
"repo": "bat"
9
+
},
10
+
"branch": "main",
11
+
"revision": "699f60fc8ec434574ca7451b444b880430319941",
12
+
"url": "https://github.com/catppuccin/bat/archive/699f60fc8ec434574ca7451b444b880430319941.tar.gz",
13
+
"hash": "1lirgwgh2hnz6j60py19bbmhvgaqs7i6wf6702k6n83lgw4aixg9"
14
+
},
15
+
"catppuccin-rofi": {
4
16
"type": "Git",
5
17
"repository": {
6
18
"type": "GitHub",
7
-
"owner": "dracula",
8
-
"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"
9
33
},
10
34
"branch": "master",
11
-
"revision": "030486c75f12853e9d922b59eb37c25aea4f66f4",
12
-
"url": "https://github.com/dracula/konsole/archive/030486c75f12853e9d922b59eb37c25aea4f66f4.tar.gz",
13
-
"hash": "123dll2w2mbflgxfgdjg0a3gbr4srnwbyj3zd6wg1hx5miki48xj"
35
+
"revision": "6aced3f35def61c5edf9d790e945e8bb4fe7b305",
36
+
"url": "https://github.com/Aloxaf/fzf-tab/archive/6aced3f35def61c5edf9d790e945e8bb4fe7b305.tar.gz",
37
+
"hash": "1brljd9744wg8p9v3q39kdys33jb03d27pd0apbg1cz0a2r1wqqi"
14
38
},
15
39
"zsh-syntax-highlighting": {
16
40
"type": "Git",
···
20
44
"repo": "zsh-syntax-highlighting"
21
45
},
22
46
"branch": "master",
23
-
"revision": "b2c910a85ed84cb7e5108e7cb3406a2e825a858f",
24
-
"url": "https://github.com/zsh-users/zsh-syntax-highlighting/archive/b2c910a85ed84cb7e5108e7cb3406a2e825a858f.tar.gz",
25
-
"hash": "1b4hqdsfvcg87wm8jpvrh1005nzij2wgl0wbcrvgkcjqmxb2874p"
47
+
"revision": "5eb677bb0fa9a3e60f0eff031dc13926e093df92",
48
+
"url": "https://github.com/zsh-users/zsh-syntax-highlighting/archive/5eb677bb0fa9a3e60f0eff031dc13926e093df92.tar.gz",
49
+
"hash": "1x33gk7hhp07jqq7yjvrsp2vmdbxmadlv3335ixx29bc6h8106r9"
26
50
}
27
51
},
28
52
"version": 3
+1
packages/advcp/default.nix
+1
packages/advcp/default.nix
+28
-52
packages/default.nix
+28
-52
packages/default.nix
···
1
-
{
2
-
self,
3
-
emacs,
4
-
...
5
-
} @ inputs: system: let
6
-
pkgs = inputs.nixpkgs-2211.legacyPackages."${system}";
7
-
upkgs = inputs.unstable.legacyPackages."${system}";
8
-
9
-
epkgs = import inputs.unstable {
10
-
inherit system;
11
-
overlays = [emacs.overlay];
12
-
};
13
-
nodePkgs = upkgs.callPackages ./nodePackages/override.nix {};
14
-
15
-
nilBasePackage =
16
-
if upkgs.stdenv.isLinux
17
-
then inputs.nil.packages.${system}.nil
18
-
else upkgs.nil;
19
-
20
-
rnil-lsp = upkgs.writeShellScriptBin "rnix-lsp" ''
21
-
exec ${nilBasePackage}/bin/nil "$@"
22
-
'';
23
-
24
-
nil = upkgs.symlinkJoin {
25
-
name = "nil";
26
-
paths = [nilBasePackage rnil-lsp];
27
-
};
28
-
# npins = import ../npins;
29
-
in
30
-
{
31
-
inherit nil;
32
-
33
-
"advcp" = upkgs.callPackage ./advcp {};
34
-
"dracula/konsole" = upkgs.callPackage ./dracula/konsole {};
35
-
"emacs" = epkgs.emacsUnstable;
36
-
"rofi/unicode" = upkgs.callPackage ./rofi-unicode {};
37
-
"zx" = upkgs.nodePackages.zx;
38
-
"angular" = nodePkgs."@angular/cli";
1
+
{inputs, ...}: {
2
+
perSystem = {
3
+
system,
4
+
pkgs,
5
+
lib,
6
+
inputs',
7
+
...
8
+
}: let
9
+
upkgs = inputs'.nixpkgs.legacyPackages;
39
10
40
-
"alejandra" = inputs.alejandra.defaultPackage."${system}";
41
-
}
42
-
// pkgs.lib.optionalAttrs pkgs.stdenv.isLinux {
43
-
"gnucash-de" = upkgs.callPackage ./gnucash-de {};
44
-
"switcher" = inputs.switcher.packages.${system}.switcher;
45
-
}
46
-
// pkgs.lib.optionalAttrs (system == "x86_64-linux") {
47
-
"google-chrome" =
48
-
(import inputs.master {
49
-
inherit system;
50
-
config.allowUnfree = true;
51
-
config.google-chrome.enableWideVine = true;
11
+
chromePkgs = import inputs.nixpkgs {
12
+
inherit system;
13
+
config.allowUnfree = true;
14
+
config.google-chrome.enableWideVine = true;
15
+
};
16
+
in {
17
+
packages = lib.mkMerge [
18
+
{
19
+
advcp = upkgs.callPackage ./advcp {};
20
+
"rofi/unicode" = upkgs.callPackage ./rofi-unicode {};
21
+
}
22
+
(lib.mkIf pkgs.stdenv.isLinux {
23
+
inherit (inputs'.switcher.packages) switcher;
52
24
})
53
-
.google-chrome;
54
-
}
25
+
(lib.mkIf (system == "x86_64-linux") {
26
+
inherit (chromePkgs) google-chrome;
27
+
})
28
+
];
29
+
};
30
+
}
-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
-
})
-14
packages/gnucash-de/default.nix
-14
packages/gnucash-de/default.nix
···
1
-
{
2
-
runCommand,
3
-
makeWrapper,
4
-
gnucash,
5
-
}:
6
-
runCommand "gnucash-de-${gnucash.version}"
7
-
{
8
-
nativeBuildInputs = [makeWrapper];
9
-
} ''
10
-
mkdir -p $out/{bin,share/applications}
11
-
makeWrapper ${gnucash}/bin/gnucash $out/bin/gnucash \
12
-
--set LANG de_DE.UTF-8
13
-
ln -s ${gnucash}/share/applications/gnucash.desktop $out/share/applications/gnucash.desktop
14
-
''
-22
packages/nodePackages/default.nix
-22
packages/nodePackages/default.nix
···
1
-
# This file has been generated by node2nix 1.11.1. Do not edit!
2
-
{
3
-
pkgs ?
4
-
import <nixpkgs> {
5
-
inherit system;
6
-
},
7
-
system ? builtins.currentSystem,
8
-
nodejs ? pkgs."nodejs-14_x",
9
-
}: let
10
-
nodeEnv = import ./node-env.nix {
11
-
inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
12
-
inherit pkgs nodejs;
13
-
libtool =
14
-
if pkgs.stdenv.isDarwin
15
-
then pkgs.darwin.cctools
16
-
else null;
17
-
};
18
-
in
19
-
import ./node-packages.nix {
20
-
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
21
-
inherit nodeEnv;
22
-
}
-652
packages/nodePackages/node-env.nix
-652
packages/nodePackages/node-env.nix
···
1
-
# This file originates from node2nix
2
-
{
3
-
lib,
4
-
stdenv,
5
-
nodejs,
6
-
python2,
7
-
pkgs,
8
-
libtool,
9
-
runCommand,
10
-
writeTextFile,
11
-
writeShellScript,
12
-
}: let
13
-
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
14
-
utillinux =
15
-
if pkgs ? utillinux
16
-
then pkgs.utillinux
17
-
else pkgs.util-linux;
18
-
19
-
python =
20
-
if nodejs ? python
21
-
then nodejs.python
22
-
else python2;
23
-
24
-
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
25
-
tarWrapper = runCommand "tarWrapper" {} ''
26
-
mkdir -p $out/bin
27
-
28
-
cat > $out/bin/tar <<EOF
29
-
#! ${stdenv.shell} -e
30
-
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
31
-
EOF
32
-
33
-
chmod +x $out/bin/tar
34
-
'';
35
-
36
-
# Function that generates a TGZ file from a NPM project
37
-
buildNodeSourceDist = {
38
-
name,
39
-
version,
40
-
src,
41
-
...
42
-
}:
43
-
stdenv.mkDerivation {
44
-
name = "node-tarball-${name}-${version}";
45
-
inherit src;
46
-
buildInputs = [nodejs];
47
-
buildPhase = ''
48
-
export HOME=$TMPDIR
49
-
tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
50
-
'';
51
-
installPhase = ''
52
-
mkdir -p $out/tarballs
53
-
mv $tgzFile $out/tarballs
54
-
mkdir -p $out/nix-support
55
-
echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
56
-
'';
57
-
};
58
-
59
-
# Common shell logic
60
-
installPackage = writeShellScript "install-package" ''
61
-
installPackage() {
62
-
local packageName=$1 src=$2
63
-
64
-
local strippedName
65
-
66
-
local DIR=$PWD
67
-
cd $TMPDIR
68
-
69
-
unpackFile $src
70
-
71
-
# Make the base dir in which the target dependency resides first
72
-
mkdir -p "$(dirname "$DIR/$packageName")"
73
-
74
-
if [ -f "$src" ]
75
-
then
76
-
# Figure out what directory has been unpacked
77
-
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
78
-
79
-
# Restore write permissions to make building work
80
-
find "$packageDir" -type d -exec chmod u+x {} \;
81
-
chmod -R u+w "$packageDir"
82
-
83
-
# Move the extracted tarball into the output folder
84
-
mv "$packageDir" "$DIR/$packageName"
85
-
elif [ -d "$src" ]
86
-
then
87
-
# Get a stripped name (without hash) of the source directory.
88
-
# On old nixpkgs it's already set internally.
89
-
if [ -z "$strippedName" ]
90
-
then
91
-
strippedName="$(stripHash $src)"
92
-
fi
93
-
94
-
# Restore write permissions to make building work
95
-
chmod -R u+w "$strippedName"
96
-
97
-
# Move the extracted directory into the output folder
98
-
mv "$strippedName" "$DIR/$packageName"
99
-
fi
100
-
101
-
# Change to the package directory to install dependencies
102
-
cd "$DIR/$packageName"
103
-
}
104
-
'';
105
-
106
-
# Bundle the dependencies of the package
107
-
#
108
-
# Only include dependencies if they don't exist. They may also be bundled in the package.
109
-
includeDependencies = {dependencies}:
110
-
lib.optionalString (dependencies != []) (
111
-
''
112
-
mkdir -p node_modules
113
-
cd node_modules
114
-
''
115
-
+ (lib.concatMapStrings (
116
-
dependency: ''
117
-
if [ ! -e "${dependency.packageName}" ]; then
118
-
${composePackage dependency}
119
-
fi
120
-
''
121
-
)
122
-
dependencies)
123
-
+ ''
124
-
cd ..
125
-
''
126
-
);
127
-
128
-
# Recursively composes the dependencies of a package
129
-
composePackage = {
130
-
name,
131
-
packageName,
132
-
src,
133
-
dependencies ? [],
134
-
...
135
-
} @ args:
136
-
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
137
-
installPackage "${packageName}" "${src}"
138
-
${includeDependencies {inherit dependencies;}}
139
-
cd ..
140
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
141
-
'';
142
-
143
-
pinpointDependencies = {
144
-
dependencies,
145
-
production,
146
-
}: let
147
-
pinpointDependenciesFromPackageJSON = writeTextFile {
148
-
name = "pinpointDependencies.js";
149
-
text = ''
150
-
var fs = require('fs');
151
-
var path = require('path');
152
-
153
-
function resolveDependencyVersion(location, name) {
154
-
if(location == process.env['NIX_STORE']) {
155
-
return null;
156
-
} else {
157
-
var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
158
-
159
-
if(fs.existsSync(dependencyPackageJSON)) {
160
-
var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
161
-
162
-
if(dependencyPackageObj.name == name) {
163
-
return dependencyPackageObj.version;
164
-
}
165
-
} else {
166
-
return resolveDependencyVersion(path.resolve(location, ".."), name);
167
-
}
168
-
}
169
-
}
170
-
171
-
function replaceDependencies(dependencies) {
172
-
if(typeof dependencies == "object" && dependencies !== null) {
173
-
for(var dependency in dependencies) {
174
-
var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
175
-
176
-
if(resolvedVersion === null) {
177
-
process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
178
-
} else {
179
-
dependencies[dependency] = resolvedVersion;
180
-
}
181
-
}
182
-
}
183
-
}
184
-
185
-
/* Read the package.json configuration */
186
-
var packageObj = JSON.parse(fs.readFileSync('./package.json'));
187
-
188
-
/* Pinpoint all dependencies */
189
-
replaceDependencies(packageObj.dependencies);
190
-
if(process.argv[2] == "development") {
191
-
replaceDependencies(packageObj.devDependencies);
192
-
}
193
-
replaceDependencies(packageObj.optionalDependencies);
194
-
195
-
/* Write the fixed package.json file */
196
-
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
197
-
'';
198
-
};
199
-
in ''
200
-
node ${pinpointDependenciesFromPackageJSON} ${
201
-
if production
202
-
then "production"
203
-
else "development"
204
-
}
205
-
206
-
${lib.optionalString (dependencies != [])
207
-
''
208
-
if [ -d node_modules ]
209
-
then
210
-
cd node_modules
211
-
${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
212
-
cd ..
213
-
fi
214
-
''}
215
-
'';
216
-
217
-
# Recursively traverses all dependencies of a package and pinpoints all
218
-
# dependencies in the package.json file to the versions that are actually
219
-
# being used.
220
-
221
-
pinpointDependenciesOfPackage = {
222
-
packageName,
223
-
dependencies ? [],
224
-
production ? true,
225
-
...
226
-
} @ args: ''
227
-
if [ -d "${packageName}" ]
228
-
then
229
-
cd "${packageName}"
230
-
${pinpointDependencies {inherit dependencies production;}}
231
-
cd ..
232
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
233
-
fi
234
-
'';
235
-
236
-
# Extract the Node.js source code which is used to compile packages with
237
-
# native bindings
238
-
nodeSources = runCommand "node-sources" {} ''
239
-
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
240
-
mv node-* $out
241
-
'';
242
-
243
-
# Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
244
-
addIntegrityFieldsScript = writeTextFile {
245
-
name = "addintegrityfields.js";
246
-
text = ''
247
-
var fs = require('fs');
248
-
var path = require('path');
249
-
250
-
function augmentDependencies(baseDir, dependencies) {
251
-
for(var dependencyName in dependencies) {
252
-
var dependency = dependencies[dependencyName];
253
-
254
-
// Open package.json and augment metadata fields
255
-
var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
256
-
var packageJSONPath = path.join(packageJSONDir, "package.json");
257
-
258
-
if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
259
-
console.log("Adding metadata fields to: "+packageJSONPath);
260
-
var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
261
-
262
-
if(dependency.integrity) {
263
-
packageObj["_integrity"] = dependency.integrity;
264
-
} else {
265
-
packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
266
-
}
267
-
268
-
if(dependency.resolved) {
269
-
packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
270
-
} else {
271
-
packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
272
-
}
273
-
274
-
if(dependency.from !== undefined) { // Adopt from property if one has been provided
275
-
packageObj["_from"] = dependency.from;
276
-
}
277
-
278
-
fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
279
-
}
280
-
281
-
// Augment transitive dependencies
282
-
if(dependency.dependencies !== undefined) {
283
-
augmentDependencies(packageJSONDir, dependency.dependencies);
284
-
}
285
-
}
286
-
}
287
-
288
-
if(fs.existsSync("./package-lock.json")) {
289
-
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
290
-
291
-
if(![1, 2].includes(packageLock.lockfileVersion)) {
292
-
process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
293
-
process.exit(1);
294
-
}
295
-
296
-
if(packageLock.dependencies !== undefined) {
297
-
augmentDependencies(".", packageLock.dependencies);
298
-
}
299
-
}
300
-
'';
301
-
};
302
-
303
-
# Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
304
-
reconstructPackageLock = writeTextFile {
305
-
name = "addintegrityfields.js";
306
-
text = ''
307
-
var fs = require('fs');
308
-
var path = require('path');
309
-
310
-
var packageObj = JSON.parse(fs.readFileSync("package.json"));
311
-
312
-
var lockObj = {
313
-
name: packageObj.name,
314
-
version: packageObj.version,
315
-
lockfileVersion: 1,
316
-
requires: true,
317
-
dependencies: {}
318
-
};
319
-
320
-
function augmentPackageJSON(filePath, dependencies) {
321
-
var packageJSON = path.join(filePath, "package.json");
322
-
if(fs.existsSync(packageJSON)) {
323
-
var packageObj = JSON.parse(fs.readFileSync(packageJSON));
324
-
dependencies[packageObj.name] = {
325
-
version: packageObj.version,
326
-
integrity: "sha1-000000000000000000000000000=",
327
-
dependencies: {}
328
-
};
329
-
processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
330
-
}
331
-
}
332
-
333
-
function processDependencies(dir, dependencies) {
334
-
if(fs.existsSync(dir)) {
335
-
var files = fs.readdirSync(dir);
336
-
337
-
files.forEach(function(entry) {
338
-
var filePath = path.join(dir, entry);
339
-
var stats = fs.statSync(filePath);
340
-
341
-
if(stats.isDirectory()) {
342
-
if(entry.substr(0, 1) == "@") {
343
-
// When we encounter a namespace folder, augment all packages belonging to the scope
344
-
var pkgFiles = fs.readdirSync(filePath);
345
-
346
-
pkgFiles.forEach(function(entry) {
347
-
if(stats.isDirectory()) {
348
-
var pkgFilePath = path.join(filePath, entry);
349
-
augmentPackageJSON(pkgFilePath, dependencies);
350
-
}
351
-
});
352
-
} else {
353
-
augmentPackageJSON(filePath, dependencies);
354
-
}
355
-
}
356
-
});
357
-
}
358
-
}
359
-
360
-
processDependencies("node_modules", lockObj.dependencies);
361
-
362
-
fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
363
-
'';
364
-
};
365
-
366
-
prepareAndInvokeNPM = {
367
-
packageName,
368
-
bypassCache,
369
-
reconstructLock,
370
-
npmFlags,
371
-
production,
372
-
}: let
373
-
forceOfflineFlag =
374
-
if bypassCache
375
-
then "--offline"
376
-
else "--registry http://www.example.com";
377
-
in ''
378
-
# Pinpoint the versions of all dependencies to the ones that are actually being used
379
-
echo "pinpointing versions of dependencies..."
380
-
source $pinpointDependenciesScriptPath
381
-
382
-
# Patch the shebangs of the bundled modules to prevent them from
383
-
# calling executables outside the Nix store as much as possible
384
-
patchShebangs .
385
-
386
-
# Deploy the Node.js package by running npm install. Since the
387
-
# dependencies have been provided already by ourselves, it should not
388
-
# attempt to install them again, which is good, because we want to make
389
-
# it Nix's responsibility. If it needs to install any dependencies
390
-
# anyway (e.g. because the dependency parameters are
391
-
# incomplete/incorrect), it fails.
392
-
#
393
-
# The other responsibilities of NPM are kept -- version checks, build
394
-
# steps, postprocessing etc.
395
-
396
-
export HOME=$TMPDIR
397
-
cd "${packageName}"
398
-
runHook preRebuild
399
-
400
-
${lib.optionalString bypassCache ''
401
-
${lib.optionalString reconstructLock ''
402
-
if [ -f package-lock.json ]
403
-
then
404
-
echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
405
-
echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
406
-
rm package-lock.json
407
-
else
408
-
echo "No package-lock.json file found, reconstructing..."
409
-
fi
410
-
411
-
node ${reconstructPackageLock}
412
-
''}
413
-
414
-
node ${addIntegrityFieldsScript}
415
-
''}
416
-
417
-
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
418
-
419
-
if [ "''${dontNpmInstall-}" != "1" ]
420
-
then
421
-
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
422
-
rm -f npm-shrinkwrap.json
423
-
424
-
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
425
-
fi
426
-
'';
427
-
428
-
# Builds and composes an NPM package including all its dependencies
429
-
buildNodePackage = {
430
-
name,
431
-
packageName,
432
-
version ? null,
433
-
dependencies ? [],
434
-
buildInputs ? [],
435
-
production ? true,
436
-
npmFlags ? "",
437
-
dontNpmInstall ? false,
438
-
bypassCache ? false,
439
-
reconstructLock ? false,
440
-
preRebuild ? "",
441
-
dontStrip ? true,
442
-
unpackPhase ? "true",
443
-
buildPhase ? "true",
444
-
meta ? {},
445
-
...
446
-
} @ args: let
447
-
extraArgs = removeAttrs args ["name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta"];
448
-
in
449
-
stdenv.mkDerivation ({
450
-
name = "${name}${
451
-
if version == null
452
-
then ""
453
-
else "-${version}"
454
-
}";
455
-
buildInputs =
456
-
[tarWrapper python nodejs]
457
-
++ lib.optional (stdenv.isLinux) utillinux
458
-
++ lib.optional (stdenv.isDarwin) libtool
459
-
++ buildInputs;
460
-
461
-
inherit nodejs;
462
-
463
-
inherit dontStrip; # Stripping may fail a build for some package deployments
464
-
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
465
-
466
-
compositionScript = composePackage args;
467
-
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
468
-
469
-
passAsFile = ["compositionScript" "pinpointDependenciesScript"];
470
-
471
-
installPhase = ''
472
-
source ${installPackage}
473
-
474
-
# Create and enter a root node_modules/ folder
475
-
mkdir -p $out/lib/node_modules
476
-
cd $out/lib/node_modules
477
-
478
-
# Compose the package and all its dependencies
479
-
source $compositionScriptPath
480
-
481
-
${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}}
482
-
483
-
# Create symlink to the deployed executable folder, if applicable
484
-
if [ -d "$out/lib/node_modules/.bin" ]
485
-
then
486
-
ln -s $out/lib/node_modules/.bin $out/bin
487
-
488
-
# Patch the shebang lines of all the executables
489
-
ls $out/bin/* | while read i
490
-
do
491
-
file="$(readlink -f "$i")"
492
-
chmod u+rwx "$file"
493
-
patchShebangs "$file"
494
-
done
495
-
fi
496
-
497
-
# Create symlinks to the deployed manual page folders, if applicable
498
-
if [ -d "$out/lib/node_modules/${packageName}/man" ]
499
-
then
500
-
mkdir -p $out/share
501
-
for dir in "$out/lib/node_modules/${packageName}/man/"*
502
-
do
503
-
mkdir -p $out/share/man/$(basename "$dir")
504
-
for page in "$dir"/*
505
-
do
506
-
ln -s $page $out/share/man/$(basename "$dir")
507
-
done
508
-
done
509
-
fi
510
-
511
-
# Run post install hook, if provided
512
-
runHook postInstall
513
-
'';
514
-
515
-
meta =
516
-
{
517
-
# default to Node.js' platforms
518
-
platforms = nodejs.meta.platforms;
519
-
}
520
-
// meta;
521
-
}
522
-
// extraArgs);
523
-
524
-
# Builds a node environment (a node_modules folder and a set of binaries)
525
-
buildNodeDependencies = {
526
-
name,
527
-
packageName,
528
-
version ? null,
529
-
src,
530
-
dependencies ? [],
531
-
buildInputs ? [],
532
-
production ? true,
533
-
npmFlags ? "",
534
-
dontNpmInstall ? false,
535
-
bypassCache ? false,
536
-
reconstructLock ? false,
537
-
dontStrip ? true,
538
-
unpackPhase ? "true",
539
-
buildPhase ? "true",
540
-
...
541
-
} @ args: let
542
-
extraArgs = removeAttrs args ["name" "dependencies" "buildInputs"];
543
-
in
544
-
stdenv.mkDerivation ({
545
-
name = "node-dependencies-${name}${
546
-
if version == null
547
-
then ""
548
-
else "-${version}"
549
-
}";
550
-
551
-
buildInputs =
552
-
[tarWrapper python nodejs]
553
-
++ lib.optional (stdenv.isLinux) utillinux
554
-
++ lib.optional (stdenv.isDarwin) libtool
555
-
++ buildInputs;
556
-
557
-
inherit dontStrip; # Stripping may fail a build for some package deployments
558
-
inherit dontNpmInstall unpackPhase buildPhase;
559
-
560
-
includeScript = includeDependencies {inherit dependencies;};
561
-
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
562
-
563
-
passAsFile = ["includeScript" "pinpointDependenciesScript"];
564
-
565
-
installPhase = ''
566
-
source ${installPackage}
567
-
568
-
mkdir -p $out/${packageName}
569
-
cd $out/${packageName}
570
-
571
-
source $includeScriptPath
572
-
573
-
# Create fake package.json to make the npm commands work properly
574
-
cp ${src}/package.json .
575
-
chmod 644 package.json
576
-
${lib.optionalString bypassCache ''
577
-
if [ -f ${src}/package-lock.json ]
578
-
then
579
-
cp ${src}/package-lock.json .
580
-
chmod 644 package-lock.json
581
-
fi
582
-
''}
583
-
584
-
# Go to the parent folder to make sure that all packages are pinpointed
585
-
cd ..
586
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
587
-
588
-
${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}}
589
-
590
-
# Expose the executables that were installed
591
-
cd ..
592
-
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
593
-
594
-
mv ${packageName} lib
595
-
ln -s $out/lib/node_modules/.bin $out/bin
596
-
'';
597
-
}
598
-
// extraArgs);
599
-
600
-
# Builds a development shell
601
-
buildNodeShell = {
602
-
name,
603
-
packageName,
604
-
version ? null,
605
-
src,
606
-
dependencies ? [],
607
-
buildInputs ? [],
608
-
production ? true,
609
-
npmFlags ? "",
610
-
dontNpmInstall ? false,
611
-
bypassCache ? false,
612
-
reconstructLock ? false,
613
-
dontStrip ? true,
614
-
unpackPhase ? "true",
615
-
buildPhase ? "true",
616
-
...
617
-
} @ args: let
618
-
nodeDependencies = buildNodeDependencies args;
619
-
extraArgs = removeAttrs args ["name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase"];
620
-
in
621
-
stdenv.mkDerivation ({
622
-
name = "node-shell-${name}${
623
-
if version == null
624
-
then ""
625
-
else "-${version}"
626
-
}";
627
-
628
-
buildInputs = [python nodejs] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
629
-
buildCommand = ''
630
-
mkdir -p $out/bin
631
-
cat > $out/bin/shell <<EOF
632
-
#! ${stdenv.shell} -e
633
-
$shellHook
634
-
exec ${stdenv.shell}
635
-
EOF
636
-
chmod +x $out/bin/shell
637
-
'';
638
-
639
-
# Provide the dependencies in a development shell through the NODE_PATH environment variable
640
-
inherit nodeDependencies;
641
-
shellHook = lib.optionalString (dependencies != []) ''
642
-
export NODE_PATH=${nodeDependencies}/lib/node_modules
643
-
export PATH="${nodeDependencies}/bin:$PATH"
644
-
'';
645
-
}
646
-
// extraArgs);
647
-
in {
648
-
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
649
-
buildNodePackage = lib.makeOverridable buildNodePackage;
650
-
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
651
-
buildNodeShell = lib.makeOverridable buildNodeShell;
652
-
}
-2000
packages/nodePackages/node-packages.nix
-2000
packages/nodePackages/node-packages.nix
···
1
-
# This file has been generated by node2nix 1.11.1. Do not edit!
2
-
{
3
-
nodeEnv,
4
-
fetchurl,
5
-
fetchgit,
6
-
nix-gitignore,
7
-
stdenv,
8
-
lib,
9
-
globalBuildInputs ? [],
10
-
}: let
11
-
sources = {
12
-
"@angular-devkit/architect-0.1303.6" = {
13
-
name = "_at_angular-devkit_slash_architect";
14
-
packageName = "@angular-devkit/architect";
15
-
version = "0.1303.6";
16
-
src = fetchurl {
17
-
url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.6.tgz";
18
-
sha512 = "Quh8KzO17PZH38mrDlBihrT6TioTnD8I+nSXuTZIqHwDpyFCTB9wBm9wC1J6HzMzEJ1GoYWEH/ukfbVpmj8ghw==";
19
-
};
20
-
};
21
-
"@angular-devkit/core-13.3.6" = {
22
-
name = "_at_angular-devkit_slash_core";
23
-
packageName = "@angular-devkit/core";
24
-
version = "13.3.6";
25
-
src = fetchurl {
26
-
url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.6.tgz";
27
-
sha512 = "ZmD586B+RnM2CG5+jbXh2NVfIydTc/yKSjppYDDOv4I530YBm6vpfZMwClpiNk6XLbMv7KqX4Tlr4wfxlPYYbA==";
28
-
};
29
-
};
30
-
"@angular-devkit/schematics-13.3.6" = {
31
-
name = "_at_angular-devkit_slash_schematics";
32
-
packageName = "@angular-devkit/schematics";
33
-
version = "13.3.6";
34
-
src = fetchurl {
35
-
url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.6.tgz";
36
-
sha512 = "yLh5xc92C/FiaAp27coPiKWpSUmwoXF7vMxbJYJTyOXlt0mUITAEAwtrZQNr4yAxW/yvgTdyg7PhXaveQNTUuQ==";
37
-
};
38
-
};
39
-
"@gar/promisify-1.1.3" = {
40
-
name = "_at_gar_slash_promisify";
41
-
packageName = "@gar/promisify";
42
-
version = "1.1.3";
43
-
src = fetchurl {
44
-
url = "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz";
45
-
sha512 = "k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==";
46
-
};
47
-
};
48
-
"@npmcli/fs-1.1.1" = {
49
-
name = "_at_npmcli_slash_fs";
50
-
packageName = "@npmcli/fs";
51
-
version = "1.1.1";
52
-
src = fetchurl {
53
-
url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz";
54
-
sha512 = "8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==";
55
-
};
56
-
};
57
-
"@npmcli/fs-2.1.0" = {
58
-
name = "_at_npmcli_slash_fs";
59
-
packageName = "@npmcli/fs";
60
-
version = "2.1.0";
61
-
src = fetchurl {
62
-
url = "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz";
63
-
sha512 = "DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==";
64
-
};
65
-
};
66
-
"@npmcli/git-2.1.0" = {
67
-
name = "_at_npmcli_slash_git";
68
-
packageName = "@npmcli/git";
69
-
version = "2.1.0";
70
-
src = fetchurl {
71
-
url = "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz";
72
-
sha512 = "/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==";
73
-
};
74
-
};
75
-
"@npmcli/installed-package-contents-1.0.7" = {
76
-
name = "_at_npmcli_slash_installed-package-contents";
77
-
packageName = "@npmcli/installed-package-contents";
78
-
version = "1.0.7";
79
-
src = fetchurl {
80
-
url = "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz";
81
-
sha512 = "9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==";
82
-
};
83
-
};
84
-
"@npmcli/move-file-1.1.2" = {
85
-
name = "_at_npmcli_slash_move-file";
86
-
packageName = "@npmcli/move-file";
87
-
version = "1.1.2";
88
-
src = fetchurl {
89
-
url = "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz";
90
-
sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
91
-
};
92
-
};
93
-
"@npmcli/move-file-2.0.0" = {
94
-
name = "_at_npmcli_slash_move-file";
95
-
packageName = "@npmcli/move-file";
96
-
version = "2.0.0";
97
-
src = fetchurl {
98
-
url = "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz";
99
-
sha512 = "UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==";
100
-
};
101
-
};
102
-
"@npmcli/node-gyp-1.0.3" = {
103
-
name = "_at_npmcli_slash_node-gyp";
104
-
packageName = "@npmcli/node-gyp";
105
-
version = "1.0.3";
106
-
src = fetchurl {
107
-
url = "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz";
108
-
sha512 = "fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==";
109
-
};
110
-
};
111
-
"@npmcli/promise-spawn-1.3.2" = {
112
-
name = "_at_npmcli_slash_promise-spawn";
113
-
packageName = "@npmcli/promise-spawn";
114
-
version = "1.3.2";
115
-
src = fetchurl {
116
-
url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz";
117
-
sha512 = "QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==";
118
-
};
119
-
};
120
-
"@npmcli/run-script-2.0.0" = {
121
-
name = "_at_npmcli_slash_run-script";
122
-
packageName = "@npmcli/run-script";
123
-
version = "2.0.0";
124
-
src = fetchurl {
125
-
url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz";
126
-
sha512 = "fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==";
127
-
};
128
-
};
129
-
"@schematics/angular-13.3.6" = {
130
-
name = "_at_schematics_slash_angular";
131
-
packageName = "@schematics/angular";
132
-
version = "13.3.6";
133
-
src = fetchurl {
134
-
url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.6.tgz";
135
-
sha512 = "BGBmIasjipBxQhV+UdN8B5P73SBXgBPkc7rcOK3Py+xpqMcoTWn290nqxIxLxRVmSeHLabE7+n1m3WnCumlm9Q==";
136
-
};
137
-
};
138
-
"@tootallnate/once-1.1.2" = {
139
-
name = "_at_tootallnate_slash_once";
140
-
packageName = "@tootallnate/once";
141
-
version = "1.1.2";
142
-
src = fetchurl {
143
-
url = "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz";
144
-
sha512 = "RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==";
145
-
};
146
-
};
147
-
"@tootallnate/once-2.0.0" = {
148
-
name = "_at_tootallnate_slash_once";
149
-
packageName = "@tootallnate/once";
150
-
version = "2.0.0";
151
-
src = fetchurl {
152
-
url = "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz";
153
-
sha512 = "XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==";
154
-
};
155
-
};
156
-
"@yarnpkg/lockfile-1.1.0" = {
157
-
name = "_at_yarnpkg_slash_lockfile";
158
-
packageName = "@yarnpkg/lockfile";
159
-
version = "1.1.0";
160
-
src = fetchurl {
161
-
url = "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
162
-
sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
163
-
};
164
-
};
165
-
"abbrev-1.1.1" = {
166
-
name = "abbrev";
167
-
packageName = "abbrev";
168
-
version = "1.1.1";
169
-
src = fetchurl {
170
-
url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
171
-
sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
172
-
};
173
-
};
174
-
"agent-base-6.0.2" = {
175
-
name = "agent-base";
176
-
packageName = "agent-base";
177
-
version = "6.0.2";
178
-
src = fetchurl {
179
-
url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz";
180
-
sha512 = "RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==";
181
-
};
182
-
};
183
-
"agentkeepalive-4.2.1" = {
184
-
name = "agentkeepalive";
185
-
packageName = "agentkeepalive";
186
-
version = "4.2.1";
187
-
src = fetchurl {
188
-
url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz";
189
-
sha512 = "Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==";
190
-
};
191
-
};
192
-
"aggregate-error-3.1.0" = {
193
-
name = "aggregate-error";
194
-
packageName = "aggregate-error";
195
-
version = "3.1.0";
196
-
src = fetchurl {
197
-
url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
198
-
sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
199
-
};
200
-
};
201
-
"ajv-8.9.0" = {
202
-
name = "ajv";
203
-
packageName = "ajv";
204
-
version = "8.9.0";
205
-
src = fetchurl {
206
-
url = "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz";
207
-
sha512 = "qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==";
208
-
};
209
-
};
210
-
"ajv-formats-2.1.1" = {
211
-
name = "ajv-formats";
212
-
packageName = "ajv-formats";
213
-
version = "2.1.1";
214
-
src = fetchurl {
215
-
url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz";
216
-
sha512 = "Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==";
217
-
};
218
-
};
219
-
"ansi-colors-4.1.1" = {
220
-
name = "ansi-colors";
221
-
packageName = "ansi-colors";
222
-
version = "4.1.1";
223
-
src = fetchurl {
224
-
url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
225
-
sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
226
-
};
227
-
};
228
-
"ansi-escapes-4.3.2" = {
229
-
name = "ansi-escapes";
230
-
packageName = "ansi-escapes";
231
-
version = "4.3.2";
232
-
src = fetchurl {
233
-
url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
234
-
sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==";
235
-
};
236
-
};
237
-
"ansi-regex-5.0.1" = {
238
-
name = "ansi-regex";
239
-
packageName = "ansi-regex";
240
-
version = "5.0.1";
241
-
src = fetchurl {
242
-
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
243
-
sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
244
-
};
245
-
};
246
-
"ansi-styles-4.3.0" = {
247
-
name = "ansi-styles";
248
-
packageName = "ansi-styles";
249
-
version = "4.3.0";
250
-
src = fetchurl {
251
-
url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
252
-
sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
253
-
};
254
-
};
255
-
"aproba-2.0.0" = {
256
-
name = "aproba";
257
-
packageName = "aproba";
258
-
version = "2.0.0";
259
-
src = fetchurl {
260
-
url = "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz";
261
-
sha512 = "lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==";
262
-
};
263
-
};
264
-
"are-we-there-yet-3.0.0" = {
265
-
name = "are-we-there-yet";
266
-
packageName = "are-we-there-yet";
267
-
version = "3.0.0";
268
-
src = fetchurl {
269
-
url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz";
270
-
sha512 = "0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==";
271
-
};
272
-
};
273
-
"balanced-match-1.0.2" = {
274
-
name = "balanced-match";
275
-
packageName = "balanced-match";
276
-
version = "1.0.2";
277
-
src = fetchurl {
278
-
url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
279
-
sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
280
-
};
281
-
};
282
-
"base64-js-1.5.1" = {
283
-
name = "base64-js";
284
-
packageName = "base64-js";
285
-
version = "1.5.1";
286
-
src = fetchurl {
287
-
url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
288
-
sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
289
-
};
290
-
};
291
-
"bl-4.1.0" = {
292
-
name = "bl";
293
-
packageName = "bl";
294
-
version = "4.1.0";
295
-
src = fetchurl {
296
-
url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
297
-
sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
298
-
};
299
-
};
300
-
"brace-expansion-1.1.11" = {
301
-
name = "brace-expansion";
302
-
packageName = "brace-expansion";
303
-
version = "1.1.11";
304
-
src = fetchurl {
305
-
url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
306
-
sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
307
-
};
308
-
};
309
-
"brace-expansion-2.0.1" = {
310
-
name = "brace-expansion";
311
-
packageName = "brace-expansion";
312
-
version = "2.0.1";
313
-
src = fetchurl {
314
-
url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz";
315
-
sha512 = "XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==";
316
-
};
317
-
};
318
-
"buffer-5.7.1" = {
319
-
name = "buffer";
320
-
packageName = "buffer";
321
-
version = "5.7.1";
322
-
src = fetchurl {
323
-
url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
324
-
sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
325
-
};
326
-
};
327
-
"builtins-1.0.3" = {
328
-
name = "builtins";
329
-
packageName = "builtins";
330
-
version = "1.0.3";
331
-
src = fetchurl {
332
-
url = "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz";
333
-
sha512 = "uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==";
334
-
};
335
-
};
336
-
"cacache-15.3.0" = {
337
-
name = "cacache";
338
-
packageName = "cacache";
339
-
version = "15.3.0";
340
-
src = fetchurl {
341
-
url = "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz";
342
-
sha512 = "VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==";
343
-
};
344
-
};
345
-
"cacache-16.1.0" = {
346
-
name = "cacache";
347
-
packageName = "cacache";
348
-
version = "16.1.0";
349
-
src = fetchurl {
350
-
url = "https://registry.npmjs.org/cacache/-/cacache-16.1.0.tgz";
351
-
sha512 = "Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ==";
352
-
};
353
-
};
354
-
"chalk-4.1.2" = {
355
-
name = "chalk";
356
-
packageName = "chalk";
357
-
version = "4.1.2";
358
-
src = fetchurl {
359
-
url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
360
-
sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
361
-
};
362
-
};
363
-
"chardet-0.7.0" = {
364
-
name = "chardet";
365
-
packageName = "chardet";
366
-
version = "0.7.0";
367
-
src = fetchurl {
368
-
url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
369
-
sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
370
-
};
371
-
};
372
-
"chownr-2.0.0" = {
373
-
name = "chownr";
374
-
packageName = "chownr";
375
-
version = "2.0.0";
376
-
src = fetchurl {
377
-
url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
378
-
sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
379
-
};
380
-
};
381
-
"clean-stack-2.2.0" = {
382
-
name = "clean-stack";
383
-
packageName = "clean-stack";
384
-
version = "2.2.0";
385
-
src = fetchurl {
386
-
url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
387
-
sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
388
-
};
389
-
};
390
-
"cli-cursor-3.1.0" = {
391
-
name = "cli-cursor";
392
-
packageName = "cli-cursor";
393
-
version = "3.1.0";
394
-
src = fetchurl {
395
-
url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz";
396
-
sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==";
397
-
};
398
-
};
399
-
"cli-spinners-2.6.1" = {
400
-
name = "cli-spinners";
401
-
packageName = "cli-spinners";
402
-
version = "2.6.1";
403
-
src = fetchurl {
404
-
url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz";
405
-
sha512 = "x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==";
406
-
};
407
-
};
408
-
"cli-width-3.0.0" = {
409
-
name = "cli-width";
410
-
packageName = "cli-width";
411
-
version = "3.0.0";
412
-
src = fetchurl {
413
-
url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz";
414
-
sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==";
415
-
};
416
-
};
417
-
"clone-1.0.4" = {
418
-
name = "clone";
419
-
packageName = "clone";
420
-
version = "1.0.4";
421
-
src = fetchurl {
422
-
url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz";
423
-
sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
424
-
};
425
-
};
426
-
"color-convert-2.0.1" = {
427
-
name = "color-convert";
428
-
packageName = "color-convert";
429
-
version = "2.0.1";
430
-
src = fetchurl {
431
-
url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
432
-
sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
433
-
};
434
-
};
435
-
"color-name-1.1.4" = {
436
-
name = "color-name";
437
-
packageName = "color-name";
438
-
version = "1.1.4";
439
-
src = fetchurl {
440
-
url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
441
-
sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
442
-
};
443
-
};
444
-
"color-support-1.1.3" = {
445
-
name = "color-support";
446
-
packageName = "color-support";
447
-
version = "1.1.3";
448
-
src = fetchurl {
449
-
url = "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz";
450
-
sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
451
-
};
452
-
};
453
-
"concat-map-0.0.1" = {
454
-
name = "concat-map";
455
-
packageName = "concat-map";
456
-
version = "0.0.1";
457
-
src = fetchurl {
458
-
url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
459
-
sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
460
-
};
461
-
};
462
-
"console-control-strings-1.1.0" = {
463
-
name = "console-control-strings";
464
-
packageName = "console-control-strings";
465
-
version = "1.1.0";
466
-
src = fetchurl {
467
-
url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
468
-
sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
469
-
};
470
-
};
471
-
"debug-4.3.3" = {
472
-
name = "debug";
473
-
packageName = "debug";
474
-
version = "4.3.3";
475
-
src = fetchurl {
476
-
url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
477
-
sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
478
-
};
479
-
};
480
-
"defaults-1.0.3" = {
481
-
name = "defaults";
482
-
packageName = "defaults";
483
-
version = "1.0.3";
484
-
src = fetchurl {
485
-
url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz";
486
-
sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
487
-
};
488
-
};
489
-
"define-lazy-prop-2.0.0" = {
490
-
name = "define-lazy-prop";
491
-
packageName = "define-lazy-prop";
492
-
version = "2.0.0";
493
-
src = fetchurl {
494
-
url = "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz";
495
-
sha512 = "Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==";
496
-
};
497
-
};
498
-
"delegates-1.0.0" = {
499
-
name = "delegates";
500
-
packageName = "delegates";
501
-
version = "1.0.0";
502
-
src = fetchurl {
503
-
url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
504
-
sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
505
-
};
506
-
};
507
-
"depd-1.1.2" = {
508
-
name = "depd";
509
-
packageName = "depd";
510
-
version = "1.1.2";
511
-
src = fetchurl {
512
-
url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
513
-
sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
514
-
};
515
-
};
516
-
"emoji-regex-8.0.0" = {
517
-
name = "emoji-regex";
518
-
packageName = "emoji-regex";
519
-
version = "8.0.0";
520
-
src = fetchurl {
521
-
url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
522
-
sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
523
-
};
524
-
};
525
-
"encoding-0.1.13" = {
526
-
name = "encoding";
527
-
packageName = "encoding";
528
-
version = "0.1.13";
529
-
src = fetchurl {
530
-
url = "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz";
531
-
sha512 = "ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==";
532
-
};
533
-
};
534
-
"env-paths-2.2.1" = {
535
-
name = "env-paths";
536
-
packageName = "env-paths";
537
-
version = "2.2.1";
538
-
src = fetchurl {
539
-
url = "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz";
540
-
sha512 = "+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==";
541
-
};
542
-
};
543
-
"err-code-2.0.3" = {
544
-
name = "err-code";
545
-
packageName = "err-code";
546
-
version = "2.0.3";
547
-
src = fetchurl {
548
-
url = "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz";
549
-
sha512 = "2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==";
550
-
};
551
-
};
552
-
"escape-string-regexp-1.0.5" = {
553
-
name = "escape-string-regexp";
554
-
packageName = "escape-string-regexp";
555
-
version = "1.0.5";
556
-
src = fetchurl {
557
-
url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
558
-
sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
559
-
};
560
-
};
561
-
"external-editor-3.1.0" = {
562
-
name = "external-editor";
563
-
packageName = "external-editor";
564
-
version = "3.1.0";
565
-
src = fetchurl {
566
-
url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
567
-
sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
568
-
};
569
-
};
570
-
"fast-deep-equal-3.1.3" = {
571
-
name = "fast-deep-equal";
572
-
packageName = "fast-deep-equal";
573
-
version = "3.1.3";
574
-
src = fetchurl {
575
-
url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
576
-
sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
577
-
};
578
-
};
579
-
"fast-json-stable-stringify-2.1.0" = {
580
-
name = "fast-json-stable-stringify";
581
-
packageName = "fast-json-stable-stringify";
582
-
version = "2.1.0";
583
-
src = fetchurl {
584
-
url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
585
-
sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
586
-
};
587
-
};
588
-
"figures-3.2.0" = {
589
-
name = "figures";
590
-
packageName = "figures";
591
-
version = "3.2.0";
592
-
src = fetchurl {
593
-
url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz";
594
-
sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==";
595
-
};
596
-
};
597
-
"fs-minipass-2.1.0" = {
598
-
name = "fs-minipass";
599
-
packageName = "fs-minipass";
600
-
version = "2.1.0";
601
-
src = fetchurl {
602
-
url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
603
-
sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
604
-
};
605
-
};
606
-
"fs.realpath-1.0.0" = {
607
-
name = "fs.realpath";
608
-
packageName = "fs.realpath";
609
-
version = "1.0.0";
610
-
src = fetchurl {
611
-
url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
612
-
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
613
-
};
614
-
};
615
-
"function-bind-1.1.1" = {
616
-
name = "function-bind";
617
-
packageName = "function-bind";
618
-
version = "1.1.1";
619
-
src = fetchurl {
620
-
url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
621
-
sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
622
-
};
623
-
};
624
-
"gauge-4.0.4" = {
625
-
name = "gauge";
626
-
packageName = "gauge";
627
-
version = "4.0.4";
628
-
src = fetchurl {
629
-
url = "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz";
630
-
sha512 = "f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==";
631
-
};
632
-
};
633
-
"glob-7.2.3" = {
634
-
name = "glob";
635
-
packageName = "glob";
636
-
version = "7.2.3";
637
-
src = fetchurl {
638
-
url = "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz";
639
-
sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==";
640
-
};
641
-
};
642
-
"glob-8.0.3" = {
643
-
name = "glob";
644
-
packageName = "glob";
645
-
version = "8.0.3";
646
-
src = fetchurl {
647
-
url = "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz";
648
-
sha512 = "ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==";
649
-
};
650
-
};
651
-
"graceful-fs-4.2.10" = {
652
-
name = "graceful-fs";
653
-
packageName = "graceful-fs";
654
-
version = "4.2.10";
655
-
src = fetchurl {
656
-
url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
657
-
sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
658
-
};
659
-
};
660
-
"has-1.0.3" = {
661
-
name = "has";
662
-
packageName = "has";
663
-
version = "1.0.3";
664
-
src = fetchurl {
665
-
url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
666
-
sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
667
-
};
668
-
};
669
-
"has-flag-4.0.0" = {
670
-
name = "has-flag";
671
-
packageName = "has-flag";
672
-
version = "4.0.0";
673
-
src = fetchurl {
674
-
url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
675
-
sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
676
-
};
677
-
};
678
-
"has-unicode-2.0.1" = {
679
-
name = "has-unicode";
680
-
packageName = "has-unicode";
681
-
version = "2.0.1";
682
-
src = fetchurl {
683
-
url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
684
-
sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
685
-
};
686
-
};
687
-
"hosted-git-info-4.1.0" = {
688
-
name = "hosted-git-info";
689
-
packageName = "hosted-git-info";
690
-
version = "4.1.0";
691
-
src = fetchurl {
692
-
url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz";
693
-
sha512 = "kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==";
694
-
};
695
-
};
696
-
"http-cache-semantics-4.1.0" = {
697
-
name = "http-cache-semantics";
698
-
packageName = "http-cache-semantics";
699
-
version = "4.1.0";
700
-
src = fetchurl {
701
-
url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
702
-
sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
703
-
};
704
-
};
705
-
"http-proxy-agent-4.0.1" = {
706
-
name = "http-proxy-agent";
707
-
packageName = "http-proxy-agent";
708
-
version = "4.0.1";
709
-
src = fetchurl {
710
-
url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
711
-
sha512 = "k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==";
712
-
};
713
-
};
714
-
"http-proxy-agent-5.0.0" = {
715
-
name = "http-proxy-agent";
716
-
packageName = "http-proxy-agent";
717
-
version = "5.0.0";
718
-
src = fetchurl {
719
-
url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz";
720
-
sha512 = "n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==";
721
-
};
722
-
};
723
-
"https-proxy-agent-5.0.1" = {
724
-
name = "https-proxy-agent";
725
-
packageName = "https-proxy-agent";
726
-
version = "5.0.1";
727
-
src = fetchurl {
728
-
url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz";
729
-
sha512 = "dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==";
730
-
};
731
-
};
732
-
"humanize-ms-1.2.1" = {
733
-
name = "humanize-ms";
734
-
packageName = "humanize-ms";
735
-
version = "1.2.1";
736
-
src = fetchurl {
737
-
url = "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz";
738
-
sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
739
-
};
740
-
};
741
-
"iconv-lite-0.4.24" = {
742
-
name = "iconv-lite";
743
-
packageName = "iconv-lite";
744
-
version = "0.4.24";
745
-
src = fetchurl {
746
-
url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
747
-
sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
748
-
};
749
-
};
750
-
"iconv-lite-0.6.3" = {
751
-
name = "iconv-lite";
752
-
packageName = "iconv-lite";
753
-
version = "0.6.3";
754
-
src = fetchurl {
755
-
url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz";
756
-
sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
757
-
};
758
-
};
759
-
"ieee754-1.2.1" = {
760
-
name = "ieee754";
761
-
packageName = "ieee754";
762
-
version = "1.2.1";
763
-
src = fetchurl {
764
-
url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
765
-
sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
766
-
};
767
-
};
768
-
"ignore-walk-4.0.1" = {
769
-
name = "ignore-walk";
770
-
packageName = "ignore-walk";
771
-
version = "4.0.1";
772
-
src = fetchurl {
773
-
url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz";
774
-
sha512 = "rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==";
775
-
};
776
-
};
777
-
"imurmurhash-0.1.4" = {
778
-
name = "imurmurhash";
779
-
packageName = "imurmurhash";
780
-
version = "0.1.4";
781
-
src = fetchurl {
782
-
url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
783
-
sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
784
-
};
785
-
};
786
-
"indent-string-4.0.0" = {
787
-
name = "indent-string";
788
-
packageName = "indent-string";
789
-
version = "4.0.0";
790
-
src = fetchurl {
791
-
url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
792
-
sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
793
-
};
794
-
};
795
-
"infer-owner-1.0.4" = {
796
-
name = "infer-owner";
797
-
packageName = "infer-owner";
798
-
version = "1.0.4";
799
-
src = fetchurl {
800
-
url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz";
801
-
sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==";
802
-
};
803
-
};
804
-
"inflight-1.0.6" = {
805
-
name = "inflight";
806
-
packageName = "inflight";
807
-
version = "1.0.6";
808
-
src = fetchurl {
809
-
url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
810
-
sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
811
-
};
812
-
};
813
-
"inherits-2.0.4" = {
814
-
name = "inherits";
815
-
packageName = "inherits";
816
-
version = "2.0.4";
817
-
src = fetchurl {
818
-
url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
819
-
sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
820
-
};
821
-
};
822
-
"ini-2.0.0" = {
823
-
name = "ini";
824
-
packageName = "ini";
825
-
version = "2.0.0";
826
-
src = fetchurl {
827
-
url = "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz";
828
-
sha512 = "7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==";
829
-
};
830
-
};
831
-
"inquirer-8.2.0" = {
832
-
name = "inquirer";
833
-
packageName = "inquirer";
834
-
version = "8.2.0";
835
-
src = fetchurl {
836
-
url = "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz";
837
-
sha512 = "0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==";
838
-
};
839
-
};
840
-
"ip-1.1.8" = {
841
-
name = "ip";
842
-
packageName = "ip";
843
-
version = "1.1.8";
844
-
src = fetchurl {
845
-
url = "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz";
846
-
sha512 = "PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==";
847
-
};
848
-
};
849
-
"is-core-module-2.9.0" = {
850
-
name = "is-core-module";
851
-
packageName = "is-core-module";
852
-
version = "2.9.0";
853
-
src = fetchurl {
854
-
url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz";
855
-
sha512 = "+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==";
856
-
};
857
-
};
858
-
"is-docker-2.2.1" = {
859
-
name = "is-docker";
860
-
packageName = "is-docker";
861
-
version = "2.2.1";
862
-
src = fetchurl {
863
-
url = "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz";
864
-
sha512 = "F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==";
865
-
};
866
-
};
867
-
"is-fullwidth-code-point-3.0.0" = {
868
-
name = "is-fullwidth-code-point";
869
-
packageName = "is-fullwidth-code-point";
870
-
version = "3.0.0";
871
-
src = fetchurl {
872
-
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
873
-
sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
874
-
};
875
-
};
876
-
"is-interactive-1.0.0" = {
877
-
name = "is-interactive";
878
-
packageName = "is-interactive";
879
-
version = "1.0.0";
880
-
src = fetchurl {
881
-
url = "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz";
882
-
sha512 = "2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==";
883
-
};
884
-
};
885
-
"is-lambda-1.0.1" = {
886
-
name = "is-lambda";
887
-
packageName = "is-lambda";
888
-
version = "1.0.1";
889
-
src = fetchurl {
890
-
url = "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz";
891
-
sha1 = "3d9877899e6a53efc0160504cde15f82e6f061d5";
892
-
};
893
-
};
894
-
"is-unicode-supported-0.1.0" = {
895
-
name = "is-unicode-supported";
896
-
packageName = "is-unicode-supported";
897
-
version = "0.1.0";
898
-
src = fetchurl {
899
-
url = "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz";
900
-
sha512 = "knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==";
901
-
};
902
-
};
903
-
"is-wsl-2.2.0" = {
904
-
name = "is-wsl";
905
-
packageName = "is-wsl";
906
-
version = "2.2.0";
907
-
src = fetchurl {
908
-
url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
909
-
sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
910
-
};
911
-
};
912
-
"isexe-2.0.0" = {
913
-
name = "isexe";
914
-
packageName = "isexe";
915
-
version = "2.0.0";
916
-
src = fetchurl {
917
-
url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
918
-
sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
919
-
};
920
-
};
921
-
"json-parse-even-better-errors-2.3.1" = {
922
-
name = "json-parse-even-better-errors";
923
-
packageName = "json-parse-even-better-errors";
924
-
version = "2.3.1";
925
-
src = fetchurl {
926
-
url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
927
-
sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
928
-
};
929
-
};
930
-
"json-schema-traverse-1.0.0" = {
931
-
name = "json-schema-traverse";
932
-
packageName = "json-schema-traverse";
933
-
version = "1.0.0";
934
-
src = fetchurl {
935
-
url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
936
-
sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
937
-
};
938
-
};
939
-
"jsonc-parser-3.0.0" = {
940
-
name = "jsonc-parser";
941
-
packageName = "jsonc-parser";
942
-
version = "3.0.0";
943
-
src = fetchurl {
944
-
url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz";
945
-
sha512 = "fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==";
946
-
};
947
-
};
948
-
"jsonparse-1.3.1" = {
949
-
name = "jsonparse";
950
-
packageName = "jsonparse";
951
-
version = "1.3.1";
952
-
src = fetchurl {
953
-
url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz";
954
-
sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
955
-
};
956
-
};
957
-
"lodash-4.17.21" = {
958
-
name = "lodash";
959
-
packageName = "lodash";
960
-
version = "4.17.21";
961
-
src = fetchurl {
962
-
url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
963
-
sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
964
-
};
965
-
};
966
-
"log-symbols-4.1.0" = {
967
-
name = "log-symbols";
968
-
packageName = "log-symbols";
969
-
version = "4.1.0";
970
-
src = fetchurl {
971
-
url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz";
972
-
sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
973
-
};
974
-
};
975
-
"lru-cache-6.0.0" = {
976
-
name = "lru-cache";
977
-
packageName = "lru-cache";
978
-
version = "6.0.0";
979
-
src = fetchurl {
980
-
url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
981
-
sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
982
-
};
983
-
};
984
-
"lru-cache-7.10.1" = {
985
-
name = "lru-cache";
986
-
packageName = "lru-cache";
987
-
version = "7.10.1";
988
-
src = fetchurl {
989
-
url = "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz";
990
-
sha512 = "BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==";
991
-
};
992
-
};
993
-
"magic-string-0.25.7" = {
994
-
name = "magic-string";
995
-
packageName = "magic-string";
996
-
version = "0.25.7";
997
-
src = fetchurl {
998
-
url = "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz";
999
-
sha512 = "4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==";
1000
-
};
1001
-
};
1002
-
"make-fetch-happen-10.1.5" = {
1003
-
name = "make-fetch-happen";
1004
-
packageName = "make-fetch-happen";
1005
-
version = "10.1.5";
1006
-
src = fetchurl {
1007
-
url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.5.tgz";
1008
-
sha512 = "mucOj2H0Jn/ax7H9K9T1bf0p1nn/mBFa551Os7ed9xRfLEx20aZhZeLslmRYfAaAqXZUGipcs+m5KOKvOH0XKA==";
1009
-
};
1010
-
};
1011
-
"make-fetch-happen-9.1.0" = {
1012
-
name = "make-fetch-happen";
1013
-
packageName = "make-fetch-happen";
1014
-
version = "9.1.0";
1015
-
src = fetchurl {
1016
-
url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz";
1017
-
sha512 = "+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==";
1018
-
};
1019
-
};
1020
-
"mimic-fn-2.1.0" = {
1021
-
name = "mimic-fn";
1022
-
packageName = "mimic-fn";
1023
-
version = "2.1.0";
1024
-
src = fetchurl {
1025
-
url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
1026
-
sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
1027
-
};
1028
-
};
1029
-
"minimatch-3.1.2" = {
1030
-
name = "minimatch";
1031
-
packageName = "minimatch";
1032
-
version = "3.1.2";
1033
-
src = fetchurl {
1034
-
url = "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz";
1035
-
sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
1036
-
};
1037
-
};
1038
-
"minimatch-5.1.0" = {
1039
-
name = "minimatch";
1040
-
packageName = "minimatch";
1041
-
version = "5.1.0";
1042
-
src = fetchurl {
1043
-
url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz";
1044
-
sha512 = "9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==";
1045
-
};
1046
-
};
1047
-
"minipass-3.1.6" = {
1048
-
name = "minipass";
1049
-
packageName = "minipass";
1050
-
version = "3.1.6";
1051
-
src = fetchurl {
1052
-
url = "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz";
1053
-
sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
1054
-
};
1055
-
};
1056
-
"minipass-collect-1.0.2" = {
1057
-
name = "minipass-collect";
1058
-
packageName = "minipass-collect";
1059
-
version = "1.0.2";
1060
-
src = fetchurl {
1061
-
url = "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz";
1062
-
sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
1063
-
};
1064
-
};
1065
-
"minipass-fetch-1.4.1" = {
1066
-
name = "minipass-fetch";
1067
-
packageName = "minipass-fetch";
1068
-
version = "1.4.1";
1069
-
src = fetchurl {
1070
-
url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz";
1071
-
sha512 = "CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==";
1072
-
};
1073
-
};
1074
-
"minipass-fetch-2.1.0" = {
1075
-
name = "minipass-fetch";
1076
-
packageName = "minipass-fetch";
1077
-
version = "2.1.0";
1078
-
src = fetchurl {
1079
-
url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz";
1080
-
sha512 = "H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==";
1081
-
};
1082
-
};
1083
-
"minipass-flush-1.0.5" = {
1084
-
name = "minipass-flush";
1085
-
packageName = "minipass-flush";
1086
-
version = "1.0.5";
1087
-
src = fetchurl {
1088
-
url = "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz";
1089
-
sha512 = "JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==";
1090
-
};
1091
-
};
1092
-
"minipass-json-stream-1.0.1" = {
1093
-
name = "minipass-json-stream";
1094
-
packageName = "minipass-json-stream";
1095
-
version = "1.0.1";
1096
-
src = fetchurl {
1097
-
url = "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz";
1098
-
sha512 = "ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==";
1099
-
};
1100
-
};
1101
-
"minipass-pipeline-1.2.4" = {
1102
-
name = "minipass-pipeline";
1103
-
packageName = "minipass-pipeline";
1104
-
version = "1.2.4";
1105
-
src = fetchurl {
1106
-
url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
1107
-
sha512 = "xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==";
1108
-
};
1109
-
};
1110
-
"minipass-sized-1.0.3" = {
1111
-
name = "minipass-sized";
1112
-
packageName = "minipass-sized";
1113
-
version = "1.0.3";
1114
-
src = fetchurl {
1115
-
url = "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz";
1116
-
sha512 = "MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==";
1117
-
};
1118
-
};
1119
-
"minizlib-2.1.2" = {
1120
-
name = "minizlib";
1121
-
packageName = "minizlib";
1122
-
version = "2.1.2";
1123
-
src = fetchurl {
1124
-
url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
1125
-
sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
1126
-
};
1127
-
};
1128
-
"mkdirp-1.0.4" = {
1129
-
name = "mkdirp";
1130
-
packageName = "mkdirp";
1131
-
version = "1.0.4";
1132
-
src = fetchurl {
1133
-
url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
1134
-
sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
1135
-
};
1136
-
};
1137
-
"ms-2.1.2" = {
1138
-
name = "ms";
1139
-
packageName = "ms";
1140
-
version = "2.1.2";
1141
-
src = fetchurl {
1142
-
url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
1143
-
sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
1144
-
};
1145
-
};
1146
-
"mute-stream-0.0.8" = {
1147
-
name = "mute-stream";
1148
-
packageName = "mute-stream";
1149
-
version = "0.0.8";
1150
-
src = fetchurl {
1151
-
url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz";
1152
-
sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
1153
-
};
1154
-
};
1155
-
"negotiator-0.6.3" = {
1156
-
name = "negotiator";
1157
-
packageName = "negotiator";
1158
-
version = "0.6.3";
1159
-
src = fetchurl {
1160
-
url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";
1161
-
sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==";
1162
-
};
1163
-
};
1164
-
"node-gyp-8.4.1" = {
1165
-
name = "node-gyp";
1166
-
packageName = "node-gyp";
1167
-
version = "8.4.1";
1168
-
src = fetchurl {
1169
-
url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz";
1170
-
sha512 = "olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==";
1171
-
};
1172
-
};
1173
-
"nopt-5.0.0" = {
1174
-
name = "nopt";
1175
-
packageName = "nopt";
1176
-
version = "5.0.0";
1177
-
src = fetchurl {
1178
-
url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
1179
-
sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
1180
-
};
1181
-
};
1182
-
"npm-bundled-1.1.2" = {
1183
-
name = "npm-bundled";
1184
-
packageName = "npm-bundled";
1185
-
version = "1.1.2";
1186
-
src = fetchurl {
1187
-
url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz";
1188
-
sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
1189
-
};
1190
-
};
1191
-
"npm-install-checks-4.0.0" = {
1192
-
name = "npm-install-checks";
1193
-
packageName = "npm-install-checks";
1194
-
version = "4.0.0";
1195
-
src = fetchurl {
1196
-
url = "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz";
1197
-
sha512 = "09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==";
1198
-
};
1199
-
};
1200
-
"npm-normalize-package-bin-1.0.1" = {
1201
-
name = "npm-normalize-package-bin";
1202
-
packageName = "npm-normalize-package-bin";
1203
-
version = "1.0.1";
1204
-
src = fetchurl {
1205
-
url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
1206
-
sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
1207
-
};
1208
-
};
1209
-
"npm-package-arg-8.1.5" = {
1210
-
name = "npm-package-arg";
1211
-
packageName = "npm-package-arg";
1212
-
version = "8.1.5";
1213
-
src = fetchurl {
1214
-
url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz";
1215
-
sha512 = "LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==";
1216
-
};
1217
-
};
1218
-
"npm-packlist-3.0.0" = {
1219
-
name = "npm-packlist";
1220
-
packageName = "npm-packlist";
1221
-
version = "3.0.0";
1222
-
src = fetchurl {
1223
-
url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz";
1224
-
sha512 = "L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==";
1225
-
};
1226
-
};
1227
-
"npm-pick-manifest-6.1.1" = {
1228
-
name = "npm-pick-manifest";
1229
-
packageName = "npm-pick-manifest";
1230
-
version = "6.1.1";
1231
-
src = fetchurl {
1232
-
url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz";
1233
-
sha512 = "dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==";
1234
-
};
1235
-
};
1236
-
"npm-registry-fetch-12.0.2" = {
1237
-
name = "npm-registry-fetch";
1238
-
packageName = "npm-registry-fetch";
1239
-
version = "12.0.2";
1240
-
src = fetchurl {
1241
-
url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz";
1242
-
sha512 = "Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==";
1243
-
};
1244
-
};
1245
-
"npmlog-6.0.2" = {
1246
-
name = "npmlog";
1247
-
packageName = "npmlog";
1248
-
version = "6.0.2";
1249
-
src = fetchurl {
1250
-
url = "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz";
1251
-
sha512 = "/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==";
1252
-
};
1253
-
};
1254
-
"once-1.4.0" = {
1255
-
name = "once";
1256
-
packageName = "once";
1257
-
version = "1.4.0";
1258
-
src = fetchurl {
1259
-
url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
1260
-
sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
1261
-
};
1262
-
};
1263
-
"onetime-5.1.2" = {
1264
-
name = "onetime";
1265
-
packageName = "onetime";
1266
-
version = "5.1.2";
1267
-
src = fetchurl {
1268
-
url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
1269
-
sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
1270
-
};
1271
-
};
1272
-
"open-8.4.0" = {
1273
-
name = "open";
1274
-
packageName = "open";
1275
-
version = "8.4.0";
1276
-
src = fetchurl {
1277
-
url = "https://registry.npmjs.org/open/-/open-8.4.0.tgz";
1278
-
sha512 = "XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==";
1279
-
};
1280
-
};
1281
-
"ora-5.4.1" = {
1282
-
name = "ora";
1283
-
packageName = "ora";
1284
-
version = "5.4.1";
1285
-
src = fetchurl {
1286
-
url = "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz";
1287
-
sha512 = "5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==";
1288
-
};
1289
-
};
1290
-
"os-tmpdir-1.0.2" = {
1291
-
name = "os-tmpdir";
1292
-
packageName = "os-tmpdir";
1293
-
version = "1.0.2";
1294
-
src = fetchurl {
1295
-
url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
1296
-
sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
1297
-
};
1298
-
};
1299
-
"p-map-4.0.0" = {
1300
-
name = "p-map";
1301
-
packageName = "p-map";
1302
-
version = "4.0.0";
1303
-
src = fetchurl {
1304
-
url = "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz";
1305
-
sha512 = "/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==";
1306
-
};
1307
-
};
1308
-
"pacote-12.0.3" = {
1309
-
name = "pacote";
1310
-
packageName = "pacote";
1311
-
version = "12.0.3";
1312
-
src = fetchurl {
1313
-
url = "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz";
1314
-
sha512 = "CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==";
1315
-
};
1316
-
};
1317
-
"path-is-absolute-1.0.1" = {
1318
-
name = "path-is-absolute";
1319
-
packageName = "path-is-absolute";
1320
-
version = "1.0.1";
1321
-
src = fetchurl {
1322
-
url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
1323
-
sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
1324
-
};
1325
-
};
1326
-
"path-parse-1.0.7" = {
1327
-
name = "path-parse";
1328
-
packageName = "path-parse";
1329
-
version = "1.0.7";
1330
-
src = fetchurl {
1331
-
url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
1332
-
sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
1333
-
};
1334
-
};
1335
-
"promise-inflight-1.0.1" = {
1336
-
name = "promise-inflight";
1337
-
packageName = "promise-inflight";
1338
-
version = "1.0.1";
1339
-
src = fetchurl {
1340
-
url = "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz";
1341
-
sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
1342
-
};
1343
-
};
1344
-
"promise-retry-2.0.1" = {
1345
-
name = "promise-retry";
1346
-
packageName = "promise-retry";
1347
-
version = "2.0.1";
1348
-
src = fetchurl {
1349
-
url = "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz";
1350
-
sha512 = "y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==";
1351
-
};
1352
-
};
1353
-
"punycode-2.1.1" = {
1354
-
name = "punycode";
1355
-
packageName = "punycode";
1356
-
version = "2.1.1";
1357
-
src = fetchurl {
1358
-
url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
1359
-
sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
1360
-
};
1361
-
};
1362
-
"read-package-json-fast-2.0.3" = {
1363
-
name = "read-package-json-fast";
1364
-
packageName = "read-package-json-fast";
1365
-
version = "2.0.3";
1366
-
src = fetchurl {
1367
-
url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz";
1368
-
sha512 = "W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==";
1369
-
};
1370
-
};
1371
-
"readable-stream-3.6.0" = {
1372
-
name = "readable-stream";
1373
-
packageName = "readable-stream";
1374
-
version = "3.6.0";
1375
-
src = fetchurl {
1376
-
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
1377
-
sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
1378
-
};
1379
-
};
1380
-
"require-from-string-2.0.2" = {
1381
-
name = "require-from-string";
1382
-
packageName = "require-from-string";
1383
-
version = "2.0.2";
1384
-
src = fetchurl {
1385
-
url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
1386
-
sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
1387
-
};
1388
-
};
1389
-
"resolve-1.22.0" = {
1390
-
name = "resolve";
1391
-
packageName = "resolve";
1392
-
version = "1.22.0";
1393
-
src = fetchurl {
1394
-
url = "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz";
1395
-
sha512 = "Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==";
1396
-
};
1397
-
};
1398
-
"restore-cursor-3.1.0" = {
1399
-
name = "restore-cursor";
1400
-
packageName = "restore-cursor";
1401
-
version = "3.1.0";
1402
-
src = fetchurl {
1403
-
url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz";
1404
-
sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==";
1405
-
};
1406
-
};
1407
-
"retry-0.12.0" = {
1408
-
name = "retry";
1409
-
packageName = "retry";
1410
-
version = "0.12.0";
1411
-
src = fetchurl {
1412
-
url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
1413
-
sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
1414
-
};
1415
-
};
1416
-
"rimraf-3.0.2" = {
1417
-
name = "rimraf";
1418
-
packageName = "rimraf";
1419
-
version = "3.0.2";
1420
-
src = fetchurl {
1421
-
url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
1422
-
sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
1423
-
};
1424
-
};
1425
-
"run-async-2.4.1" = {
1426
-
name = "run-async";
1427
-
packageName = "run-async";
1428
-
version = "2.4.1";
1429
-
src = fetchurl {
1430
-
url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
1431
-
sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
1432
-
};
1433
-
};
1434
-
"rxjs-6.6.7" = {
1435
-
name = "rxjs";
1436
-
packageName = "rxjs";
1437
-
version = "6.6.7";
1438
-
src = fetchurl {
1439
-
url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz";
1440
-
sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==";
1441
-
};
1442
-
};
1443
-
"rxjs-7.5.5" = {
1444
-
name = "rxjs";
1445
-
packageName = "rxjs";
1446
-
version = "7.5.5";
1447
-
src = fetchurl {
1448
-
url = "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz";
1449
-
sha512 = "sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==";
1450
-
};
1451
-
};
1452
-
"safe-buffer-5.2.1" = {
1453
-
name = "safe-buffer";
1454
-
packageName = "safe-buffer";
1455
-
version = "5.2.1";
1456
-
src = fetchurl {
1457
-
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
1458
-
sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
1459
-
};
1460
-
};
1461
-
"safer-buffer-2.1.2" = {
1462
-
name = "safer-buffer";
1463
-
packageName = "safer-buffer";
1464
-
version = "2.1.2";
1465
-
src = fetchurl {
1466
-
url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
1467
-
sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
1468
-
};
1469
-
};
1470
-
"semver-7.3.5" = {
1471
-
name = "semver";
1472
-
packageName = "semver";
1473
-
version = "7.3.5";
1474
-
src = fetchurl {
1475
-
url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
1476
-
sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
1477
-
};
1478
-
};
1479
-
"set-blocking-2.0.0" = {
1480
-
name = "set-blocking";
1481
-
packageName = "set-blocking";
1482
-
version = "2.0.0";
1483
-
src = fetchurl {
1484
-
url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
1485
-
sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
1486
-
};
1487
-
};
1488
-
"signal-exit-3.0.7" = {
1489
-
name = "signal-exit";
1490
-
packageName = "signal-exit";
1491
-
version = "3.0.7";
1492
-
src = fetchurl {
1493
-
url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz";
1494
-
sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
1495
-
};
1496
-
};
1497
-
"smart-buffer-4.2.0" = {
1498
-
name = "smart-buffer";
1499
-
packageName = "smart-buffer";
1500
-
version = "4.2.0";
1501
-
src = fetchurl {
1502
-
url = "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz";
1503
-
sha512 = "94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==";
1504
-
};
1505
-
};
1506
-
"socks-2.6.2" = {
1507
-
name = "socks";
1508
-
packageName = "socks";
1509
-
version = "2.6.2";
1510
-
src = fetchurl {
1511
-
url = "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz";
1512
-
sha512 = "zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==";
1513
-
};
1514
-
};
1515
-
"socks-proxy-agent-6.2.0" = {
1516
-
name = "socks-proxy-agent";
1517
-
packageName = "socks-proxy-agent";
1518
-
version = "6.2.0";
1519
-
src = fetchurl {
1520
-
url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz";
1521
-
sha512 = "wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==";
1522
-
};
1523
-
};
1524
-
"source-map-0.7.3" = {
1525
-
name = "source-map";
1526
-
packageName = "source-map";
1527
-
version = "0.7.3";
1528
-
src = fetchurl {
1529
-
url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz";
1530
-
sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
1531
-
};
1532
-
};
1533
-
"sourcemap-codec-1.4.8" = {
1534
-
name = "sourcemap-codec";
1535
-
packageName = "sourcemap-codec";
1536
-
version = "1.4.8";
1537
-
src = fetchurl {
1538
-
url = "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz";
1539
-
sha512 = "9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==";
1540
-
};
1541
-
};
1542
-
"ssri-8.0.1" = {
1543
-
name = "ssri";
1544
-
packageName = "ssri";
1545
-
version = "8.0.1";
1546
-
src = fetchurl {
1547
-
url = "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz";
1548
-
sha512 = "97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==";
1549
-
};
1550
-
};
1551
-
"ssri-9.0.1" = {
1552
-
name = "ssri";
1553
-
packageName = "ssri";
1554
-
version = "9.0.1";
1555
-
src = fetchurl {
1556
-
url = "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz";
1557
-
sha512 = "o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==";
1558
-
};
1559
-
};
1560
-
"string-width-4.2.3" = {
1561
-
name = "string-width";
1562
-
packageName = "string-width";
1563
-
version = "4.2.3";
1564
-
src = fetchurl {
1565
-
url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
1566
-
sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
1567
-
};
1568
-
};
1569
-
"string_decoder-1.3.0" = {
1570
-
name = "string_decoder";
1571
-
packageName = "string_decoder";
1572
-
version = "1.3.0";
1573
-
src = fetchurl {
1574
-
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
1575
-
sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
1576
-
};
1577
-
};
1578
-
"strip-ansi-6.0.1" = {
1579
-
name = "strip-ansi";
1580
-
packageName = "strip-ansi";
1581
-
version = "6.0.1";
1582
-
src = fetchurl {
1583
-
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
1584
-
sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
1585
-
};
1586
-
};
1587
-
"supports-color-7.2.0" = {
1588
-
name = "supports-color";
1589
-
packageName = "supports-color";
1590
-
version = "7.2.0";
1591
-
src = fetchurl {
1592
-
url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
1593
-
sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
1594
-
};
1595
-
};
1596
-
"supports-preserve-symlinks-flag-1.0.0" = {
1597
-
name = "supports-preserve-symlinks-flag";
1598
-
packageName = "supports-preserve-symlinks-flag";
1599
-
version = "1.0.0";
1600
-
src = fetchurl {
1601
-
url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
1602
-
sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
1603
-
};
1604
-
};
1605
-
"symbol-observable-4.0.0" = {
1606
-
name = "symbol-observable";
1607
-
packageName = "symbol-observable";
1608
-
version = "4.0.0";
1609
-
src = fetchurl {
1610
-
url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz";
1611
-
sha512 = "b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==";
1612
-
};
1613
-
};
1614
-
"tar-6.1.11" = {
1615
-
name = "tar";
1616
-
packageName = "tar";
1617
-
version = "6.1.11";
1618
-
src = fetchurl {
1619
-
url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
1620
-
sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
1621
-
};
1622
-
};
1623
-
"through-2.3.8" = {
1624
-
name = "through";
1625
-
packageName = "through";
1626
-
version = "2.3.8";
1627
-
src = fetchurl {
1628
-
url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
1629
-
sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
1630
-
};
1631
-
};
1632
-
"tmp-0.0.33" = {
1633
-
name = "tmp";
1634
-
packageName = "tmp";
1635
-
version = "0.0.33";
1636
-
src = fetchurl {
1637
-
url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
1638
-
sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
1639
-
};
1640
-
};
1641
-
"tslib-1.14.1" = {
1642
-
name = "tslib";
1643
-
packageName = "tslib";
1644
-
version = "1.14.1";
1645
-
src = fetchurl {
1646
-
url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz";
1647
-
sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
1648
-
};
1649
-
};
1650
-
"tslib-2.4.0" = {
1651
-
name = "tslib";
1652
-
packageName = "tslib";
1653
-
version = "2.4.0";
1654
-
src = fetchurl {
1655
-
url = "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz";
1656
-
sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==";
1657
-
};
1658
-
};
1659
-
"type-fest-0.21.3" = {
1660
-
name = "type-fest";
1661
-
packageName = "type-fest";
1662
-
version = "0.21.3";
1663
-
src = fetchurl {
1664
-
url = "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz";
1665
-
sha512 = "t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==";
1666
-
};
1667
-
};
1668
-
"unique-filename-1.1.1" = {
1669
-
name = "unique-filename";
1670
-
packageName = "unique-filename";
1671
-
version = "1.1.1";
1672
-
src = fetchurl {
1673
-
url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz";
1674
-
sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==";
1675
-
};
1676
-
};
1677
-
"unique-slug-2.0.2" = {
1678
-
name = "unique-slug";
1679
-
packageName = "unique-slug";
1680
-
version = "2.0.2";
1681
-
src = fetchurl {
1682
-
url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz";
1683
-
sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
1684
-
};
1685
-
};
1686
-
"uri-js-4.4.1" = {
1687
-
name = "uri-js";
1688
-
packageName = "uri-js";
1689
-
version = "4.4.1";
1690
-
src = fetchurl {
1691
-
url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
1692
-
sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
1693
-
};
1694
-
};
1695
-
"util-deprecate-1.0.2" = {
1696
-
name = "util-deprecate";
1697
-
packageName = "util-deprecate";
1698
-
version = "1.0.2";
1699
-
src = fetchurl {
1700
-
url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
1701
-
sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
1702
-
};
1703
-
};
1704
-
"uuid-8.3.2" = {
1705
-
name = "uuid";
1706
-
packageName = "uuid";
1707
-
version = "8.3.2";
1708
-
src = fetchurl {
1709
-
url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
1710
-
sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
1711
-
};
1712
-
};
1713
-
"validate-npm-package-name-3.0.0" = {
1714
-
name = "validate-npm-package-name";
1715
-
packageName = "validate-npm-package-name";
1716
-
version = "3.0.0";
1717
-
src = fetchurl {
1718
-
url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
1719
-
sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
1720
-
};
1721
-
};
1722
-
"wcwidth-1.0.1" = {
1723
-
name = "wcwidth";
1724
-
packageName = "wcwidth";
1725
-
version = "1.0.1";
1726
-
src = fetchurl {
1727
-
url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
1728
-
sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
1729
-
};
1730
-
};
1731
-
"which-2.0.2" = {
1732
-
name = "which";
1733
-
packageName = "which";
1734
-
version = "2.0.2";
1735
-
src = fetchurl {
1736
-
url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
1737
-
sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
1738
-
};
1739
-
};
1740
-
"wide-align-1.1.5" = {
1741
-
name = "wide-align";
1742
-
packageName = "wide-align";
1743
-
version = "1.1.5";
1744
-
src = fetchurl {
1745
-
url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz";
1746
-
sha512 = "eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==";
1747
-
};
1748
-
};
1749
-
"wrappy-1.0.2" = {
1750
-
name = "wrappy";
1751
-
packageName = "wrappy";
1752
-
version = "1.0.2";
1753
-
src = fetchurl {
1754
-
url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
1755
-
sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
1756
-
};
1757
-
};
1758
-
"yallist-4.0.0" = {
1759
-
name = "yallist";
1760
-
packageName = "yallist";
1761
-
version = "4.0.0";
1762
-
src = fetchurl {
1763
-
url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
1764
-
sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
1765
-
};
1766
-
};
1767
-
};
1768
-
in {
1769
-
"@angular/cli" = nodeEnv.buildNodePackage {
1770
-
name = "_at_angular_slash_cli";
1771
-
packageName = "@angular/cli";
1772
-
version = "13.3.6";
1773
-
src = fetchurl {
1774
-
url = "https://registry.npmjs.org/@angular/cli/-/cli-13.3.6.tgz";
1775
-
sha512 = "+OC7uspa8oDGQzcpml3DI8XyLvYurhSFhcmLPsyY/naHAV78NKSNf3dIWMPNozAioDzkZXPZXH0dwSdb+cOeQA==";
1776
-
};
1777
-
dependencies = [
1778
-
sources."@angular-devkit/architect-0.1303.6"
1779
-
sources."@angular-devkit/core-13.3.6"
1780
-
sources."@angular-devkit/schematics-13.3.6"
1781
-
sources."@gar/promisify-1.1.3"
1782
-
sources."@npmcli/fs-1.1.1"
1783
-
sources."@npmcli/git-2.1.0"
1784
-
sources."@npmcli/installed-package-contents-1.0.7"
1785
-
sources."@npmcli/move-file-1.1.2"
1786
-
sources."@npmcli/node-gyp-1.0.3"
1787
-
sources."@npmcli/promise-spawn-1.3.2"
1788
-
sources."@npmcli/run-script-2.0.0"
1789
-
sources."@schematics/angular-13.3.6"
1790
-
sources."@tootallnate/once-1.1.2"
1791
-
sources."@yarnpkg/lockfile-1.1.0"
1792
-
sources."abbrev-1.1.1"
1793
-
sources."agent-base-6.0.2"
1794
-
sources."agentkeepalive-4.2.1"
1795
-
sources."aggregate-error-3.1.0"
1796
-
sources."ajv-8.9.0"
1797
-
sources."ajv-formats-2.1.1"
1798
-
sources."ansi-colors-4.1.1"
1799
-
sources."ansi-escapes-4.3.2"
1800
-
sources."ansi-regex-5.0.1"
1801
-
sources."ansi-styles-4.3.0"
1802
-
sources."aproba-2.0.0"
1803
-
sources."are-we-there-yet-3.0.0"
1804
-
sources."balanced-match-1.0.2"
1805
-
sources."base64-js-1.5.1"
1806
-
sources."bl-4.1.0"
1807
-
sources."brace-expansion-1.1.11"
1808
-
sources."buffer-5.7.1"
1809
-
sources."builtins-1.0.3"
1810
-
sources."cacache-15.3.0"
1811
-
sources."chalk-4.1.2"
1812
-
sources."chardet-0.7.0"
1813
-
sources."chownr-2.0.0"
1814
-
sources."clean-stack-2.2.0"
1815
-
sources."cli-cursor-3.1.0"
1816
-
sources."cli-spinners-2.6.1"
1817
-
sources."cli-width-3.0.0"
1818
-
sources."clone-1.0.4"
1819
-
sources."color-convert-2.0.1"
1820
-
sources."color-name-1.1.4"
1821
-
sources."color-support-1.1.3"
1822
-
sources."concat-map-0.0.1"
1823
-
sources."console-control-strings-1.1.0"
1824
-
sources."debug-4.3.3"
1825
-
sources."defaults-1.0.3"
1826
-
sources."define-lazy-prop-2.0.0"
1827
-
sources."delegates-1.0.0"
1828
-
sources."depd-1.1.2"
1829
-
sources."emoji-regex-8.0.0"
1830
-
(sources."encoding-0.1.13"
1831
-
// {
1832
-
dependencies = [
1833
-
sources."iconv-lite-0.6.3"
1834
-
];
1835
-
})
1836
-
sources."env-paths-2.2.1"
1837
-
sources."err-code-2.0.3"
1838
-
sources."escape-string-regexp-1.0.5"
1839
-
sources."external-editor-3.1.0"
1840
-
sources."fast-deep-equal-3.1.3"
1841
-
sources."fast-json-stable-stringify-2.1.0"
1842
-
sources."figures-3.2.0"
1843
-
sources."fs-minipass-2.1.0"
1844
-
sources."fs.realpath-1.0.0"
1845
-
sources."function-bind-1.1.1"
1846
-
sources."gauge-4.0.4"
1847
-
sources."glob-7.2.3"
1848
-
sources."graceful-fs-4.2.10"
1849
-
sources."has-1.0.3"
1850
-
sources."has-flag-4.0.0"
1851
-
sources."has-unicode-2.0.1"
1852
-
sources."hosted-git-info-4.1.0"
1853
-
sources."http-cache-semantics-4.1.0"
1854
-
sources."http-proxy-agent-4.0.1"
1855
-
sources."https-proxy-agent-5.0.1"
1856
-
sources."humanize-ms-1.2.1"
1857
-
sources."iconv-lite-0.4.24"
1858
-
sources."ieee754-1.2.1"
1859
-
sources."ignore-walk-4.0.1"
1860
-
sources."imurmurhash-0.1.4"
1861
-
sources."indent-string-4.0.0"
1862
-
sources."infer-owner-1.0.4"
1863
-
sources."inflight-1.0.6"
1864
-
sources."inherits-2.0.4"
1865
-
sources."ini-2.0.0"
1866
-
(sources."inquirer-8.2.0"
1867
-
// {
1868
-
dependencies = [
1869
-
sources."rxjs-7.5.5"
1870
-
sources."tslib-2.4.0"
1871
-
];
1872
-
})
1873
-
sources."ip-1.1.8"
1874
-
sources."is-core-module-2.9.0"
1875
-
sources."is-docker-2.2.1"
1876
-
sources."is-fullwidth-code-point-3.0.0"
1877
-
sources."is-interactive-1.0.0"
1878
-
sources."is-lambda-1.0.1"
1879
-
sources."is-unicode-supported-0.1.0"
1880
-
sources."is-wsl-2.2.0"
1881
-
sources."isexe-2.0.0"
1882
-
sources."json-parse-even-better-errors-2.3.1"
1883
-
sources."json-schema-traverse-1.0.0"
1884
-
sources."jsonc-parser-3.0.0"
1885
-
sources."jsonparse-1.3.1"
1886
-
sources."lodash-4.17.21"
1887
-
sources."log-symbols-4.1.0"
1888
-
sources."lru-cache-6.0.0"
1889
-
sources."magic-string-0.25.7"
1890
-
sources."make-fetch-happen-9.1.0"
1891
-
sources."mimic-fn-2.1.0"
1892
-
sources."minimatch-3.1.2"
1893
-
sources."minipass-3.1.6"
1894
-
sources."minipass-collect-1.0.2"
1895
-
sources."minipass-fetch-1.4.1"
1896
-
sources."minipass-flush-1.0.5"
1897
-
sources."minipass-json-stream-1.0.1"
1898
-
sources."minipass-pipeline-1.2.4"
1899
-
sources."minipass-sized-1.0.3"
1900
-
sources."minizlib-2.1.2"
1901
-
sources."mkdirp-1.0.4"
1902
-
sources."ms-2.1.2"
1903
-
sources."mute-stream-0.0.8"
1904
-
sources."negotiator-0.6.3"
1905
-
sources."node-gyp-8.4.1"
1906
-
sources."nopt-5.0.0"
1907
-
sources."npm-bundled-1.1.2"
1908
-
sources."npm-install-checks-4.0.0"
1909
-
sources."npm-normalize-package-bin-1.0.1"
1910
-
sources."npm-package-arg-8.1.5"
1911
-
sources."npm-packlist-3.0.0"
1912
-
sources."npm-pick-manifest-6.1.1"
1913
-
(sources."npm-registry-fetch-12.0.2"
1914
-
// {
1915
-
dependencies = [
1916
-
sources."@npmcli/fs-2.1.0"
1917
-
sources."@npmcli/move-file-2.0.0"
1918
-
sources."@tootallnate/once-2.0.0"
1919
-
sources."brace-expansion-2.0.1"
1920
-
sources."cacache-16.1.0"
1921
-
sources."glob-8.0.3"
1922
-
sources."http-proxy-agent-5.0.0"
1923
-
sources."lru-cache-7.10.1"
1924
-
(sources."make-fetch-happen-10.1.5"
1925
-
// {
1926
-
dependencies = [
1927
-
sources."minipass-fetch-2.1.0"
1928
-
];
1929
-
})
1930
-
sources."minimatch-5.1.0"
1931
-
sources."ssri-9.0.1"
1932
-
];
1933
-
})
1934
-
sources."npmlog-6.0.2"
1935
-
sources."once-1.4.0"
1936
-
sources."onetime-5.1.2"
1937
-
sources."open-8.4.0"
1938
-
sources."ora-5.4.1"
1939
-
sources."os-tmpdir-1.0.2"
1940
-
sources."p-map-4.0.0"
1941
-
sources."pacote-12.0.3"
1942
-
sources."path-is-absolute-1.0.1"
1943
-
sources."path-parse-1.0.7"
1944
-
sources."promise-inflight-1.0.1"
1945
-
sources."promise-retry-2.0.1"
1946
-
sources."punycode-2.1.1"
1947
-
sources."read-package-json-fast-2.0.3"
1948
-
sources."readable-stream-3.6.0"
1949
-
sources."require-from-string-2.0.2"
1950
-
sources."resolve-1.22.0"
1951
-
sources."restore-cursor-3.1.0"
1952
-
sources."retry-0.12.0"
1953
-
sources."rimraf-3.0.2"
1954
-
sources."run-async-2.4.1"
1955
-
sources."rxjs-6.6.7"
1956
-
sources."safe-buffer-5.2.1"
1957
-
sources."safer-buffer-2.1.2"
1958
-
sources."semver-7.3.5"
1959
-
sources."set-blocking-2.0.0"
1960
-
sources."signal-exit-3.0.7"
1961
-
sources."smart-buffer-4.2.0"
1962
-
sources."socks-2.6.2"
1963
-
sources."socks-proxy-agent-6.2.0"
1964
-
sources."source-map-0.7.3"
1965
-
sources."sourcemap-codec-1.4.8"
1966
-
sources."ssri-8.0.1"
1967
-
sources."string-width-4.2.3"
1968
-
sources."string_decoder-1.3.0"
1969
-
sources."strip-ansi-6.0.1"
1970
-
sources."supports-color-7.2.0"
1971
-
sources."supports-preserve-symlinks-flag-1.0.0"
1972
-
sources."symbol-observable-4.0.0"
1973
-
sources."tar-6.1.11"
1974
-
sources."through-2.3.8"
1975
-
sources."tmp-0.0.33"
1976
-
sources."tslib-1.14.1"
1977
-
sources."type-fest-0.21.3"
1978
-
sources."unique-filename-1.1.1"
1979
-
sources."unique-slug-2.0.2"
1980
-
sources."uri-js-4.4.1"
1981
-
sources."util-deprecate-1.0.2"
1982
-
sources."uuid-8.3.2"
1983
-
sources."validate-npm-package-name-3.0.0"
1984
-
sources."wcwidth-1.0.1"
1985
-
sources."which-2.0.2"
1986
-
sources."wide-align-1.1.5"
1987
-
sources."wrappy-1.0.2"
1988
-
sources."yallist-4.0.0"
1989
-
];
1990
-
buildInputs = globalBuildInputs;
1991
-
meta = {
1992
-
description = "CLI tool for Angular";
1993
-
homepage = "https://github.com/angular/angular-cli";
1994
-
license = "MIT";
1995
-
};
1996
-
production = true;
1997
-
bypassCache = true;
1998
-
reconstructLock = true;
1999
-
};
2000
-
}
-14
packages/nodePackages/override.nix
-14
packages/nodePackages/override.nix
+1
packages/rofi-unicode/default.nix
+1
packages/rofi-unicode/default.nix
+21
-4
parts/auxiliary.nix
+21
-4
parts/auxiliary.nix
···
1
-
{self, ...}: {
1
+
_: {
2
2
perSystem = {
3
3
config,
4
4
pkgs,
···
7
7
system,
8
8
...
9
9
}: {
10
-
formatter = self.packages.${system}.alejandra;
10
+
formatter = pkgs.alejandra;
11
+
12
+
apps.rotate.meta.description = "rotate keys for sops";
13
+
apps.rotate.program = let
14
+
sopsrotate = pkgs.writeShellScript "sops-rotate" ''
15
+
file=$1
16
+
17
+
printf "Rotating %s...\n" "''${file}"
18
+
${pkgs.sops}/bin/sops -r -i "''${file}"
19
+
'';
20
+
rotate = pkgs.writeShellScript "rotate" ''
21
+
${pkgs.git}/bin/git switch -c rotate-$(${pkgs.coreutils}/bin/date -Idate) >/dev/null || true
22
+
23
+
${pkgs.findutils}/bin/find secrets -type f -exec ${sopsrotate} '{}' \;
24
+
25
+
${pkgs.git}/bin/git add secrets
26
+
${pkgs.git}/bin/git commit -m "chore: rotate secrets $(${pkgs.coreutils}/bin/date -Idate)"
27
+
'';
28
+
in "${rotate}";
11
29
12
30
devShells.default = pkgs.mkShell {
13
31
packages = builtins.attrValues {
14
-
inherit (self'.packages) nil alejandra;
15
-
inherit (inputs'.unstable.legacyPackages) npins rust-analyzer rustc cargo rustfmt clippy openssl pkg-config sops age ssh-to-age;
32
+
inherit (pkgs) npins sops age ssh-to-age nil alejandra;
16
33
};
17
34
};
18
35
};
+13
-7
parts/home_configs.nix
+13
-7
parts/home_configs.nix
···
1
1
{
2
2
self,
3
-
nixpkgs,
4
3
inputs,
5
4
config,
6
5
lib,
6
+
npins,
7
7
...
8
8
}: let
9
9
cfg = config.nobbz.homeConfigurations;
10
10
11
-
configs = builtins.mapAttrs (_: config: config.finalHome) cfg;
11
+
enabledCfgs = lib.filterAttrs (_: config: config.enable) cfg;
12
12
13
-
packages = builtins.attrValues (builtins.mapAttrs (_: config: config.packageModule) cfg);
13
+
configs = builtins.mapAttrs (_: config: config.finalHome) enabledCfgs;
14
+
15
+
packages = builtins.attrValues (builtins.mapAttrs (_: config: config.packageModule) enabledCfgs);
14
16
in {
15
17
options = {
16
18
nobbz.homeConfigurations = lib.mkOption {
···
20
22
...
21
23
}: {
22
24
options = {
25
+
enable = lib.mkEnableOption "Enable this home configuration." // {default = true;};
26
+
23
27
nixpkgs = lib.mkOption {
24
28
type = lib.types.unspecified;
25
29
default = inputs.nixpkgs;
···
83
87
};
84
88
};
85
89
86
-
config = {
87
-
entryPoint = import "${self}/home/configurations/${config.username}@${config.hostname}.nix" (inputs // {inherit self;});
90
+
config = lib.mkIf config.enable {
91
+
entryPoint = import "${self}/home/configurations/${config.username}_at_${config.hostname}.nix" (inputs // {inherit self;});
88
92
base =
89
93
if lib.strings.hasSuffix "-darwin" config.system
90
94
then "Users"
···
95
99
[
96
100
config.entryPoint
97
101
{home = {inherit (config) username homeDirectory;};}
98
-
{systemd.user.startServices = "legacy";}
102
+
{systemd.user.startServices = "sd-switch";}
103
+
{news.display = "silent";}
99
104
inputs.nixos-vscode-server.nixosModules.home
100
105
inputs.sops-nix.homeManagerModules.sops
101
106
]
102
107
++ config.modules
103
-
++ builtins.attrValues self.homeModules
108
+
++ builtins.attrValues self.homeManagerModules
104
109
++ builtins.attrValues self.mixedModules;
105
110
106
111
packageName = "home/config/${name}";
···
110
115
111
116
finalHome = inputs.home-manager.lib.homeManagerConfiguration {
112
117
pkgs = config.nixpkgs.legacyPackages.${config.system};
118
+
extraSpecialArgs.npins = npins;
113
119
modules = config.finalModules;
114
120
};
115
121
};
+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
+
}
+3
-4
parts/system_configs.nix
+3
-4
parts/system_configs.nix
···
84
84
85
85
finalModules =
86
86
[
87
-
{boot.cleanTmpDir = true;}
87
+
{boot.tmp.cleanOnBoot = true;}
88
88
{networking.hostName = name;}
89
89
{nix.flakes.enable = true;}
90
-
{system.configurationRevision = self.rev or "dirty";}
90
+
{system.configurationRevision = self.rev or "${self.dirtyRev or "unknown"}-dirty";}
91
91
{documentation.man.enable = true;}
92
92
{documentation.man.generateCaches = true;}
93
+
{nixpkgs.hostPlatform.system = config.system;}
93
94
inputs.sops-nix.nixosModules.sops
94
95
]
95
96
++ config.modules
···
105
106
packageModule = {${config.system}.${config.packageName} = config.finalPackage;};
106
107
107
108
finalSystem = config.nixpkgs.lib.nixosSystem {
108
-
inherit (config) system;
109
-
110
109
modules = config.finalModules;
111
110
};
112
111
};
+18
-15
secrets/mimas/default.yaml
+18
-15
secrets/mimas/default.yaml
···
1
-
restic: ENC[AES256_GCM,data:+4nwZVi6T3yd4Q==,iv:9NdaTuhLR57mv8OaCSyso9cfr8V1iQNuQuWInKyi3bI=,tag:ByjPvjpO9YQHzdSQ48UGxQ==,type:str]
2
-
backblaze: ENC[AES256_GCM,data:d/LtXbUVd5d07c3GqEs5oRwQXLFqKapLxKcMGylExw6cDV6w4XtwCNBtm8ohSMd7X3xtHOWVV8W2MiE9KHsqTKk8jAIFOFMwG29k1qAXqiX2fVPUVtYCeezi5oBm+lynr+njNn8=,iv:kGHjUYWYpY5XBVr9EpPMwxaEsFFBwn+aMgmHScK9quo=,tag:WDVLzOqa9WMwmTSUz/DCYQ==,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]
3
6
sops:
4
7
kms: []
5
8
gcp_kms: []
···
9
12
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
10
13
enc: |
11
14
-----BEGIN AGE ENCRYPTED FILE-----
12
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1U0xXZjZDN090YkNRRSsw
13
-
YlBPR2lQMXM2aHZ4WHRoSjRMUFpmRWJjOHpvCmsrUDZkcFJpRWk5djEvWDJsRE5O
14
-
Zm9YdjlDY0VOYTJjRmJIMUl4OWVNbEUKLS0tIElvMERlamNBWjdFRkMzOC9RVnpo
15
-
TzJwdjNCRHVFeDNQZVZEM1JXd0hPUFUKQITfkwBEWM41s1396WfuZGbFyZf885t9
16
-
+uIQ53TAsmk1hv4noW4tE4d0AFbwE5vgWkFP205Ciq7r6uOkL+wOeg==
15
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRkRBcWlnM25ablJBdit2
16
+
b0Y1Zy9PM2FjRmg5ajN0YWpsaitJUStTTXlBCnpuL2wvU0hxZFpDREhiTmhnaFFi
17
+
LzkxMmVHYWo4TkZOaStJeHZsK3pIZG8KLS0tIC9DSjUyUVk0SG9mNHd0aGdXN1ow
18
+
N2Q4QWk3RU83dUxuSG85V1N5TzFkSVEK58cE6fE6mxjRCgtHRMqqahqMkwYeUnhx
19
+
F2Bdg5oPPQxoqIf769fZD9L1y/+LZ6Vi4YhJkjfMVFXk6YtEjKJSmQ==
17
20
-----END AGE ENCRYPTED FILE-----
18
21
- recipient: age10jl78vwyqk622dpn2890l9jl4et3p7lsr8wh8vusem3j8jdxle8qg000qa
19
22
enc: |
20
23
-----BEGIN AGE ENCRYPTED FILE-----
21
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnbWQ5QUg2RWRISjIrR2Y3
22
-
VmZnT0N2SDVPSU5EdFNIT0YvVXF4RUhCNzFFCnFsSDE0OVNWVGFMOWdlVVIwaTh0
23
-
cGpya1FMQTdsNlNYNjNUWTNNWVhQM3MKLS0tIFhoU1AvRjBwckxPbE84bW55Y3c3
24
-
WTVUbzgrNmwycFUraHBzUlZWR3VCQ1UK27oYZV02fKzJ1sbqtpwnDhmBlkCNo67l
25
-
S3HLuh+/rEp4xDUVY6Zcs8ua/u5iSzo0whvUBTYPF6BCVW7/3xL8ww==
24
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkY3EzZyt1YXFTTlVhK3Rk
25
+
djUvWmVjeDBSajlENCtNc0RZMVRVWUVuRWtBCnFpa0NnVjBvb0J2NCtpYitoMngv
26
+
WkxNaDNIQnRSSm0vSXF4a1RYcmNsK2MKLS0tIE5zSkExNVVJYkZsV244eElwMTd0
27
+
N3ZuTHhVdFo0aGZVMXFlaTdsRi9lRUUK+K5CUVCdjtMVegVydoKRIb6kpPnfBiy1
28
+
FxkXAp3a1qU2WqNvXCSO3gtUwYaMG+MPSCWI1gA3oBjGGtTasHyHsQ==
26
29
-----END AGE ENCRYPTED FILE-----
27
-
lastmodified: "2023-02-23T21:11:49Z"
28
-
mac: ENC[AES256_GCM,data:qTpbgZ8ZpqbhW8TJul5dVUXur2ZK3SbzJ3wE0b2albjqVz+Y22TIhQAQKDZ8OHGvROVO9B+yKHY9xt54Pth4dpjJftbnhbnmcEZCxG5BybKbBiA5u1sFs7I9EffrM4qgYGugC8tTz/JNNQmRfCAQPjkEKb7i1LB0pYyEop0EKB8=,iv:N2oBn0uGyUKmX+mkdlrrVquDWcTpEjSiNU596R3gm90=,tag:EowbJbM/FVj+e7+wOtGDhw==,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]
29
32
pgp: []
30
33
unencrypted_suffix: _unencrypted
31
-
version: 3.7.3
34
+
version: 3.9.4
+14
-15
secrets/mimas/nmelzer/default.yaml
+14
-15
secrets/mimas/nmelzer/default.yaml
···
1
-
rustic: ENC[AES256_GCM,data:/rH3svpZdz/GKHs=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:TeyCRhHEEF9uMy8hs22a4Q==,type:str]
2
-
gh_hosts: ENC[AES256_GCM,data:AOaQG+/V0S/MD70HZA1zUiJj2w2dGYOQYnej9dFIS6AHGQi5VUUtBupscd7DZvAsgs0nkEEXL6dngIywaU/ZnlBi5He/7x5H1GPJlEJo3mnt6RvfrNunQztvQMhqPvxxot5/i37B,iv:iFRFCY7y00O3hTi2Ba7stqfVAGPm9M4QRgpbI7X5u1E=,tag:vt38Wm/VToo/c/YV5hAz/A==,type:str]
1
+
rustic: ENC[AES256_GCM,data:aYi1wQgLgRL3n40=,iv:NHuqnSibmY/RkJrSUWm0TbgG45iSdjso9ABI8SGqUTg=,tag:k13fNK3kDcylC53d/haqog==,type:str]
3
2
sops:
4
3
kms: []
5
4
gcp_kms: []
···
9
8
- recipient: age1wpwkf2g475umw3wwns57r8ucykvy6lflpc7uphs0mx9exsj04quqpy7t6r
10
9
enc: |
11
10
-----BEGIN AGE ENCRYPTED FILE-----
12
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRTAxMnpBMC94K1Y3c3FQ
13
-
YWhrQjdIV1dsMVZIWUxWRkJyQUQ4WWRvdEhJClZhamMvMk5jYWw0ZEVROFNTVmc3
14
-
T2JjTFZNd2xyM1NvSW9tcDlGYkhseWMKLS0tIE5MTEZ4WXJ5UzUxUkEvaG9sZ2dO
15
-
Z2ltMHlrenhUYXJFbkN5L09BTEV1aUEKI/nMtRFPlOyr4kV3NVDGKX7/TsBofVsV
16
-
FDht428Z6dU6AiojXuQ62Iu0wx5Ar8LTwxgmrU03E0CGv2DPhNKGPg==
11
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3U1ExOVN2aWVRVnB2M3RR
12
+
QmxQNDZnSWVWMW1IZWh5YmFmNTZYbGRzSFVRCjdvSGp1WThzc29aNUZQMHJDMThJ
13
+
MXNURHJUVVpDQ1hmUDBFamJ3TnRUSzQKLS0tIExXdWNoRm9aL29nUldQemwxOXdV
14
+
aktSY1lQZmxkTThpcU82Q0dwSUUzUmcKm2VCJHEUzjz2vXAJH1wOovNqzK6Hkk2z
15
+
hoIQzqgfQL3a4WA1q0Oj+R8wBChuRMUAYW4+TWCIAckKKwLqRyzBcQ==
17
16
-----END AGE ENCRYPTED FILE-----
18
17
- recipient: age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6
19
18
enc: |
20
19
-----BEGIN AGE ENCRYPTED FILE-----
21
-
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZdGduQ20rMkVRSjVwRk9s
22
-
QnVQREhVVkVBTGhUSWUzUlZiRDNaZVNQUVdnCklJQlowSUtDdExMcUdDcldSK0FJ
23
-
SFY0cUpSdEUzV2FocEt0cXVjNXdYMmcKLS0tIDNCbGpWU2N6UVlMNG9VZzZ2RkVS
24
-
VUgrWE5XdEFtRmF1Z3Q0ZUhYbXFhYWsKPpE3rUzBfqm2cuckrSuUztUExxrA/qpH
25
-
Be8drRHDMWbDBv60Ldi3R4phgmIISESHBHwIvdMLyJAozkkLQSqGhQ==
20
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSamQ1R0tHZGIxUlN3NWtV
21
+
Q1htSVdJMG5rUEN6Rm1QTStONys3YjNiVEdzCmE0bDJCa1VaVTIyK1IvTDBFbVhs
22
+
ZWVGSzdwUWpVZTNSYUkvNjNtTERnZHMKLS0tIHRLSnBxTm8rVVo5ME4vS0dKZXF5
23
+
MjdaWk9mZEczVGVxZEpnN3pCQTdMOFEKO4oemn8P9PYZVTsJ81oDy17PRAaeu3pn
24
+
zxZ5a8/IrS/lZfMJ1vYwlZf0AEgOMTSyjVMNyOkWAgWIq8z1UkrpUA==
26
25
-----END AGE ENCRYPTED FILE-----
27
-
lastmodified: "2023-03-12T13:59:40Z"
28
-
mac: ENC[AES256_GCM,data:O4XkXzsRa9pw+SpyICQeWkRzxjBi2+GAh4bKQZoBCF2g6e6Hz9KZJef2EAn7qteSNJvdJmB0bzoKg+Z6VO2Hm2RT1BtFKcBRxqA33BHHUEQpIZxnw+P1XpCaiKzJNoJoq5utrpiFOVPE2u6MPZtuhzgB38M8Ru6rXm55n4JRnlI=,iv:EjJuqi/gyNx/6XFNUnuPkYWlunahKrU+5jVM5K7rB2Q=,tag:ff9QkH4BulnDOcj8Kyt2gw==,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]
29
28
pgp: []
30
29
unencrypted_suffix: _unencrypted
31
-
version: 3.7.3
30
+
version: 3.8.1
+30
secrets/phoebe/nmelzer/default.yaml
+30
secrets/phoebe/nmelzer/default.yaml
···
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
+
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+IFgyNTUxOSAwMnNzT2dFWWVPRjh2QUdF
12
+
VUZkUzdsQXRISG9kaHVqSGp2UWhCNlN3cVFJCmtQbE9LelRkbW4yU3ZyWG9MdnZB
13
+
b1k1QUwrOXBZQTVoRTArNGFtTEJSU0kKLS0tIG5KS3ZFd0hKMEhsSkV4ck5za2VQ
14
+
YzFLSjNUVXNRaklnczVKdGQ4V0JYUE0KGVHj8sWKKvVGwMrYmx0Js1uI1DmD028V
15
+
R+Y+p8H766496hBt6Eza6r7JhKtLXR5CrcoItq8m+fWU6lu+ElsnAw==
16
+
-----END AGE ENCRYPTED FILE-----
17
+
- recipient: age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna
18
+
enc: |
19
+
-----BEGIN AGE ENCRYPTED FILE-----
20
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRSTB0dGxWOFhTK0FHcGxI
21
+
VkFKV2NkZTlJRVNSZ1dnWVBKQk02YmZ3aERnClZaeTFSYzRJZ3ZWQjNPc1BnanhU
22
+
ak1RZ0w0MDExZVlJWVNrYjZxMHZsNEkKLS0tIE9tWHlVMEFpek1VTFdROE8zUFZa
23
+
VU9yempBMGVXenkxdkpHZC9YdlFZYm8KsdOmOI4ah0pEjqPt9XnJNxMyFSY4eYsI
24
+
UOgJZqRhlG8Y4NL6J1DyJPfeKeIroTAbNoCb65lxWHHWfoPvt3gU3A==
25
+
-----END AGE ENCRYPTED FILE-----
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
+
pgp: []
29
+
unencrypted_suffix: _unencrypted
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
+36
secrets/users/nmelzer/github
+36
secrets/users/nmelzer/github
···
1
+
{
2
+
"data": "ENC[AES256_GCM,data:WaE9ywj9g4TvMdjrRmKjwxwTuak4gsPENMaP37qdxQTSvp+dhklwaIh+LIAIMhPHYtrhBMNj1viHnaIETwMIB7uUsblKIYa6AOxpi9CU9xPkpBhKGw7vMEfCjlj9rHPjB41W9EN/EDVgY0phYFRF7DSoOa1wpHouKwKbbaO3r8L+ZbN4BOiizquzMOVOxp1b71xsc34WvrAIQc7+0H5f145I+KPAKGkUSMrV7t0RJTC24ENa9Zz7n0NduoLokK/IGXt6tsQNnzdS/DTmLw2W6fVkb5b4uzEvkqgnQOuQilH4CMX+xsuEkUkWqe3E8sUlzvdUszAjfruQUvJDuC//Vvx0vE1Kx70h+8BCqDGPLIs/4aEtW7xfu5B09WOQKByyd86NArZsC6R+sbmTCPD7WLFV9NI7Sg+E1wkPSmtYUYeMTmvPwfNISLKC4KHNm0cp5rb0EhmZTxKu1qId59vNdpjTnTEz0AZAGoVB1pGi45Bb0pUE/n54WsNhuscOVHk2XdYH/BTcEU8VYpLvcNAWFX/a1MWc0Bx21e8Qk/KNZGuATrWLiXIhGxT33bmlm2/Lb+5LS7xwMxomu1g0xGzSzD3z2B9CExekUw7q9VWfAinVecHA8NbMLrajkqGQb7fbcTqXOQqXL6BrQDbaOb/hC/AffYq4SEurvP4BI30E1hArLIlHabLwxBOaNLB/Ii7i51BKWqQGaof01ziAWChptvSic/oN6xnF6CbpXLr1r/z5WoLm4MqEQJ4Qvp+vsAChan/1kG3S93xpgYof3PZsrSpxxfGSJq2qBZq5Xd//6CfHdwhdulaciKi32F0GV+DTkDAWTwOOy5fo8IC3bLnWr8rFo3iS0DhETR2V7s1/w6MU/0iuPz95TrBffNvaI9uSehJaQwI4a3Y2M79nxB9xfgHIsbh4+fef8OFa53snckCCzY74Rsv3Th7HliBLVcpAUNvaw5xFnECFkjq/uJVd3cJ3GnYO01InxRqkHm7Bl4RqA0tctpzM98p6RtidTAZ1RHZD3rwgU/oPoV8a32gcmhdRbm8m1/nBXDg2aoSXYJ9NhGtJ2hK+ufsW+szAv240SVX/JH5vk7w7T6H7n6UcZqxYozjAqawP7hUSB/eYfY3uKJIxUdJmGfnDq+L8/d15Pnbqb6zD9qSHi38OfKUTAe8WONWSiziK9EEO5R1EPAdsZod3CFBx0K/TfrBC2mpCZIUUY1HqIDICsDUoFdzj377tLQqcF6K/b0r0sL5rw8L0I6pZiYCCz4LfaBg+oCJwupTqnm1Lusstw1EZP0Psqt+pabj30wA5JPPbo+EB7X5oK6P9N7b/Hw9MpQNNddTvZk0bHI9l5hUZF/rv6TY/qVVCKcAH06bCbQfPvzV9Q6fc+e6/k401zVplq73+WjiqxUWm9iNhrWodXpLWH7Zj3Tcn/mmWNRYUvJE9IccTd+mQ+rvfAM8om66NH68zISbPlDeBuEUIhUlCihpUOerE5j/SasBuTqnrXNz1Z+aR3LT40r4QH2OMEeBR93pPbsZ2l/2zoqL8t685U8B3nimYAE6bwpdn6tErT3MnO2+R6VKIISaUm29Kang6jfDPgPaOZPVXCN05O35Of555TjbSn2XXsh7jqnnp7qW6zUXCcM2Q470yAlQXF9VAXLTI0zKkTVK5b4g0jNs9IFHXelw4vZNM26L5wsTVsvvjW8TpJm8Hkf/Flv3hjLQql21YyAejxRe/vu4ku80Gglwrqyu6wVdZtL28lqZwt0k06z19JuxbTwyck7cSQpMiHg5Ou/0ThqHJdEbCv10d61Be6bZ/kGaqG7mjzX16BjGJamzrRsW+dB96WGipFfLswFka4slB0Bsn5uA9awhNTR9JJyAk+6LvXDg/YigSYiwpXqcOoSPY8KrfBapNussU9oYPqIumdocMGvIzg9MOqpR4Kl9E/ZOyf0gzomIYqdP7elFNnmcxDmuGBwexqO188w2pRIQ7C/GrCwmarMJfe2ZKozmVAbMPaze9B3lLs2gb059tj6WF2xTJd/3HYxbdmUtMeGIrQkxKhFxBY/+bU8M4rhbR5HZiOJIfqko/lAPPQIB9UMGC0yBfGofaZYndHtJAjf9LKLtj3crHAPd1vsS7zyy8rhGkNGFHJNnYgyvYZT1A3eM36W7MlCnVImgENg50uV6xFFKzruiVLTLhF68bfKRKnncxw2sb0dKBGvVcOFm6At7ZgtM8bX2HIlM+7A==,iv:+pnvwKJLNUD+0tpxurFocDgK0qOGzVsYkcV6b6KYock=,tag:oVCamxWlyuQU7McVwxZUKw==,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+IFgyNTUxOSBOSEw0c0dWY0JhdGpMVFo1\nc2kzQm1FdHZIaEtuRG4zYUIyU0Z0QmVOdVZFCkpNTFJpTi9ha1VFb2l5czJONnl4\na3lYU1VmNmpBNzNBdVZEMjNRVjF0RG8KLS0tIFRhTEs1RFF0cTRnNTJqbDVJajh5\naG5UWExpVVl5YjZKUUQrT3gxR09CbVkKc64s7ROfryegUfEr+lS1KkbUDJo7+hso\nBvdJ4EJqS1Uu6H2XugpwBco640PKknJABrkL68LdUGlsUsITqK/MFQ==\n-----END AGE ENCRYPTED FILE-----\n"
12
+
},
13
+
{
14
+
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGOFBxeFNVU1RTSUNCOG1B\nZGhZQm1WSjR1NmsrYkpBd3A0M3liNlNEYXdZCkJKUkp3TGRsMzMrZ2RvU1YxVU0y\nMDJGT0dwQzM3T2pHZFplcFozYi9Pek0KLS0tIFlEb3VuaVJ1QlJPRWlVVDJaMnV4\nQzNhNzBuL1JZeFljb1hwMkp6NE9hY0EKtSZY/B+DbKkDW6cof3sjud77Qz+S6qO4\n81N0I13ywjMmLKLE/eXKEwRXvZkTV8o4AfkZIZo+JPvMgXcujrTFzA==\n-----END AGE ENCRYPTED FILE-----\n"
16
+
},
17
+
{
18
+
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKMHA0ZHRjU2tYSEZna2ZV\nUjFTRDdMV1B1Ny9YbGlXVmEyRUNuMlRWSDFjClR6cjhHaHVKRFFGWEJHdERZZDRw\nQU9sVC9SNGZUUGxrVUdJWlVwbGpBa1EKLS0tIHYyeWZtS2ZjWTVJZWExTkJWdzFJ\na3NDMUNhSEtiamhIVUV6T2luNjI0S1UKIVHr+P3jpJY/k44EEE1RYB/PQxI4E3lw\n1DdyulRw0CvhuxVoZsINckTjgNIfRSeJlqS2OYEYfHPvqg2xcBNlGg==\n-----END AGE ENCRYPTED FILE-----\n"
20
+
},
21
+
{
22
+
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRWhuWVNScC9IK0Vya2oz\nZ1JSRERnSmpJVEVNY3VlWnZLcUFESUxVM2dBCjFSdUtEbTVDZ3V1eERja1hnb09I\nWGNLcmNKcW5wOHFIMjJUWTJrTXh4M2MKLS0tIGI2OFh2ak5PTEV4MFZKWjhIVSsv\nZXA1dFFRY2FjVnI1MnE0TUtJemoxTEkKcCGDk5Mj16JL4/fevQCXYuTdY5ZVE2rb\n7nP+oqXXRTQAMVYsWwWIftNjd2XCM43UkTUKetMktGlcBMd/vNh/Xg==\n-----END AGE ENCRYPTED FILE-----\n"
24
+
},
25
+
{
26
+
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1RE0rOU1pYWVQOFU0N3da\nd2NmNjlZVWtEdisvcTVJa2ExRzVsK2lFcDNvCnkzb0dTQ1ZkM085VFpLQ09NZXBR\nd2VKNWtmWVp4YVViV2dpeUJyblBoNHcKLS0tIGUybXNsQ2tsaU81MURmKzJ5YThY\nS280YUMyL2JyK2pHMWlRTnNpSjRqNmsKg80xYn2ZE2zjt/t6pSUpXm0umg1+OM3h\niWJzu2RPayXglUc22hIiC08kahueHA+iJ+OPvMkl+NEM0FBMHotGLA==\n-----END AGE ENCRYPTED FILE-----\n"
28
+
}
29
+
],
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
+
"pgp": null,
33
+
"unencrypted_suffix": "_unencrypted",
34
+
"version": "3.8.1"
35
+
}
36
+
}
+36
secrets/users/nmelzer/gitlab
+36
secrets/users/nmelzer/gitlab
···
1
+
{
2
+
"data": "ENC[AES256_GCM,data:Ogl6BZFz2S1TTDdGDckoF2Mb8KD6G+tD1gIKsiiGBJBQFkC62fT/bEPKNEQ1kndIsLQAcsU26tBEn9YhCLyWkeIIcFDSnq58u9La4HVtydpNo8f+jrvWeDqp3lfXPgIMKRUywC499Oa0HtIyUGs5Xf3DuwoaECS/hhNBNUG9gSb2X6iLb0C7mV+Gd66kJf31DX0cm0JFChiwdQyLlxgnxRMeeBeUhXETMQBVPlRtEs1WxUnvn8D8WkHRcZBs+/TRIRaJ3rY7oG62iBAum/UmVBgs3kt5ZfsK9wBkIFuujwd1wVlTZjWkUYnte87G2p2My2khEQX0A9AXatAxRowRUMI/BS7nq51iv4RLGuHEWK/2IOwmfKPShPvUOZsRx+b16GT2/Xeaq5WnIdW2PaBcfYJV4GaLUwFSlsFHq8D1E/DnlD1s3msmoy0IppNwvk4zkK9zdZxoWIhldq1Baa+GpFHhqPjRIgpN9Gd/hulcygvDKr/rrekOiz/xdjBREXvwW2siwnMIr2SfnKLlGYyb+P8KmYXdPgHh2+X8k767b6fzQ6WmoqzeXVlsLtjPHK32nOz0T5eilQYrL5oC1Mi0u+4wmD8QiIS7KvMC/pU6B5lCb0yjpsdLET5gbQ5Xqo0vn4inftGMwHl7HoQbB9bokHhCmZSoI7DQCUjIYlKCHR5we46IZv55RzLCkmMpBlHCjhqn6nK08+Kj34jl65BBx1BjUR/digio29VhCgL8NwYgwk1k2YABVuFJFnCERBPiDLpL9v0zTQzB1Z8qfFpwxmLw/e/4UbqhPl7z2uhlFMkMjF01kgqBpZNzXTEwUm+kWegURdGdo+XJhHs634QuCZKsKExODCw4Lgl5jUCBgSxHYdnqzyN1MH9ws6xrvywAMmzTwMX19gb3q/NGijlX/Ipt5hrOGlmteNuhepW4KVuTanxhdtRfU9CeSBsHxabZkglkl2tQhfaXoW1OwE/Sp/NF4pYfxy09kOqH/c+Yp2j9WGyxrLTnNlS5XNPY+NCVDk31/zQno2hV77EbXK7pW10TThlu0iNOa2X0OhkJEZV9nWhN8QeKwN/Xao8F29JZ0WDYmcXMWrTPAmSsDob2SnQwgEvRpmxxtuum53IYnTxdGZGpL7DBWLdKZBMsJ9bP5vgeHClSHPyjpro1zK4VhxW/U6Yzpi3PCEyx+KpV/v8sG1DnvSReYd5RHga+p2ekYE8zWD0BzeNfvucroKMFcX2erZHYBKliMuAM85jXLXEohMhoOVdLm/1gAPt49LJnz2QFaU91G89QRxSjXaIqNjZdCDM/jE4Oa3qx3P7QtBzKzS9q6EYjvKzoFlo8I33X7CpAZ0PZuJttD3jDLHmmoOaVnIiquq0I7ESBjIbCtzjuerhDEhkaQDlHPUlFthK5Dg21/cPUbKL1xrZLYoOC6UfWa0lkayz8m7+o6NQAEJYJmvGd4pWVPoHPuYKCtmXWHeNNH8GIcGLvwUe87F5LeC/QFe+oPix8FHOfjZS3vzQRTDdEp057UewWMvodChFnZV+73rl1WOHhqGWghi58ghIY7pkhzj76lrMBhRq8ryyefrDq00uVYntoIbetxwH/GducP7JBvNPbFVvRn4/n3u6/3/0ZrdzyuXKtgwW17YP6UOexvQmkzgyBnTVs+JW1hnS/BToIliMtBg6KlUXcQR+0X+6hLF5mms1oPmX7wH1sC01iMKpt/jpnfIhq5tjySaebCahjqDJ7XC3HuvBjCvGmVpLYFWBjJoUX8fnPcaVI50zUtwqofF0BPcsSCg5U8S9vjVB61A9mTqOcH/6p5lThL/8yAii76XRn+tLA8UoabuQs+Z1bPb6DowkMnmT93Ye22NRX6fxFrXyJCr0puRkh2Qn9xbPmcIwx3CxRhO4DmBivtVtZtmYhoxYvcs3dNV/ergk6O7FKwM+q8c6Ia363GAhATHJkNyjxmDZRvaSY7v9CeqMyFmGobp0ZohWyfgXRuMO20CU9Ub7VdIct1mgMslhYSOfW4UStc66tGvozsMdyvnCo5lzjQUBHxOq93HxkSTedP9FB03WFyVWZEH2++nYyc3IsExGnq7ce6YQwL5rPThMNw5Ur09zrf4aX9Rl4mQJaMQyQWES9BfO0fDRIMciZXwWW0FDSlMCeBwesQwlnBpVIjPixsy8r09LMd3LxxPw1pt7vtfJh1R+6y4ye8/1VdVsGBp6AFLTvpaYW/aZUFAr8SP/mVYhlfms=,iv:wutx8cOVSjjC69NzlIrojwRLhs28QvNXRnRJSC6MMb0=,tag:cPf78d+51Op/58UiaM8IqQ==,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+IFgyNTUxOSBJc1N0MUNwVFNlTEdjUElq\nUWlsTG8vc2xQYitYNWlUTlRGRTVLVzRyY1dBCmlMVG9OcUU5bjhzNDhpWStDaWVn\nRTcxZ1QySFhabklhQzJKL3BqSVVydncKLS0tIGhIamdINjdJZERnbXowZTlNRGtY\nOVVJSEZ1Q2NNNXNXV3UrbldUTy8yTlUKeLwquuhjLHDwzzL8JERFELXD9b6HWlKD\n6YXv+mHaeKtcN0y61uzH2O51U13e79ipex9AeYj8YSIZx1DRiJAg5Q==\n-----END AGE ENCRYPTED FILE-----\n"
12
+
},
13
+
{
14
+
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlU2tFSTgwSXFyVEo4YVdO\naUx5R2F3UGxhY0RBbStMNDdpMWZCdkVzMEc4CmcwOVVFbDBGRlZDS3dhdGZNNUtI\nWWNCRDRUelhvVzA2ZFIwZ09QYUhZWk0KLS0tIDRORmpMZk5CcDdOL2pvMW51clA2\naFpFS1k2dW9rY1dQR2hwb2FlMWVrREUKL3F0eiR8lKlDfQMYekRvxUo/c/qDVgKJ\nl5+yOsCMh6iu2u696gRcrnzrZ/aX23TJE98ttYS97DeUjUCc0Dpo1w==\n-----END AGE ENCRYPTED FILE-----\n"
16
+
},
17
+
{
18
+
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
19
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcUhZOU9kQ1FkMWY4TkdS\neStwOThKdkpWa04xYUU4MENrbjZRQ29ya3pZCkpqaHRGeVUyeGdDemZUeXNkMlo5\nTkg3dFNlL3c1NWJNS1FzWUJ3b3FSYkkKLS0tIG9aUkxYTTVDRitCWTh1TmRFMXoy\nU3p6RHk4cUVOOTlDamNSZFdIVmc3STQKdvB/aVmyKhVAA+JKT8aQo1VmDa2WhGl7\nzGIGX77gsjDiy9Jb15Z3KWGu4AP+bonUTmTkUWA5Oiqe1rhOe9MDMA==\n-----END AGE ENCRYPTED FILE-----\n"
20
+
},
21
+
{
22
+
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNWhBaWQycm1EZ0JwKzIv\nSit2UjFhNUsrd00wSzhua2xONXZwZlA1WjMwCk80WG5acXNGTkFEdmxyYlRCNlIv\nc05CY0RQM3Z0ZXZNTkswOXVsaVcwS0EKLS0tIHBrNnpZbFRpY1BuMm5ocnlYWXNZ\nTXdBMkhROGxBM0R1MDdPNHhKM1NYYVUKjZaHwqh/0OKB+ybatAfxEF4OmskYW2E9\nYEjuhy9jdcqi2a3hm2bI6rdSCsemAADJPW2PWsqjNc2TB9QeAK9ZgQ==\n-----END AGE ENCRYPTED FILE-----\n"
24
+
},
25
+
{
26
+
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTUEJ4ZjV5aUhLNUVxNlZp\nY1N1WUEwNE5odUQ2ZkdqdFV5cjB6WW1LWkRNCndObExzUDB4ZFdsYVVNbUtBbFE2\nSU5kZy9iK3RlY3FLWXFrR1pzZmhYOU0KLS0tIG04dm85SGtMQmZmT2RqTGYyRWlS\nTVhCRVUwWGhUaGdpUExPVjIxUVl1ZzQKkcnzuMCngr9oWFDynRENTlJQEFIbRJV/\nY8THko3rajg5QrIcoDTHeQ85WM6ucapUakAUTbis+Sa9xBoQ2coqDg==\n-----END AGE ENCRYPTED FILE-----\n"
28
+
}
29
+
],
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
+
"pgp": null,
33
+
"unencrypted_suffix": "_unencrypted",
34
+
"version": "3.8.1"
35
+
}
36
+
}
+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
+
}
+36
secrets/users/nmelzer/nobbz_dev
+36
secrets/users/nmelzer/nobbz_dev
···
1
+
{
2
+
"data": "ENC[AES256_GCM,data:JbATH1rQff0rUhJUxXAKwqq+KO8hjLXnwp6uwBwCpQXK1OAD88l/4StWTZ94oSqUwcwjT8DtI2M0DLFdGFQTmmQrrt/Or8XKHnZc1zu5axgJ8H/Ey3m+CFDgz6Wg9rOuc1nz0EBTBk6XIGvyeXc4AMMfUuVDo14ijarTL34JqPy4sB0ayzCGCWZTyxy0VKQoQnYQBK5D2JTqG4P2IjFY4yh/2R+IRmK+MghErz3gKg5ORKPfIqH4rFAszGbUjYZt9TKpVGiidW2lYVn0nqVHHzMgZGokst+jkrcriKQS4CLLLk/zh0Dx0fHo1QrJyRYzry5cFFQVCQZKyTe3nbkuExPbxfm13hROCC7jK+XYgn6T+MowJ4u6/B6F//UgjTLQ9by58lhbG7N1IUbXcgGYpWYib9bavF1ELk2PXdazP+WQJTQXMYT/f++eT80m6PdPbmHVbm1cjVD22SjnMa8g695eTUcvx8jwFbTKVEkE9kMEMOlAG6hVvf6/+8G+xvoCYXu/C35/mf9k6n62ii5QkoPiqT5yKKiGv/GXht+24d9NQGX4f1CF4p/6s3yRfKaOnnOF2MLseY8eYGrlLdGqdr3QWet0cAcraTXP62OH3gBBPhTW0U4N0EciBsX3/9atVxoiq4y9C/SQOYla6MIRRK6NTrWlWLCRif/MOBja+Ya7BG3s51umZgS8v3uPL9OyjpWutRpYvBPkherfHpKKzUUNJx+o/2De0yFtQx659bVddBQ1dBmJPjYkUbSzQBJE767pEyZf1oac88SC0wizxPFLDcI7ZzFvQlO9XYs5pgoO9aZKqYDx97rT6BJeOyUmLE4XhURliQtpL18fRqIqHu6SoAQoLZpjLx9A5JUHyI2iem7FyZJKFVeA/bL1hdXL1hby/VpnuP3PmbGP90Y4FOHPozUsLgBLObqbgf6SMKZBEs7JWWEK4i9A1uYbv7LIvxslqYvB+qwdCDEa+tFfz8TG9pBerJ2oqCpaNbO0UGruvpwJ7HXSpn4VdAXgG5zy4glupIqkGUNoERpYEVJMRZxx4K8ST9OZ+0qwpAOOTXTwYuqkcEw5TNwcoNswUNzu9Ck2/An0307fhOYXjO0D8IDvTDIF5CSESILjASB5H7qhbR4hbUE4G09fIChKi6DLyTP/zMAwWpgUBwxByZGMrttH+EzntFNbgL2EGbbdCfr8Vf7XWHhXT/bNYhlGJp2dkdOOBnV3XdPMIkyl4zJqzzAFySx4cpFTfCQ/zwWOEQN7H58sEsqcUxeYOtnSwccWkuP0+9Z4nrdJrAjq32RLeLSzTJ8cMStB85E3h/Gqx+O0Jw9fA+H4sE49JGkIobiuioz0wC/6uMQvyMBs5cyDvpiWFQ3dj2bKgpCtBVrAlcNG1Q8Hljc55WblkFiQRxVix1xB13yCpFMeNuIdCifGXUbTWuA64H4QjG5/P5KgH5IkT6Ry0wDPGw7CSqMXCXhCiRLsyzByGfy+LMkjL4LZk8GP21+6NlUkc+5j+cNZkjZ22J5LhxIdz4eE7MXSMKTno0iMrvUKYPJe0+NgIrXtprsacHLDyDSXowS3FUPWqPfPLG6vOBfz+99DMumFY1UU6eHSdFHVovBdp50kHnu3LbsiNh4iNvl8rtctgVl7PGRMvU+tF4GtiIrxHt0MRZzQ6WemRVvRIvZBYMXEEjn5p6Xn9Lg5p9HjsnvpjdmJOZCp4CCwYrkm9kzk+f2qwPVy/J6DQBwgr41k0Pd8fbCQjdICkGSU8yJxwCsWvP5I2T5NWrPiUdav0doc2i5fEi02NnDcL1ncChBooqrVjD0mLIbQ9ra9F+f+51RGZO+Y7XjfFH8E2uUb8GS3u/bZbhmoCvouVKHLurOCcmFfs14ZGek0bZT7Q+PHChWzv890MkA1S5A3x9orY6WmhR4Zy86Bsi9PA3YNL59jUQTl0nWknbrxuhPdPcsmCL+DgdSV7E5zesUaeRJi7QuL/GCZ2E8PKKSuh9Kq56pYk8HsYMsrqNqyU80QM8aRc1o++YSq6SLwEmY1Pm8fsssZTjP9PT2RZIXt5LjskQbkA4Q4rECm4JQepx9jHZeFAgo0tDOfAmj7q1QQq3bxEfvRO1dxJ212tvcFpR5ehDO8d4CLyTMqprBvG9/0r2qO8xp7ifJQKHx4CDpiiZaNS9Fyl1QdfqADvrT9z15ucRsmoQuL5zjVdbC05lAie4wswlcOUUvu3qoj6RikDC+xFG6AXd+e33un1v9rT2XmVzz+47WKPCQLfRqCDkNgwpjxUkrgCsiFun3+EhzWxLxzXLIEkVfE8c7eJnQSDu3IEShZ2vF2sT5FFJScN8tf888J7mCgLsHpnWbSplXxa4RMjO1rHD1S04tLC80EPGl/rdaraHmnEtt4mc9boo7IyusR19gotEjRRnZDZJaplDt72IdgC6hBCQM=,iv:iwfQiWkkxmB52x5mVXlhS3pbzKL3/ctoJMctdhHGQuk=,tag:VQ0GWz0xyQiCx/WpYq1itA==,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+IFgyNTUxOSBtQUpwZ2JXYTUybXc5Tm9T\na1p6azYvbno0NzY0UGNrWnNjQUd3SnJMakV3CjVMemhwQ3NmOWFJSGEzQ2ZsL1pF\najgrM2g2THQ2dkxTUUM0QlpnODRjbUkKLS0tIDZKaFYydnZRYWdxZFIzYnNZbjZ3\nWkxPcWdHbm9ZZnZNNVpIQmZ5djVHTGcKAiKFm4r93FBNXxt/jgofvKS3pn0NbdWW\njDacQ7VUubSqpmHax/s/FNV75g5ynIm8ldOJVoW6lgNxPWxcfucTLA==\n-----END AGE ENCRYPTED FILE-----\n"
12
+
},
13
+
{
14
+
"recipient": "age18p8x2cxam2l0trtpyhj4x9amcppp9ruzkqxzgapy9wnfpzl9hgaqlkht86",
15
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLMU5ycnhZSlJyQ0UrRXVo\naVIra1o2TkRmbTFFMHFzeTN2d1NGQUluTVRzCk4wRm41Sy8rNWh4OXI0eUdKdDhH\nRjZwcE80K1NUbGxubGp1akh1WVFTWU0KLS0tIFZraWFpdmU3dlRCMnVtMHN3RnFD\nYmN5dmIwRUlJQktKTmUzZllTb1lOUTQKkJLBrTeUlPaZ1C/pGWu9WQNFCBgsJVqS\nYnPpsvYJiOE/6WmCzB34OVpO8vdrv1mE5jR/Ila3YQVjBt8JHo7Zqw==\n-----END AGE ENCRYPTED FILE-----\n"
16
+
},
17
+
{
18
+
"recipient": "age1w6xjgskpxnlpleswumdhtt7x8zx35qn329yz3x7ftqdcmcxrrvnqnuf9d6",
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
+
},
21
+
{
22
+
"recipient": "age1tf0zelmw4lh9gvkl0qycdk83fut9t4q3tfcdzk8cvlyhjp7z0g2q7hklgq",
23
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqVW5aVUVpZk14U1pYK2NJ\nRVpGbGdXVzlLQ25PSWYyWjR6bGRCWkIxM3dVCnlGd1h3Z2pJNmNweTgwRmUyL1Bo\nNVBoaFprQWVUK1pQbi9YOTgreFBpcDgKLS0tIFhCUE5WQ2w4R3J1eXVhSFJEOGRp\nMlZpSnovWnpvc3lGemE3WmJkK2xQWVkKkNZaVbq8X99+MXfei0BzbXBwzibERWvR\nV26mOEEYcfv/3/KqCLOjBVCLEE3RSuB9AtniAAFC6Fj0/jHnMzaghQ==\n-----END AGE ENCRYPTED FILE-----\n"
24
+
},
25
+
{
26
+
"recipient": "age1vr0uq6mwv844yvm8pe7qxjxpqrekgel3lqfzuuqtfzj0ehz3hphqzsxjna",
27
+
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQdlIzc3NQM2JkdW1TQzVX\nYVRjR2hEY3NrME9GeHJhbitpQURVbUdoTWlrCm81Wmt5dWpWWlVtaHJKcnNnMVJm\nekZnM0gycDdlZi9ZdUhYMTRpTFhjK28KLS0tIHcrcFQ3SEphOW1oeEsvcDdBUFRI\nU1psVWVldkZ0TXp3QnBmMUxHdm1ocmsKn/oYX+0hYRZvC32KGQ9hNRDMdlxclv5x\nekDM5wPeI9wT/j62bxmykEtNnI40WEpEopz7MSZvRnj6B8zF9boFPw==\n-----END AGE ENCRYPTED FILE-----\n"
28
+
}
29
+
],
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
+
"pgp": null,
33
+
"unencrypted_suffix": "_unencrypted",
34
+
"version": "3.8.1"
35
+
}
36
+
}