alpine: many changes
- updates - snapserver - graphana dashboards - loki - ddclient - arr suite, jellyseer - mautrix fixes
This commit is contained in:
parent
d1772cb4be
commit
123e7088f5
58 changed files with 2136 additions and 735 deletions
2
.rgignore
Normal file
2
.rgignore
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
lib/words.txt
|
||||
flake.lock
|
||||
|
|
@ -6,3 +6,7 @@ creation_rules:
|
|||
key_groups:
|
||||
- age:
|
||||
- *alpine
|
||||
- path_regex: certs/.*.key
|
||||
key_groups:
|
||||
- age:
|
||||
- *alpine
|
||||
|
|
|
|||
48
certs/alpine.prawn-justice.ts.net.crt
Normal file
48
certs/alpine.prawn-justice.ts.net.crt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDljCCAxygAwIBAgISBBQT2OlSax8juBh/IQex2igaMAoGCCqGSM49BAMDMDIx
|
||||
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
|
||||
NTAeFw0yNDEwMTMwMTQ4MDFaFw0yNTAxMTEwMTQ4MDBaMCYxJDAiBgNVBAMTG2Fs
|
||||
cGluZS5wcmF3bi1qdXN0aWNlLnRzLm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEH
|
||||
A0IABNB7TDo//14hkP6lbTpMessnFDWiXCQ55C/+rPRuMK0kxMV9Uj9hVCaq6YI1
|
||||
Nxug1DBmQvAVtMNho60wCUR0ocijggIcMIICGDAOBgNVHQ8BAf8EBAMCB4AwHQYD
|
||||
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
|
||||
BBYEFL+YrMuDYngdndFxmQ8DyIaF5FZuMB8GA1UdIwQYMBaAFJ8rX888IU+dBLft
|
||||
KyzExnCL0tcNMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL2U1
|
||||
Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vZTUuaS5sZW5jci5vcmcv
|
||||
MCYGA1UdEQQfMB2CG2FscGluZS5wcmF3bi1qdXN0aWNlLnRzLm5ldDATBgNVHSAE
|
||||
DDAKMAgGBmeBDAECATCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2AD8XS0/XIkdY
|
||||
lB1lHIS+DRLtkDd/H4Vq68G/KIXs+GRuAAABkoPFMKkAAAQDAEcwRQIhAMB1F+1H
|
||||
QkW08Lu2AQr8bcYCqg43niOw2EHl9cTqIMngAiBOQz14/mZsA09MjLO4QSgnC8pW
|
||||
wSHaf791o2N/HPHWiAB1ABNK3xq1mEIJeAxv70x6kaQWtyNJzlhXat+u2qfCq+Ai
|
||||
AAABkoPFMagAAAQDAEYwRAIgR3BMtNMq8ubpJQanyZ5VPkX7OCIVyjmWD/iQDKHo
|
||||
VkUCIBXczglskWwyZEwhCv1lNmgCfZmIF32rywaEsKBjQ/2QMAoGCCqGSM49BAMD
|
||||
A2gAMGUCMQCruWjBoT4D97a/TQACEWs2UZ5ZUm+RmZS7VA4kVm9Q1bFFrftD1FEQ
|
||||
dB88W+jYPN8CMAervvI7Jb19X+wDktnp958XUodwOhhd0NNvQ4HS/TEUxSDV04Xb
|
||||
FahrrdXWaqt3nQ==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEVzCCAj+gAwIBAgIRAIOPbGPOsTmMYgZigxXJ/d4wDQYJKoZIhvcNAQELBQAw
|
||||
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
||||
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
|
||||
WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
|
||||
RW5jcnlwdDELMAkGA1UEAxMCRTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNCzqK
|
||||
a2GOtu/cX1jnxkJFVKtj9mZhSAouWXW0gQI3ULc/FnncmOyhKJdyIBwsz9V8UiBO
|
||||
VHhbhBRrwJCuhezAUUE8Wod/Bk3U/mDR+mwt4X2VEIiiCFQPmRpM5uoKrNijgfgw
|
||||
gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
|
||||
ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfK1/PPCFPnQS37SssxMZw
|
||||
i9LXDTAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB
|
||||
AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g
|
||||
BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu
|
||||
Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAH3KdNEVCQdqk0LKyuNImTKdRJY1C
|
||||
2uw2SJajuhqkyGPY8C+zzsufZ+mgnhnq1A2KVQOSykOEnUbx1cy637rBAihx97r+
|
||||
bcwbZM6sTDIaEriR/PLk6LKs9Be0uoVxgOKDcpG9svD33J+G9Lcfv1K9luDmSTgG
|
||||
6XNFIN5vfI5gs/lMPyojEMdIzK9blcl2/1vKxO8WGCcjvsQ1nJ/Pwt8LQZBfOFyV
|
||||
XP8ubAp/au3dc4EKWG9MO5zcx1qT9+NXRGdVWxGvmBFRAajciMfXME1ZuGmk3/GO
|
||||
koAM7ZkjZmleyokP1LGzmfJcUd9s7eeu1/9/eg5XlXd/55GtYjAM+C4DG5i7eaNq
|
||||
cm2F+yxYIPt6cbbtYVNJCGfHWqHEQ4FYStUyFnv8sjyqU8ypgZaNJ9aVcWSICLOI
|
||||
E1/Qv/7oKsnZCWJ926wU6RqG1OYPGOi1zuABhLw61cuPVDT28nQS/e6z95cJXq0e
|
||||
K1BcaJ6fJZsmbjRgD5p3mvEf5vdQM7MCEvU0tHbsx2I5mHHJoABHb8KVBgWp/lcX
|
||||
GWiWaeOyB7RP+OfDtvi2OsapxXiV7vNVs7fMlrRjY1joKaqmmycnBvAq14AEbtyL
|
||||
sVfOS66B8apkeFX2NY4XPEYV4ZSCe8VHPrdrERk2wILG3T/EGmSIkCYVUMSnjmJd
|
||||
VQD9F6Na/+zmXCc=
|
||||
-----END CERTIFICATE-----
|
||||
20
certs/alpine.prawn-justice.ts.net.key
Normal file
20
certs/alpine.prawn-justice.ts.net.key
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"data": "ENC[AES256_GCM,data:8ILElQXr1whCq6/Jvh2+0RN23cKn4Hd6GHd4/1pwfPzp+dzCcKe3gN4LY4NwTNM3fCeW2gX3DWHqXJxGxxjhlpLnFuEu9Q6eVAhjBIAEdUOAaOefQgBsY805hJ2+3oaASO1gTW64M4Rb7twhlJvtzfvl6dy5JuASv/mp3qlpmoIitFe0h1EAi0QkG5y1K7bDrmca7g9PhdelnJeIBAj9vjevtQAtJe3C1G/R3kfCLnPJQAC1BDBt97CXCux8uWgqSjH4ndp6c2cJH9UK87rB/w1+7ihSQGAfEAHNrdXMCSkcC9w=,iv:GiLNz81b7gLQZiX01wXQlYRogXwdyqX7HwOfVLUQHoo=,tag:MC6YZkidZHePXWTiUogJkQ==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age106vffwu4y8cx90y0rtzajgpafl8jq7ty5hf6pur2gjsuq3g2lf5qjmdq0q",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFbVI0M0o3TEFObEQ0RVJo\ncFp4djEvTzdndFV0OU5PKyt6WlpRYlowUlZBCkJYZm9JS1VZRGhwQ1c0K1JBVHIy\nelJNd3E1eUlPUDVGdUd3YzJrenFUY3cKLS0tIGhWWUt2TUthR1BncjN4UW9kQ1Vl\nM3JuVkUvZkZoM1ZabXhnRG1lRktrazAKesQXHUogJ0bo34Ibp5JxqaG7OCrbUteh\nrIyWr1bUQruhffOVJo+SQzKtNMwA2XwwU1xJb4YbBUXwe9/4G8KpqQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-10-13T03:10:45Z",
|
||||
"mac": "ENC[AES256_GCM,data:iY5zcanENCJLwwaK0Gz/HZTAXvwbHDK5AZ7buHVjg22jQlFKlg46abBy1KIBOzurH7Z8i7lLSSF1DFzGbR63NjEWFiv4hJsDuFgvLxFm/GxERl+JnadKaaooYQavkE99J1uiPIr7BCZppC+MdvqG1IqkSeLO737KLniisprKe1g=,iv:VtHXpnZVoTpmLcmSVxvCZSxongAXwelE02OA/5afQ9k=,tag:y2GmUBzg6tspfjZi8TyhuQ==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.0"
|
||||
}
|
||||
}
|
||||
697
flake.lock
generated
697
flake.lock
generated
|
|
@ -18,39 +18,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-alacritty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1703982197,
|
||||
"narHash": "sha256-TNxKbwdiUXGi4Z4chT72l3mt3GSvOcz6NZsUH8bQU/k=",
|
||||
"owner": "aarowill",
|
||||
"repo": "base16-alacritty",
|
||||
"rev": "c95c200b3af739708455a03b5d185d3d2d263c6e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "aarowill",
|
||||
"repo": "base16-alacritty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-alacritty-yaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1674275109,
|
||||
"narHash": "sha256-Adwx9yP70I6mJrjjODOgZJjt4OPPe8gJu7UuBboXO4M=",
|
||||
"owner": "aarowill",
|
||||
"repo": "base16-alacritty",
|
||||
"rev": "63d8ae5dfefe5db825dd4c699d0cdc2fc2c3eaf7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "aarowill",
|
||||
"repo": "base16-alacritty",
|
||||
"rev": "63d8ae5dfefe5db825dd4c699d0cdc2fc2c3eaf7",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -67,30 +34,14 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725948,
|
||||
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-foot",
|
||||
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-foot",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696727917,
|
||||
"narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
|
||||
"lastModified": 1725860795,
|
||||
"narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
|
||||
"rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -99,55 +50,74 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1665001328,
|
||||
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
|
||||
"owner": "kdrag0n",
|
||||
"repo": "base16-kitty",
|
||||
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "kdrag0n",
|
||||
"repo": "base16-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725902,
|
||||
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-tmux",
|
||||
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1663659192,
|
||||
"narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=",
|
||||
"owner": "chriskempson",
|
||||
"lastModified": 1716150083,
|
||||
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d",
|
||||
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chriskempson",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722113426,
|
||||
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1717312683,
|
||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
|
|
@ -163,6 +133,66 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726153070,
|
||||
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"stylix",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -179,19 +209,71 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nixvim",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726745158,
|
||||
"narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1698794309,
|
||||
"narHash": "sha256-/TIkZ8y5Wv3QHLFp79Poao9fINurKs5pa4z0CRe+F8s=",
|
||||
"lastModified": 1713702291,
|
||||
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "a7c169c6c29cf02a4c392fa0acbbc5f5072823e7",
|
||||
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "45.1",
|
||||
"ref": "46.1",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -203,11 +285,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713166971,
|
||||
"narHash": "sha256-t0P/rKlsE5l1O3O2LYtAelLzp7PeoPCSzsIietQ1hSM=",
|
||||
"lastModified": 1727346017,
|
||||
"narHash": "sha256-z7OCFXXxIseJhEHiCkkUOkYxD9jtLU8Kf5Q9WC0SjJ8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1c43dcfac48a2d622797f7ab741670fdbcf8f609",
|
||||
"rev": "c124568e1054a62c20fbe036155cc99237633327",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -217,19 +299,38 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager-cosmic": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728250817,
|
||||
"narHash": "sha256-OVHpUlNxHpQUe2Waav/MR+Z7fm6ft/w8SxWlvXv+AdU=",
|
||||
"owner": "tristanbeedell",
|
||||
"repo": "home-manager",
|
||||
"rev": "ce770a3e442b2105852a6f5f79f3645b4c64505c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tristanbeedell",
|
||||
"ref": "cosmic",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706001011,
|
||||
"narHash": "sha256-J7Bs9LHdZubgNHZ6+eE/7C18lZ1P6S5/zdJSdXFItI4=",
|
||||
"lastModified": 1726985855,
|
||||
"narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3df2a80f3f85f91ea06e5e91071fa74ba92e5084",
|
||||
"rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -238,13 +339,126 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724435763,
|
||||
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727003835,
|
||||
"narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727314564,
|
||||
"narHash": "sha256-UE98O6EQYUiDp7rypkBfJG0XSz0c5FxkslyP+7Gskt8=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "f2aa34f521da1d6335301fc1b58dde8ed779d632",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1712963716,
|
||||
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
|
||||
"lastModified": 1722185531,
|
||||
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
|
||||
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1727129439,
|
||||
"narHash": "sha256-nPyrcFm6FSk7CxzVW4x2hu62aLDghNcv9dX6DF3dXw8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "babc25a577c3310cce57c72d5bed70f4c3c3843a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1725762081,
|
||||
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1727122398,
|
||||
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -253,45 +467,13 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1713042715,
|
||||
"narHash": "sha256-RifMwYuKu5v6x6O65msKDTqKkQ9crGwOB7yr20qMEuE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c27f3b6d8e29346af16eecc0e9d54b1071eae27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1712883908,
|
||||
"narHash": "sha256-icE1IJE9fHcbDfJ0+qWoDdcBXUoZCcIJxME4lMHwvSM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1700856099,
|
||||
"narHash": "sha256-RnEA7iJ36Ay9jI0WwP+/y4zjEhmeN6Cjs9VOFBH7eVQ=",
|
||||
"lastModified": 1725534445,
|
||||
"narHash": "sha256-Yd0FK9SkWy+ZPuNqUgmVPXokxDgMJoGuNpMEtkfcf84=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0bd59c54ef06bc34eca01e37d689f5e46b3fe2f1",
|
||||
"rev": "9bb1e7571aadf31ddb4af77fc64b2d59580f9a39",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -301,26 +483,115 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1725194671,
|
||||
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727328717,
|
||||
"narHash": "sha256-tGEVv5mFs38m6+60fNKlZn/6ucoOotfwn9FikXiYSlk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "2ab8751b8be55accb78ca0ca58f1f4ff387001d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726995581,
|
||||
"narHash": "sha256-lgsE/CTkZk9OIiFGEIrxXZQ7Feiv41dqlN7pEfTdgew=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "3b7dd61b365ca45380707453758a45f2e9977be3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"home-manager-cosmic": "home-manager-cosmic",
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixvim": "nixvim",
|
||||
"sops-nix": "sops-nix",
|
||||
"stable-nixpkgs": "stable-nixpkgs",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixos-cosmic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727231386,
|
||||
"narHash": "sha256-XLloPtQHKk/Tdt8t8zIb+JhmunlH3YB9Jz8RTlQ3N/4=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "b5f76c3b09a8194889f5328a480fbea1a9115518",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713174909,
|
||||
"narHash": "sha256-APoDs2GtzVrsE+Z9w72qpHzEtEDfuinWcNTN7zhwLxg=",
|
||||
"lastModified": 1726524647,
|
||||
"narHash": "sha256-qis6BtOOBBEAfUl7FMHqqTwRLB61OL5OFzIsOmRz2J4=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "cc535d07cbcdd562bcca418e475c7b1959cefa4b",
|
||||
"rev": "e2d404a7ea599a013189aa42947f66cede0645c8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -329,43 +600,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stable-nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1713013257,
|
||||
"narHash": "sha256-ZEfGB3YCBVggvk0BQIqVY7J8XF/9jxQ68fCca6nib+8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "90055d5e616bd943795d38808c94dbf0dd35abe8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-23.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-alacritty": "base16-alacritty",
|
||||
"base16-alacritty-yaml": "base16-alacritty-yaml",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-foot": "base16-foot",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-kitty": "base16-kitty",
|
||||
"base16-tmux": "base16-tmux",
|
||||
"base16-vim": "base16-vim",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"home-manager": "home-manager_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"systems": "systems_2",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713025302,
|
||||
"narHash": "sha256-za4w2wYt1fg9EdTv5fYLwEqAyHgPmPq88HmlxirXuEk=",
|
||||
"lastModified": 1727355527,
|
||||
"narHash": "sha256-qFSPHeImI00fBzGTA94D66HMD+fJDkuz04WHp2Sg8eA=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "83866ed8800ed39519a79ea30b18c8eb21f26080",
|
||||
"rev": "993fcabd83d1e0ee5ea038b87041593cc73c1ebe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -373,6 +629,105 @@
|
|||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725948,
|
||||
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1665001328,
|
||||
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696725902,
|
||||
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726734507,
|
||||
"narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
152
flake.nix
152
flake.nix
|
|
@ -1,22 +1,25 @@
|
|||
{
|
||||
description = "A flake using my config";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
stable-nixpkgs.url = "nixpkgs/nixos-23.11";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager-cosmic.url = "github:tristanbeedell/home-manager/cosmic";
|
||||
stylix.url = "github:danth/stylix";
|
||||
# hyprland = {
|
||||
# url = "github:hyprwm/Hyprland/v0.36.0";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
nixos-cosmic = {
|
||||
url = "github:lilyinstarlight/nixos-cosmic";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs: let
|
||||
outputs = {nixvim, ...} @ inputs: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import inputs.nixpkgs {inherit system;};
|
||||
user = "tristan";
|
||||
|
|
@ -27,51 +30,57 @@
|
|||
in {
|
||||
formatter.${system} = pkgs.alejandra;
|
||||
nixosConfigurations = {
|
||||
zenix =
|
||||
mkConf [
|
||||
zenix = mkConf {
|
||||
nixos-modules = [
|
||||
./hardware/zenix.nix
|
||||
(auto-login "Hyprland")
|
||||
./nixos/programs/cosmic.nix
|
||||
./nixos/programs/gamer.nix
|
||||
./nixos/programs/personal.nix
|
||||
./nixos/workstation.nix
|
||||
] [
|
||||
./home/workstation.nix
|
||||
./home/desktop/hyprland/.
|
||||
];
|
||||
home-modules = [
|
||||
./home/programs/graphical.nix
|
||||
./home/programs/gamer.nix
|
||||
./home/programs/personal/.
|
||||
./home/programs/xr.nix
|
||||
];
|
||||
};
|
||||
|
||||
FCS-Tristan-Nixbook =
|
||||
mkConf [
|
||||
# inputs.hyprland.nixosModules.default
|
||||
FCS-Tristan-Nixbook = mkConf {
|
||||
nixos-modules = [
|
||||
./hardware/fcs-tristan-nixbook.nix
|
||||
(auto-login "Hyprland")
|
||||
./nixos/modules/work.nix
|
||||
# (auto-login "Hyprland")
|
||||
# ./nixos/programs/hyprland.nix
|
||||
./nixos/workstation.nix
|
||||
] [
|
||||
./home/workstation.nix
|
||||
./home/desktop/hyprland/.
|
||||
./nixos/modules/work.nix
|
||||
./nixos/programs/cosmic.nix
|
||||
];
|
||||
home-modules = [
|
||||
./home/programs/work.nix
|
||||
./home/programs/graphical.nix
|
||||
];
|
||||
};
|
||||
|
||||
alpine = mkConf [
|
||||
./hardware/alpine.nix
|
||||
./nixos/services/anki.nix
|
||||
./nixos/services/forgejo.nix
|
||||
./nixos/services/vaultwarden.nix
|
||||
./nixos/services/jellyfin.nix
|
||||
./nixos/services/mpd.nix
|
||||
./nixos/services/prometheus.nix
|
||||
./nixos/services/grafana.nix
|
||||
./nixos/services/synapse.nix
|
||||
./nixos/services/mautrix/whatsapp.nix
|
||||
./nixos/services/mautrix/signal.nix
|
||||
./nixos/services/nextcloud.nix
|
||||
./nixos/services/ntfy.nix
|
||||
] [];
|
||||
alpine = mkConf {
|
||||
nixos-modules = [
|
||||
./hardware/alpine.nix
|
||||
./nixos/services/anki.nix
|
||||
./nixos/services/forgejo.nix
|
||||
./nixos/services/vaultwarden.nix
|
||||
./nixos/services/jellyfin.nix
|
||||
./nixos/services/mpd.nix
|
||||
./nixos/services/prometheus.nix
|
||||
./nixos/services/grafana.nix
|
||||
./nixos/services/loki.nix
|
||||
./nixos/services/synapse/.
|
||||
./nixos/services/mautrix/whatsapp.nix
|
||||
./nixos/services/mautrix/signal.nix
|
||||
./nixos/services/nextcloud.nix
|
||||
./nixos/services/ntfy.nix
|
||||
./nixos/services/authentik.nix
|
||||
./nixos/services/monero.nix
|
||||
./nixos/services/arr.nix
|
||||
];
|
||||
};
|
||||
|
||||
vm-sway =
|
||||
builtins.trace ''
|
||||
|
|
@ -81,14 +90,30 @@
|
|||
start the vm with '-vga qxl' or '-vga virtio'
|
||||
''
|
||||
mkConf
|
||||
[
|
||||
./hardware/vm.nix
|
||||
(auto-login "sway")
|
||||
./nixos/workstation.nix
|
||||
] [
|
||||
./home/desktop/sway/.
|
||||
./home/workstation.nix
|
||||
];
|
||||
{
|
||||
nixos-modules = [
|
||||
./hardware/vm.nix
|
||||
(auto-login "sway")
|
||||
./nixos/workstation.nix
|
||||
];
|
||||
home-modules = [
|
||||
./home/desktop/sway/.
|
||||
./home/workstation.nix
|
||||
];
|
||||
};
|
||||
|
||||
vm-cosmic =
|
||||
mkConf
|
||||
{
|
||||
nixos-modules = [
|
||||
./hardware/vm.nix
|
||||
./nixos/workstation.nix
|
||||
./nixos/programs/cosmic.nix
|
||||
];
|
||||
home-modules = [
|
||||
./home/workstation.nix
|
||||
];
|
||||
};
|
||||
|
||||
vm-hyprland =
|
||||
builtins.trace ''
|
||||
|
|
@ -100,18 +125,33 @@
|
|||
start with '-vga virtio'
|
||||
''
|
||||
mkConf
|
||||
[
|
||||
./hardware/vm.nix
|
||||
(auto-login "Hyprland")
|
||||
./nixos/workstation.nix
|
||||
] [
|
||||
./home/desktop/hyprland/.
|
||||
./home/workstation.nix
|
||||
];
|
||||
{
|
||||
nixos-modules = [
|
||||
./hardware/vm.nix
|
||||
(auto-login "Hyprland")
|
||||
./nixos/programs/hyprland.nix
|
||||
];
|
||||
};
|
||||
|
||||
vm-tty = mkConf [
|
||||
./hardware/vm.nix
|
||||
] [];
|
||||
vm-tty =
|
||||
mkConf
|
||||
{
|
||||
nixos-modules = [
|
||||
./hardware/vm.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
packages.${system} = {
|
||||
nixvim = let
|
||||
nixvim' = nixvim.legacyPackages.${system};
|
||||
nixvimModule = {
|
||||
inherit pkgs;
|
||||
module = import ./lib/nixvim.nix;
|
||||
};
|
||||
nvim = nixvim'.makeNixvimWithModule nixvimModule;
|
||||
in
|
||||
nvim;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,13 +59,11 @@ in {
|
|||
fsType = "fuse.mergerfs";
|
||||
depends = ["/mnt/disk1" "/mnt/disk2" "/mnt/disk3"];
|
||||
options = [
|
||||
"direct_io"
|
||||
"use_ino"
|
||||
"allow_other"
|
||||
"minfreespace=50G"
|
||||
"fsname=mergerfs"
|
||||
"category.create=mfs"
|
||||
"func.mkdir=epall"
|
||||
"cache.files=auto-all"
|
||||
"dropcacheonclose=true"
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -113,9 +111,13 @@ in {
|
|||
];
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
|
||||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
autoPrune.enable = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -136,18 +138,11 @@ in {
|
|||
globalRedirect = "tristans.cloud";
|
||||
};
|
||||
"tristans.cloud" = {
|
||||
default = true;
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
root = "/srv/www/tristans.cloud";
|
||||
};
|
||||
"auth.tristans.cloud" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."~" = {
|
||||
proxyPass = "http://localhost:8084";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
security.acme = {
|
||||
|
|
@ -155,14 +150,15 @@ in {
|
|||
defaults.email = "tristan@tristans.cloud";
|
||||
};
|
||||
|
||||
sops.secrets."namecheap" = {};
|
||||
services.ddclient = {
|
||||
# enable = true;
|
||||
protocol = "duckdns";
|
||||
use = "if, if=enp4s0";
|
||||
ssl = true;
|
||||
username = "";
|
||||
passwordFile = "/home/tristan/duckdnstoken";
|
||||
domains = ["tlbean"];
|
||||
enable = true;
|
||||
protocol = "namecheap";
|
||||
usev4 = "webv4, webv4=ipify-ipv4";
|
||||
usev6 = "";
|
||||
username = "tristans.cloud";
|
||||
passwordFile = config.sops.secrets."namecheap".path;
|
||||
domains = ["@" "*"];
|
||||
};
|
||||
|
||||
services.mpd = {
|
||||
|
|
@ -172,4 +168,7 @@ in {
|
|||
services.grafana.settings.server = {
|
||||
http_port = 3001; # forgejo and grafana default to 3000
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,14 +23,17 @@ in {
|
|||
options = ["subvol=@" "compress=zstd" "autodefrag"];
|
||||
};
|
||||
|
||||
boot.initrd.postDeviceCommands = pkgs.lib.mkBefore (decrypt {
|
||||
keydevice = "/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0";
|
||||
keypartname = "usbkey";
|
||||
});
|
||||
boot.initrd.luks.devices."usbkey" = {
|
||||
device = "/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."cryptroot" = {
|
||||
device = "/dev/disk/by-uuid/570cc51f-bd5c-4bee-a18f-f6aabaf60881";
|
||||
keyFileSize = 4096;
|
||||
preOpenCommands = ''
|
||||
mkdir -m 0755 -p /key
|
||||
mount -n -t vfat -o ro /dev/mapper/usbkey /key
|
||||
'';
|
||||
keyFile = "/key/keyfile";
|
||||
preLVM = false;
|
||||
};
|
||||
|
|
@ -54,6 +57,11 @@ in {
|
|||
|
||||
swapDevices = [{device = "/swap/swapfile";}];
|
||||
|
||||
boot.plymouth.enable = true;
|
||||
boot.initrd.verbose = false;
|
||||
boot.consoleLogLevel = 1;
|
||||
boot.kernelParams = ["quiet" "udev.log_level=3"];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
|
|
@ -66,7 +74,7 @@ in {
|
|||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
hardware.opengl = {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
|
|
@ -102,6 +110,4 @@ in {
|
|||
};
|
||||
}
|
||||
];
|
||||
|
||||
services.tlp.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{config, ...}: let
|
||||
user = config.user;
|
||||
in {
|
||||
hardware.opengl.enable = true;
|
||||
hardware.graphics.enable = true;
|
||||
boot.kernelModules = ["kvm-amd" "qxl" "bochs_drm"];
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ in {
|
|||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
||||
boot.initrd.kernelModules = ["uas" "usbcore" "usb_storage" "vfat" "nls_cp437" "nls_iso8859_1"];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
|
|
@ -26,6 +25,13 @@ in {
|
|||
options = ["subvol=@" "compress=zstd" "autodefrag"];
|
||||
};
|
||||
|
||||
fileSystems."/nix" = {
|
||||
device = "/dev/disk/by-label/nix";
|
||||
fsType = "f2fs";
|
||||
neededForBoot = true;
|
||||
options = ["noatime"];
|
||||
};
|
||||
|
||||
boot.initrd.postDeviceCommands = pkgs.lib.mkBefore (decrypt {
|
||||
keydevice = "/dev/disk/by-id/usb-Generic_Flash_Disk_BCC97785-0:0";
|
||||
keypartname = "usbkey";
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
./programs/git.nix
|
||||
./programs/lf/.
|
||||
./programs/zsh.nix
|
||||
./programs/tmux.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
|
@ -34,12 +35,15 @@
|
|||
htop
|
||||
libsixel
|
||||
yt-dlp
|
||||
ytfzf
|
||||
neofetch
|
||||
fastfetch
|
||||
tree
|
||||
ansible
|
||||
ytfzf
|
||||
lazygit
|
||||
];
|
||||
|
||||
programs.zoxide.enable = true;
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
82
home/desktop/cosmic/default.nix
Normal file
82
home/desktop/cosmic/default.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (config.lib.cosmic) Actions;
|
||||
in {
|
||||
programs.cosmic = {
|
||||
enable = true;
|
||||
input.asDefaults = true;
|
||||
input.binds = {
|
||||
# Navigation
|
||||
Super. "h" = Actions.Focus "Left";
|
||||
Super. "l" = Actions.Focus "Right";
|
||||
Super. "j" = Actions.Focus "Down";
|
||||
Super. "k" = Actions.Focus "Up";
|
||||
Super.Shift. "h" = Actions.Move "Left";
|
||||
Super.Shift. "l" = Actions.Move "Right";
|
||||
Super.Shift. "j" = Actions.Move "Down";
|
||||
Super.Shift. "k" = Actions.Move "Up";
|
||||
Super. "1" = Actions.Workspace 1;
|
||||
Super. "2" = Actions.Workspace 2;
|
||||
Super. "3" = Actions.Workspace 3;
|
||||
Super. "4" = Actions.Workspace 4;
|
||||
Super. "5" = Actions.Workspace 5;
|
||||
Super.Shift. "1" = Actions.MoveToWorkspace 1;
|
||||
Super.Shift. "2" = Actions.MoveToWorkspace 2;
|
||||
Super.Shift. "3" = Actions.MoveToWorkspace 3;
|
||||
Super.Shift. "4" = Actions.MoveToWorkspace 4;
|
||||
Super.Shift. "5" = Actions.MoveToWorkspace 5;
|
||||
Super. "Space" = Actions.ToggleWindowFloating;
|
||||
Super. "f" = Actions.Maximize;
|
||||
Super. "m" = Actions.Minimize;
|
||||
Super.Shift. "x" = Actions.Close;
|
||||
Super.Shift. "v" = Actions.ToggleStacking;
|
||||
Super.Shift. "y" = Actions.ToggleSticky;
|
||||
# System
|
||||
Super. "d" = Actions.Spawn config.programs.menu.drunCommand;
|
||||
Super. "Return" = Actions.Spawn pkgs.alacritty;
|
||||
Super. "o" = Actions.System "HomeFolder";
|
||||
Super.Shift. "s" = Actions.System "Screenshot";
|
||||
};
|
||||
background = {
|
||||
displays = {
|
||||
all = {
|
||||
source = ../../../images/nier2.jpg;
|
||||
};
|
||||
};
|
||||
};
|
||||
panels = {
|
||||
"Bar" = {
|
||||
applets = {
|
||||
start = [
|
||||
"com.system76.CosmicAppletWorkspaces"
|
||||
];
|
||||
center = [];
|
||||
end = [
|
||||
"com.system76.CosmicAppletTime"
|
||||
"com.system76.CosmicAppletTiling"
|
||||
"com.system76.CosmicAppletAudio"
|
||||
"com.system76.CosmicAppletNotifications"
|
||||
"com.system76.CosmicAppletMinimize"
|
||||
"com.system76.CosmicAppletPower"
|
||||
];
|
||||
};
|
||||
options = {
|
||||
size = "XS";
|
||||
border_radius = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"com.system76.CosmicComp".options = {
|
||||
autotile = true;
|
||||
active_hint = true;
|
||||
focus_follows_cursor = true;
|
||||
focus_follows_cursor_delay = 0;
|
||||
cursor_follows_focus = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,24 +6,91 @@
|
|||
}: let
|
||||
modifier = config.windowManager.modifierKey;
|
||||
menu = config.programs.menu.dmenuCommand;
|
||||
lock_cmd = "${config.programs.hyprlock.package}/bin/hyprlock";
|
||||
color = {
|
||||
inherit (config.lib.stylix.colors) yellow red;
|
||||
bg = config.lib.stylix.colors.base00;
|
||||
fg = config.lib.stylix.colors.base07;
|
||||
text = config.lib.stylix.colors.base05;
|
||||
};
|
||||
rgb = color: "rgb(${color})";
|
||||
in {
|
||||
imports = [
|
||||
(import ../utils/swaylock.nix)
|
||||
(import ../utils/swayidle.nix)
|
||||
(import ../utils/waybar.nix)
|
||||
(import ../utils/display.nix)
|
||||
../../workstation.nix
|
||||
];
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
configPackages = [pkgs.hyprland];
|
||||
extraPortals = [pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk];
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
};
|
||||
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
before_sleep_cmd = "rbw lock";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "pidof ${lock_cmd} || ${lock_cmd}";
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 1200;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
||||
general = {
|
||||
hide_cursor = true;
|
||||
grace = 10;
|
||||
ignore_empty_input = true;
|
||||
};
|
||||
|
||||
background = [
|
||||
{
|
||||
path = "screenshot";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
}
|
||||
];
|
||||
|
||||
input-field = [
|
||||
{
|
||||
dots_center = true;
|
||||
fade_on_empty = true;
|
||||
outline_thickness = 5;
|
||||
shadow_passes = 2;
|
||||
inner_color = rgb color.bg;
|
||||
outer_color = rgb color.fg;
|
||||
font_color = rgb color.text;
|
||||
fail_color = rgb color.red;
|
||||
check_color = rgb color.yellow;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
variables = ["--all"];
|
||||
};
|
||||
settings = {
|
||||
exec-once = ["${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill"];
|
||||
input = {
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
|
|
@ -35,7 +102,6 @@ in {
|
|||
};
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_numbered = false;
|
||||
};
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
timeouts = [
|
||||
{
|
||||
timeout = 300;
|
||||
command = "${pkgs.swaylock-effects}/bin/swaylock -f";
|
||||
command = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 600;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
systemd.enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
layer = "bottom";
|
||||
position = "top";
|
||||
height = 36;
|
||||
modules-right = ["mpris" "idle_inhibitor" "pulseaudio" "clock" "tray" "battery"];
|
||||
|
|
|
|||
185
home/modules/aerc/binds.conf
Normal file
185
home/modules/aerc/binds.conf
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
# Binds are of the form <key sequence> = <command to run>
|
||||
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
|
||||
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-PgUp> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-PgDn> = :next-tab<Enter>
|
||||
\[t = :prev-tab<Enter>
|
||||
\]t = :next-tab<Enter>
|
||||
<C-t> = :term<Enter>
|
||||
? = :help keys<Enter>
|
||||
<C-c> = :prompt 'Quit?' quit<Enter>
|
||||
<C-q> = :prompt 'Quit?' quit<Enter>
|
||||
<C-z> = :suspend<Enter>
|
||||
|
||||
[messages]
|
||||
o = :term mbsync -a<Enter>
|
||||
q = :prompt 'Quit?' quit<Enter>
|
||||
|
||||
j = :next<Enter>
|
||||
<Down> = :next<Enter>
|
||||
<C-d> = :next 50%<Enter>
|
||||
<C-f> = :next 100%<Enter>
|
||||
<PgDn> = :next 100%<Enter>
|
||||
|
||||
k = :prev<Enter>
|
||||
<Up> = :prev<Enter>
|
||||
<C-u> = :prev 50%<Enter>
|
||||
<C-b> = :prev 100%<Enter>
|
||||
<PgUp> = :prev 100%<Enter>
|
||||
g = :select 0<Enter>
|
||||
G = :select -1<Enter>
|
||||
|
||||
J = :next-folder<Enter>
|
||||
<C-Down> = :next-folder<Enter>
|
||||
K = :prev-folder<Enter>
|
||||
<C-Up> = :prev-folder<Enter>
|
||||
H = :collapse-folder<Enter>
|
||||
<C-Left> = :collapse-folder<Enter>
|
||||
L = :expand-folder<Enter>
|
||||
<C-Right> = :expand-folder<Enter>
|
||||
|
||||
v = :mark -t<Enter>
|
||||
<Space> = :mark -t<Enter>:next<Enter>
|
||||
V = :mark -v<Enter>
|
||||
|
||||
T = :toggle-threads<Enter>
|
||||
zc = :fold<Enter>
|
||||
zo = :unfold<Enter>
|
||||
za = :fold -t<Enter>
|
||||
zM = :fold -a<Enter>
|
||||
zR = :unfold -a<Enter>
|
||||
<tab> = :fold -t<Enter>
|
||||
|
||||
zz = :align center<Enter>
|
||||
zt = :align top<Enter>
|
||||
zb = :align bottom<Enter>
|
||||
|
||||
<Enter> = :view<Enter>
|
||||
d = :choose -o y 'Really delete this message' delete-message<Enter>
|
||||
D = :delete<Enter>
|
||||
a = :archive flat<Enter>
|
||||
A = :unmark -a<Enter>:mark -T<Enter>:archive flat<Enter>
|
||||
|
||||
C = :compose<Enter>
|
||||
m = :compose<Enter>
|
||||
|
||||
b = :bounce<space>
|
||||
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
|
||||
c = :cf<space>
|
||||
$ = :term<space>
|
||||
! = :term<space>
|
||||
| = :pipe<space>
|
||||
|
||||
/ = :search<space>
|
||||
\ = :filter<space>
|
||||
n = :next-result<Enter>
|
||||
N = :prev-result<Enter>
|
||||
<Esc> = :clear<Enter>
|
||||
|
||||
s = :split<Enter>
|
||||
S = :vsplit<Enter>
|
||||
|
||||
pl = :patch list<Enter>
|
||||
pa = :patch apply <Tab>
|
||||
pd = :patch drop <Tab>
|
||||
pb = :patch rebase<Enter>
|
||||
pt = :patch term<Enter>
|
||||
ps = :patch switch <Tab>
|
||||
|
||||
[messages:folder=Drafts]
|
||||
<Enter> = :recall<Enter>
|
||||
|
||||
[view]
|
||||
/ = :toggle-key-passthrough<Enter>/
|
||||
q = :close<Enter>
|
||||
O = :open<Enter>
|
||||
o = :open<Enter>
|
||||
S = :save<space>
|
||||
| = :pipe<space>
|
||||
D = :delete<Enter>
|
||||
A = :archive flat<Enter>
|
||||
|
||||
<C-l> = :open-link <space>
|
||||
|
||||
f = :forward<Enter>
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
|
||||
H = :toggle-headers<Enter>
|
||||
<C-k> = :prev-part<Enter>
|
||||
<C-Up> = :prev-part<Enter>
|
||||
<C-j> = :next-part<Enter>
|
||||
<C-Down> = :next-part<Enter>
|
||||
J = :next<Enter>
|
||||
<C-Right> = :next<Enter>
|
||||
K = :prev<Enter>
|
||||
<C-Left> = :prev<Enter>
|
||||
|
||||
[view::passthrough]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<Esc> = :toggle-key-passthrough<Enter>
|
||||
|
||||
[compose]
|
||||
# Keybindings used when the embedded terminal is not selected in the compose
|
||||
# view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
$complete = <C-o>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-Up> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<C-Down> = :next-field<Enter>
|
||||
<A-p> = :switch-account -p<Enter>
|
||||
<C-Left> = :switch-account -p<Enter>
|
||||
<A-n> = :switch-account -n<Enter>
|
||||
<C-Right> = :switch-account -n<Enter>
|
||||
<tab> = :next-field<Enter>
|
||||
<backtab> = :prev-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-PgUp> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-PgDn> = :next-tab<Enter>
|
||||
|
||||
[compose::editor]
|
||||
# Keybindings used when the embedded terminal is selected in the compose view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-Up> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<C-Down> = :next-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-PgUp> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-PgDn> = :next-tab<Enter>
|
||||
|
||||
[compose::review]
|
||||
# Keybindings used when reviewing a message to be sent
|
||||
# Inline comments are used as descriptions on the review screen
|
||||
y = :send<Enter> # Send
|
||||
n = :abort<Enter> # Abort (discard message, no confirmation)
|
||||
v = :preview<Enter> # Preview message
|
||||
p = :postpone<Enter> # Postpone
|
||||
q = :choose -o d discard abort -o p postpone postpone<Enter> # Abort or postpone
|
||||
e = :edit<Enter> # Edit
|
||||
a = :attach<space> # Add attachment
|
||||
d = :detach<space> # Remove attachment
|
||||
|
||||
[terminal]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-PgUp> = :prev-tab<Enter>
|
||||
<C-PgDn> = :next-tab<Enter>
|
||||
21
home/modules/aerc/default.nix
Normal file
21
home/modules/aerc/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
programs.aerc = {
|
||||
extraBinds = builtins.readFile ./binds.conf; # default binds
|
||||
extraConfig = {
|
||||
general = {
|
||||
pgp-provider = "gpg";
|
||||
unsafe-accounts-conf = true;
|
||||
};
|
||||
ui = {};
|
||||
viewer = {};
|
||||
filters = {
|
||||
"text/plain" = "colorize";
|
||||
"text/calendar" = "calendar";
|
||||
"message/delivery-status" = "colorize";
|
||||
"message/rfc822" = "colorize";
|
||||
"image/*" = "img2sixel";
|
||||
"text/html" = "html | colorize";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -21,6 +21,8 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
imports = [./aerc/.];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.scripts = [
|
||||
{
|
||||
|
|
@ -73,156 +75,6 @@ in {
|
|||
|
||||
programs.aerc = {
|
||||
enable = cfg.terminal;
|
||||
extraBinds = ''
|
||||
# Binds are of the form <key sequence> = <command to run>
|
||||
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
|
||||
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
<C-t> = :term<Enter>
|
||||
|
||||
[messages]
|
||||
Q = :quit<Enter>
|
||||
|
||||
T = :toggle-threads<Enter>
|
||||
|
||||
j = :next<Enter>
|
||||
<Down> = :next<Enter>
|
||||
<C-d> = :next 50%<Enter>
|
||||
<C-f> = :next 100%<Enter>
|
||||
<PgDn> = :next -s 100%<Enter>
|
||||
|
||||
k = :prev<Enter>
|
||||
<Up> = :prev<Enter>
|
||||
<C-u> = :prev 50%<Enter>
|
||||
<C-b> = :prev<Enter>
|
||||
<PgUp> = :prev -s 100%<Enter>
|
||||
gg = :select 0<Enter>
|
||||
G = :select -1<Enter>
|
||||
|
||||
J = :next-folder<Enter>
|
||||
K = :prev-folder<Enter>
|
||||
|
||||
v = :mark -t<Enter>
|
||||
V = :mark -v<Enter>
|
||||
|
||||
f = :flag<Enter>
|
||||
F = :unflag<Enter>
|
||||
|
||||
t = :toggle-threads<Enter>
|
||||
|
||||
<Enter> = :view<Enter>
|
||||
D = :mv Trash<Enter>
|
||||
|
||||
C = :compose<enter>
|
||||
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
rt = :unflag<Enter>:reply -a -Tthanks<Enter>
|
||||
Rt = :unflag<Enter>:reply -qa -Tquoted_thanks<Enter>
|
||||
|
||||
a = :mv Archive<Enter>
|
||||
|
||||
c = :cf<space>
|
||||
$ = :term<space>
|
||||
! = :term<space>
|
||||
| = :pipe<space>
|
||||
|
||||
ga = :flag<Enter>:pipe -mb git am -3<Enter>
|
||||
gp = :term git push<Enter>
|
||||
gl = :term git log<Enter>
|
||||
|
||||
/ = :search<space>
|
||||
\ = :filter<space>
|
||||
n = :next-result<Enter>
|
||||
N = :prev-result<Enter>
|
||||
|
||||
o = :term mbsync -a<Enter>
|
||||
q = :quit<Enter>
|
||||
|
||||
[view]
|
||||
/ = :toggle-key-passthrough<Enter>/
|
||||
q = :close<Enter>
|
||||
| = :pipe -m<space>
|
||||
S = :save<space>
|
||||
H = :toggle-headers<Enter>
|
||||
D = :mv Trash<Enter>
|
||||
<C-k> = :prev-part<Enter>
|
||||
<C-j> = :next-part<Enter>
|
||||
J = :next<Enter>
|
||||
K = :prev<Enter>
|
||||
|
||||
f = :forward<Enter>
|
||||
Rr = :reply<Enter>
|
||||
Rq = :reply -q<Enter>
|
||||
rr = :reply -a<Enter>
|
||||
rq = :reply -aq<Enter>
|
||||
rt = :reply -Tthanks<Enter>
|
||||
|
||||
ga = :pipe -b git am -3<Enter>
|
||||
gp = :term git push<Enter>
|
||||
gl = :term git log<Enter>
|
||||
|
||||
[view::passthrough]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<Esc> = :toggle-key-passthrough<Enter>
|
||||
|
||||
[compose]
|
||||
$ex = <C-x>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<tab> = :next-field<Enter>
|
||||
|
||||
[compose::editor]
|
||||
# Keybindings used when the embedded terminal is selected in the compose view
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
<C-t> = :term<Enter>
|
||||
<C-k> = :prev-field<Enter>
|
||||
<C-j> = :next-field<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
|
||||
[compose::review]
|
||||
# Keybindings used when reviewing a message to be sent
|
||||
y = :send<Enter>
|
||||
n = :abort<Enter>
|
||||
e = :edit<Enter>
|
||||
a = :attach<space>
|
||||
c = :encrypt<Enter>
|
||||
s = :sign<Enter>
|
||||
V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION<Enter>
|
||||
A = :header -f X-Sourcehut-Patchset-Update APPLIED<Enter>
|
||||
R = :header -f X-Sourcehut-Patchset-Update REJECTED<Enter>
|
||||
|
||||
[terminal]
|
||||
$noinherit = true
|
||||
$ex = <C-x>
|
||||
|
||||
<C-t> = :term<Enter>
|
||||
<C-p> = :prev-tab<Enter>
|
||||
<C-n> = :next-tab<Enter>
|
||||
'';
|
||||
|
||||
extraConfig = {
|
||||
general = {
|
||||
pgp-provider = "gpg";
|
||||
unsafe-accounts-conf = true;
|
||||
};
|
||||
ui = {};
|
||||
viewer = {};
|
||||
filters = {
|
||||
"text/plain" = "colorize";
|
||||
"text/calendar" = "calendar";
|
||||
"message/delivery-status" = "colorize";
|
||||
"message/rfc822" = "colorize";
|
||||
"image/*" = "img2sixel";
|
||||
"text/html" = "html | colorize";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,9 @@
|
|||
terminal = config.programs.terminal;
|
||||
termcmd = "${terminal}/bin/${terminal.pname}";
|
||||
menucmd = config.programs.menu.drunCommand;
|
||||
inherit (lib) mkPackageOption mkOption;
|
||||
in {
|
||||
options.programs = with lib; {
|
||||
options.programs = {
|
||||
menu = {
|
||||
package = mkPackageOption pkgs "wofi" {
|
||||
example = "pkgs.dmenu-wayland";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{pkgs, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
aliases = {
|
||||
|
|
@ -6,6 +6,32 @@
|
|||
amend = "commit --amend --no-edit";
|
||||
sdiff = "diff --staged";
|
||||
t = "tag --annotate";
|
||||
bclone = "!sh ${pkgs.writeShellScriptBin "bare-clone" ''
|
||||
url=$1
|
||||
basename=''${url##*/}
|
||||
if [[ $2 == -* ]]
|
||||
then
|
||||
opts=''${@:2}
|
||||
name=''${basename%.*}
|
||||
else
|
||||
opts=''${@:3}
|
||||
name=''${2:-''${basename%.*}}
|
||||
fi
|
||||
|
||||
mkdir "$name"
|
||||
|
||||
git clone --bare "$url" "$name/.bare" $opts || {
|
||||
rm -r "$name"
|
||||
exit 1
|
||||
}
|
||||
|
||||
cd "$name"
|
||||
echo "gitdir: ./.bare" > .git
|
||||
|
||||
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
|
||||
|
||||
git fetch origin $opts
|
||||
''}/bin/bare-clone";
|
||||
};
|
||||
delta = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./qutebrowser.nix
|
||||
./pcmanfm.nix
|
||||
./mpv.nix
|
||||
./vscode.nix
|
||||
|
|
@ -18,13 +13,11 @@
|
|||
helvum
|
||||
|
||||
# tools
|
||||
obs-studio
|
||||
inkscape
|
||||
libsForQt5.okular
|
||||
gimp
|
||||
libreoffice
|
||||
dbeaver
|
||||
insomnia
|
||||
dbeaver-bin
|
||||
drawio
|
||||
|
||||
# entertainment
|
||||
|
|
@ -32,13 +25,16 @@
|
|||
shortwave
|
||||
|
||||
# other
|
||||
element-desktop
|
||||
element-desktop-wayland
|
||||
brave
|
||||
vieb
|
||||
bitwarden
|
||||
logseq
|
||||
];
|
||||
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = [pkgs.obs-studio-plugins.wlrobs];
|
||||
};
|
||||
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"application/pdf" = "sioyek.desktop";
|
||||
};
|
||||
|
|
@ -48,21 +44,10 @@
|
|||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Vimix-Doder";
|
||||
package = pkgs.vimix-icon-theme;
|
||||
};
|
||||
cursorTheme = {
|
||||
name = "Vanilla-DMZ";
|
||||
package = pkgs.vanilla-dmz;
|
||||
size = 24;
|
||||
};
|
||||
gtk3.bookmarks = [
|
||||
"file:///home/tristan/Documents"
|
||||
"file:///home/tristan/Pictures/Screenshots"
|
||||
"file:///home/tristan/Downloads"
|
||||
];
|
||||
};
|
||||
|
||||
programs.librewolf.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ in {
|
|||
R = "drag";
|
||||
"<f-2>" = ":rename";
|
||||
"<enter>" = "open-with";
|
||||
"<f-5>" = ":reload";
|
||||
};
|
||||
programs.lf.extraConfig = ''
|
||||
set sixel true
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
vim.o.relativenumber = true
|
||||
vim.o.number = true
|
||||
vim.o.signcolumn = 'yes'
|
||||
vim.o.tabstop = 2
|
||||
vim.o.shiftwidth = 2
|
||||
vim.o.expandtab = true
|
||||
vim.o.smartindent = true
|
||||
vim.o.scrolloff = 4
|
||||
vim.o.undofile = true
|
||||
vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo")
|
||||
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
||||
vim.keymap.set("x", "p", "\"_dP")
|
||||
|
||||
vim.keymap.set("n", "<leader>y", "\"+y")
|
||||
vim.keymap.set("v", "<leader>y", "\"+y")
|
||||
|
||||
-- Global mappings.
|
||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
|
||||
|
||||
vim.keymap.set('v', '<C-c>', '"+y')
|
||||
vim.keymap.set('i', '<C-v>', '<escape>"+p')
|
||||
|
|
@ -1,61 +1,20 @@
|
|||
{pkgs, ...}: {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
extraLuaConfig = ''
|
||||
${builtins.readFile ./config.lua}
|
||||
'';
|
||||
extraPackages = with pkgs; [
|
||||
nodePackages_latest.typescript-language-server
|
||||
vscode-langservers-extracted
|
||||
gopls
|
||||
nil
|
||||
rust-analyzer
|
||||
];
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = nvim-surround;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("nvim-surround").setup()
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = comment-nvim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("Comment").setup()
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = vimwiki;
|
||||
config = ''
|
||||
let g:vimwiki_list = [{'path': '~/Documents/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}]
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = telescope-nvim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
local builtin = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = builtins.readFile ./lspconfig.lua;
|
||||
}
|
||||
];
|
||||
};
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.nixvim =
|
||||
{
|
||||
enable = true;
|
||||
}
|
||||
// (import ../../../lib/nixvim.nix {inherit pkgs;});
|
||||
|
||||
programs.vscode = {
|
||||
extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim];
|
||||
userSettings = {
|
||||
"vscode-neovim.neovimExecutablePaths.linux" = "${pkgs.neovim}/bin/nvim";
|
||||
"vscode-neovim.neovimExecutablePaths.linux" =
|
||||
lib.getExe config.programs.nixvim.package;
|
||||
"extensions.experimental.affinity" = {
|
||||
"asvetliakov.vscode-neovim" = 1;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
-- Setup language servers.
|
||||
local lspconfig = require('lspconfig')
|
||||
|
||||
local on_attach = function(client)
|
||||
require'completion'.on_attach(client)
|
||||
client.server_capabilities.documentFormattingProvider = false
|
||||
end
|
||||
|
||||
lspconfig.tsserver.setup {
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
lspconfig.eslint.setup {
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
lspconfig.rust_analyzer.setup {
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
lspconfig.gopls.setup {}
|
||||
lspconfig.nil_ls.setup {}
|
||||
lspconfig.rust_analyzer.setup {}
|
||||
|
||||
-- Use LspAttach autocommand to only map the following keys
|
||||
-- after the language server attaches to the current buffer
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||
callback = function(ev)
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
||||
|
||||
-- Buffer local mappings.
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
local opts = { buffer = ev.buf }
|
||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts)
|
||||
vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
||||
vim.keymap.set('n', '<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, opts)
|
||||
vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, opts)
|
||||
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||
vim.keymap.set('n', '<leader>f', function()
|
||||
vim.lsp.buf.format { async = true }
|
||||
end, opts)
|
||||
end,
|
||||
})
|
||||
|
|
@ -14,20 +14,38 @@
|
|||
|
||||
services.nextcloud-client.enable = true;
|
||||
|
||||
programs.nixvim.plugins = {
|
||||
lsp = {
|
||||
servers.gdscript.enable = true;
|
||||
};
|
||||
godot.enable = true;
|
||||
dap = {
|
||||
enable = true;
|
||||
adapters.servers.godot = {
|
||||
host = "127.0.0.1";
|
||||
port = 6006;
|
||||
};
|
||||
configurations.gdscript = [
|
||||
{
|
||||
type = "godot";
|
||||
request = "launch";
|
||||
name = "Launch scene";
|
||||
project = "\${workspaceFolder}";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
godot_4
|
||||
ardour
|
||||
blender
|
||||
# musescore
|
||||
musescore
|
||||
monero-gui
|
||||
electrum
|
||||
xmrig
|
||||
transmission-remote-gtk
|
||||
krita
|
||||
organicmaps
|
||||
anki
|
||||
hugo
|
||||
libsForQt5.neochat
|
||||
bookworm
|
||||
jellyfin-mpv-shim
|
||||
];
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
grim = "${pkgs.grim}/bin/grim";
|
||||
slurp = "${pkgs.slurp}/bin/slurp";
|
||||
amixer = "${pkgs.alsa-utils}/bin/amixer";
|
||||
swaybg = "${pkgs.swaybg}/bin/swaybg";
|
||||
chafa = "${pkgs.chafa}/bin/chafa";
|
||||
exiftool = "${pkgs.exiftool}/bin/exiftool";
|
||||
wc = "${pkgs.coreutils}/bin/wc";
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
gawk = "${pkgs.gawk}/bin/awk";
|
||||
hyprpicker = "${pkgs.hyprpicker}/bin/hyprpicker";
|
||||
sed = "${pkgs.gnused}/bin/sed";
|
||||
lock = "${pkgs.hyprlock}/bin/hyprlock";
|
||||
};
|
||||
in {
|
||||
programs.scripts = [
|
||||
|
|
@ -55,14 +55,13 @@ in {
|
|||
echo "$items" | ${my-deps.menu} | xargs -I_ rbw get _ | wl-copy -n
|
||||
'';
|
||||
hotkeys = [{key = "P";}];
|
||||
install = false;
|
||||
}
|
||||
{
|
||||
name = "bwusernamemenu";
|
||||
text = ''
|
||||
items="$(rbw list)"
|
||||
echo "$items" | ${my-deps.menu} | xargs -I_ rbw get --field username _ \
|
||||
| awk '{print $2}' | wl-copy -n
|
||||
| wl-copy -n
|
||||
'';
|
||||
hotkeys = [
|
||||
{
|
||||
|
|
@ -70,7 +69,6 @@ in {
|
|||
key = "P";
|
||||
}
|
||||
];
|
||||
install = false;
|
||||
}
|
||||
{
|
||||
name = "bwotpmenu";
|
||||
|
|
@ -84,7 +82,6 @@ in {
|
|||
key = "P";
|
||||
}
|
||||
];
|
||||
install = false;
|
||||
}
|
||||
{
|
||||
name = "screenshot";
|
||||
|
|
@ -279,7 +276,7 @@ in {
|
|||
sleep
|
||||
hibernate" | ${my-deps.menu})
|
||||
case $res in
|
||||
lock) swaylock;;
|
||||
lock) ${my-deps.lock};;
|
||||
sleep) systemctl suspend;;
|
||||
hibernate) systemctl hibernate;;
|
||||
esac
|
||||
|
|
@ -344,5 +341,12 @@ in {
|
|||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "prefetch-url";
|
||||
text = ''
|
||||
nix-build -E "with import <nixpkgs> {}; fetchzip {url = \"$1\"; sha256 = lib.fakeSha256; }"
|
||||
'';
|
||||
install = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
43
home/programs/tmux.nix
Normal file
43
home/programs/tmux.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
baseIndex = 1;
|
||||
escapeTime = 0;
|
||||
keyMode = "vi";
|
||||
mouse = true;
|
||||
terminal = "screen-256color";
|
||||
historyLimit = 5000;
|
||||
extraConfig = ''
|
||||
bind -n M-s split-window -v
|
||||
bind -n M-v split-window -h
|
||||
bind -n M-Enter split-window -h
|
||||
bind -n M-h select-pane -L
|
||||
bind -n M-j select-pane -D
|
||||
bind -n M-k select-pane -U
|
||||
bind -n M-l select-pane -R
|
||||
bind -n M-q kill-pane
|
||||
bind -n M-< resize-pane -L 10
|
||||
bind -n M-> resize-pane -R 10
|
||||
bind -n M-- resize-pane -D 10
|
||||
bind -n M-+ resize-pane -U 10
|
||||
bind -n M-z resize-pane -Z
|
||||
bind -n M-u copy-mode
|
||||
bind -n M-p paste-buffer
|
||||
bind -n M-n next-window
|
||||
|
||||
set-option -g renumber-windows on
|
||||
'';
|
||||
};
|
||||
|
||||
# programs.kitty = {
|
||||
# enable = true;
|
||||
# keybindings = {
|
||||
# "alt+h" = "neighboring_window left";
|
||||
# "alt+l" = "neighboring_window right";
|
||||
# "alt+j" = "neighboring_window down";
|
||||
# "alt+k" = "neighboring_window up";
|
||||
# "alt+enter" = "new_window";
|
||||
# };
|
||||
# shellIntegration.enableZshIntegration = true;
|
||||
# };
|
||||
}
|
||||
|
|
@ -19,6 +19,9 @@ in {
|
|||
"gitlens.telemetry.enabled" = false;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
"cSpell.language" = "en,en-GB";
|
||||
"[typescript]" = {
|
||||
"editor.defaultFormatter" = "vscode.typescript-language-features";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
...
|
||||
}: let
|
||||
modifier = config.windowManager.modifierKey;
|
||||
browser = "${pkgs.brave}/opt/brave.com/brave/brave-browser";
|
||||
pwa = {
|
||||
slack = "mpagibdhafmlkgpemeicgogjnhclenoc";
|
||||
teams = "cifhbcnohmdccbgoicgdjpfamggdegmo";
|
||||
|
|
@ -15,23 +16,39 @@ in {
|
|||
terminal = false;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
thunderbird
|
||||
remmina
|
||||
home.packages = [
|
||||
pkgs.thunderbird
|
||||
pkgs.remmina
|
||||
(import ../../lib/mkapp.nix "slack" {
|
||||
inherit pkgs;
|
||||
inherit pkgs browser;
|
||||
desktopName = "Slack";
|
||||
app-id = pwa.slack;
|
||||
browser = "${brave}/opt/brave.com/brave/brave-browser";
|
||||
})
|
||||
(import ../../lib/mkapp.nix "teams" {
|
||||
inherit pkgs;
|
||||
browser = "${brave}/opt/brave.com/brave/brave-browser";
|
||||
inherit pkgs browser;
|
||||
app-id = pwa.teams;
|
||||
desktopName = "Microsoft Teams";
|
||||
})
|
||||
pkgs.devcontainer
|
||||
(pkgs.writeShellScriptBin "devcontainer-open" (let
|
||||
jq = "${pkgs.jq}/bin/jq";
|
||||
devcontainer = "${pkgs.devcontainer}/bin/devcontainer";
|
||||
in ''
|
||||
res=$(${devcontainer} up --workspace-folder .)
|
||||
outcome=$(echo $res | ${jq} -r '.outcome')
|
||||
[[ $outcome = "success" ]] || exit 1
|
||||
containerId=$(echo $res | ${jq} -r '.containerId')
|
||||
remoteWorkspaceFolder=$(echo $res | ${jq} -r '.remoteWorkspaceFolder')
|
||||
docker exec -it --workdir=$remoteWorkspaceFolder $containerId bash
|
||||
''))
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
CYPRESS_INSTALL_BINARY = 0;
|
||||
CYPRESS_RUN_BINARY = "${pkgs.cypress}/bin/Cypress";
|
||||
MONGOMS_SYSTEM_BINARY = "${pkgs.callPackage ../../pkgs/mongodb.nix pkgs}/bin/mongod";
|
||||
};
|
||||
|
||||
gtk.gtk3.bookmarks = [
|
||||
"file:///home/tristan/OneDrive/ OneDrive"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
./modules/terminal.nix
|
||||
./modules/scripts.nix
|
||||
./modules/email.nix
|
||||
./modules/mpd.nix
|
||||
./modules/menu.nix
|
||||
./modules/scripts.nix
|
||||
|
||||
|
|
@ -23,7 +22,6 @@
|
|||
dmenuCommand = "${pkgs.tofi}/bin/tofi --fuzzy-match true";
|
||||
drunCommand = "${pkgs.tofi}/bin/tofi-drun --drun-launch true";
|
||||
};
|
||||
roles.mpd.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
wl-clipboard
|
||||
|
|
@ -38,8 +36,7 @@
|
|||
|
||||
programs.rbw.settings.pinentry = pkgs.pinentry-gnome3;
|
||||
|
||||
home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ";
|
||||
home.file.".config/pipewire/pipewire.conf.d/raop-discover.conf".text = ''
|
||||
xdg.configFile."pipewire/pipewire.conf.d/raop-discover.conf".text = ''
|
||||
context.modules = [
|
||||
{
|
||||
name = libpipewire-module-raop-discover
|
||||
|
|
|
|||
14
lib/cypress.nix
Normal file
14
lib/cypress.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
final: prev: {
|
||||
cypress = prev.cypress.overrideAttrs (oldAttrs: rec {
|
||||
pname = "cypress";
|
||||
version = "13.13.0";
|
||||
|
||||
src = prev.fetchzip {
|
||||
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
|
||||
sha256 = "sha256-FGaopXp8T0swY0v6IH7cuhp/IolTmJ8vXLLslPtBOJw=";
|
||||
## Note: sha256 is computed via (note the version):
|
||||
##
|
||||
## nix-prefetch-url --unpack https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
@ -1188,3 +1188,4 @@
|
|||
8⃣ keycap: 8 ~ Symbols (keycap)
|
||||
9⃣ keycap: 9 ~ Symbols (keycap)
|
||||
¯\_(ツ)_/¯ shrug
|
||||
• bullet point
|
||||
|
|
|
|||
|
|
@ -4,8 +4,11 @@
|
|||
user,
|
||||
userFullname,
|
||||
...
|
||||
}: modules: home-modules: let
|
||||
inherit (inputs) home-manager nixpkgs sops-nix;
|
||||
}: {
|
||||
nixos-modules ? [],
|
||||
home-modules ? [],
|
||||
}: let
|
||||
inherit (inputs) home-manager nixpkgs sops-nix nixvim;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs;};
|
||||
|
|
@ -13,7 +16,7 @@ in
|
|||
inherit system;
|
||||
|
||||
modules =
|
||||
modules
|
||||
nixos-modules
|
||||
++ [
|
||||
home-manager.nixosModules.home-manager
|
||||
sops-nix.nixosModules.sops
|
||||
|
|
@ -24,6 +27,7 @@ in
|
|||
users.${user}.imports =
|
||||
home-modules
|
||||
++ [
|
||||
nixvim.homeManagerModules.nixvim
|
||||
../home/.
|
||||
{
|
||||
options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;};
|
||||
|
|
|
|||
279
lib/nixvim.nix
Normal file
279
lib/nixvim.nix
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
{pkgs, ...}: {
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
};
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
tabstop = 4;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
smartindent = true;
|
||||
scrolloff = 4;
|
||||
|
||||
undofile = true;
|
||||
undodir.__raw = ''vim.fn.expand("$HOME/.local/share/nvim/undo")'';
|
||||
|
||||
list = true;
|
||||
listchars = builtins.concatStringsSep "," [
|
||||
"tab: >"
|
||||
"leadmultispace: |"
|
||||
"trail:."
|
||||
"extends:>"
|
||||
"precedes:<"
|
||||
];
|
||||
};
|
||||
extraPlugins = [(pkgs.vimPlugins.actions-preview-nvim)];
|
||||
extraConfigLua = ''
|
||||
require("actions-preview").setup {
|
||||
highlight_command = {
|
||||
require("actions-preview.highlight").delta("${pkgs.delta}/bin/delta --no-gitconfig --side-by-side"),
|
||||
},
|
||||
telescope = {
|
||||
sorting_strategy = "ascending",
|
||||
layout_strategy = "vertical",
|
||||
layout_config = {
|
||||
width = 0.8,
|
||||
height = 0.9,
|
||||
prompt_position = "top",
|
||||
preview_cutoff = 20,
|
||||
preview_height = function(_, _, max_lines)
|
||||
return max_lines - 10
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
vim.keymap.set({ "v", "n" }, "<C-.>", require("actions-preview").code_actions)
|
||||
vim.keymap.set({ "n" }, "<leader>ca", require("actions-preview").code_actions)
|
||||
'';
|
||||
keymaps = [
|
||||
{
|
||||
key = "<C-c>";
|
||||
action = ''"+y'';
|
||||
options.desc = "copy to clipboard";
|
||||
}
|
||||
{
|
||||
key = "<leader>ca";
|
||||
action = ''
|
||||
require("actions-preview").code_actions
|
||||
'';
|
||||
}
|
||||
{
|
||||
key = "<C-Tab>";
|
||||
action = "<CMD>tabnext<CR>";
|
||||
}
|
||||
{
|
||||
key = "<C-S-Tab>";
|
||||
action = "<CMD>tabprev<CR>";
|
||||
}
|
||||
{
|
||||
key = "gl";
|
||||
action = "g$";
|
||||
}
|
||||
{
|
||||
key = "gh";
|
||||
action = "g0";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = ">";
|
||||
action = ">gv";
|
||||
options.desc = "indent";
|
||||
options.silent = true;
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<";
|
||||
action = "<gv";
|
||||
options.desc = "deindent";
|
||||
options.silent = true;
|
||||
}
|
||||
{
|
||||
key = "<leader>q";
|
||||
action = "<CMD>bd<CR>";
|
||||
options.desc = "close buffer";
|
||||
}
|
||||
{
|
||||
key = "<leader>g";
|
||||
action = "";
|
||||
options.desc = "Gitsigns";
|
||||
}
|
||||
{
|
||||
key = "<leader>gs";
|
||||
action = "<CMD>Gitsigns stage_hunk<CR>";
|
||||
options.desc = "git stage hunk";
|
||||
}
|
||||
{
|
||||
key = "<leader>gn";
|
||||
action = "<CMD>Gitsigns next_hunk<CR>zz";
|
||||
options.desc = "next git hunk";
|
||||
}
|
||||
{
|
||||
key = "<leader>gd";
|
||||
action = "<CMD>Gitsigns preview_hunk_inline<CR>";
|
||||
options.desc = "git diff hunk";
|
||||
}
|
||||
{
|
||||
key = "<leader>gD";
|
||||
action = "<CMD>Gitsigns diffthis<CR>";
|
||||
options.desc = "git diff buffer";
|
||||
}
|
||||
{
|
||||
key = "<leader>gr";
|
||||
action = "<CMD>Gitsigns reset_hunk<CR>";
|
||||
options.desc = "git restore hunk";
|
||||
}
|
||||
{
|
||||
key = "<leader>gb";
|
||||
action = "<CMD>Gitsigns blame<CR>";
|
||||
options.desc = "show git blame";
|
||||
}
|
||||
{
|
||||
key = "<leader>gg";
|
||||
action = "<CMD>LazyGit<CR>";
|
||||
options.desc = "open lazygit";
|
||||
}
|
||||
{
|
||||
key = "<leader>-";
|
||||
action = "<CMD>Oil<CR>";
|
||||
options.desc = "open dir in Oil";
|
||||
}
|
||||
{
|
||||
key = "<leader>f";
|
||||
action = "";
|
||||
options.desc = "Telescope";
|
||||
}
|
||||
{
|
||||
key = "<leader>c";
|
||||
action = "";
|
||||
options.desc = "LSP";
|
||||
}
|
||||
{
|
||||
key = "<leader>h";
|
||||
action = "";
|
||||
options.desc = "Harpoon";
|
||||
}
|
||||
];
|
||||
|
||||
plugins = {
|
||||
bufferline.enable = true;
|
||||
web-devicons.enable = true;
|
||||
vim-surround.enable = true;
|
||||
comment.enable = true;
|
||||
|
||||
markdown-preview.enable = true;
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
settings = {
|
||||
defaults = {
|
||||
file_ignore_patterns = [".*lock.*"];
|
||||
};
|
||||
};
|
||||
keymaps = {
|
||||
"<leader>fg" = "live_grep";
|
||||
"<leader>/" = "live_grep";
|
||||
"<leader>ff" = "find_files";
|
||||
"<leader>fb" = "buffers";
|
||||
"<leader>fh" = "help_tags";
|
||||
"<leader>:" = "commands";
|
||||
"<leader>ft" = "treesitter";
|
||||
"<leader>fr" = "lsp_references";
|
||||
"<leader>cr" = "lsp_definition";
|
||||
};
|
||||
};
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
ts-ls.enable = true;
|
||||
nil-ls.enable = true;
|
||||
gopls.enable = true;
|
||||
};
|
||||
keymaps = {
|
||||
lspBuf = {
|
||||
"<leader>ck" = "hover";
|
||||
"K" = "hover";
|
||||
"<leader>cr" = "rename";
|
||||
"<F2>" = "rename";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mapping = {
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-u>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-e>" = "cmp.mapping.close()";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<C-p>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||
"<C-n>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
};
|
||||
sources = [
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "buffer";}
|
||||
];
|
||||
};
|
||||
};
|
||||
cmp-nvim-lsp.enable = true;
|
||||
cmp-nvim-lsp-signature-help.enable = true;
|
||||
cmp-path.enable = true;
|
||||
cmp-buffer.enable = true;
|
||||
|
||||
trouble.enable = true;
|
||||
|
||||
gitsigns.enable = true;
|
||||
git-worktree = {
|
||||
enable = true;
|
||||
enableTelescope = true;
|
||||
};
|
||||
|
||||
lazygit.enable = true;
|
||||
which-key.enable = true;
|
||||
|
||||
harpoon = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
addFile = "<leader>ha";
|
||||
toggleQuickMenu = "<leader>hf";
|
||||
navNext = "<leader>n";
|
||||
};
|
||||
};
|
||||
|
||||
vim-css-color.enable = true;
|
||||
|
||||
treesitter = {
|
||||
enable = true;
|
||||
folding = true;
|
||||
};
|
||||
treesitter-textobjects = {
|
||||
enable = true;
|
||||
select = {
|
||||
enable = true;
|
||||
lookahead = true;
|
||||
keymaps = {
|
||||
"af" = {
|
||||
query = "@function.outer";
|
||||
desc = "Function Outer";
|
||||
};
|
||||
"ac" = {
|
||||
query = "@comment.outer";
|
||||
desc = "Comment Outer";
|
||||
};
|
||||
"if" = {
|
||||
query = "@function.inner";
|
||||
desc = "Function Inner";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
oil.enable = true;
|
||||
ts-autotag.enable = true;
|
||||
guess-indent.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
}: let
|
||||
user = config.user;
|
||||
in {
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
|
|
@ -94,31 +95,6 @@ in {
|
|||
sops
|
||||
];
|
||||
|
||||
programs.tmux.enable = true;
|
||||
programs.tmux.extraConfig = ''
|
||||
set escape-time 0
|
||||
set -g default-terminal screen
|
||||
|
||||
bind -n M-s split-window -v
|
||||
bind -n M-v split-window -h
|
||||
bind -n M-Enter split-window -h
|
||||
bind -n M-h select-pane -L
|
||||
bind -n M-j select-pane -D
|
||||
bind -n M-k select-pane -U
|
||||
bind -n M-l select-pane -R
|
||||
bind -n M-q kill-pane
|
||||
bind -n M-< resize-pane -L 10
|
||||
bind -n M-> resize-pane -R 10
|
||||
bind -n M-- resize-pane -D 10
|
||||
bind -n M-+ resize-pane -U 10
|
||||
bind -n M-u copy-mode
|
||||
bind -n M-p paste-buffer
|
||||
|
||||
set-window-option -g mode-keys vi
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection
|
||||
'';
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.ip_unprivileged_port_start" = 53;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,12 +13,21 @@ in {
|
|||
"steam-run"
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"openssl-1.1.1w" # required for mongodb
|
||||
];
|
||||
|
||||
networking = {
|
||||
networkmanager = {
|
||||
plugins = [pkgs.networkmanager-openvpn];
|
||||
};
|
||||
};
|
||||
|
||||
# breaks some work projects ):<
|
||||
networking.stevenblack.enable = false;
|
||||
|
||||
nixpkgs.overlays = [(import ../../lib/cypress.nix)];
|
||||
|
||||
services.onedrive.enable = true;
|
||||
|
||||
users.users.${user}.extraGroups = ["docker"];
|
||||
|
|
|
|||
20
nixos/programs/cosmic.nix
Normal file
20
nixos/programs/cosmic.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.nixos-cosmic.nixosModules.default
|
||||
];
|
||||
nix.settings = {
|
||||
substituters = ["https://cosmic.cachix.org/"];
|
||||
trusted-public-keys = ["cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="];
|
||||
};
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
services.displayManager.cosmic-greeter.enable = true;
|
||||
services.system76-scheduler.enable = true;
|
||||
home-manager.users.${config.user}.imports = [
|
||||
(import "${inputs.home-manager-cosmic}/modules/programs/cosmic/.")
|
||||
../../home/desktop/cosmic/.
|
||||
];
|
||||
}
|
||||
|
|
@ -1,4 +1,8 @@
|
|||
{lib, ...}: {
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
|
|
@ -6,9 +10,12 @@
|
|||
"steam-original"
|
||||
"osu-lazer"
|
||||
];
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
extest.enable = true;
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
|
|
|
|||
13
nixos/programs/hyprland.nix
Normal file
13
nixos/programs/hyprland.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{config, ...}: {
|
||||
programs.hyprland.enable = true;
|
||||
security.pam.services.hyprlock = {};
|
||||
|
||||
imports = [
|
||||
./pipewire.nix
|
||||
../workstation.nix
|
||||
];
|
||||
|
||||
home-manager.users.${config.user}.imports = [
|
||||
../../home/desktop/hyprland/.
|
||||
];
|
||||
}
|
||||
14
nixos/programs/pipewire.nix
Normal file
14
nixos/programs/pipewire.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
raopOpenFirewall = true;
|
||||
};
|
||||
# network streaming
|
||||
networking.firewall.allowedTCPPorts = [4713];
|
||||
}
|
||||
70
nixos/services/arr.nix
Normal file
70
nixos/services/arr.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{config, lib, ...}: let
|
||||
inherit (config) sops;
|
||||
inherit (sops) templates placeholder;
|
||||
in {
|
||||
users.groups.media = {};
|
||||
services.jackett = {
|
||||
enable = true;
|
||||
};
|
||||
services.lidarr = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
};
|
||||
services.sonarr = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
};
|
||||
services.radarr = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
};
|
||||
services.jellyseerr.enable = true;
|
||||
sops.secrets.sonarr-sslkey = {
|
||||
sopsFile = ../../certs/alpine.prawn-justice.ts.net.key;
|
||||
format = "binary";
|
||||
owner = "nginx";
|
||||
};
|
||||
# this was fun to figure out, but pointless atm.
|
||||
services.nginx.virtualHosts."alpine.prawn-justice.ts.net" = {
|
||||
forceSSL = true;
|
||||
sslCertificateKey = config.sops.secrets.sonarr-sslkey.path;
|
||||
sslCertificate = ../../certs/alpine.prawn-justice.ts.net.crt;
|
||||
};
|
||||
# probably easier if i just put this in a nixos-container
|
||||
virtualisation.oci-containers.containers.transmission = {
|
||||
autoStart = false;
|
||||
image = "docker.io/haugene/transmission-openvpn:5.3.1";
|
||||
ports = ["9091:9091"];
|
||||
volumes = [
|
||||
"/mnt/storage/downloads:/data"
|
||||
"transmission-config:/config"
|
||||
"/mnt/storage/media/unsorted:/data/completed"
|
||||
];
|
||||
environmentFiles = [ templates."transmission/env".path ];
|
||||
environment = {
|
||||
PUID = "1000";
|
||||
GUID = "1000";
|
||||
SUBNET = "100.0.0.0/8";
|
||||
};
|
||||
extraOptions = builtins.map (cap: "--cap-add=${cap}") [
|
||||
"NET_ADMIN"
|
||||
"NET_RAW"
|
||||
"MKNOD"
|
||||
];
|
||||
};
|
||||
sops.secrets = {
|
||||
"transmission/auth/OPENVPN_PROVIDER" = {};
|
||||
"transmission/auth/OPENVPN_CONFIG" = {};
|
||||
"transmission/auth/OPENVPN_USERNAME" = {};
|
||||
"transmission/auth/OPENVPN_PASSWORD" = {};
|
||||
};
|
||||
sops.templates."transmission/env" = {
|
||||
owner = "tristan";
|
||||
content = ''
|
||||
OPENVPN_PROVIDER="${placeholder."transmission/auth/OPENVPN_PROVIDER"}"
|
||||
OPENVPN_CONFIG="${placeholder."transmission/auth/OPENVPN_CONFIG"}"
|
||||
OPENVPN_USERNAME="${placeholder."transmission/auth/OPENVPN_USERNAME"}"
|
||||
OPENVPN_PASSWORD="${placeholder."transmission/auth/OPENVPN_PASSWORD"}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
97
nixos/services/authentik.nix
Normal file
97
nixos/services/authentik.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{config, ...}: let
|
||||
inherit (config) sops;
|
||||
inherit (sops) templates placeholder;
|
||||
redis_port = "6380";
|
||||
authentik_port = "8084";
|
||||
postgres = {
|
||||
user = "authentik";
|
||||
db = "authentik";
|
||||
port = "5437";
|
||||
};
|
||||
authentik-config = {
|
||||
autoStart = true;
|
||||
image = "ghcr.io/goauthentik/server:2024.8.2";
|
||||
volumes = ["/home/tristan/pods/authentik/media:/media"];
|
||||
environment = {
|
||||
AUTHENTIK_POSTGRESQL__USER = postgres.user;
|
||||
AUTHENTIK_POSTGRESQL__HOST = "192.168.1.2";
|
||||
AUTHENTIK_POSTGRESQL__PORT = postgres.port;
|
||||
AUTHENTIK_REDIS__HOST = "192.168.1.2";
|
||||
AUTHENTIK_REDIS__PORT = redis_port;
|
||||
AUTHENTIK_EMAIL__FROM = "Authentik <tristan@tristans.cloud>";
|
||||
AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME = "false";
|
||||
};
|
||||
environmentFiles = [templates."authentik/environment".path];
|
||||
dependsOn = ["authentik-redis" "authentik-postgres"];
|
||||
};
|
||||
in {
|
||||
sops.secrets = {
|
||||
"authentik/postgres_password" = {};
|
||||
"authentik/secret_key" = {};
|
||||
"mail/host" = {};
|
||||
"mail/port" = {};
|
||||
"mail/username" = {};
|
||||
"mail/password" = {};
|
||||
"mail/ssl" = {};
|
||||
};
|
||||
sops.templates = {
|
||||
"authentik/environment" = {
|
||||
content = ''
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD="${placeholder."authentik/postgres_password"}"
|
||||
AUTHENTIK_SECRET_KEY="${placeholder."authentik/secret_key"}"
|
||||
AUTHENTIK_EMAIL__HOST="${placeholder."mail/host"}"
|
||||
AUTHENTIK_EMAIL__PORT="${placeholder."mail/port"}"
|
||||
AUTHENTIK_EMAIL__USERNAME="${placeholder."mail/username"}"
|
||||
AUTHENTIK_EMAIL__PASSWORD="${placeholder."mail/password"}"
|
||||
AUTHENTIK_EMAIL__USE_SSL="${placeholder."mail/ssl"}"
|
||||
'';
|
||||
};
|
||||
"authentik/postgres_env" = {
|
||||
content = ''
|
||||
POSTGRES_PASSWORD="${placeholder."authentik/postgres_password"}"
|
||||
'';
|
||||
};
|
||||
};
|
||||
virtualisation.oci-containers.containers = {
|
||||
authentik-redis = {
|
||||
autoStart = true;
|
||||
image = "redis:7.2-alpine";
|
||||
ports = ["${redis_port}:6379"];
|
||||
volumes = ["authentik-redis:/data"];
|
||||
};
|
||||
|
||||
authentik-server =
|
||||
authentik-config
|
||||
// {
|
||||
cmd = ["server"];
|
||||
ports = ["${authentik_port}:9000" "9084:9300"];
|
||||
};
|
||||
|
||||
authentik-worker =
|
||||
authentik-config
|
||||
// {
|
||||
cmd = ["worker"];
|
||||
};
|
||||
|
||||
authentik-postgres = {
|
||||
autoStart = true;
|
||||
image = "docker.io/postgres:14-alpine";
|
||||
ports = ["${postgres.port}:5432"];
|
||||
volumes = ["/home/tristan/pods/authentik/db:/var/lib/postgresql/data"];
|
||||
environment = {
|
||||
POSTGRES_USER = postgres.user;
|
||||
POSTGRES_DB = postgres.db;
|
||||
};
|
||||
environmentFiles = [templates."authentik/postgres_env".path];
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."auth.tristans.cloud" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."~" = {
|
||||
proxyPass = "http://localhost:${authentik_port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,15 @@
|
|||
{config, ...}: let
|
||||
{config, lib, pkgs, ...}: let
|
||||
cfg = config.services.grafana;
|
||||
secrets = config.sops.secrets;
|
||||
mkDashboards = dashboards: pkgs.symlinkJoin {
|
||||
name = "dashboards";
|
||||
paths = map mkDashboard dashboards;
|
||||
};
|
||||
mkDashboard = {name, url, sha256}: pkgs.writeTextFile {
|
||||
inherit name;
|
||||
text = builtins.readFile ( builtins.fetchurl {inherit url sha256;} );
|
||||
destination = "/dash/${name}.json";
|
||||
};
|
||||
in {
|
||||
sops.secrets."grafana/oidc_client_secret" = {
|
||||
owner = "grafana";
|
||||
|
|
@ -25,6 +34,22 @@ in {
|
|||
role_attribute_path = "contains(groups[*], 'Grafana Admins') && 'Admin' || contains(groups[*], 'Grafana Editors') && 'Editor' || 'Viewer'";
|
||||
};
|
||||
};
|
||||
provision.dashboards.settings.providers = [{
|
||||
name = "Node Exporter";
|
||||
type = "file";
|
||||
options.path = mkDashboards [
|
||||
{
|
||||
name = "node-exporter";
|
||||
url = "https://grafana.com/api/dashboards/1860/revisions/37/download";
|
||||
sha256 = "sha256:0qza4j8lywrj08bqbww52dgh2p2b9rkhq5p313g72i57lrlkacfl";
|
||||
}
|
||||
{
|
||||
name = "synapse";
|
||||
url = "https://raw.githubusercontent.com/element-hq/synapse/refs/heads/master/contrib/grafana/synapse.json";
|
||||
sha256 = "sha256:07qlr0waw9phmyd38bv22bn5v303w3397b89l44l3lzwhpnhs16s";
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
services.nginx.virtualHosts = {
|
||||
${cfg.settings.server.domain} = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
group = "media"; # access to user stuff
|
||||
};
|
||||
services.nginx.virtualHosts."movies.tristans.cloud" = {
|
||||
forceSSL = true;
|
||||
|
|
|
|||
94
nixos/services/loki.nix
Normal file
94
nixos/services/loki.nix
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{config, ...}: let
|
||||
inherit (config.services) loki;
|
||||
in {
|
||||
services.loki = {
|
||||
enable = true;
|
||||
configuration = {
|
||||
auth_enabled = false;
|
||||
server.http_listen_port = 3100;
|
||||
schema_config.configs = [
|
||||
{
|
||||
from = "2024-10-12";
|
||||
object_store = "filesystem";
|
||||
store = "tsdb";
|
||||
schema = "v13";
|
||||
index = {
|
||||
prefix = "index_";
|
||||
period = "24h";
|
||||
};
|
||||
}
|
||||
];
|
||||
storage_config."filesystem".directory = "/tmp/loki/chunks";
|
||||
common = {
|
||||
ring = {
|
||||
instance_addr = "127.0.0.1";
|
||||
kvstore.store = "inmemory";
|
||||
};
|
||||
replication_factor = 1;
|
||||
path_prefix = "/tmp/loki";
|
||||
};
|
||||
limits_config.ingestion_rate_strategy = "local";
|
||||
};
|
||||
};
|
||||
services.prometheus.scrapeConfigs = [{
|
||||
job_name = "loki";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["localhost:3100"];
|
||||
}
|
||||
];
|
||||
}];
|
||||
services.promtail = {
|
||||
enable = true;
|
||||
# https://grafana.com/docs/loki/latest/send-data/promtail/configuration/
|
||||
configuration = {
|
||||
server = {
|
||||
http_listen_port = 9080;
|
||||
grpc_listen_port = 0;
|
||||
};
|
||||
clients = [
|
||||
{url = "http://localhost:3100/loki/api/v1/push";}
|
||||
];
|
||||
scrape_configs = [
|
||||
{
|
||||
job_name = "system";
|
||||
journal = {
|
||||
path = "/var/log/journal/";
|
||||
};
|
||||
relabel_configs = [
|
||||
{
|
||||
source_labels = ["__journal_message"];
|
||||
target_label = "message";
|
||||
regex = "(.+)";
|
||||
}
|
||||
{
|
||||
source_labels = ["__journal__systemd_unit"];
|
||||
target_label = "systemd_unit";
|
||||
regex = "(.+)";
|
||||
}
|
||||
{
|
||||
source_labels = ["__journal__systemd_user_unit"];
|
||||
target_label = "systemd_user_unit";
|
||||
regex = "(.+)";
|
||||
}
|
||||
{
|
||||
source_labels = ["__journal__transport"];
|
||||
target_label = "transport";
|
||||
regex = "(.+)";
|
||||
}
|
||||
{
|
||||
source_labels = ["__journal__priority_keyword"];
|
||||
target_label = "severity";
|
||||
regex = "(.+)";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
services.grafana.provision.datasources.settings.datasources = [{
|
||||
name = "Loki";
|
||||
type = "loki";
|
||||
url = "http://localhost:${toString loki.configuration.server.http_listen_port}";
|
||||
}];
|
||||
}
|
||||
|
|
@ -1,9 +1,44 @@
|
|||
{config, ...}: let
|
||||
inherit (config) sops;
|
||||
inherit (sops) templates placeholder;
|
||||
{config, lib, ...}: let
|
||||
inherit (import ./lib.nix) toAppRegistration;
|
||||
inherit (config.sops) templates placeholder;
|
||||
in {
|
||||
|
||||
virtualisation.oci-containers.containers.mautrix-signal = {
|
||||
image = "dock.mau.dev/mautrix/signal:v0.7.1";
|
||||
dependsOn = ["mautrix-signal-psql"];
|
||||
volumes = [
|
||||
"/home/tristan/pods/signal-bridge/mautrix-signal:/data:z"
|
||||
];
|
||||
ports = [
|
||||
"29328:29328"
|
||||
"8000:8000"
|
||||
];
|
||||
};
|
||||
|
||||
# when you get around to backing this up
|
||||
# 1. stop the server.
|
||||
# 2. backup the db.
|
||||
# 3. migrate to newer version of postgres
|
||||
# 4. migrate db to local
|
||||
virtualisation.oci-containers.containers.mautrix-signal-psql = {
|
||||
image = "docker.io/postgres:14-alpine";
|
||||
# ports = [ "127.0.0.1:5435:5432" ];
|
||||
ports = [ "5435:5432" ];
|
||||
volumes = [ "/home/tristan/pods/signal-bridge/db:/var/lib/postgresql/data" ];
|
||||
environmentFiles = [templates."mautrix-signal/psql.env".path];
|
||||
};
|
||||
sops.templates = {
|
||||
"mautrix-signal/psql.env" = {
|
||||
owner = config.users.users.nobody.name;
|
||||
content = lib.strings.toShellVars {
|
||||
POSTGRES_PASSWORD = placeholder."mautrix-signal/postgres_password";
|
||||
POSTGRES_USER = "signald";
|
||||
POSTGRES_DB = "signald";
|
||||
};
|
||||
};
|
||||
};
|
||||
sops.secrets = {
|
||||
"mautrix-signal/postgres_password" = {};
|
||||
"mautrix-signal/as_token" = {};
|
||||
"mautrix-signal/hs_token" = {};
|
||||
};
|
||||
|
|
@ -20,10 +55,8 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
# mautrix-signal server currently in ansible/podman
|
||||
|
||||
services.matrix-synapse.settings.app_service_config_files = [
|
||||
templates."mautrix-signal/appservice.yaml".path
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,11 @@
|
|||
{config, ...}: let
|
||||
inherit (config) sops;
|
||||
inherit (sops) templates placeholder;
|
||||
inherit (import ./lib.nix) toAppRegistration;
|
||||
in {
|
||||
sops.secrets = {
|
||||
"mautrix-whatsapp/as_token" = {};
|
||||
"mautrix-whatsapp/hs_token" = {};
|
||||
};
|
||||
sops.templates = {
|
||||
"mautrix-whatsapp/appservice.yaml" = {
|
||||
owner = "matrix-synapse";
|
||||
content = toAppRegistration {
|
||||
id = "whatsapp";
|
||||
port = config.services.mautrix-whatsapp.settings.appservice.port;
|
||||
as_token = placeholder."mautrix-whatsapp/as_token";
|
||||
hs_token = placeholder."mautrix-whatsapp/hs_token";
|
||||
sender_localpart = "Gx8tLTHsxVlrdD3qibaPdaP9t7GhfciV";
|
||||
"de.sorunome.msc2409.push_ephemeral" = true;
|
||||
};
|
||||
};
|
||||
# "mautrix-whatsapp/env".content = ''
|
||||
# MAUTRIX_WHATSAPP_APPSERVICE_AS_TOKEN=${placeholder."mautrix-whatsapp/as_token"}
|
||||
# MAUTRIX_WHATSAPP_APPSERVICE_HS_TOKEN=${placeholder."mautrix-whatsapp/hs_token"}
|
||||
# '';
|
||||
};
|
||||
{config, ...}: {
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"olm-3.2.16"
|
||||
];
|
||||
|
||||
services.mautrix-whatsapp = {
|
||||
enable = true;
|
||||
# environmentFile = templates."mautrix-whatsapp/env".path;
|
||||
registerToSynapse = true;
|
||||
settings = {
|
||||
homeserver = {
|
||||
address = "http://localhost:8008";
|
||||
|
|
@ -46,9 +24,4 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.matrix-synapse.settings.app_service_config_files = [
|
||||
templates."mautrix-whatsapp/appservice.yaml".path
|
||||
# "/var/lib/mautrix-whatsapp/whatsapp-registration.yaml"
|
||||
];
|
||||
}
|
||||
|
|
|
|||
16
nixos/services/monero.nix
Normal file
16
nixos/services/monero.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{...}: {
|
||||
services.monero = {
|
||||
enable = true;
|
||||
rpc = {
|
||||
address = "0.0.0.0";
|
||||
restricted = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
prune-blockchain=1
|
||||
confirm-external-bind=1
|
||||
out-peers=64 # This will enable much faster sync and tx awareness; the default 8 is suboptimal nowadays
|
||||
in-peers=1024 # The default is unlimited; we prefer to put a cap on this
|
||||
zmq-pub=tcp://localhost:18083
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -2,6 +2,26 @@
|
|||
services.mpd = {
|
||||
enable = true;
|
||||
network.listenAddress = "0.0.0.0";
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "snapcast"
|
||||
path "${config.services.snapserver.streams.mpd.location}"
|
||||
format "${config.services.snapserver.streams.mpd.sampleFormat}"
|
||||
mixer_type "software"
|
||||
}
|
||||
'';
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [config.services.mpd.network.port];
|
||||
services.snapserver = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
buffer = 1000;
|
||||
streams.mpd = {
|
||||
type = "pipe";
|
||||
location = "/run/snapserver/mpd";
|
||||
sampleFormat = "44100:16:2";
|
||||
codec = "pcm";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
nextcloud = config.services.nextcloud;
|
||||
|
|
@ -27,6 +28,7 @@ in {
|
|||
services.nextcloud = {
|
||||
enable = true;
|
||||
https = true;
|
||||
package = pkgs.nextcloud29;
|
||||
hostName = "files.${config.networking.domain}";
|
||||
configureRedis = true;
|
||||
database.createLocally = true;
|
||||
|
|
@ -78,15 +80,16 @@ in {
|
|||
notes
|
||||
maps
|
||||
previewgenerator
|
||||
deck
|
||||
;
|
||||
oidc_login = pkgs.fetchNextcloudApp {
|
||||
sha256 = "sha256-cN5azlThKPKRVip14yfUNR85of5z+N6NVI7sg6pSGQI=";
|
||||
url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.0.2/oidc_login.tar.gz";
|
||||
sha256 = "sha256-DrbaKENMz2QJfbDKCMrNGEZYpUEvtcsiqw9WnveaPZA=";
|
||||
url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.2.0/oidc_login.tar.gz";
|
||||
license = "agpl3Only";
|
||||
};
|
||||
news = pkgs.fetchNextcloudApp {
|
||||
sha256 = "sha256-aePXUn57U+1e01dntxFuzWZ8ILzwbnsAOs60Yz/6zUU=";
|
||||
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha4/news.tar.gz";
|
||||
sha256 = "sha256-jH1F/IZItlZEpsfgXhRojiYD6ZEVhsuRvz8Qs0Z3UFI=";
|
||||
url = "https://github.com/nextcloud/news/releases/download/25.0.0-alpha9/news.tar.gz";
|
||||
license = "agpl3Only";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -34,4 +34,9 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
services.grafana.provision.datasources.settings.datasources = [{
|
||||
name = "Prometheus";
|
||||
type = "prometheus";
|
||||
url = "http://localhost:${toString prometheus.port}";
|
||||
}];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
inherit (config.services) matrix-synapse matrix-sliding-sync;
|
||||
inherit (sops) secrets templates;
|
||||
in {
|
||||
imports = [./metrics.nix];
|
||||
|
||||
services.postgresql.enable = true;
|
||||
services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" ''
|
||||
CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse';
|
||||
|
|
@ -66,7 +68,7 @@ in {
|
|||
server_name = domain;
|
||||
baseurl = "https://${domain}";
|
||||
oidc_providers = [];
|
||||
settings.listeners = [
|
||||
listeners = [
|
||||
{
|
||||
inherit port;
|
||||
bind_addresses = ["localhost"];
|
||||
25
nixos/services/synapse/metrics.nix
Normal file
25
nixos/services/synapse/metrics.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
let
|
||||
port = 9008;
|
||||
in {
|
||||
services.prometheus.scrapeConfigs = [{
|
||||
job_name = "synapse";
|
||||
metrics_path = "/_synapse/metrics";
|
||||
static_configs = [{
|
||||
targets = ["localhost:${toString port}"];
|
||||
}];
|
||||
}];
|
||||
services.matrix-synapse.settings = {
|
||||
enable_metrics = true;
|
||||
listeners = [
|
||||
{
|
||||
port = port;
|
||||
type = "metrics";
|
||||
bind_addresses = ["127.0.0.1"];
|
||||
tls = false;
|
||||
resources = []; # unneeded with type: metrics, just to make the nix module happy
|
||||
}
|
||||
];
|
||||
};
|
||||
# Grafana rules?
|
||||
# https://github.com/element-hq/synapse/tree/master/contrib/prometheus/
|
||||
}
|
||||
|
|
@ -1,45 +1,15 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-25.9.0"
|
||||
];
|
||||
|
||||
# use pipewire
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
# pipewire raop
|
||||
networking.firewall.allowedUDPPorts = [6002 6001];
|
||||
# network streaming
|
||||
networking.firewall.allowedTCPPorts = [4713];
|
||||
|
||||
security.pam.services.swaylock = {};
|
||||
security.polkit.enable = true;
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = ["graphical-session.target"];
|
||||
wants = ["graphical-session.target"];
|
||||
after = ["graphical-session.target"];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.opentabletdriver.enable = true;
|
||||
|
||||
|
|
@ -47,7 +17,10 @@
|
|||
|
||||
services.printing.enable = true;
|
||||
|
||||
services.dbus.enable = true;
|
||||
services.dbus = {
|
||||
enable = true;
|
||||
packages = [pkgs.gcr];
|
||||
};
|
||||
programs.light.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
|
||||
|
|
@ -59,19 +32,34 @@
|
|||
virtualisation.waydroid.enable = true;
|
||||
|
||||
networking.stevenblack = {
|
||||
enable = true;
|
||||
enable = lib.mkDefault true;
|
||||
block = ["porn" "gambling"];
|
||||
};
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../images/nix-soft.png;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/onedark.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
||||
opacity = {
|
||||
terminal = 0.9;
|
||||
applications = 0.9;
|
||||
desktop = 0.9;
|
||||
popups = 0.9;
|
||||
};
|
||||
cursor = {
|
||||
name = "Vanilla-DMZ";
|
||||
package = pkgs.vanilla-dmz;
|
||||
size = 24;
|
||||
};
|
||||
targets = {
|
||||
gtk.enable = false; # fails to switch with cosmic overriding it (grr)
|
||||
grub = {
|
||||
useImage = true;
|
||||
};
|
||||
nixvim = {
|
||||
transparentBackground.main = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.overlays = [
|
||||
|
|
@ -84,4 +72,8 @@
|
|||
nerdfonts
|
||||
interalia
|
||||
];
|
||||
|
||||
home-manager.users.${config.user}.imports = [
|
||||
../home/workstation.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
34
pkgs/mongodb.nix
Normal file
34
pkgs/mongodb.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
stdenv,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
version = "6.0.14";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "mongodb";
|
||||
inherit version;
|
||||
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian11-${version}.tgz";
|
||||
sha256 = "sha256:0lghfh8dpq159y2m0b7wg3xks2s59n9s5xmcw6ng2lrg815s6aiz";
|
||||
};
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
openssl_1_1
|
||||
xz
|
||||
curl
|
||||
libgcc
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
cp -R bin $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
|
@ -4,20 +4,20 @@
|
|||
fetchgit,
|
||||
gitUpdater,
|
||||
}:
|
||||
buildLua rec {
|
||||
buildLua {
|
||||
pname = "mpv-skipsilence";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://codeberg.org/ferreum/mpv-skipsilence.git";
|
||||
hash = "sha256-aAzLegotOUILhpz7GcMJvCY4R3jSZCDIKOwVfM21kdY=";
|
||||
hash = "sha256-fg8vfeb68nr0bTBIvr0FnRnoB48/kV957pn22tWcz1g=";
|
||||
};
|
||||
passthru.updateScript = gitUpdater {};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Increase playback speed during silence - a revolution in attention-deficit induction technology.";
|
||||
homepage = "https://github.com/ferreum/mpv-skipsilence";
|
||||
license = licenses.unlicense; # actually they don't have a license
|
||||
license = licenses.gpl2;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,38 @@
|
|||
nextcloud:
|
||||
admin_password: ENC[AES256_GCM,data:ZBc/Z5F/DWPM78XhO3mVxEfEYjPoXHgqfg==,iv:ih9YuI+k4ksKBOhpezoJ/L5ac7P/JGLqs2B6ZuqZrj0=,tag:IDFU9NQoXHR1Ph5YtLC4lQ==,type:str]
|
||||
oidc_client_secret: ENC[AES256_GCM,data:nIVLfC+22fEurR6FXdUwz4+rPuXzlM5HG4lnRI/m1lOaiw+C9DA3WV15DP5IXMn6BeBmDMnXbfdGt0hoV32y8bkfcals0C4wUitI63sYRJ6+f+N85IeAolfvYi+6gCwKZZhwRZdZJOQVOoFH8bvC0zLz6dzjL1/C5POX4C57URs=,iv:uV6KssluRg4+aOg7DPewK9c3eIkY3y/7ij7uYBLx9Kw=,tag:gEvApHIStThboRsP0YEoFw==,type:str]
|
||||
admin_password: ENC[AES256_GCM,data:oE7SeKE40NsLF5FrxKJheyzSXLcL8Hs1+w==,iv:ih9YuI+k4ksKBOhpezoJ/L5ac7P/JGLqs2B6ZuqZrj0=,tag:tRTNDAaAvRe7FSMMCneYkA==,type:str]
|
||||
oidc_client_secret: ENC[AES256_GCM,data:dTQlsiPvKPRETEy1cg7RIWxeapFOdoMqp1xpVnYFd8zxRyZGIYJNlSZAkc4ZZIMM76jrAnMw7jVArqCX/pma0GMxb4GqITYAHJfe6yVPZYVY9UHUeCQpwwdIMUxYJqYgcCL4VFn7tdtc6vITl+b0KH0GBFQWg07ROJCGfFiICa4=,iv:uV6KssluRg4+aOg7DPewK9c3eIkY3y/7ij7uYBLx9Kw=,tag:UM7fvtjscORH0BxoiUm++Q==,type:str]
|
||||
grafana:
|
||||
oidc_client_secret: ENC[AES256_GCM,data:XU81XrM/aTZ/RDc3UPunOFQdfjJldKw3usMA5NfQkgxJYSq5NSu1ZQXsMuly4xbcYULiuUtkTAnb7Xzge+yIDoLfrZHab4mQgtLeK6hzZgLHYeSSEtQCXEYsL0p6ulA2OLrW6KoKl/o1EjiA+8htimgc7yNatdo6pBwwUXZFxpQ=,iv:de2P5uu1t0si7s7BqG4ukvouxH1TlCxgR28wRsz7i/I=,tag:1u0Wd9HRzbJRQtNbwDHOIQ==,type:str]
|
||||
oidc_client_secret: ENC[AES256_GCM,data:vC/9eABn0slzgiaI372dhD46ggU+dsjgA9B7Kv2SLS15OWFBwqRnRhGxNYO6Iwev656t2RwZlJwbQwS8sIrnFD3NU+IEGMvz4sVWbSj7tHxojNo3+Ne8Kg7b03AlBYcEmYqTIx94Nbx8DsZtFRGAIuFYDpEpVxC9jWgPtqB21OE=,iv:de2P5uu1t0si7s7BqG4ukvouxH1TlCxgR28wRsz7i/I=,tag:wToLDNtOafhuMe9thxZDuQ==,type:str]
|
||||
anki:
|
||||
password: ENC[AES256_GCM,data:dZsz/Z0rdP8vVFEGlck=,iv:rLjrfKXnz7hiYSOOY+uTGQCmvMLZbo3Xle+069hAB+A=,tag:sNuvL9tGBXs9OPoFVfjdSw==,type:str]
|
||||
password: ENC[AES256_GCM,data:Lz9WwJ/JgboJEqnClj4=,iv:rLjrfKXnz7hiYSOOY+uTGQCmvMLZbo3Xle+069hAB+A=,tag:PrWQlZYREWGQJwPVFX0byQ==,type:str]
|
||||
synapse:
|
||||
postgres: ENC[AES256_GCM,data:pP/Clrcd/dTjI81Wr9I=,iv:nx3eVKH1DXGk3tipbzlIGGyZB3/bJP5TSVMFVNHTIPs=,tag:3PbODZtFlb9XtuBfO/Ey/g==,type:str]
|
||||
oidc_client_secret: ENC[AES256_GCM,data:GXEHHAf5pi/34DY8rUtb1r+0w9HdH2LfeYzREq9BssbspORGd2lOGW22kpUWQzMP/LN8qqx0+EDxlnUuz6MbKofdDPO53Ghrkv7eKsgHdI4g8NbneOEIe4Uurjsg+ibn2EIAWP6HsdwDoLPpS260HyciHJz15i8OpyPatv+bhUc=,iv:pigc8d/LPwy/mBrlUzOFR1nIUrulYZ67nq4bI4Mn+MI=,tag:5fQj8XiXmlC0/T4Muht7bA==,type:str]
|
||||
signing_key: ENC[AES256_GCM,data:AuXyep/aoKn0EoXFgphhlwyvqiwnmRAbGsjzQtCHOVe1Nsdd1aZZdmANt3NXbNJbtjbowIYGbYTizQ==,iv:jKfEBdXSIrg1WQRvWxi+CUiO2mXOfULkg/i3YSD4d9k=,tag:EZJnoZVyrjb0fcRbvyuiPg==,type:str]
|
||||
sliding_sync_secret: ENC[AES256_GCM,data:EureGgSONw+29RnTBcG7+Hpjs3mOk1Zr75glc582Tr9ITFfMczAdfY0FlWQgDxiPnl3o2GqlvdQ2CwDmpVGUVQ==,iv:JUKLrxrYQmCF15o+PwY1PzNW1h9FrGxdbSFGCzm3RdA=,tag:/TMv9LcCRLoTw3MDmpE0oQ==,type:str]
|
||||
mautrix-whatsapp:
|
||||
as_token: ENC[AES256_GCM,data:x1iIfwaRdSzC7wo684FY5ZCytj+uQSS2k8UZ/Sm/0gy7jnjsb6Eyl0I5tdNf7mYk2gdTtfmc+dVThOP3aGIZXQ==,iv:hvVr1MZfpLewomTW5pUhOvrQ2fEkQy4LNnfqslkeFgQ=,tag:5eUZLn5Bd2D5GWyIx9xevw==,type:str]
|
||||
hs_token: ENC[AES256_GCM,data:y8q41zg1NFco0fs7Q/yZVIPCdrUsB8/CRiffBpAVWsH0vCCHQvBs6VUGZmZwJVySkxSfFqBdCc/TF38SPwhxCg==,iv:sJ0cldlCTpGRMYT0u9ZGFVI70m3VBCZqn/l4cwUDyAI=,tag:D0QE2TQxLNnEv6/ECCLnRw==,type:str]
|
||||
postgres: ENC[AES256_GCM,data:/jukTywBVoRi8KkDpAA=,iv:nx3eVKH1DXGk3tipbzlIGGyZB3/bJP5TSVMFVNHTIPs=,tag:DDmnJ1yiiZcGqvGj6uTG7w==,type:str]
|
||||
oidc_client_secret: ENC[AES256_GCM,data:QdTHn5n+VcZ7EpZRI9EGHm+F5CWWr72nEqyJC4itEnSM+MZfnp941rRBUefU067VCf/mZR8UWkMJYATR2wcQTGluF73nHOeV8c1XUwT0TXNgPNhPdXisRcZF8OCYzU9HmdMKieiH/Bmc/mSXU3AZuTe9UXhf0CyVs1HgoENyfJQ=,iv:pigc8d/LPwy/mBrlUzOFR1nIUrulYZ67nq4bI4Mn+MI=,tag:nKDeJBp9VhzS3fOx64N0kA==,type:str]
|
||||
signing_key: ENC[AES256_GCM,data:f3EEHTnY5qm2TUKEXMLsrMt9qhJaz9VzRwGFV9+xUP32fwxwbZc/EopOVJ03OvQwG695at+26MRWcQ==,iv:jKfEBdXSIrg1WQRvWxi+CUiO2mXOfULkg/i3YSD4d9k=,tag:EYhdgGZkx0qZqAqlA/RJuQ==,type:str]
|
||||
sliding_sync_secret: ENC[AES256_GCM,data:zog0Bw+GyNnaLKtxhH3p4nMYtT6CcJ6bpaq1UagIxuywKjxSJkjKdmWXDrQ+mgswvc8rZ1GRDTsuYJmjcr3JwQ==,iv:JUKLrxrYQmCF15o+PwY1PzNW1h9FrGxdbSFGCzm3RdA=,tag:EXxXOAVbGAemOBFRhXKPqg==,type:str]
|
||||
mautrix-signal:
|
||||
as_token: ENC[AES256_GCM,data:wu9ohlIUn6dBYxa7jZzG9DRVRrBCnmXsc7txntF6U6eW6rpe/bvKWDR5/db1ZtMxAv/MZrTephJ81yqtr8aDsw==,iv:L+Pj1Mg5SlaKs0kb68qPzJX1FI7mV8boh4OonfWBy8o=,tag:J6F3CP5OJbyPBr5iVWhg0w==,type:str]
|
||||
hs_token: ENC[AES256_GCM,data:8OAHb5+k7uRW5EtjrNiTFjG1lf3txePHjpVYaDtJ1MfbtU8jN/T50PENPwFHR9iJSh2Zma7PGgFjwlWHGQEW8A==,iv:YoHj7qGYVA8C8HL8XLcarHwkVrdc7dQHecYF0yxvqwM=,tag:3y/K1iztmWrWR34/3vjopA==,type:str]
|
||||
as_token: ENC[AES256_GCM,data:13EBWO8ZD2LjkFLI3Clvn4qU1u+rCrPwlvwLaNDlKt3Zf2YxCvM3m1dprj5FyF3fNETSgzbMe6tXsHcxjMi5ag==,iv:L+Pj1Mg5SlaKs0kb68qPzJX1FI7mV8boh4OonfWBy8o=,tag:nIsr0NdIDU2a3DYGm7OXeA==,type:str]
|
||||
hs_token: ENC[AES256_GCM,data:PJkY4F3Nu6C79v3FaEw6sVr7Y+IIjLJbc2h+L7pEFYyfyolWPMTeQf85Js1zbGEsRLWvyJTAQXdg68KldYCg2Q==,iv:YoHj7qGYVA8C8HL8XLcarHwkVrdc7dQHecYF0yxvqwM=,tag:xoxt0sprxTpHhf4XLfrCaA==,type:str]
|
||||
postgres_password: ENC[AES256_GCM,data:k+BHWgiNXQeujuShmDgu3anjLgcd,iv:J8sUNC6S/RsMhu3LW37xp5sddJxicfVaOrsfsptp/W4=,tag:7RB6j19tBEp7Z+VSEUR4mQ==,type:str]
|
||||
mautrix-instagram:
|
||||
as_token: ENC[AES256_GCM,data:pNO76BcGejQdCc5X4f/UvSsBIPU6QZCCQTJvwVIXRf3rnb9ewWNMEtYXlqj886yh3g5SgqQ4Uhqby/7vrMxREA==,iv:uYU7ACk4wEPzqUCpt5KBt5Y8LoVIdAlNvdWj5Jm94qM=,tag:vJHOhwJBPlgUPu1SFqI4ew==,type:str]
|
||||
hs_token: ENC[AES256_GCM,data:m1CK8Ae6QyJKgDZm904xMpZ1KgKxEUpmQ1jdKOkjexgwAWjjtYF+RVximtcXwxPg/0jkbK/LMlxA89ic+zajiA==,iv:YLed92mS+2Cpud2f8Gq+zlpSVyPo7RVNGOUPCIRDi94=,tag:rRwhYn88ZZwm5sDI1etR2g==,type:str]
|
||||
as_token: ENC[AES256_GCM,data:DP/VQGK2DO4ixT/3wLBhvKxCcauEgXmDD4vW8k5uJFXAq7gtUXasLIYZ6pkUx0Vzd5kT/XZMhFOJyOT2Cyv38Q==,iv:uYU7ACk4wEPzqUCpt5KBt5Y8LoVIdAlNvdWj5Jm94qM=,tag:RoOhGoQ2BeDe0n6/w4TuPA==,type:str]
|
||||
hs_token: ENC[AES256_GCM,data:ljzZE6uwHq7jH5oIej4TWMeFtDolRSCg1oNr7xkjK7t3EpZrkg2YVOvWJtf/B+43cx7/BzVftBM4NOElQfRUDA==,iv:YLed92mS+2Cpud2f8Gq+zlpSVyPo7RVNGOUPCIRDi94=,tag:KEqa64BqbG7lmpV2sTqHkg==,type:str]
|
||||
authentik:
|
||||
postgres_password: ENC[AES256_GCM,data:jUVLMW1kFABZ3uWeWp4oWGOQDm7IBpF1BKNg/h88UqbpgakSCVuF+GIOSTxpSdc0,iv:UxFDFYWNBQospGoHlrvLQJyypIszPqpkeJy1IGr6/7I=,tag:IIN24+k4k37IszNFK1+rRg==,type:str]
|
||||
secret_key: ENC[AES256_GCM,data:qYS0HIImVKnMS9ywEJK2E0WLHgcWIYTZVapA/fL79abqK1qKPeVIQ3u/SqwkGBgg,iv:WN/LXUNrd+DbxfxwotedlYnyzE2D1c6C2e0UgCXUWX8=,tag:E5ABLXy5vDxDPdBGR5HoLg==,type:str]
|
||||
mail:
|
||||
host: ENC[AES256_GCM,data:FGKGHXYVwbDp17nYwrQtvGp0FYuK,iv:+hjhL2jbMP9NWYub/etBhFXxAfzoIEneepRw5uHL8bs=,tag:Uy3BihID9/h1Y7874KqHMw==,type:str]
|
||||
port: ENC[AES256_GCM,data:q3NZ,iv:I3dK4v/h5nFLNk4yihQxkJiyAir9MLDAQIeGbSn3j+I=,tag:TAZg45IQF/dlLrH1vjBlmA==,type:str]
|
||||
username: ENC[AES256_GCM,data:DJ8D7TY2o2PimB0WX4L6gEJr7M6XRQ==,iv:LkZh8eaBZ+Z3+bjpyB3MkWTRpjtk3/bszseT9KCfDmM=,tag:Nf7ePRKAqk+xRpKSem/QSw==,type:str]
|
||||
password: ENC[AES256_GCM,data:GqR8lvyF21djWQT0smHQb42FOt56ZHPnLYS0ekoyyH0=,iv:Rn30tJAoahkMr2ISDbyHClHDdjSF41MqtTwlSGUQELw=,tag:ab7k7Afi5Dfw4NkLbF/cUg==,type:str]
|
||||
ssl: ENC[AES256_GCM,data:swCVBQ==,iv:Us4kZfQ2wIx/qJXDaPDuUNvGU2F+U8EtV21SPbTebe8=,tag:Zuc0y6aTyjQBe4ZV7zy3NA==,type:str]
|
||||
transmission:
|
||||
auth:
|
||||
OPENVPN_PROVIDER: ENC[AES256_GCM,data:uk/rxQ==,iv:WycsUcM9qRW6ExylDK9kCD2PKT9XMijLBJXkYKUmhDI=,tag:AiBA+UVlKfMhpyV3MB9ZBA==,type:str]
|
||||
OPENVPN_CONFIG: ENC[AES256_GCM,data:mHMLA2Rqte+aEGstKCan3fNPEqwb,iv:wvLx3rWNcDVek6bmXBu+39AlnXpviNNwCItLAWWVDzY=,tag:1ArWMperFmOFSCdehWibNg==,type:str]
|
||||
OPENVPN_USERNAME: ENC[AES256_GCM,data:RQ+hGLE6YEgN/aaa2TLpkg==,iv:oG794WxGe0t1ZI0PyC45ZgCPA0Ar2m/dSVDdMYBKJvY=,tag:CGnEu8ds0s4aH4ImCrNWNQ==,type:str]
|
||||
OPENVPN_PASSWORD: ENC[AES256_GCM,data:Jw==,iv:uGAaXFWfpSaeqY7yC9cR9iqblH3E3hudnrnIlOvdRCg=,tag:P1XJ2SBY82z9YZP9J/n5SA==,type:str]
|
||||
namecheap: ENC[AES256_GCM,data:PTEQK8+G1FfmvRk9IxrAZjCAhiKdV0AA+JxaJRZvbHU=,iv:xTrJzPooM0xzs9xgkNGWKRzRHeIIhMGa8EYW2/41ZvA=,tag:KHdLKuip439QNeAiBwreqg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
|
|
@ -28,14 +42,14 @@ sops:
|
|||
- recipient: age106vffwu4y8cx90y0rtzajgpafl8jq7ty5hf6pur2gjsuq3g2lf5qjmdq0q
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4a3EwTXQwV3hxNW1zNXow
|
||||
Q1UxRHcwaVdhNHo5N0QvbE1maTkxdFBKZUJvCnpVYklIamlic1A4SDluQnhod2Z3
|
||||
MTVxRlJLVWd5dkZlTjE1OGRIZVo4QmsKLS0tIHI4bm01WjNucUlvYzFTSzhNSkQ3
|
||||
NUFIN3NPU2pTZ0NZRXdQY0xhWlI5T3cKd5XCj1aNsD+7+MfiAPGb1iAW9AgzyagG
|
||||
A7cwF9kQwWWLud9z4v6epuDkqGF+7uIy7N/CwBaEgi8+AS8o27wo4g==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDc1R5TFAvZFFMbTJqWVl5
|
||||
STA0YjBRSmk2N1dvUG9ETWYvRTNXMTFoYUVJCk81dmM2c0JLcnpzUjBsazZrenRK
|
||||
YXZkQ2pqRTNrTDBFK1FrQ3BRNmI0STQKLS0tIHpseXFsSlhLNVhHeFNhVXNEcmM3
|
||||
S3ZwcHhkdEEvY0pINDloand5S0NycHcKEpIt5EeIKhLQK7f74sWVN/x5gzh/Jq7x
|
||||
UUN5QtysRbWVGnWRxdNB8LIMjDJY9jRojycdQfSNebaz5ZLjEp8dZQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-03-23T23:24:16Z"
|
||||
mac: ENC[AES256_GCM,data:bs8t7nH5BdIz4uQd33M2pt+AVhqfBEJy9l8AFl8p80GLAMg5zKlDWxtVCPrWk8viJvfMkhvwEovBizoy3m7gt8iWLf+dtznBjALtUXVAc/+dmACUS8E9JHHKcvOHxT/cYCuU3t6pDJWlbfnpBtKSSHH8Z/YblYMlkeoNeNOoAwU=,iv:9fKO44c5TNMBgHqcuV6Fu+GW8TjND+32KDEerawpZL4=,tag:Ps8kelq+8iY88mdqugRTMg==,type:str]
|
||||
lastmodified: "2025-01-17T23:54:41Z"
|
||||
mac: ENC[AES256_GCM,data:kX07sYwKyAu2ElYoBIuaVVryIGIUowxS4ZMxIoX9/aDQY9+yVrmaWzj1kmQNyTqoSBZyetDGQzNV3mMjgCpIQ2XjJdCB5lH4M5DOV63A3pwDwDeHSzzTrURY6xubeswl8o+2k+gxD0/oLLB9j+YZxb9F1oKQt2cK1dzOYPdtUL8=,iv:ftaeEg78WejtZM6J8BiahmsSbQub/5Kz/oLVU3nJhtA=,tag:eobu6KIZwltpC43qXpTVaQ==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
version: 3.9.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue