mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-05-28 18:39:31 +02:00
Compare commits
159 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f9368749b5 | |||
| 3c409bd83a | |||
| 01448b6e0e | |||
| e54af73cb2 | |||
| 7da0b208e6 | |||
| 0fe704c32a | |||
| 273bfd2ac8 | |||
| 09a01ff947 | |||
| 1ef015cb16 | |||
| 52dfcea713 | |||
| 863f124b08 | |||
| 7a78b1831c | |||
| 13bb77108c | |||
| d10b30b06b | |||
| 4d218e314c | |||
| 87229f9a31 | |||
| bc163b8157 | |||
| 30fefb0f5f | |||
| 8124b9ffa9 | |||
| 77c9514b88 | |||
| bc2523302d | |||
| 31c1139dbd | |||
| 32fa706f9f | |||
| 18cabc994c | |||
| 4bb92855e7 | |||
| fa7bfabf48 | |||
| 9bd5c5b727 | |||
| 88f85bb5d7 | |||
| 70154b0652 | |||
| e226d4b28f | |||
| 58dc1d49f6 | |||
| 90f36202a9 | |||
| 9548fef641 | |||
| e0fe69b887 | |||
| d3c4fd6aa3 | |||
| d51025fc6b | |||
| 737b892bad | |||
| 2e8ec1406e | |||
| c231ba66f8 | |||
| 2af4b221a7 | |||
| 29372222e4 | |||
| 653f1586c3 | |||
| 99cd3f8936 | |||
| f51f364cfa | |||
| ec6211ff5c | |||
| 7b5c7064e0 | |||
| a30535af6a | |||
| 28dee2775c | |||
| 173aa199e1 | |||
| f9456a3861 | |||
| c715b34439 | |||
| 20685f8927 | |||
| bccf7db486 | |||
| c612aa73de | |||
| cdb8eb26be | |||
| 50451d9da9 | |||
| ae0158b226 | |||
| fde384a626 | |||
| 710ddc3263 | |||
| 264611e334 | |||
| cc82892eb7 | |||
| e6f0569fd3 | |||
| 8528c6e573 | |||
| a6d54395d3 | |||
| 323aaf0ac0 | |||
| 3561426a11 | |||
| 9dcafa8cc9 | |||
| c55b1c6712 | |||
| 635e38c275 | |||
| a1014361a3 | |||
| db82d2d8c5 | |||
| 77a792710a | |||
| ba8b99105b | |||
| 0c7e43a21b | |||
| 9d0a3df9f9 | |||
| f6a5d75f4f | |||
| 649e10525e | |||
| 5f68f9281f | |||
| 5e311c6e42 | |||
| c8a790f2cf | |||
| fcbbfefedc | |||
| 716c8baf65 | |||
| 90d411b943 | |||
| 468e9483cf | |||
| c4a33c55aa | |||
| 1e937dc832 | |||
| 8af80214f5 | |||
| a144093227 | |||
| 0a05224ffe | |||
| f766a3b196 | |||
| 58225d7978 | |||
| ffee47a2de | |||
| 0004bccc9d | |||
| aaabb5ed76 | |||
| dd008c3363 | |||
| 8690978d7e | |||
| 763167ce0d | |||
| 85039dd975 | |||
| 908d52365b | |||
| 0694dcad94 | |||
| 7d0da19a63 | |||
| 194b1db1d2 | |||
| cc0b099d63 | |||
| 623e697343 | |||
| 9aa0ff80ae | |||
| 4ec26c5e5f | |||
| 5716831d6c | |||
| df06a1d7e4 | |||
| 923fd7ae7d | |||
| 970d3f9343 | |||
| 5ec74c3ff5 | |||
| 17301d503c | |||
| 84a123b917 | |||
| c8a714a05e | |||
| 8584c3c98b | |||
| 9849923180 | |||
| 20194262f2 | |||
| 8ba75c5128 | |||
| 915af0c868 | |||
| 37813ce6f1 | |||
| 8e67a6d825 | |||
| 4c8b973e2c | |||
| fb0f89d975 | |||
| 710f547074 | |||
| 50feead9e8 | |||
| de1513587a | |||
| a86789c5b8 | |||
| e46d101c9f | |||
| 217a624bc7 | |||
| 7087ef3024 | |||
| e84d88fdc9 | |||
| d450dc1704 | |||
| 8a2ff48bbc | |||
| d8d7010dc0 | |||
| f03183e2d9 | |||
| c1959ee0b9 | |||
| a6ea7f5d77 | |||
| a37d99f069 | |||
| 7c2de23806 | |||
| e12afe7cea | |||
| 77ed0378d1 | |||
| 10924e67e1 | |||
| 285662df1e | |||
| a2101bd74f | |||
| 4fb61ddc59 | |||
| a3e99c913f | |||
| d2a6f28043 | |||
| 04c3c88152 | |||
| c4e268682a | |||
| c070abe60e | |||
| f6b2e42776 | |||
| 0c9ad09cf2 | |||
| c7e6ef3293 | |||
| 0eca8029f1 | |||
| 67609dfd9f | |||
| 72403971ed | |||
| 72572a87d6 | |||
| 39c98598d5 | |||
| 88cee1016d |
@@ -1,3 +1,4 @@
|
|||||||
|
.Trash-1000/
|
||||||
result
|
result
|
||||||
result/
|
result/
|
||||||
.direnv/
|
.direnv/
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ test:
|
|||||||
# Update all the flake inputs
|
# Update all the flake inputs
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
up:
|
up:
|
||||||
nix flake update
|
nix flake update --commit-lock-file
|
||||||
|
|
||||||
# Update specific input
|
# Update specific input
|
||||||
# Usage: just upp nixpkgs
|
# Usage: just upp nixpkgs
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
upp input:
|
upp input:
|
||||||
nix flake update {{input}}
|
nix flake update {{input}} --commit-lock-file
|
||||||
|
|
||||||
# List all generations of the system profile
|
# List all generations of the system profile
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
@@ -48,7 +48,10 @@ repl:
|
|||||||
# on darwin, you may need to switch to root user to run this command
|
# on darwin, you may need to switch to root user to run this command
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
clean:
|
clean:
|
||||||
|
# Wipe out NixOS's history
|
||||||
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 7d
|
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 7d
|
||||||
|
# Wipe out home-manager's history
|
||||||
|
nix profile wipe-history --profile $"($env.XDG_STATE_HOME)/nix/profiles/home-manager" --older-than 7d
|
||||||
|
|
||||||
# Garbage collect all unused nix store entries
|
# Garbage collect all unused nix store entries
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
@@ -74,7 +77,7 @@ shell:
|
|||||||
[group('nix')]
|
[group('nix')]
|
||||||
fmt:
|
fmt:
|
||||||
# format the nix files in this repo
|
# format the nix files in this repo
|
||||||
nix fmt
|
ls **/*.nix | each { |it| nixfmt $it.name }
|
||||||
|
|
||||||
# Show all the auto gc roots in the nix store
|
# Show all the auto gc roots in the nix store
|
||||||
[group('nix')]
|
[group('nix')]
|
||||||
@@ -94,6 +97,11 @@ verify-store:
|
|||||||
repair-store *paths:
|
repair-store *paths:
|
||||||
nix store repair {{paths}}
|
nix store repair {{paths}}
|
||||||
|
|
||||||
|
# Update all Nixpkgs inputs
|
||||||
|
[group('nix')]
|
||||||
|
up-nix:
|
||||||
|
nix flake update nixpkgs nixpkgs-stable nixpkgs-unstable nixpkgs-darwin nixpkgs-ollama
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
#
|
#
|
||||||
# NixOS Desktop related commands
|
# NixOS Desktop related commands
|
||||||
@@ -116,7 +124,7 @@ s-hypr mode="default":
|
|||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
#
|
#
|
||||||
# Darwin related commands, harmonica is my macbook pro's hostname
|
# Darwin related commands
|
||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
@@ -133,15 +141,6 @@ darwin-rollback:
|
|||||||
use {{utils_nu}} *;
|
use {{utils_nu}} *;
|
||||||
darwin-rollback
|
darwin-rollback
|
||||||
|
|
||||||
# Deploy to harmonica(macOS host)
|
|
||||||
[macos]
|
|
||||||
[group('desktop')]
|
|
||||||
ha mode="default":
|
|
||||||
#!/usr/bin/env nu
|
|
||||||
use {{utils_nu}} *;
|
|
||||||
darwin-build "harmonica" {{mode}};
|
|
||||||
darwin-switch "harmonica" {{mode}}
|
|
||||||
|
|
||||||
# Depoly to fern(macOS host)
|
# Depoly to fern(macOS host)
|
||||||
[macos]
|
[macos]
|
||||||
[group('desktop')]
|
[group('desktop')]
|
||||||
@@ -375,3 +374,29 @@ list-failed:
|
|||||||
[group('services')]
|
[group('services')]
|
||||||
list-systemd:
|
list-systemd:
|
||||||
systemctl list-units systemd-*
|
systemctl list-units systemd-*
|
||||||
|
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
#
|
||||||
|
# Nixpkgs Review via Github Action
|
||||||
|
# https://github.com/ryan4yin/nixpkgs-review-gha
|
||||||
|
#
|
||||||
|
# =================================================
|
||||||
|
|
||||||
|
# Run nixpkgs-review for PR
|
||||||
|
[linux]
|
||||||
|
[group('nixpkgs')]
|
||||||
|
pkg-review pr:
|
||||||
|
gh workflow run review.yml --repo ryan4yin/nixpkgs-review-gha -f x86_64-darwin=no -f post-result=true -f pr={{pr}}
|
||||||
|
|
||||||
|
# Run package tests for PR
|
||||||
|
[linux]
|
||||||
|
[group('nixpkgs')]
|
||||||
|
pkg-test pr pname:
|
||||||
|
gh workflow run review.yml --repo ryan4yin/nixpkgs-review-gha -f x86_64-darwin=no -f post-result=true -f pr={{pr}} -f extra-args="-p {{pname}}.passthru.tests"
|
||||||
|
|
||||||
|
# View the summary of a workflow
|
||||||
|
[linux]
|
||||||
|
[group('nixpkgs')]
|
||||||
|
pkg-summary:
|
||||||
|
gh workflow view review.yml --repo ryan4yin/nixpkgs-review-gha
|
||||||
|
|||||||
@@ -132,15 +132,11 @@ nix-shell -p just nushell
|
|||||||
# 3. comment home-manager's code in lib/macosSystem.nix to speed up the first deployment.
|
# 3. comment home-manager's code in lib/macosSystem.nix to speed up the first deployment.
|
||||||
# 4. comment out the proxy settings in scripts/darwin_set_proxy.py if the proxy is not ready yet.
|
# 4. comment out the proxy settings in scripts/darwin_set_proxy.py if the proxy is not ready yet.
|
||||||
|
|
||||||
# 4. deploy harmonica's configuration(macOS Intel)
|
|
||||||
just ha
|
|
||||||
|
|
||||||
# deploy fern's configuration(Apple Silicon)
|
# deploy fern's configuration(Apple Silicon)
|
||||||
just fe
|
just fr
|
||||||
|
|
||||||
# deploy with details
|
# deploy with details
|
||||||
just ha debug
|
just fr debug
|
||||||
# just fe debug
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> [What y'all will need when Nix drives you to drink.](https://www.youtube.com/watch?v=Eni9PPPPBpg)
|
> [What y'all will need when Nix drives you to drink.](https://www.youtube.com/watch?v=Eni9PPPPBpg)
|
||||||
|
|||||||
Generated
+180
-172
@@ -48,15 +48,17 @@
|
|||||||
},
|
},
|
||||||
"blender-bin": {
|
"blender-bin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "blender",
|
"dir": "blender",
|
||||||
"lastModified": 1746378999,
|
"lastModified": 1752701743,
|
||||||
"narHash": "sha256-aF+uC/aYR4I7VxN9s0gQG1WRDTE0Re3jAMd0qBkWjV4=",
|
"narHash": "sha256-cQeX9PP5F7fgsuv0CrL16GtlU6MS0i9LLnkkITu8jA8=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "nix-warez",
|
"repo": "nix-warez",
|
||||||
"rev": "85d76721132cc6631bbaa8c950d4d0f3aa4003fd",
|
"rev": "69acfebb3740542936f71775bcdf322dc328a655",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -66,6 +68,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"catppuccin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1753702336,
|
||||||
|
"narHash": "sha256-IVFUQV6egGQHnm+I183OT+4ct/ka1IWA5u/0A9I/YV4=",
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "b32de96c3c5384c83b0f4d741ec58a7f97c9ab11",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731098351,
|
"lastModified": 1731098351,
|
||||||
@@ -157,6 +179,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
"flake-compat_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1688025799,
|
||||||
|
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
@@ -219,11 +256,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1753121425,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -240,11 +277,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1753121425,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -293,16 +330,16 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"zig": "zig",
|
"zig": "zig",
|
||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748658752,
|
"lastModified": 1753722074,
|
||||||
"narHash": "sha256-x50iF9eu6W/WP2Ah958n4FOiu4ix1ytP9mrej2m9GVs=",
|
"narHash": "sha256-yGQ28k8iz2tGrj5oo/HBkn0ihWA5uUZ1ZErkMtegzTw=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "7e85ca3a16ff93ec0eab085e61d5a48cb0222a6a",
|
"rev": "92c1f4b0b9c6fde6d8f79109de71bf4e30831e86",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -387,11 +424,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748000383,
|
"lastModified": 1752595130,
|
||||||
"narHash": "sha256-EaAJhwfJGBncgIV/0NlJviid2DP93cTMc9h0q6P6xXk=",
|
"narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "hercules-ci-effects",
|
"repo": "hercules-ci-effects",
|
||||||
"rev": "231726642197817d20310b9d39dd4afb9e899489",
|
"rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -428,11 +465,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748654914,
|
"lastModified": 1753807879,
|
||||||
"narHash": "sha256-3xn61GBqAaRXvdvr1cSPcDj3kivENs0x9aJHLOHGiNM=",
|
"narHash": "sha256-d8nxwjUxnRyLWc5G/CpGVsqcSU3ZolS/QYWm9L+/CG0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6d09fd37a7d4110251c1c03cb09fbf6321fbe10d",
|
"rev": "25deca893974aae98c9be151fb47d6284c053470",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -442,21 +479,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"impermanence": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737831083,
|
|
||||||
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "impermanence",
|
|
||||||
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "impermanence",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lanzaboote": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
@@ -483,13 +505,30 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"my-asahi-firmware": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752336609,
|
||||||
|
"narHash": "sha256-PeJXDQgKwmu6PEjEA+68I7nIOTTpwUUyO1b5PpQg4gc=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "981583c8e101967ef6a66388ade54cab751f3a02",
|
||||||
|
"shallow": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@github.com/ryan4yin/asahi-firmware.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"shallow": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@github.com/ryan4yin/asahi-firmware.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"mysecrets": {
|
"mysecrets": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748512246,
|
"lastModified": 1752678564,
|
||||||
"narHash": "sha256-hSM5o7nwXbZI0vK5ya+xwSAVJ3FquZ63ejW9eEab2ho=",
|
"narHash": "sha256-x2sbH7Umncbyc9oca5mqX8kMChHVUTytKk+QXEcB4i4=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "099015dac014d6484594e49082ea1f126749efe8",
|
"rev": "a231913597362c15c71fd9212cef5092ae85a64c",
|
||||||
"shallow": true,
|
"shallow": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@github.com/ryan4yin/nix-secrets.git"
|
"url": "ssh://git@github.com/ryan4yin/nix-secrets.git"
|
||||||
@@ -507,11 +546,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748352827,
|
"lastModified": 1751313918,
|
||||||
"narHash": "sha256-sNUUP6qxGkK9hXgJ+p362dtWLgnIWwOCmiq72LAWtYo=",
|
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "44a7d0e687a87b73facfe94fba78d323a6686a90",
|
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -523,14 +562,16 @@
|
|||||||
"nix-gaming": {
|
"nix-gaming": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748656608,
|
"lastModified": 1753582293,
|
||||||
"narHash": "sha256-VU+8/kZ57Y7XTmgMBpybGMxO/elvUn/4yMndZji2pY8=",
|
"narHash": "sha256-CimzlksXOfuPcLr4ye/s4hwZhHk98f0gnXB6Dq9RhZo=",
|
||||||
"owner": "fufexan",
|
"owner": "fufexan",
|
||||||
"repo": "nix-gaming",
|
"repo": "nix-gaming",
|
||||||
"rev": "b585487bb87faec1c7a09aada7cfe77dd7b3c5fe",
|
"rev": "ceb9d44f09b0db02332873247a50210a486959ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -554,6 +595,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixos-apple-silicon": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751622568,
|
||||||
|
"narHash": "sha256-EE3NBsej517VRa1x+ylAghrvngftxf1KgfHlE9OYyXE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"rev": "eba4b40c816e5aff8951ae231ac237e8aab8ec1d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"rev": "eba4b40c816e5aff8951ae231ac237e8aab8ec1d",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-generators": {
|
"nixos-generators": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixlib": "nixlib",
|
"nixlib": "nixlib",
|
||||||
@@ -562,11 +625,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747663185,
|
"lastModified": 1751903740,
|
||||||
"narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=",
|
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc",
|
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -575,22 +638,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748634340,
|
|
||||||
"narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpak": {
|
"nixpak": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_4",
|
||||||
@@ -600,11 +647,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748485094,
|
"lastModified": 1753324041,
|
||||||
"narHash": "sha256-StAZf1nyocL8kTcVyg18n9I2ka/TQHks8RSLrmIp/TE=",
|
"narHash": "sha256-2JZ82g01Lo3f0SNP2WSDZ0ER1FnAN2WicULZkoEsRx0=",
|
||||||
"owner": "nixpak",
|
"owner": "nixpak",
|
||||||
"repo": "nixpak",
|
"repo": "nixpak",
|
||||||
"rev": "507bcbeec5979b5b332901062fe731c716b26544",
|
"rev": "fedd4b59b7c8f18be508dee9d89985a8501982d0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -615,26 +662,24 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733808091,
|
"lastModified": 1748189127,
|
||||||
"narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=",
|
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
||||||
"owner": "NixOS",
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
"repo": "nixpkgs",
|
"type": "tarball",
|
||||||
"rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e",
|
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
|
||||||
"type": "github"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"type": "tarball",
|
||||||
"ref": "nixos-24.11",
|
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
|
||||||
"type": "indirect"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-darwin": {
|
"nixpkgs-darwin": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748506378,
|
"lastModified": 1753722563,
|
||||||
"narHash": "sha256-oS0Gxh63Df8b8r04lqEYDDLKhHIrVr9/JLOn2bn8JaI=",
|
"narHash": "sha256-FK8iq76wlacriq3u0kFCehsRYTAqjA9nfprpiSWRWIc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3866ad91cfc172f08a6839def503d8fc2923c603",
|
"rev": "648f70160c03151bc2121d179291337ad6bc564b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -646,11 +691,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743296961,
|
"lastModified": 1751159883,
|
||||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
"narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
"rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -661,11 +706,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-ollama": {
|
"nixpkgs-ollama": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748460289,
|
"lastModified": 1753694789,
|
||||||
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
|
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102",
|
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -693,11 +738,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748437600,
|
"lastModified": 1753489912,
|
||||||
"narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
|
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7282cb574e0607e65224d33be8241eae7cfe0979",
|
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -709,11 +754,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748460289,
|
"lastModified": 1753694789,
|
||||||
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
|
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102",
|
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -725,40 +770,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748189127,
|
"lastModified": 1753694789,
|
||||||
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
|
||||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747958103,
|
|
||||||
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748460289,
|
|
||||||
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102",
|
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -768,39 +784,11 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701436327,
|
|
||||||
"narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=",
|
|
||||||
"rev": "91050ea1e57e50388fa87a3302ba12d188ef723a",
|
|
||||||
"revCount": 555097,
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.555097%2Brev-91050ea1e57e50388fa87a3302ba12d188ef723a/018c3450-2363-7c34-883b-4ba70b1eb7ae/source.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_6": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747610100,
|
|
||||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-25.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nuenv": {
|
"nuenv": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -819,14 +807,16 @@
|
|||||||
},
|
},
|
||||||
"nur-ryan4yin": {
|
"nur-ryan4yin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747880260,
|
"lastModified": 1751086727,
|
||||||
"narHash": "sha256-qJSGFMB/bPCeX2TPWhrbe3AZhLbxEtm/HeUV2+rOO78=",
|
"narHash": "sha256-5y9aE/o+KwEg075R5m/13Z1mavtyWv+9DE5uppLdRlo=",
|
||||||
"owner": "ryan4yin",
|
"owner": "ryan4yin",
|
||||||
"repo": "nur-packages",
|
"repo": "nur-packages",
|
||||||
"rev": "b64163d1bffff09b39a109d38163e6960c524c4f",
|
"rev": "a41be29389c8503f67b9f5cd47fa8b99a5bb3fe5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -838,11 +828,11 @@
|
|||||||
"polybar-themes": {
|
"polybar-themes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744988472,
|
"lastModified": 1753542051,
|
||||||
"narHash": "sha256-TxsO28Rd0U/FgA9v5M6426rFW0wNVdN1AVOazxsbMNo=",
|
"narHash": "sha256-f/54m7RJnqNW6eC/75IrnFxmSWTY+zd5epm6TQsYeYA=",
|
||||||
"owner": "adi1090x",
|
"owner": "adi1090x",
|
||||||
"repo": "polybar-themes",
|
"repo": "polybar-themes",
|
||||||
"rev": "03e542779448dd9fdb1e3451858cf66cf13b31bd",
|
"rev": "e6326ff356b296256b7fac9c5bcc42a1ef4a4d5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -853,23 +843,23 @@
|
|||||||
},
|
},
|
||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_4",
|
||||||
"gitignore": "gitignore_2",
|
"gitignore": "gitignore_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747372754,
|
"lastModified": 1750779888,
|
||||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -900,24 +890,40 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"preservation": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751384068,
|
||||||
|
"narHash": "sha256-xGq+Om1ReXcQy6h57yj9V5nOM84g/GBJ3m6oxe1a3js=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "preservation",
|
||||||
|
"rev": "286737ba485f30c1687c833e66f5901a6c8dc019",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "preservation",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"anyrun": "anyrun",
|
"anyrun": "anyrun",
|
||||||
"blender-bin": "blender-bin",
|
"blender-bin": "blender-bin",
|
||||||
|
"catppuccin": "catppuccin",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"ghostty": "ghostty",
|
"ghostty": "ghostty",
|
||||||
"haumea": "haumea",
|
"haumea": "haumea",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"impermanence": "impermanence",
|
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
|
"my-asahi-firmware": "my-asahi-firmware",
|
||||||
"mysecrets": "mysecrets",
|
"mysecrets": "mysecrets",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
|
"nixos-apple-silicon": "nixos-apple-silicon",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixos-hardware": "nixos-hardware",
|
|
||||||
"nixpak": "nixpak",
|
"nixpak": "nixpak",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-darwin": "nixpkgs-darwin",
|
"nixpkgs-darwin": "nixpkgs-darwin",
|
||||||
"nixpkgs-ollama": "nixpkgs-ollama",
|
"nixpkgs-ollama": "nixpkgs-ollama",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
@@ -926,6 +932,7 @@
|
|||||||
"nur-ryan4yin": "nur-ryan4yin",
|
"nur-ryan4yin": "nur-ryan4yin",
|
||||||
"polybar-themes": "polybar-themes",
|
"polybar-themes": "polybar-themes",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
|
"preservation": "preservation",
|
||||||
"wallpapers": "wallpapers"
|
"wallpapers": "wallpapers"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1051,7 +1058,8 @@
|
|||||||
"zig": {
|
"zig": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
"ghostty"
|
"ghostty",
|
||||||
|
"flake-compat"
|
||||||
],
|
],
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
"ghostty",
|
"ghostty",
|
||||||
@@ -1097,8 +1105,8 @@
|
|||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "jcollie",
|
"owner": "jcollie",
|
||||||
"ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
|
|
||||||
"repo": "zon2nix",
|
"repo": "zon2nix",
|
||||||
|
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
url = "github:lnl7/nix-darwin";
|
url = "github:lnl7/nix-darwin";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-darwin";
|
inputs.nixpkgs.follows = "nixpkgs-darwin";
|
||||||
};
|
};
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
||||||
|
|
||||||
# home-manager, used for managing user configuration
|
# home-manager, used for managing user configuration
|
||||||
home-manager = {
|
home-manager = {
|
||||||
@@ -61,12 +60,20 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/catppuccin/nix
|
||||||
|
catppuccin = {
|
||||||
|
url = "github:catppuccin/nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
impermanence.url = "github:nix-community/impermanence";
|
preservation = {
|
||||||
|
url = "github:nix-community/preservation";
|
||||||
|
};
|
||||||
|
|
||||||
# community wayland nixpkgs
|
# community wayland nixpkgs
|
||||||
# nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
# nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
||||||
@@ -90,7 +97,10 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
nix-gaming = {
|
||||||
|
url = "github:fufexan/nix-gaming";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
disko = {
|
disko = {
|
||||||
url = "github:nix-community/disko/v1.11.0";
|
url = "github:nix-community/disko/v1.11.0";
|
||||||
@@ -99,11 +109,14 @@
|
|||||||
|
|
||||||
# add git hooks to format nix code before commit
|
# add git hooks to format nix code before commit
|
||||||
pre-commit-hooks = {
|
pre-commit-hooks = {
|
||||||
url = "github:cachix/pre-commit-hooks.nix";
|
url = "github:cachix/git-hooks.nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nuenv.url = "github:DeterminateSystems/nuenv";
|
nuenv = {
|
||||||
|
url = "github:DeterminateSystems/nuenv";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
haumea = {
|
haumea = {
|
||||||
url = "github:nix-community/haumea/v0.2.2";
|
url = "github:nix-community/haumea/v0.2.2";
|
||||||
@@ -119,7 +132,16 @@
|
|||||||
url = "github:ghostty-org/ghostty";
|
url = "github:ghostty-org/ghostty";
|
||||||
};
|
};
|
||||||
|
|
||||||
blender-bin.url = "github:edolstra/nix-warez?dir=blender";
|
blender-bin = {
|
||||||
|
url = "github:edolstra/nix-warez?dir=blender";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixos-apple-silicon = {
|
||||||
|
# 2025-07-04
|
||||||
|
url = "github:nix-community/nixos-apple-silicon/eba4b40c816e5aff8951ae231ac237e8aab8ec1d";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
######################## Some non-flake repositories #########################################
|
######################## Some non-flake repositories #########################################
|
||||||
|
|
||||||
@@ -137,13 +159,21 @@
|
|||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my-asahi-firmware = {
|
||||||
|
url = "git+ssh://git@github.com/ryan4yin/asahi-firmware.git?shallow=1";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
# my wallpapers
|
# my wallpapers
|
||||||
wallpapers = {
|
wallpapers = {
|
||||||
url = "github:ryan4yin/wallpapers";
|
url = "github:ryan4yin/wallpapers";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
nur-ryan4yin.url = "github:ryan4yin/nur-packages";
|
nur-ryan4yin = {
|
||||||
|
url = "github:ryan4yin/nur-packages";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# for waydroid
|
# for waydroid
|
||||||
# nur-ataraxiasjel.url = "github:AtaraxiaSjel/nur";
|
# nur-ataraxiasjel.url = "github:AtaraxiaSjel/nur";
|
||||||
|
|||||||
+11
-15
@@ -18,10 +18,8 @@
|
|||||||
- [ ] AppArmor
|
- [ ] AppArmor
|
||||||
- [ ] Kernel & System Hardening
|
- [ ] Kernel & System Hardening
|
||||||
1. **Per-App Level**:
|
1. **Per-App Level**:
|
||||||
- Nixpak (Bubblewrap)
|
- Nixpak (Bubblewrap, running at user-level)
|
||||||
- [x] QQ
|
- Firejail (a SUID program, meaning it's running as root)
|
||||||
- [x] Firefox
|
|
||||||
- [ ] Firejail (risk? not enabled yet)
|
|
||||||
|
|
||||||
## Kernel Hardening
|
## Kernel Hardening
|
||||||
|
|
||||||
@@ -32,26 +30,27 @@
|
|||||||
|
|
||||||
- NixOS Profile:
|
- NixOS Profile:
|
||||||
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/profiles/hardened.nix
|
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/profiles/hardened.nix
|
||||||
- Apparmor: [roddhjav/apparmor.d)](https://github.com/roddhjav/apparmor.d)
|
- Apparmor: [roddhjav/apparmor.d](https://github.com/roddhjav/apparmor.d)
|
||||||
- https://gitlab.com/apparmor/apparmor/-/wikis/Documentation
|
- https://gitlab.com/apparmor/apparmor/-/wikis/Documentation
|
||||||
- AppArmor.d is a set of over 1500 AppArmor profiles whose aim is to confine most Linux based
|
- AppArmor.d is a set of over 1500 AppArmor profiles whose aim is to confine most Linux based
|
||||||
applications and processes.
|
applications and processes.
|
||||||
- Nix Package:
|
- But all the profiles of AppArmor assume a FHS filesystem, which caused all apparmor policies
|
||||||
[roddhjav-apparmor-rules](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ro/roddhjav-apparmor-rules/package.nix#L33)
|
takes no effect on NixOS.
|
||||||
- https://github.com/NixOS/nixpkgs/issues/331645
|
- Apparmor on NixOS Roadmap:
|
||||||
|
- https://discourse.nixos.org/t/apparmor-on-nixos-roadmap/57217
|
||||||
- https://github.com/LordGrimmauld/aa-alias-manager
|
- https://github.com/LordGrimmauld/aa-alias-manager
|
||||||
- SELinux: too complex, not recommended for personal use.
|
- SELinux: too complex, not recommended for personal use.
|
||||||
|
|
||||||
## Application Sandboxing
|
## Application Sandboxing
|
||||||
|
|
||||||
|
- [Bubblewrap](https://github.com/containers/bubblewrap):
|
||||||
|
[nixpak](https://github.com/nixpak/nixpak), more secure than firejail, but no batteries included.
|
||||||
|
- NixOS's FHSEnv is implemented using bubblewrap by default.
|
||||||
- [Firejail](https://github.com/netblue30/firejail/tree/master/etc): A SUID security sandbox with
|
- [Firejail](https://github.com/netblue30/firejail/tree/master/etc): A SUID security sandbox with
|
||||||
hundreds of security profiles for many common applications in the default installation.
|
hundreds of security profiles for many common applications in the default installation.
|
||||||
- https://wiki.nixos.org/wiki/Firejail
|
- https://wiki.nixos.org/wiki/Firejail
|
||||||
- Firejail needs SUID to work, which is considered a security risk -
|
- Firejail needs SUID to work, which is considered a security risk -
|
||||||
[Does firejail improve the security of my system?](https://github.com/netblue30/firejail/discussions/4601)
|
[Does firejail improve the security of my system?](https://github.com/netblue30/firejail/discussions/4601)
|
||||||
- [Bubblewrap](https://github.com/containers/bubblewrap):
|
|
||||||
[nixpak](https://github.com/nixpak/nixpak), more secure than firejail, but no batteries included.
|
|
||||||
- NixOS's FHSEnv is implemented using bubblewrap by default.
|
|
||||||
- [Systemd/Hardening](https://wiki.nixos.org/wiki/Systemd/Hardening): Systemd also provides some
|
- [Systemd/Hardening](https://wiki.nixos.org/wiki/Systemd/Hardening): Systemd also provides some
|
||||||
sandboxing features.
|
sandboxing features.
|
||||||
|
|
||||||
@@ -67,8 +66,6 @@ provide a much higher level of security.
|
|||||||
- [Harden your NixOS workstation - dataswamp](https://dataswamp.org/~solene/2022-01-13-nixos-hardened.html)
|
- [Harden your NixOS workstation - dataswamp](https://dataswamp.org/~solene/2022-01-13-nixos-hardened.html)
|
||||||
- [Linux Insecurities - Madaidans](https://madaidans-insecurities.github.io/linux.html)
|
- [Linux Insecurities - Madaidans](https://madaidans-insecurities.github.io/linux.html)
|
||||||
- [Sandboxing all programs by default - NixOS Discourse](https://discourse.nixos.org/t/sandboxing-all-programs-by-default/7792)
|
- [Sandboxing all programs by default - NixOS Discourse](https://discourse.nixos.org/t/sandboxing-all-programs-by-default/7792)
|
||||||
- [在 Firejail 中运行 Steam](https://imbearchild.cyou/archives/2021/11/steam-in-firejail/)
|
|
||||||
- [Firejail - Arch Linux Wiki](https://wiki.archlinux.org/title/Firejail)
|
|
||||||
- [Paranoid NixOS Setup - xeiaso](https://xeiaso.net/blog/paranoid-nixos-2021-07-18/)
|
- [Paranoid NixOS Setup - xeiaso](https://xeiaso.net/blog/paranoid-nixos-2021-07-18/)
|
||||||
- [nix-mineral](https://github.com/cynicsketch/nix-mineral): NixOS module for convenient system
|
- [nix-mineral](https://github.com/cynicsketch/nix-mineral): NixOS module for convenient system
|
||||||
hardening.
|
hardening.
|
||||||
@@ -80,8 +77,7 @@ provide a much higher level of security.
|
|||||||
- firejail configs:
|
- firejail configs:
|
||||||
- https://github.com/stelcodes/nixos-config/blob/f8967c82a5e5f3d128eb1aaf7498b5f918f719ec/packages/overlay.nix#L261
|
- https://github.com/stelcodes/nixos-config/blob/f8967c82a5e5f3d128eb1aaf7498b5f918f719ec/packages/overlay.nix#L261
|
||||||
- apparmor configs:
|
- apparmor configs:
|
||||||
- https://github.com/sukhmancs/nixos-configs/blob/7fcf737c506ad843113cd5b94796b49d4d4dfad2/modules/shared/security/apparmor/default.nix#L8
|
|
||||||
- https://github.com/zramctl/dotfiles/blob/4fe177f6984154960942bb47d5a375098ec6ed6a/modules/nixos/security/apparmor.nix#L4
|
- https://github.com/zramctl/dotfiles/blob/4fe177f6984154960942bb47d5a375098ec6ed6a/modules/nixos/security/apparmor.nix#L4
|
||||||
|
- https://git.grimmauld.de/Grimmauld/grimm-nixos-laptop/src/branch/main/hardening
|
||||||
- Others:
|
- Others:
|
||||||
- Directly via `buildFHSUserEnvBubblewrap`:
|
- Directly via `buildFHSUserEnvBubblewrap`:
|
||||||
https://github.com/xddxdd/nur-packages/blob/master/pkgs/uncategorized/wechat-uos/default.nix
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
services.dbus.apparmor = "enabled";
|
services.dbus.apparmor = "enabled";
|
||||||
security.apparmor = {
|
security.apparmor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(_: super: {
|
||||||
|
bwraps = {
|
||||||
|
wechat = super.callPackage ./wechat.nix { };
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
# - wechat's flatpak manifest: https://github.com/flathub/com.tencent.WeChat/blob/master/com.tencent.WeChat.yaml
|
||||||
|
# Refer:
|
||||||
|
# - Flatpak manifest's docs:
|
||||||
|
# - https://docs.flatpak.org/en/latest/manifests.html
|
||||||
|
# - https://docs.flatpak.org/en/latest/sandbox-permissions.html
|
||||||
|
#
|
||||||
|
# TODO Since appimageTools.wrapAppImage do not support overriding, I have to pack this package myself.
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/358977
|
||||||
|
{
|
||||||
|
appimageTools,
|
||||||
|
fetchurl,
|
||||||
|
stdenvNoCC,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
pname = "wechat";
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/we/wechat/package.nix
|
||||||
|
sources = {
|
||||||
|
aarch64-linux = {
|
||||||
|
version = "4.0.1.11";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://web.archive.org/web/20250512112413if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
|
||||||
|
hash = "sha256-Rg+FWNgOPC02ILUskQqQmlz1qNb9AMdvLcRWv7NQhGk=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
x86_64-linux = {
|
||||||
|
version = "4.0.1.11";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://web.archive.org/web/20250512110825if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
|
||||||
|
hash = "sha256-gBWcNQ1o1AZfNsmu1Vi1Kilqv3YbR+wqOod4XYAeVKo=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit (stdenvNoCC.hostPlatform) system;
|
||||||
|
inherit (sources.${system} or (throw "Unsupported system: ${system}")) version src;
|
||||||
|
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/we/wechat/linux.nix
|
||||||
|
appimageContents = appimageTools.extract {
|
||||||
|
inherit pname version src;
|
||||||
|
postExtract = ''
|
||||||
|
patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/wechat/wechat
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
appimageTools.wrapAppImage {
|
||||||
|
inherit pname version;
|
||||||
|
|
||||||
|
src = appimageContents;
|
||||||
|
|
||||||
|
extraInstallCommands = ''
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
cp ${appimageContents}/wechat.desktop $out/share/applications/
|
||||||
|
mkdir -p $out/share/pixmaps
|
||||||
|
cp ${appimageContents}/wechat.png $out/share/pixmaps/
|
||||||
|
|
||||||
|
substituteInPlace $out/share/applications/wechat.desktop --replace-fail AppRun wechat
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Add these root paths to FHS sandbox to prevent WeChat from accessing them by default
|
||||||
|
# Adapted from https://aur.archlinux.org/cgit/aur.git/tree/wechat-universal.sh?h=wechat-universal-bwrap
|
||||||
|
extraPreBwrapCmds = ''
|
||||||
|
XDG_DOCUMENTS_DIR="''${XDG_DOCUMENTS_DIR:-$(xdg-user-dir DOCUMENTS)}"
|
||||||
|
if [[ -z "''${XDG_DOCUMENTS_DIR}" ]]; then
|
||||||
|
echo 'Error: Failed to get XDG_DOCUMENTS_DIR, refuse to continue'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
WECHAT_DATA_DIR="''${XDG_DOCUMENTS_DIR}/WeChat_Data"
|
||||||
|
|
||||||
|
# Using ''${WECHAT_DATA_DIR} as Wechat Data folder
|
||||||
|
WECHAT_HOME_DIR="''${WECHAT_DATA_DIR}/home"
|
||||||
|
WECHAT_FILES_DIR="''${WECHAT_DATA_DIR}/xwechat_files"
|
||||||
|
|
||||||
|
mkdir -p "''${WECHAT_FILES_DIR}"
|
||||||
|
mkdir -p "''${WECHAT_HOME_DIR}"
|
||||||
|
ln -snf "''${WECHAT_FILES_DIR}" "''${WECHAT_HOME_DIR}/xwechat_files"
|
||||||
|
'';
|
||||||
|
extraBwrapArgs = [
|
||||||
|
"--tmpfs /home"
|
||||||
|
"--tmpfs /root"
|
||||||
|
# format: --bind <host-path> <sandbox-path>
|
||||||
|
"--bind \${WECHAT_HOME_DIR} \${HOME}"
|
||||||
|
"--bind \${WECHAT_FILES_DIR} \${WECHAT_FILES_DIR}"
|
||||||
|
"--chdir \${HOME}"
|
||||||
|
# wechat-universal only supports xcb
|
||||||
|
"--setenv QT_QPA_PLATFORM xcb"
|
||||||
|
"--setenv QT_AUTO_SCREEN_SCALE_FACTOR 1"
|
||||||
|
# use fcitx as IME
|
||||||
|
"--setenv QT_IM_MODULE fcitx"
|
||||||
|
"--setenv GTK_IM_MODULE fcitx"
|
||||||
|
];
|
||||||
|
chdirToPwd = false;
|
||||||
|
unshareNet = false;
|
||||||
|
unshareIpc = true;
|
||||||
|
unsharePid = true;
|
||||||
|
unshareUts = true;
|
||||||
|
unshareCgroup = true;
|
||||||
|
privateTmp = true;
|
||||||
|
}
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
{pkgs, ...}: let
|
|
||||||
firejailWrapper = import ./firejailWrapper.nix pkgs;
|
|
||||||
in {
|
|
||||||
programs.firejail.enable = true;
|
|
||||||
|
|
||||||
# Add firejailed Apps into nixsuper, and reference them in home-manager or other nixos modules
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(_: super: {
|
|
||||||
firejailed = {
|
|
||||||
steam = firejailWrapper {
|
|
||||||
name = "steam-firejailed";
|
|
||||||
executable = "${super.steam}/bin/steam";
|
|
||||||
profile = "${super.firejail}/etc/firejail/steam.profile";
|
|
||||||
};
|
|
||||||
steam-run = firejailWrapper {
|
|
||||||
name = "steam-run-firejailed";
|
|
||||||
executable = "${super.steam}/bin/steam-run";
|
|
||||||
profile = "${super.firejail}/etc/firejail/steam.profile";
|
|
||||||
};
|
|
||||||
|
|
||||||
# firefox = firejailWrapper {
|
|
||||||
# name = "firefox-firejailed";
|
|
||||||
# executable = "${super.lib.getBin super.firefox-wayland}/bin/firefox";
|
|
||||||
# profile = "${super.firejail}/etc/firejail/firefox.profile";
|
|
||||||
# };
|
|
||||||
# chromium = firejailWrapper {
|
|
||||||
# name = "chromium-firejailed";
|
|
||||||
# executable = "${super.lib.getBin super.ungoogled-chromium}/bin/chromium";
|
|
||||||
# profile = "${super.firejail}/etc/firejail/chromium.profile";
|
|
||||||
# };
|
|
||||||
|
|
||||||
mpv = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.mpv}/bin/mpv";
|
|
||||||
profile = "${super.firejail}/etc/firejail/mpv.profile";
|
|
||||||
};
|
|
||||||
imv = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.imv}/bin/imv";
|
|
||||||
profile = "${super.firejail}/etc/firejail/imv.profile";
|
|
||||||
};
|
|
||||||
zathura = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.zathura}/bin/zathura";
|
|
||||||
profile = "${super.firejail}/etc/firejail/zathura.profile";
|
|
||||||
};
|
|
||||||
slack = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.slack}/bin/slack";
|
|
||||||
profile = "${super.firejail}/etc/firejail/slack.profile";
|
|
||||||
};
|
|
||||||
telegram-desktop = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.tdesktop}/bin/telegram-desktop";
|
|
||||||
profile = "${super.firejail}/etc/firejail/telegram-desktop.profile";
|
|
||||||
};
|
|
||||||
brave = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.brave}/bin/brave";
|
|
||||||
profile = "${super.firejail}/etc/firejail/brave.profile";
|
|
||||||
};
|
|
||||||
qutebrowser = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.qutebrowser}/bin/qutebrowser";
|
|
||||||
profile = "${super.firejail}/etc/firejail/qutebrowser.profile";
|
|
||||||
};
|
|
||||||
thunar = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.xfce.thunar}/bin/thunar";
|
|
||||||
profile = "${super.firejail}/etc/firejail/thunar.profile";
|
|
||||||
};
|
|
||||||
vscodium = firejailWrapper {
|
|
||||||
executable = "${super.lib.getBin super.vscodium}/bin/vscodium";
|
|
||||||
profile = "${super.firejail}/etc/firejail/vscodium.profile";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# https://www.reddit.com/r/NixOS/comments/1b56jdx/simple_nix_function_for_wrapping_executables_with/
|
|
||||||
pkgs: {
|
|
||||||
name ? "firejail-wrapper",
|
|
||||||
executable,
|
|
||||||
desktop ? null,
|
|
||||||
profile ? null,
|
|
||||||
extraArgs ? [],
|
|
||||||
}:
|
|
||||||
pkgs.runCommand name
|
|
||||||
{
|
|
||||||
preferLocalBuild = true;
|
|
||||||
allowSubstitutes = false;
|
|
||||||
meta.priority = -1; # take precedence over non-firejailed versions
|
|
||||||
}
|
|
||||||
(
|
|
||||||
let
|
|
||||||
firejailArgs = pkgs.lib.concatStringsSep " " (
|
|
||||||
extraArgs ++ (pkgs.lib.optional (profile != null) "--profile=${toString profile}")
|
|
||||||
);
|
|
||||||
in
|
|
||||||
''
|
|
||||||
command_path="$out/bin/$(basename ${executable})-jailed"
|
|
||||||
mkdir -p $out/bin
|
|
||||||
mkdir -p $out/share/applications
|
|
||||||
cat <<'_EOF' >"$command_path"
|
|
||||||
#! ${pkgs.runtimeShell} -e
|
|
||||||
exec /run/wrappers/bin/firejail ${firejailArgs} -- ${toString executable} "\$@"
|
|
||||||
_EOF
|
|
||||||
chmod 0755 "$command_path"
|
|
||||||
''
|
|
||||||
+ pkgs.lib.optionalString (desktop != null) ''
|
|
||||||
substitute ${desktop} $out/share/applications/$(basename ${desktop}) \
|
|
||||||
--replace ${executable} "$command_path"
|
|
||||||
''
|
|
||||||
)
|
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
nixpak,
|
nixpak,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
callArgs = {
|
callArgs = {
|
||||||
mkNixPak = nixpak.lib.nixpak {
|
mkNixPak = nixpak.lib.nixpak {
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
@@ -14,7 +15,8 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
wrapper = _pkgs: path: (_pkgs.callPackage path callArgs).config.script;
|
wrapper = _pkgs: path: (_pkgs.callPackage path callArgs).config.script;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
# Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules
|
# Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(_: super: {
|
(_: super: {
|
||||||
@@ -22,8 +24,8 @@ in {
|
|||||||
qq = wrapper super ./qq.nix;
|
qq = wrapper super ./qq.nix;
|
||||||
qq-desktop-item = super.callPackage ./qq-desktop-item.nix { };
|
qq-desktop-item = super.callPackage ./qq-desktop-item.nix { };
|
||||||
|
|
||||||
wechat-uos = wrapper super ./wechat-uos.nix;
|
wechat = wrapper super ./wechat.nix;
|
||||||
wechat-uos-desktop-item = super.callPackage ./wechat-uos-desktop-item.nix {};
|
wechat-desktop-item = super.callPackage ./wechat-desktop-item.nix { };
|
||||||
|
|
||||||
firefox = wrapper super ./firefox.nix;
|
firefox = wrapper super ./firefox.nix;
|
||||||
firefox-desktop-item = super.callPackage ./firefox-desktop-item.nix { };
|
firefox-desktop-item = super.callPackage ./firefox-desktop-item.nix { };
|
||||||
|
|||||||
@@ -10,11 +10,13 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
mkNixPak {
|
mkNixPak {
|
||||||
config = {
|
config =
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
sloth,
|
sloth,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
app = {
|
app = {
|
||||||
package = pkgs.firefox-wayland;
|
package = pkgs.firefox-wayland;
|
||||||
binPath = "bin/firefox";
|
binPath = "bin/firefox";
|
||||||
@@ -34,6 +36,15 @@ mkNixPak {
|
|||||||
"org.mozilla.firefox_beta.*" = "own"; # firefox beta
|
"org.mozilla.firefox_beta.*" = "own"; # firefox beta
|
||||||
"org.mpris.MediaPlayer2.firefox.*" = "own";
|
"org.mpris.MediaPlayer2.firefox.*" = "own";
|
||||||
"org.freedesktop.NetworkManager" = "talk";
|
"org.freedesktop.NetworkManager" = "talk";
|
||||||
|
|
||||||
|
"org.gnome.Shell.Screencast" = "talk";
|
||||||
|
# System tray icon
|
||||||
|
"org.freedesktop.Notifications" = "talk";
|
||||||
|
"org.kde.StatusNotifierWatcher" = "talk";
|
||||||
|
# File Manager
|
||||||
|
"org.freedesktop.FileManager1" = "talk";
|
||||||
|
# Uses legacy StatusNotifier implementation
|
||||||
|
"org.kde.*" = "own";
|
||||||
};
|
};
|
||||||
|
|
||||||
bubblewrap = {
|
bubblewrap = {
|
||||||
@@ -45,16 +56,23 @@ mkNixPak {
|
|||||||
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
|
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
|
||||||
(sloth.mkdir (sloth.concat' sloth.homeDir "/.mozilla"))
|
(sloth.mkdir (sloth.concat' sloth.homeDir "/.mozilla"))
|
||||||
|
|
||||||
# ================ for externsions ===============================
|
|
||||||
# required by https://github.com/browserpass/browserpass-extension
|
|
||||||
(sloth.concat' sloth.homeDir "/.local/share/password-store") # pass
|
|
||||||
sloth.xdgDownloadDir
|
|
||||||
sloth.xdgDocumentsDir
|
sloth.xdgDocumentsDir
|
||||||
|
sloth.xdgDownloadDir
|
||||||
|
sloth.xdgMusicDir
|
||||||
|
sloth.xdgVideosDir
|
||||||
];
|
];
|
||||||
bind.ro = [
|
bind.ro = [
|
||||||
# To actually make Firefox run
|
|
||||||
"/sys/bus/pci"
|
"/sys/bus/pci"
|
||||||
["${config.app.package}/lib/firefox" "/app/etc/firefox"]
|
[
|
||||||
|
"${config.app.package}/lib/firefox"
|
||||||
|
"/app/etc/firefox"
|
||||||
|
]
|
||||||
|
|
||||||
|
# ================ for browserpass extension ===============================
|
||||||
|
"/etc/gnupg"
|
||||||
|
(sloth.concat' sloth.homeDir "/.gnupg") # gpg's config
|
||||||
|
(sloth.concat' sloth.homeDir "/.local/share/password-store") # my secrets
|
||||||
|
(sloth.concat' sloth.runtimeDir "/gnupg") # for access gpg-agent socket
|
||||||
|
|
||||||
# Unsure
|
# Unsure
|
||||||
(sloth.concat' sloth.xdgConfigHome "/dconf")
|
(sloth.concat' sloth.xdgConfigHome "/dconf")
|
||||||
@@ -65,12 +83,6 @@ mkNixPak {
|
|||||||
wayland = true;
|
wayland = true;
|
||||||
pipewire = true;
|
pipewire = true;
|
||||||
};
|
};
|
||||||
bind.dev = [
|
|
||||||
"/dev/shm" # Shared Memory
|
|
||||||
];
|
|
||||||
tmpfs = [
|
|
||||||
"/tmp"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,14 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
sloth,
|
sloth,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
envSuffix = envKey: suffix: sloth.concat' (sloth.env envKey) suffix;
|
envSuffix = envKey: suffix: sloth.concat' (sloth.env envKey) suffix;
|
||||||
# cursor & icon's theme should be the same as the host's one.
|
# cursor & icon's theme should be the same as the host's one.
|
||||||
cursorTheme = pkgs.bibata-cursors;
|
cursorTheme = pkgs.bibata-cursors;
|
||||||
iconTheme = pkgs.papirus-icon-theme;
|
iconTheme = pkgs.papirus-icon-theme;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
config = {
|
config = {
|
||||||
dbus.policies = {
|
dbus.policies = {
|
||||||
"${config.flatpak.appId}" = "own";
|
"${config.flatpak.appId}" = "own";
|
||||||
@@ -18,8 +20,11 @@ in {
|
|||||||
"org.gtk.vfs.*" = "talk";
|
"org.gtk.vfs.*" = "talk";
|
||||||
"org.gtk.vfs" = "talk";
|
"org.gtk.vfs" = "talk";
|
||||||
"ca.desrt.dconf" = "talk";
|
"ca.desrt.dconf" = "talk";
|
||||||
"org.freedesktop.portal.*" = "talk";
|
|
||||||
"org.a11y.Bus" = "talk";
|
"org.a11y.Bus" = "talk";
|
||||||
|
|
||||||
|
# for default portal & gtk/hyprland's portal
|
||||||
|
"org.freedesktop.portal.*" = "talk";
|
||||||
|
"org.freedesktop.impl.portal.desktop.*" = "talk";
|
||||||
};
|
};
|
||||||
# https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix
|
# https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix
|
||||||
# 1. bind readonly - /run/opengl-driver
|
# 1. bind readonly - /run/opengl-driver
|
||||||
@@ -72,6 +77,8 @@ in {
|
|||||||
"/etc/static/egl"
|
"/etc/static/egl"
|
||||||
];
|
];
|
||||||
bind.dev = [
|
bind.dev = [
|
||||||
|
"/dev/shm" # Shared Memory
|
||||||
|
|
||||||
# seems required when using nvidia as primary gpu
|
# seems required when using nvidia as primary gpu
|
||||||
"/dev/nvidia0"
|
"/dev/nvidia0"
|
||||||
"/dev/nvidiactl"
|
"/dev/nvidiactl"
|
||||||
@@ -79,16 +86,24 @@ in {
|
|||||||
"/dev/nvidia-uvm"
|
"/dev/nvidia-uvm"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
tmpfs = [
|
||||||
|
"/tmp"
|
||||||
|
];
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
XDG_DATA_DIRS = lib.mkForce (lib.makeSearchPath "share" [
|
XDG_DATA_DIRS = lib.mkForce (
|
||||||
|
lib.makeSearchPath "share" [
|
||||||
iconTheme
|
iconTheme
|
||||||
cursorTheme
|
cursorTheme
|
||||||
pkgs.shared-mime-info
|
pkgs.shared-mime-info
|
||||||
]);
|
]
|
||||||
XCURSOR_PATH = lib.mkForce (lib.concatStringsSep ":" [
|
);
|
||||||
|
XCURSOR_PATH = lib.mkForce (
|
||||||
|
lib.concatStringsSep ":" [
|
||||||
"${cursorTheme}/share/icons"
|
"${cursorTheme}/share/icons"
|
||||||
"${cursorTheme}/share/pixmaps"
|
"${cursorTheme}/share/pixmaps"
|
||||||
]);
|
]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
makeDesktopItem {
|
makeDesktopItem {
|
||||||
name = "qq";
|
name = "qq";
|
||||||
desktopName = "QQ";
|
desktopName = "QQ";
|
||||||
exec = "qq %U";
|
exec = "${qq}/bin/qq %U";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
# To find the icon name(nushell):
|
# To find the icon name(nushell):
|
||||||
# let p = NIXPKGS_ALLOW_UNFREE=1 nix eval --impure nixpkgs#qq.outPath | str trim --char '"'
|
# let p = NIXPKGS_ALLOW_UNFREE=1 nix eval --impure nixpkgs#qq.outPath | str trim --char '"'
|
||||||
|
|||||||
@@ -10,7 +10,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
mkNixPak {
|
mkNixPak {
|
||||||
config = {sloth, ...}: {
|
config =
|
||||||
|
{ sloth, ... }:
|
||||||
|
{
|
||||||
app = {
|
app = {
|
||||||
package = pkgs.qq.override {
|
package = pkgs.qq.override {
|
||||||
# fix fcitx5 input method
|
# fix fcitx5 input method
|
||||||
@@ -30,8 +32,13 @@ mkNixPak {
|
|||||||
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
|
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
|
||||||
dbus.policies = {
|
dbus.policies = {
|
||||||
"org.gnome.Shell.Screencast" = "talk";
|
"org.gnome.Shell.Screencast" = "talk";
|
||||||
|
# System tray icon
|
||||||
"org.freedesktop.Notifications" = "talk";
|
"org.freedesktop.Notifications" = "talk";
|
||||||
"org.kde.StatusNotifierWatcher" = "talk";
|
"org.kde.StatusNotifierWatcher" = "talk";
|
||||||
|
# File Manager
|
||||||
|
"org.freedesktop.FileManager1" = "talk";
|
||||||
|
# Uses legacy StatusNotifier implementation
|
||||||
|
"org.kde.*" = "own";
|
||||||
};
|
};
|
||||||
bubblewrap = {
|
bubblewrap = {
|
||||||
# To trace all the home files QQ accesses, you can use the following nushell command:
|
# To trace all the home files QQ accesses, you can use the following nushell command:
|
||||||
@@ -40,21 +47,23 @@ mkNixPak {
|
|||||||
bind.rw = [
|
bind.rw = [
|
||||||
# given the read write permission to the following directories.
|
# given the read write permission to the following directories.
|
||||||
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
|
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
|
||||||
(sloth.mkdir (sloth.concat [sloth.xdgConfigHome "/QQ"]))
|
(sloth.mkdir (
|
||||||
(sloth.mkdir (sloth.concat [sloth.xdgDocumentsDir "/QQ"]))
|
sloth.concat [
|
||||||
|
sloth.xdgConfigHome
|
||||||
|
"/QQ"
|
||||||
|
]
|
||||||
|
))
|
||||||
|
|
||||||
|
sloth.xdgDocumentsDir
|
||||||
sloth.xdgDownloadDir
|
sloth.xdgDownloadDir
|
||||||
|
sloth.xdgMusicDir
|
||||||
|
sloth.xdgVideosDir
|
||||||
];
|
];
|
||||||
sockets = {
|
sockets = {
|
||||||
x11 = false;
|
x11 = false;
|
||||||
wayland = true;
|
wayland = true;
|
||||||
pipewire = true;
|
pipewire = true;
|
||||||
};
|
};
|
||||||
bind.dev = [
|
|
||||||
"/dev/shm" # Shared Memory
|
|
||||||
];
|
|
||||||
tmpfs = [
|
|
||||||
"/tmp"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
makeDesktopItem,
|
|
||||||
wechat-uos,
|
|
||||||
}:
|
|
||||||
makeDesktopItem {
|
|
||||||
name = "wechat";
|
|
||||||
desktopName = "WeChat";
|
|
||||||
exec = "wechat-uos %U";
|
|
||||||
terminal = false;
|
|
||||||
# To find the icon name(nushell):
|
|
||||||
# let p = NIXPKGS_ALLOW_UNFREE=1 nix eval --impure nixpkgs#wechat-uos.outPath | str trim --char '"'
|
|
||||||
# tree $"($p)/share/icons"
|
|
||||||
icon = "${wechat-uos}/share/icons/hicolor/256x256/apps/com.tencent.wechat.png";
|
|
||||||
type = "Application";
|
|
||||||
categories = ["Network"];
|
|
||||||
comment = "Wechat boxed";
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
# TODO: wechat-uos is running in FHS sandbox by default, it's problematic
|
|
||||||
# to wrap it again via flatpak. We need to find a way to fix it.
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/we/wechat-uos/package.nix
|
|
||||||
# Refer:
|
|
||||||
# - Flatpak manifest's docs:
|
|
||||||
# - https://docs.flatpak.org/en/latest/manifests.html
|
|
||||||
# - https://docs.flatpak.org/en/latest/sandbox-permissions.html
|
|
||||||
# - wechat-uos's flatpak manifest: https://github.com/flathub/com.tencent.WeChat/blob/master/com.tencent.WeChat.yaml
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
mkNixPak,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
mkNixPak {
|
|
||||||
config = {sloth, ...}: {
|
|
||||||
app = {
|
|
||||||
package = pkgs.wechat-uos;
|
|
||||||
binPath = "bin/wechat-uos";
|
|
||||||
};
|
|
||||||
flatpak.appId = "com.tencent.WeChat";
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./modules/gui-base.nix
|
|
||||||
./modules/network.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# list all dbus services:
|
|
||||||
# ls -al /run/current-system/sw/share/dbus-1/services/
|
|
||||||
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
|
|
||||||
dbus.policies = {
|
|
||||||
"org.gnome.Shell.Screencast" = "talk";
|
|
||||||
# System tray icon
|
|
||||||
"org.freedesktop.Notifications" = "talk";
|
|
||||||
"org.kde.StatusNotifierWatcher" = "talk";
|
|
||||||
# File Manager
|
|
||||||
"org.freedesktop.FileManager1" = "talk";
|
|
||||||
# Uses legacy StatusNotifier implementation
|
|
||||||
"org.kde.*" = "own";
|
|
||||||
};
|
|
||||||
bubblewrap = {
|
|
||||||
# To trace all the home files QQ accesses, you can use the following nushell command:
|
|
||||||
# just trace-access wechat-uos
|
|
||||||
# See the Justfile in the root of this repository for more information.
|
|
||||||
bind.rw = [
|
|
||||||
# given the read write permission to the following directories.
|
|
||||||
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
|
|
||||||
(sloth.mkdir (sloth.concat [sloth.homeDir "/.xwechat"]))
|
|
||||||
(sloth.mkdir (sloth.concat [sloth.xdgDocumentsDir "/xwechat_files"]))
|
|
||||||
(sloth.mkdir (sloth.concat [sloth.xdgDocumentsDir "/WeChat_Data/"]))
|
|
||||||
sloth.xdgDownloadDir
|
|
||||||
];
|
|
||||||
sockets = {
|
|
||||||
x11 = false;
|
|
||||||
wayland = true;
|
|
||||||
pipewire = true;
|
|
||||||
};
|
|
||||||
bind.dev = [
|
|
||||||
"/dev/shm" # Shared Memory
|
|
||||||
];
|
|
||||||
tmpfs = [
|
|
||||||
"/tmp"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = {
|
|
||||||
# Hidpi scale
|
|
||||||
"QT_AUTO_SCREEN_SCALE_FACTOR" = "1";
|
|
||||||
# Only supports xcb
|
|
||||||
"QT_QPA_PLATFORM" = "kcb";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{modulesPath, ...}: {
|
{ modulesPath, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/profiles/hardened.nix")
|
(modulesPath + "/profiles/hardened.nix")
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,16 +1,8 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# https://github.com/catppuccin/btop/blob/main/themes/catppuccin_mocha.theme
|
|
||||||
xdg.configFile."btop/themes".source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-btop}/themes";
|
|
||||||
|
|
||||||
# replacement of htop/nmon
|
# replacement of htop/nmon
|
||||||
programs.btop = {
|
programs.btop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
color_theme = "catppuccin_mocha";
|
|
||||||
theme_background = false; # make btop transparent
|
theme_background = false; # make btop transparent
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
+7
-40
@@ -1,8 +1,5 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Misc
|
# Misc
|
||||||
cowsay
|
cowsay
|
||||||
@@ -25,8 +22,6 @@
|
|||||||
sad # CLI search and replace, just like sed, but with diff preview.
|
sad # CLI search and replace, just like sed, but with diff preview.
|
||||||
yq-go # yaml processor https://github.com/mikefarah/yq
|
yq-go # yaml processor https://github.com/mikefarah/yq
|
||||||
just # a command runner like make, but simpler
|
just # a command runner like make, but simpler
|
||||||
delta # A viewer for git and diff output
|
|
||||||
lazygit # Git terminal UI.
|
|
||||||
hyperfine # command-line benchmarking tool
|
hyperfine # command-line benchmarking tool
|
||||||
gping # ping, but with a graph(TUI)
|
gping # ping, but with a graph(TUI)
|
||||||
doggo # DNS client for humans
|
doggo # DNS client for humans
|
||||||
@@ -53,10 +48,9 @@
|
|||||||
ncdu # analyzer your disk usage Interactively, via TUI(replacement of `du`)
|
ncdu # analyzer your disk usage Interactively, via TUI(replacement of `du`)
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
|
||||||
# A modern replacement for ‘ls’
|
# A modern replacement for ‘ls’
|
||||||
# useful in bash/zsh prompt, not in nushell.
|
# useful in bash/zsh prompt, not in nushell.
|
||||||
eza = {
|
programs.eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# do not enable aliases in nushell!
|
# do not enable aliases in nushell!
|
||||||
enableNushellIntegration = false;
|
enableNushellIntegration = false;
|
||||||
@@ -65,44 +59,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# a cat(1) clone with syntax highlighting and Git integration.
|
# a cat(1) clone with syntax highlighting and Git integration.
|
||||||
bat = {
|
programs.bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
pager = "less -FR";
|
pager = "less -FR";
|
||||||
theme = "catppuccin-mocha";
|
|
||||||
};
|
|
||||||
themes = {
|
|
||||||
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
|
|
||||||
catppuccin-mocha = {
|
|
||||||
src = nur-ryan4yin.packages.${pkgs.system}.catppuccin-bat;
|
|
||||||
file = "Catppuccin-mocha.tmTheme";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# A command-line fuzzy finder
|
# A command-line fuzzy finder
|
||||||
fzf = {
|
programs.fzf.enable = true;
|
||||||
enable = true;
|
|
||||||
# https://github.com/catppuccin/fzf
|
|
||||||
# catppuccin-mocha
|
|
||||||
colors = {
|
|
||||||
"bg+" = "#313244";
|
|
||||||
"bg" = "#1e1e2e";
|
|
||||||
"spinner" = "#f5e0dc";
|
|
||||||
"hl" = "#f38ba8";
|
|
||||||
"fg" = "#cdd6f4";
|
|
||||||
"header" = "#f38ba8";
|
|
||||||
"info" = "#cba6f7";
|
|
||||||
"pointer" = "#f5e0dc";
|
|
||||||
"marker" = "#f5e0dc";
|
|
||||||
"fg+" = "#cdd6f4";
|
|
||||||
"prompt" = "#cba6f7";
|
|
||||||
"hl+" = "#f38ba8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# very fast version of tldr in Rust
|
# very fast version of tldr in Rust
|
||||||
tealdeer = {
|
programs.tealdeer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableAutoUpdates = true;
|
enableAutoUpdates = true;
|
||||||
settings = {
|
settings = {
|
||||||
@@ -134,7 +102,7 @@
|
|||||||
# zi foo # cd with interactive selection (using fzf)
|
# zi foo # cd with interactive selection (using fzf)
|
||||||
#
|
#
|
||||||
# z foo<SPACE><TAB> # show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only)
|
# z foo<SPACE><TAB> # show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only)
|
||||||
zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
@@ -145,11 +113,10 @@
|
|||||||
# and records additional context for your commands.
|
# and records additional context for your commands.
|
||||||
# Additionally, it provides optional and fully encrypted
|
# Additionally, it provides optional and fully encrypted
|
||||||
# synchronisation of your history between machines, via an Atuin server.
|
# synchronisation of your history between machines, via an Atuin server.
|
||||||
atuin = {
|
programs.atuin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
+31
-4
@@ -4,7 +4,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
myvars,
|
myvars,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# `programs.git` will generate the config file: ~/.config/git/config
|
# `programs.git` will generate the config file: ~/.config/git/config
|
||||||
# to make git use this config file, `~/.gitconfig` should not exist!
|
# to make git use this config file, `~/.gitconfig` should not exist!
|
||||||
#
|
#
|
||||||
@@ -13,8 +14,27 @@
|
|||||||
rm -f ${config.home.homeDirectory}/.gitconfig
|
rm -f ${config.home.homeDirectory}/.gitconfig
|
||||||
'';
|
'';
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
# GitHub CLI tool
|
||||||
];
|
# https://cli.github.com/manual/
|
||||||
|
programs.gh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
git_protocol = "ssh";
|
||||||
|
prompt = "enabled";
|
||||||
|
aliases = {
|
||||||
|
co = "pr checkout";
|
||||||
|
pv = "pr view";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hosts = {
|
||||||
|
"github.com" = {
|
||||||
|
"users" = {
|
||||||
|
"ryan4yin" = null;
|
||||||
|
};
|
||||||
|
"user" = "ryan4yin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -36,6 +56,7 @@
|
|||||||
trim.bases = "develop,master,main"; # for git-trim
|
trim.bases = "develop,master,main"; # for git-trim
|
||||||
push.autoSetupRemote = true;
|
push.autoSetupRemote = true;
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
|
log.date = "iso"; # use iso format for date
|
||||||
|
|
||||||
# replace https with ssh
|
# replace https with ssh
|
||||||
url = {
|
url = {
|
||||||
@@ -56,7 +77,7 @@
|
|||||||
# signByDefault = true;
|
# signByDefault = true;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# A syntax-highlighting pager in Rust(2019 ~ Now)
|
# A syntax-highlighting pager for git, diff, grep, and blame output
|
||||||
delta = {
|
delta = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = {
|
options = {
|
||||||
@@ -96,4 +117,10 @@
|
|||||||
foreach = "submodule foreach";
|
foreach = "submodule foreach";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Git terminal UI (written in go).
|
||||||
|
programs.lazygit.enable = true;
|
||||||
|
|
||||||
|
# Yet another Git TUI (written in rust).
|
||||||
|
programs.gitui.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
# make `npm install -g <pkg>` happey
|
||||||
|
#
|
||||||
|
# mainly used to install npm packages that updates frequently
|
||||||
|
# such as gemini-cli, claude-code, etc.
|
||||||
|
home.file.".npmrc".text = ''
|
||||||
|
prefix=${config.home.homeDirectory}/.npm
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -1,3 +1,8 @@
|
|||||||
|
# Based on the default config generated by:
|
||||||
|
# ```
|
||||||
|
# config nu --default
|
||||||
|
# ```
|
||||||
|
#
|
||||||
# Nushell Config File Documentation
|
# Nushell Config File Documentation
|
||||||
#
|
#
|
||||||
# Warning: This file is intended for documentation purposes only and
|
# Warning: This file is intended for documentation purposes only and
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
{
|
{ config, ... }:
|
||||||
config,
|
let
|
||||||
pkgs-unstable,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
k = "kubectl";
|
k = "kubectl";
|
||||||
|
|
||||||
@@ -13,22 +10,25 @@
|
|||||||
localBin = "${config.home.homeDirectory}/.local/bin";
|
localBin = "${config.home.homeDirectory}/.local/bin";
|
||||||
goBin = "${config.home.homeDirectory}/go/bin";
|
goBin = "${config.home.homeDirectory}/go/bin";
|
||||||
rustBin = "${config.home.homeDirectory}/.cargo/bin";
|
rustBin = "${config.home.homeDirectory}/.cargo/bin";
|
||||||
in {
|
npmBin = "${config.home.homeDirectory}/.npm/bin";
|
||||||
# only works in bash/zsh, not nushell
|
in
|
||||||
home.shellAliases = shellAliases;
|
{
|
||||||
|
|
||||||
programs.nushell = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.nushell;
|
|
||||||
configFile.source = ./config.nu;
|
|
||||||
inherit shellAliases;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
bashrcExtra = ''
|
bashrcExtra = ''
|
||||||
export PATH="$PATH:${localBin}:${goBin}:${rustBin}"
|
export PATH="$PATH:${localBin}:${goBin}:${rustBin}:${npmBin}"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# NOTE: only works in bash/zsh, not nushell
|
||||||
|
home.shellAliases = shellAliases;
|
||||||
|
|
||||||
|
# NOTE: nushell will be launched in bash, so it can inherit all the eenvironment variables.
|
||||||
|
programs.nushell = {
|
||||||
|
enable = true;
|
||||||
|
# package = pkgs-unstable.nushell;
|
||||||
|
configFile.source = ./config.nu;
|
||||||
|
inherit shellAliases;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
@@ -10,8 +6,7 @@
|
|||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
|
|
||||||
settings =
|
settings = {
|
||||||
{
|
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "[›](bold green)";
|
success_symbol = "[›](bold green)";
|
||||||
error_symbol = "[›](bold red)";
|
error_symbol = "[›](bold red)";
|
||||||
@@ -25,9 +20,6 @@
|
|||||||
format = "on [$symbol$active(\($region\))]($style) ";
|
format = "on [$symbol$active(\($region\))]($style) ";
|
||||||
symbol = "🅶 ️";
|
symbol = "🅶 ️";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
palette = "catppuccin_mocha";
|
|
||||||
}
|
|
||||||
// builtins.fromTOML (builtins.readFile "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-starship}/palettes/mocha.toml");
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{ catppuccin, ... }:
|
||||||
|
{
|
||||||
|
# https://github.com/catppuccin/nix
|
||||||
|
imports = [
|
||||||
|
catppuccin.homeModules.catppuccin
|
||||||
|
];
|
||||||
|
|
||||||
|
catppuccin = {
|
||||||
|
# The default `enable` value for all available programs.
|
||||||
|
enable = true;
|
||||||
|
# one of "latte", "frappe", "macchiato", "mocha"
|
||||||
|
flavor = "mocha";
|
||||||
|
# one of "blue", "flamingo", "green", "lavender", "maroon", "mauve", "peach", "pink", "red", "rosewater", "sapphire", "sky", "teal", "yellow"
|
||||||
|
accent = "pink";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,13 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# terminal file manager
|
# terminal file manager
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-unstable.yazi;
|
package = pkgs.yazi;
|
||||||
# Changing working directory when exiting Yazi
|
# Changing working directory when exiting Yazi
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableNushellIntegration = true;
|
enableNushellIntegration = true;
|
||||||
@@ -18,6 +14,4 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."yazi/theme.toml".source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-yazi}/mocha.toml";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ let
|
|||||||
shellAliases = {
|
shellAliases = {
|
||||||
"zj" = "zellij";
|
"zj" = "zellij";
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.zellij = {
|
programs.zellij = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,19 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
home.packages = with pkgs; [
|
{
|
||||||
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
mitmproxy # http/https proxy tool
|
mitmproxy # http/https proxy tool
|
||||||
insomnia # REST client
|
|
||||||
wireshark # network analyzer
|
wireshark # network analyzer
|
||||||
|
|
||||||
# IDEs
|
# IDEs
|
||||||
# jetbrains.idea-community
|
# jetbrains.idea-community
|
||||||
];
|
|
||||||
|
# AI cli tools
|
||||||
|
k8sgpt
|
||||||
|
kubectl-ai # an ai helper opensourced by google
|
||||||
|
]
|
||||||
|
++ (lib.optionals pkgs.stdenv.isx86_64 [
|
||||||
|
insomnia # REST client
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
[colors.primary]
|
|
||||||
background = "#1e1e2e"
|
|
||||||
foreground = "#cdd6f4"
|
|
||||||
dim_foreground = "#7f849c"
|
|
||||||
bright_foreground = "#cdd6f4"
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
text = "#1e1e2e"
|
|
||||||
cursor = "#f5e0dc"
|
|
||||||
|
|
||||||
[colors.vi_mode_cursor]
|
|
||||||
text = "#1e1e2e"
|
|
||||||
cursor = "#b4befe"
|
|
||||||
|
|
||||||
[colors.search.matches]
|
|
||||||
foreground = "#1e1e2e"
|
|
||||||
background = "#a6adc8"
|
|
||||||
|
|
||||||
[colors.search.focused_match]
|
|
||||||
foreground = "#1e1e2e"
|
|
||||||
background = "#a6e3a1"
|
|
||||||
|
|
||||||
[colors.footer_bar]
|
|
||||||
foreground = "#1e1e2e"
|
|
||||||
background = "#a6adc8"
|
|
||||||
|
|
||||||
[colors.hints.start]
|
|
||||||
foreground = "#1e1e2e"
|
|
||||||
background = "#f9e2af"
|
|
||||||
|
|
||||||
[colors.hints.end]
|
|
||||||
foreground = "#1e1e2e"
|
|
||||||
background = "#a6adc8"
|
|
||||||
|
|
||||||
[colors.selection]
|
|
||||||
text = "#1e1e2e"
|
|
||||||
background = "#f5e0dc"
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = "#45475a"
|
|
||||||
red = "#f38ba8"
|
|
||||||
green = "#a6e3a1"
|
|
||||||
yellow = "#f9e2af"
|
|
||||||
blue = "#89b4fa"
|
|
||||||
magenta = "#f5c2e7"
|
|
||||||
cyan = "#94e2d5"
|
|
||||||
white = "#bac2de"
|
|
||||||
|
|
||||||
[colors.bright]
|
|
||||||
black = "#585b70"
|
|
||||||
red = "#f38ba8"
|
|
||||||
green = "#a6e3a1"
|
|
||||||
yellow = "#f9e2af"
|
|
||||||
blue = "#89b4fa"
|
|
||||||
magenta = "#f5c2e7"
|
|
||||||
cyan = "#94e2d5"
|
|
||||||
white = "#a6adc8"
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = "#fab387"
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = "#f5e0dc"
|
|
||||||
@@ -26,36 +26,43 @@
|
|||||||
{
|
{
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-unstable.alacritty;
|
# package = pkgs-unstable.alacritty;
|
||||||
# https://alacritty.org/config-alacritty.html
|
# https://alacritty.org/config-alacritty.html
|
||||||
settings = {
|
settings = {
|
||||||
general.import = [
|
|
||||||
./catppuccin-mocha.toml
|
|
||||||
];
|
|
||||||
window = {
|
window = {
|
||||||
opacity = 0.93;
|
opacity = 0.93;
|
||||||
startup_mode = "Maximized"; # Maximized window
|
startup_mode = "Maximized"; # Maximized window
|
||||||
dynamic_title = true;
|
dynamic_title = true;
|
||||||
option_as_alt = "Both"; # Option key acts as Alt on macOS
|
option_as_alt = "Both"; # Option key acts as Alt on macOS
|
||||||
|
decorations = "None"; # Show neither borders nor title bar
|
||||||
};
|
};
|
||||||
scrolling = {
|
scrolling = {
|
||||||
history = 10000;
|
history = 10000;
|
||||||
};
|
};
|
||||||
font = {
|
font = {
|
||||||
bold = {family = "JetBrainsMono Nerd Font";};
|
bold = {
|
||||||
italic = {family = "JetBrainsMono Nerd Font";};
|
family = "Maple Mono NF CN";
|
||||||
normal = {family = "JetBrainsMono Nerd Font";};
|
};
|
||||||
bold_italic = {family = "JetBrainsMono Nerd Font";};
|
italic = {
|
||||||
size =
|
family = "Maple Mono NF CN";
|
||||||
if pkgs.stdenv.isDarwin
|
};
|
||||||
then 14
|
normal = {
|
||||||
else 13;
|
family = "Maple Mono NF CN";
|
||||||
|
};
|
||||||
|
bold_italic = {
|
||||||
|
family = "Maple Mono NF CN";
|
||||||
|
};
|
||||||
|
size = if pkgs.stdenv.isDarwin then 14 else 13;
|
||||||
};
|
};
|
||||||
terminal = {
|
terminal = {
|
||||||
# Spawn a nushell in login mode via `bash`
|
# Spawn a nushell in login mode via `bash`
|
||||||
shell = {
|
shell = {
|
||||||
program = "${pkgs.bash}/bin/bash";
|
program = "${pkgs.bash}/bin/bash";
|
||||||
args = ["--login" "-c" "nu --login --interactive"];
|
args = [
|
||||||
|
"--login"
|
||||||
|
"-c"
|
||||||
|
"nu --login --interactive"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
# Controls the ability to write to the system clipboard with the OSC 52 escape sequence.
|
# Controls the ability to write to the system clipboard with the OSC 52 escape sequence.
|
||||||
# It's used by zellij to copy text to the system clipboard.
|
# It's used by zellij to copy text to the system clipboard.
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
# foot is designed only for Linux
|
# foot is designed only for Linux
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
@@ -16,8 +17,8 @@
|
|||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
term = "foot"; # or "xterm-256color" for maximum compatibility
|
term = "foot"; # or "xterm-256color" for maximum compatibility
|
||||||
font = "JetBrainsMono Nerd Font:size=14";
|
font = "Maple Mono NF CN:size=14";
|
||||||
dpi-aware = "yes";
|
dpi-aware = "no"; # scale via window manager instead
|
||||||
|
|
||||||
# Spawn a nushell in login mode via `bash`
|
# Spawn a nushell in login mode via `bash`
|
||||||
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
|
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
|
||||||
@@ -26,47 +27,6 @@
|
|||||||
mouse = {
|
mouse = {
|
||||||
hide-when-typing = "yes";
|
hide-when-typing = "yes";
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://github.com/catppuccin/foot/blob/main/themes/catppuccin-mocha.ini
|
|
||||||
cursor = {
|
|
||||||
color = "11111b f5e0dc";
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
alpha = "0.93"; # background opacity
|
|
||||||
|
|
||||||
foreground = "cdd6f4";
|
|
||||||
background = "1e1e2e";
|
|
||||||
|
|
||||||
regular0 = "45475a";
|
|
||||||
regular1 = "f38ba8";
|
|
||||||
regular2 = "a6e3a1";
|
|
||||||
regular3 = "f9e2af";
|
|
||||||
regular4 = "89b4fa";
|
|
||||||
regular5 = "f5c2e7";
|
|
||||||
regular6 = "94e2d5";
|
|
||||||
regular7 = "bac2de";
|
|
||||||
|
|
||||||
bright0 = "585b70";
|
|
||||||
bright1 = "f38ba8";
|
|
||||||
bright2 = "a6e3a1";
|
|
||||||
bright3 = "f9e2af";
|
|
||||||
bright4 = "89b4fa";
|
|
||||||
bright5 = "f5c2e7";
|
|
||||||
bright6 = "94e2d5";
|
|
||||||
bright7 = "a6adc8";
|
|
||||||
|
|
||||||
"16" = "fab387";
|
|
||||||
"17" = "f5e0dc";
|
|
||||||
|
|
||||||
"selection-foreground" = "cdd6f4";
|
|
||||||
"selection-background" = "414356";
|
|
||||||
|
|
||||||
"search-box-no-match" = "11111b f38ba8";
|
|
||||||
"search-box-match" = "cdd6f4 313244";
|
|
||||||
|
|
||||||
"jump-labels" = "11111b fab387";
|
|
||||||
urls = "89b4fa";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,17 +12,16 @@
|
|||||||
programs.ghostty = {
|
programs.ghostty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package =
|
package =
|
||||||
if pkgs.stdenv.isDarwin
|
if pkgs.stdenv.isDarwin then
|
||||||
then pkgs.hello # pkgs.ghostty is currently broken on darwin
|
pkgs.hello # pkgs.ghostty is currently broken on darwin
|
||||||
else pkgs.ghostty; # the stable version
|
else
|
||||||
|
pkgs.ghostty; # the stable version
|
||||||
# package = ghostty.packages.${pkgs.system}.default; # the latest version
|
# package = ghostty.packages.${pkgs.system}.default; # the latest version
|
||||||
enableBashIntegration = false;
|
enableBashIntegration = false;
|
||||||
installBatSyntax = false;
|
installBatSyntax = false;
|
||||||
# installVimSyntax = true;
|
# installVimSyntax = true;
|
||||||
settings = {
|
settings = {
|
||||||
theme = "catppuccin-mocha";
|
font-family = "Maple Mono NF CN";
|
||||||
|
|
||||||
font-family = "JetBrains Mono";
|
|
||||||
font-size = 13;
|
font-size = 13;
|
||||||
|
|
||||||
background-opacity = 0.93;
|
background-opacity = 0.93;
|
||||||
|
|||||||
@@ -16,17 +16,10 @@
|
|||||||
{
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# kitty has catppuccin theme built-in,
|
|
||||||
# all the built-in themes are packaged into an extra package named `kitty-themes`
|
|
||||||
# and it's installed by home-manager if `theme` is specified.
|
|
||||||
themeFile = "Catppuccin-Mocha";
|
|
||||||
font = {
|
font = {
|
||||||
name = "JetBrainsMono Nerd Font";
|
name = "Maple Mono NF CN";
|
||||||
# use different font size on macOS
|
# use different font size on macOS
|
||||||
size =
|
size = if pkgs.stdenv.isDarwin then 14 else 13;
|
||||||
if pkgs.stdenv.isDarwin
|
|
||||||
then 14
|
|
||||||
else 13;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# consistent with other terminal emulators
|
# consistent with other terminal emulators
|
||||||
@@ -36,6 +29,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
# do not show title bar & window title
|
||||||
|
hide_window_decorations = "titlebar-and-corners";
|
||||||
|
macos_show_window_title_in = "none";
|
||||||
|
|
||||||
background_opacity = "0.93";
|
background_opacity = "0.93";
|
||||||
macos_option_as_alt = true; # Option key acts as Alt on macOS
|
macos_option_as_alt = true; # Option key acts as Alt on macOS
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
|
|||||||
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
{myvars, ...}: {
|
{ myvars, ... }:
|
||||||
|
{
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
# paths it should manage.
|
# paths it should manage.
|
||||||
home = {
|
home = {
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# https://developer.hashicorp.com/terraform/cli/config/config-file
|
# https://developer.hashicorp.com/terraform/cli/config/config-file
|
||||||
home.file.".terraformrc".source = ./terraformrc;
|
home.file.".terraformrc".source = ./terraformrc;
|
||||||
|
|
||||||
@@ -30,9 +31,12 @@
|
|||||||
# digitalocean
|
# digitalocean
|
||||||
doctl
|
doctl
|
||||||
# google cloud
|
# google cloud
|
||||||
(google-cloud-sdk.withExtraComponents (with google-cloud-sdk.components; [
|
(google-cloud-sdk.withExtraComponents (
|
||||||
|
with google-cloud-sdk.components;
|
||||||
|
[
|
||||||
gke-gcloud-auth-plugin
|
gke-gcloud-auth-plugin
|
||||||
]))
|
]
|
||||||
|
))
|
||||||
|
|
||||||
# cloud tools that nix do not have cache for.
|
# cloud tools that nix do not have cache for.
|
||||||
terraform
|
terraform
|
||||||
|
|||||||
@@ -3,9 +3,10 @@
|
|||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
nur-ryan4yin,
|
nur-ryan4yin,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
docker-compose
|
podman-compose
|
||||||
dive # explore docker layers
|
dive # explore docker layers
|
||||||
lazydocker # Docker terminal UI.
|
lazydocker # Docker terminal UI.
|
||||||
skopeo # copy/sync images between registries and local storage
|
skopeo # copy/sync images between registries and local storage
|
||||||
@@ -17,8 +18,6 @@
|
|||||||
kubectl-tree # kubectl tree
|
kubectl-tree # kubectl tree
|
||||||
kubectl-node-shell # exec into node
|
kubectl-node-shell # exec into node
|
||||||
kubepug # kubernetes pre upgrade checker
|
kubepug # kubernetes pre upgrade checker
|
||||||
k8sgpt
|
|
||||||
nur-ryan4yin.packages.${pkgs.system}.kubectl-ai # an ai helper opensourced by google
|
|
||||||
|
|
||||||
kubebuilder
|
kubebuilder
|
||||||
istioctl
|
istioctl
|
||||||
@@ -31,32 +30,11 @@
|
|||||||
ko # build go project to container image
|
ko # build go project to container image
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs.k9s.enable = true;
|
||||||
k9s = {
|
catppuccin.k9s.transparent = true;
|
||||||
enable = true;
|
|
||||||
# https://k9scli.io/topics/aliases/
|
programs.kubecolor = {
|
||||||
# aliases = {};
|
|
||||||
settings = {
|
|
||||||
skin = "catppuccino-mocha";
|
|
||||||
};
|
|
||||||
skins.catppuccin-mocha = let
|
|
||||||
skin_file = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-k9s}/dist/mocha.yml"; # theme - catppuccin mocha
|
|
||||||
skin_attr = builtins.fromJSON (
|
|
||||||
builtins.readFile
|
|
||||||
# replace 'base: &base "#1e1e2e"' with 'base: &base "default"'
|
|
||||||
# to make fg/bg color transparent. "default" means transparent in k9s skin.
|
|
||||||
(pkgs.runCommandNoCC "get-skin-json" {} ''
|
|
||||||
cat ${skin_file} \
|
|
||||||
| sed -E 's@(base: &base ).+@\1 "default"@g' \
|
|
||||||
| ${pkgs.yj}/bin/yj > $out
|
|
||||||
'')
|
|
||||||
);
|
|
||||||
in
|
|
||||||
skin_attr;
|
|
||||||
};
|
|
||||||
kubecolor = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
enableAlias = true;
|
enableAlias = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
#############################################################
|
#############################################################
|
||||||
#
|
#
|
||||||
# Basic settings for development environment
|
# Basic settings for development environment
|
||||||
@@ -18,8 +19,8 @@
|
|||||||
colmena # nixos's remote deployment tool
|
colmena # nixos's remote deployment tool
|
||||||
|
|
||||||
# db related
|
# db related
|
||||||
pkgs-unstable.mycli
|
mycli
|
||||||
pkgs-unstable.pgcli
|
pgcli
|
||||||
mongosh
|
mongosh
|
||||||
sqlite
|
sqlite
|
||||||
|
|
||||||
@@ -27,10 +28,10 @@
|
|||||||
minicom
|
minicom
|
||||||
|
|
||||||
# ai related
|
# ai related
|
||||||
pkgs-unstable.python313Packages.huggingface-hub # huggingface-cli
|
python313Packages.huggingface-hub # huggingface-cli
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
pkgs-unstable.devbox
|
devbox
|
||||||
bfg-repo-cleaner # remove large files from git history
|
bfg-repo-cleaner # remove large files from git history
|
||||||
k6 # load testing tool
|
k6 # load testing tool
|
||||||
protobuf # protocol buffer compiler
|
protobuf # protocol buffer compiler
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# https://github.com/catppuccin/helix
|
|
||||||
xdg.configFile."helix/themes".source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-helix}/themes/default";
|
|
||||||
|
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.helix;
|
package = pkgs.helix;
|
||||||
settings = {
|
settings = {
|
||||||
theme = "catppuccin_mocha";
|
|
||||||
editor = {
|
editor = {
|
||||||
line-number = "relative";
|
line-number = "relative";
|
||||||
cursorline = true;
|
cursorline = true;
|
||||||
@@ -29,7 +22,10 @@
|
|||||||
w = ":w";
|
w = ":w";
|
||||||
q = ":q";
|
q = ":q";
|
||||||
};
|
};
|
||||||
esc = ["collapse_selection" "keep_primary_selection"];
|
esc = [
|
||||||
|
"collapse_selection"
|
||||||
|
"keep_primary_selection"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,14 +18,16 @@ let
|
|||||||
# the path to nvim directory
|
# the path to nvim directory
|
||||||
# to make this symlink work, we need to git clone this repo to your home directory.
|
# to make this symlink work, we need to git clone this repo to your home directory.
|
||||||
configPath = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/neovim/nvim";
|
configPath = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/neovim/nvim";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink configPath;
|
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink configPath;
|
||||||
|
# Disable catppuccin to avoid conflict with my non-nix config.
|
||||||
|
catppuccin.nvim.enable = false;
|
||||||
|
|
||||||
home.shellAliases = shellAliases;
|
home.shellAliases = shellAliases;
|
||||||
programs.nushell.shellAliases = shellAliases;
|
programs.nushell.shellAliases = shellAliases;
|
||||||
|
|
||||||
programs = {
|
programs.neovim = {
|
||||||
neovim = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-unstable.neovim-unwrapped;
|
package = pkgs-unstable.neovim-unwrapped;
|
||||||
|
|
||||||
@@ -44,14 +46,20 @@ in {
|
|||||||
"--suffix"
|
"--suffix"
|
||||||
"LIBRARY_PATH"
|
"LIBRARY_PATH"
|
||||||
":"
|
":"
|
||||||
"${lib.makeLibraryPath [stdenv.cc.cc zlib]}"
|
"${lib.makeLibraryPath [
|
||||||
|
stdenv.cc.cc
|
||||||
|
zlib
|
||||||
|
]}"
|
||||||
|
|
||||||
# PKG_CONFIG_PATH is used by pkg-config before compilation to search directories
|
# PKG_CONFIG_PATH is used by pkg-config before compilation to search directories
|
||||||
# containing .pc files that describe the libraries that need to be linked to your program.
|
# containing .pc files that describe the libraries that need to be linked to your program.
|
||||||
"--suffix"
|
"--suffix"
|
||||||
"PKG_CONFIG_PATH"
|
"PKG_CONFIG_PATH"
|
||||||
":"
|
":"
|
||||||
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [stdenv.cc.cc zlib]}"
|
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
|
||||||
|
stdenv.cc.cc
|
||||||
|
zlib
|
||||||
|
]}"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Currently we use lazy.nvim as neovim's package manager, so comment this one.
|
# Currently we use lazy.nvim as neovim's package manager, so comment this one.
|
||||||
@@ -70,5 +78,4 @@ in {
|
|||||||
nvim-treesitter.withAllGrammars
|
nvim-treesitter.withAllGrammars
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,101 +2,137 @@
|
|||||||
"AstroNvim": { "branch": "main", "commit": "c5e610f614e74c9dd9bf11760c4d0ad2c98c0abe" },
|
"AstroNvim": { "branch": "main", "commit": "c5e610f614e74c9dd9bf11760c4d0ad2c98c0abe" },
|
||||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||||
"SchemaStore.nvim": { "branch": "main", "commit": "6c52c57432280c54596feb0c0958e1a6cb546f4d" },
|
|
||||||
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
|
"aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
||||||
"astrocommunity": { "branch": "main", "commit": "16231a665146b0fe70593dd450afd6e964a3cbe1" },
|
"astrocommunity": { "branch": "main", "commit": "2db3ee2ce37f9e2bc9e6ea2c3e2e6292ca4d33bf" },
|
||||||
"astrocore": { "branch": "main", "commit": "44a3dc0bf1591022b2a6bc89dccdfac1be17bec9" },
|
"astrocore": { "branch": "main", "commit": "44a3dc0bf1591022b2a6bc89dccdfac1be17bec9" },
|
||||||
"astrolsp": { "branch": "main", "commit": "909fbe64f3f87d089ff3777751261544557117cc" },
|
"astrolsp": { "branch": "main", "commit": "909fbe64f3f87d089ff3777751261544557117cc" },
|
||||||
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
|
"astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" },
|
||||||
"astroui": { "branch": "main", "commit": "e923a84c488d879a260fc9cfb2dc27dd870fb6ac" },
|
"astroui": { "branch": "main", "commit": "e923a84c488d879a260fc9cfb2dc27dd870fb6ac" },
|
||||||
"autosave.nvim": { "branch": "main", "commit": "348f72cf0241e3e736e3396c4834def2f8ef8d10" },
|
"autosave.nvim": { "branch": "main", "commit": "348f72cf0241e3e736e3396c4834def2f8ef8d10" },
|
||||||
"avante.nvim": { "branch": "main", "commit": "bc403ddcbf98c4181ee2a7efd35cd1e18a2fdc5c" },
|
"avante.nvim": { "branch": "main", "commit": "508cc4c22c78d565d270df8dec5449db07800296" },
|
||||||
"catppuccin": { "branch": "main", "commit": "a0c769bc7cd04bbbf258b3d5f01e2bdce744108d" },
|
"catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" },
|
||||||
"clangd_extensions.nvim": { "branch": "main", "commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb" },
|
"clangd_extensions.nvim": {
|
||||||
"cmake-tools.nvim": { "branch": "master", "commit": "591ae37fc5494677e929118f0a182d2b61fe1af1" },
|
"branch": "main",
|
||||||
|
"commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb"
|
||||||
|
},
|
||||||
|
"cmake-tools.nvim": { "branch": "master", "commit": "17244215b1a96e4b2a83a16abd6719197f270f96" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-conjure": { "branch": "master", "commit": "8c9a88efedc0e5bf3165baa6af8a407afe29daf6" },
|
"cmp-conjure": { "branch": "master", "commit": "8c9a88efedc0e5bf3165baa6af8a407afe29daf6" },
|
||||||
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
"conjure": { "branch": "main", "commit": "83c6394f916197d73f2a19538bd5615e08842d10" },
|
"conjure": { "branch": "main", "commit": "5f15eb0322b5530eefb16457c061e7c2ccd7cf13" },
|
||||||
"crates.nvim": { "branch": "main", "commit": "5d8b1bef686db0fabe5f1bb593744b617e8f1405" },
|
"crates.nvim": { "branch": "main", "commit": "5d8b1bef686db0fabe5f1bb593744b617e8f1405" },
|
||||||
"deno-nvim": { "branch": "master", "commit": "5a2f9205df5539c4a0696e73893bf8d1b0cae406" },
|
"deno-nvim": { "branch": "master", "commit": "5a2f9205df5539c4a0696e73893bf8d1b0cae406" },
|
||||||
"dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" },
|
"dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
||||||
"flit.nvim": { "branch": "main", "commit": "1ef72de6a02458d31b10039372c8a15ab8989e0d" },
|
"flit.nvim": { "branch": "main", "commit": "1ef72de6a02458d31b10039372c8a15ab8989e0d" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||||
"fzf-lua": { "branch": "main", "commit": "3de691fafd097177d10ebffb91dec5bec2cb30ed" },
|
"fzf-lua": { "branch": "main", "commit": "a4404dee0a65d3c2e2b292206d10b16567d088c9" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
"gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" },
|
||||||
"gopher.nvim": { "branch": "main", "commit": "9db5931af1293ae52500921d92c02145d86df02c" },
|
"gopher.nvim": { "branch": "main", "commit": "de585144ebde9f0516fb9b542dd42e90c7835b59" },
|
||||||
"goto-preview": { "branch": "main", "commit": "d1faf6ea992b5bcaaaf2c682e1aba3131a01143e" },
|
"goto-preview": { "branch": "main", "commit": "d1faf6ea992b5bcaaaf2c682e1aba3131a01143e" },
|
||||||
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
|
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
|
||||||
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
"heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
"indent-blankline.nvim": {
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba"
|
||||||
|
},
|
||||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
|
||||||
"leap.nvim": { "branch": "main", "commit": "08ca7ec9e859856251d56c22ea107f82f563ff3c" },
|
"leap.nvim": { "branch": "main", "commit": "10c14af4ddfb34dbd7721f0bfb2b4d91f0558907" },
|
||||||
"lsp_signature.nvim": { "branch": "master", "commit": "d50e40b3bf9324128e71b0b7e589765ce89466d2" },
|
"lsp_signature.nvim": {
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "2923666d092300e6d03c8d895991d0bef43f1613"
|
||||||
|
},
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
|
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
|
||||||
"luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" },
|
"luarocks.nvim": { "branch": "main", "commit": "1db9093915eb16ba2473cfb8d343ace5ee04130a" },
|
||||||
"markdown-preview.nvim": { "branch": "main", "commit": "462ce41af003f5cdadab856f3a42dc27e39b89c8" },
|
"markdown-preview.nvim": {
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
"branch": "main",
|
||||||
|
"commit": "462ce41af003f5cdadab856f3a42dc27e39b89c8"
|
||||||
|
},
|
||||||
|
"mason-lspconfig.nvim": {
|
||||||
|
"branch": "main",
|
||||||
|
"commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245"
|
||||||
|
},
|
||||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||||
"mini.ai": { "branch": "main", "commit": "5225f16eacf4dce2cb7204ca345123ef54e209d6" },
|
"mini.ai": { "branch": "main", "commit": "d172ada7b0281044a06cb9a625a862553c457b6f" },
|
||||||
"mini.bufremove": { "branch": "main", "commit": "285bdac9596ee7375db50c0f76ed04336dcd2685" },
|
"mini.bufremove": { "branch": "main", "commit": "285bdac9596ee7375db50c0f76ed04336dcd2685" },
|
||||||
"mini.surround": { "branch": "main", "commit": "f4307f935ad87cfe3e570dbaae485b35cce4e5ec" },
|
"mini.surround": { "branch": "main", "commit": "1a2b59c77a0c4713a5bd8972da322f842f4821b1" },
|
||||||
"neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
|
"neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
|
||||||
"neoconf.nvim": { "branch": "main", "commit": "f630568a4d04154803886f21ca60923f12709f0f" },
|
"neoconf.nvim": { "branch": "main", "commit": "f630568a4d04154803886f21ca60923f12709f0f" },
|
||||||
"nfnl": { "branch": "main", "commit": "19cac83657514a0718b7af4a086d06bd73269b7a" },
|
"nfnl": { "branch": "main", "commit": "143b595069d98d47b26b80f0e0375420673de4af" },
|
||||||
"none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" },
|
"none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
|
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
|
"nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "1e1900b0769324a9675ef85b38f99cca29e203b3" },
|
"nvim-cmp": { "branch": "main", "commit": "1e1900b0769324a9675ef85b38f99cca29e203b3" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" },
|
"nvim-colorizer.lua": {
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "517df88cf2afb36652830df2c655df2da416a0ae"
|
||||||
|
},
|
||||||
"nvim-dap": { "branch": "master", "commit": "6a5bba0ddea5d419a783e170c20988046376090d" },
|
"nvim-dap": { "branch": "master", "commit": "6a5bba0ddea5d419a783e170c20988046376090d" },
|
||||||
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
|
"nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" },
|
||||||
"nvim-dap-python": { "branch": "master", "commit": "261ce649d05bc455a29f9636dc03f8cdaa7e0e2c" },
|
"nvim-dap-python": { "branch": "master", "commit": "261ce649d05bc455a29f9636dc03f8cdaa7e0e2c" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" },
|
"nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" },
|
||||||
"nvim-jdtls": { "branch": "master", "commit": "c23f200fee469a415c77265ca55b496feb646992" },
|
"nvim-jdtls": { "branch": "master", "commit": "4d77ff02063cf88963d5cf10683ab1fd15d072de" },
|
||||||
"nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" },
|
"nvim-lsp-file-operations": {
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "9744b738183a5adca0f916527922078a965515ed"
|
||||||
|
},
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "185b2af444b27d6541c02d662b5b68190e5cf0c4" },
|
"nvim-lspconfig": { "branch": "master", "commit": "185b2af444b27d6541c02d662b5b68190e5cf0c4" },
|
||||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "a3020c2cf4dfc4c4f390c4a21e84e35e46cf5d17" },
|
"nvim-notify": { "branch": "master", "commit": "a3020c2cf4dfc4c4f390c4a21e84e35e46cf5d17" },
|
||||||
"nvim-scrollbar": { "branch": "main", "commit": "5b103ef0fd2e8b9b4be3878ed38d224522192c6c" },
|
"nvim-scrollbar": { "branch": "main", "commit": "5b103ef0fd2e8b9b4be3878ed38d224522192c6c" },
|
||||||
"nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" },
|
"nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" },
|
||||||
"nvim-spider": { "branch": "main", "commit": "99df646eab60df0b948dd2532ef5f5512707a9a4" },
|
"nvim-spider": { "branch": "main", "commit": "d4bdc45eac425e77108f068bd0706ff3ac20be7f" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "f8aaf5ce4e27cd20de917946b2ae5c968a2c2858" },
|
"nvim-treesitter": { "branch": "master", "commit": "f8aaf5ce4e27cd20de917946b2ae5c968a2c2858" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4" },
|
"nvim-treesitter-textobjects": {
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4"
|
||||||
|
},
|
||||||
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
|
"nvim-ts-context-commentstring": {
|
||||||
|
"branch": "main",
|
||||||
|
"commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f"
|
||||||
|
},
|
||||||
"nvim-ufo": { "branch": "main", "commit": "61463090a4f55f5d080236ea62f09d1cd8976ff3" },
|
"nvim-ufo": { "branch": "main", "commit": "61463090a4f55f5d080236ea62f09d1cd8976ff3" },
|
||||||
"nvim-vtsls": { "branch": "main", "commit": "60b493e641d3674c030c660cabe7a2a3f7a914be" },
|
"nvim-vtsls": { "branch": "main", "commit": "60b493e641d3674c030c660cabe7a2a3f7a914be" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" },
|
"nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" },
|
||||||
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
|
"nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" },
|
||||||
"orgmode": { "branch": "master", "commit": "32ef9e95f43a6e951fb931b438372546a4f0c524" },
|
"orgmode": { "branch": "master", "commit": "b6d14eb0a1553a0ef4114346d67605de82d0f7fb" },
|
||||||
"package-info.nvim": { "branch": "master", "commit": "4f1b8287dde221153ec9f2acd46e8237d2d0881e" },
|
"package-info.nvim": { "branch": "master", "commit": "4f1b8287dde221153ec9f2acd46e8237d2d0881e" },
|
||||||
"parinfer-rust": { "branch": "master", "commit": "55bec1e3d4f127527c5c2e507fac96cc934aed6e" },
|
"parinfer-rust": { "branch": "master", "commit": "afe6b1176cd805c000713e23b654fbf4b9f4b156" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||||
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
||||||
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" },
|
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" },
|
||||||
"refactoring.nvim": { "branch": "master", "commit": "64dbe67bf7c28c864488262d267c799f80cae9ba" },
|
"refactoring.nvim": { "branch": "master", "commit": "74b608dfee827c2372250519d433cc21cb083407" },
|
||||||
"render-markdown.nvim": { "branch": "main", "commit": "8debb17aab2fbbf3b341e46ac032d0a6f937d8c3" },
|
"render-markdown.nvim": {
|
||||||
|
"branch": "main",
|
||||||
|
"commit": "c809fc129f842a7055c672593d24be6346bcc673"
|
||||||
|
},
|
||||||
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
||||||
"rustaceanvim": { "branch": "master", "commit": "5120207f90846704a74cbf043295698b009bd5de" },
|
"rustaceanvim": { "branch": "master", "commit": "322224d00a731d75eed6b700d38e460fd30f6e3c" },
|
||||||
|
"schemastore.nvim": { "branch": "main", "commit": "e4f80f37cd11ed58a6e914cc30850749f021b6a7" },
|
||||||
"sentiment.nvim": { "branch": "main", "commit": "54a6db15b630eccfa98c32a76baf90f21c6f1e40" },
|
"sentiment.nvim": { "branch": "main", "commit": "54a6db15b630eccfa98c32a76baf90f21c6f1e40" },
|
||||||
"smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
|
"smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
|
"telescope-fzf-native.nvim": {
|
||||||
|
"branch": "main",
|
||||||
|
"commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55"
|
||||||
|
},
|
||||||
"telescope-undo.nvim": { "branch": "main", "commit": "928d0c2dc9606e01e2cc547196f48d2eaecf58e5" },
|
"telescope-undo.nvim": { "branch": "main", "commit": "928d0c2dc9606e01e2cc547196f48d2eaecf58e5" },
|
||||||
"telescope.nvim": { "branch": "0.1.x", "commit": "a17d611a0e111836a1db5295f04945df407c5135" },
|
"telescope.nvim": { "branch": "0.1.x", "commit": "a17d611a0e111836a1db5295f04945df407c5135" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
||||||
"tree-sitter-nu": { "branch": "main", "commit": "d5c71a10b4d1b02e38967b05f8de70e847448dd1" },
|
"tree-sitter-nu": { "branch": "main", "commit": "d62bb4a0c78e9476a6dd0081761444f6870252ed" },
|
||||||
"treesj": { "branch": "main", "commit": "3b4a2bc42738a63de17e7485d4cc5e49970ddbcc" },
|
"treesj": { "branch": "main", "commit": "3b4a2bc42738a63de17e7485d4cc5e49970ddbcc" },
|
||||||
"tsc.nvim": { "branch": "main", "commit": "8c1b4ec6a48d038a79ced8674cb15e7db6dd8ef0" },
|
"tsc.nvim": { "branch": "main", "commit": "8c1b4ec6a48d038a79ced8674cb15e7db6dd8ef0" },
|
||||||
"venv-selector.nvim": { "branch": "regexp", "commit": "c677caa1030808a9f90092e522de7cc20c1390dd" },
|
"venv-selector.nvim": {
|
||||||
|
"branch": "regexp",
|
||||||
|
"commit": "c677caa1030808a9f90092e522de7cc20c1390dd"
|
||||||
|
},
|
||||||
"vim-illuminate": { "branch": "master", "commit": "19cb21f513fc2b02f0c66be70107741e837516a1" },
|
"vim-illuminate": { "branch": "master", "commit": "19cb21f513fc2b02f0c66be70107741e837516a1" },
|
||||||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||||
"vim-wakatime": { "branch": "master", "commit": "f39c4a201ae350aaba713b59d4a4fdd88e0811aa" },
|
"vim-wakatime": { "branch": "master", "commit": "f39c4a201ae350aaba713b59d4a4fdd88e0811aa" },
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ return {
|
|||||||
"terraformls", -- terraform hcl
|
"terraformls", -- terraform hcl
|
||||||
"marksman", -- markdown ls
|
"marksman", -- markdown ls
|
||||||
"nickel_ls", -- nickel language server
|
"nickel_ls", -- nickel language server
|
||||||
"nil_ls", -- nix language server
|
-- "nil_ls", -- nix language server
|
||||||
|
"nixd", -- another nix language server
|
||||||
"buf_ls", -- protocol buffer language server
|
"buf_ls", -- protocol buffer language server
|
||||||
"dockerls", -- dockerfile
|
"dockerls", -- dockerfile
|
||||||
"cmake", -- cmake language server
|
"cmake", -- cmake language server
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ return {
|
|||||||
},
|
},
|
||||||
version = false, -- Never set this value to "*"! Never!
|
version = false, -- Never set this value to "*"! Never!
|
||||||
opts = {
|
opts = {
|
||||||
provider = "deepseek_reasoner",
|
provider = "openrouter_claude_4",
|
||||||
cursor_applying_provider = "deepseek_reasoner", -- In this example, use Groq for applying, but you can also use any provider you want.
|
cursor_applying_provider = "openrouter_claude_4",
|
||||||
behaviour = {
|
behaviour = {
|
||||||
-- auto_suggestions = true,
|
-- auto_suggestions = true,
|
||||||
enable_cursor_planning_mode = true, -- enable cursor planning mode!
|
enable_cursor_planning_mode = true, -- enable cursor planning mode!
|
||||||
@@ -28,44 +28,104 @@ return {
|
|||||||
-- WARNING: Since auto-suggestions are a high-frequency operation and therefore expensive,
|
-- WARNING: Since auto-suggestions are a high-frequency operation and therefore expensive,
|
||||||
-- currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048
|
-- currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048
|
||||||
-- Of course, you can reduce the request frequency by increasing `suggestion.debounce`.
|
-- Of course, you can reduce the request frequency by increasing `suggestion.debounce`.
|
||||||
auto_suggestions_provider = "aliyun_qwen3",
|
auto_suggestions_provider = "ollama",
|
||||||
suggestion = {
|
suggestion = {
|
||||||
debounce = 750, -- wait for x ms before suggestion
|
debounce = 750, -- wait for x ms before suggestion
|
||||||
throttle = 1200, -- wait for at least x ms before the next suggestion
|
throttle = 1200, -- wait for at least x ms before the next suggestion
|
||||||
},
|
},
|
||||||
|
web_search_engine = {
|
||||||
|
provider = "google", -- tavily, serpapi, searchapi, google, kagi, brave, or searxng
|
||||||
|
proxy = nil, -- proxy support, e.g., http://127.0.0.1:7890
|
||||||
|
},
|
||||||
|
|
||||||
|
providers = {
|
||||||
ollama = {
|
ollama = {
|
||||||
endpoint = "http://192.168.5.100:11434", -- Note that there is no /v1 at the end.
|
endpoint = "http://192.168.5.100:11434", -- Note that there is no /v1 at the end.
|
||||||
model = "modelscope.cn/unsloth/Qwen3-30B-A3B-GGUF",
|
model = "modelscope.cn/unsloth/Qwen3-30B-A3B-GGUF",
|
||||||
-- model = "modelscope.cn/unsloth/Qwen3-235B-A22B-GGUF",
|
-- model = "modelscope.cn/unsloth/Qwen3-32B-GGUF",
|
||||||
},
|
},
|
||||||
vendors = {
|
-- ==============================================
|
||||||
deepseek_coder = {
|
-- https://aistudio.google.com/prompts/new_chat
|
||||||
|
-- ==============================================
|
||||||
|
gemini = {
|
||||||
|
api_key_name = "GEMINI_API_KEY",
|
||||||
|
model = "gemini-2.5-pro-preview-06-05",
|
||||||
|
timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models
|
||||||
|
temperature = 0,
|
||||||
|
max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models)
|
||||||
|
--reasoning_effort = "medium", -- low|medium|high, only used for reasoning models
|
||||||
|
},
|
||||||
|
-- ==============================================
|
||||||
|
-- https://openrouter.ai/rankings
|
||||||
|
-- ==============================================
|
||||||
|
openrouter_claude_4 = {
|
||||||
__inherited_from = "openai",
|
__inherited_from = "openai",
|
||||||
api_key_name = "DEEPSEEK_API_KEY",
|
endpoint = "https://openrouter.ai/api/v1",
|
||||||
endpoint = "https://api.deepseek.com",
|
api_key_name = "OPENROUTER_API_KEY",
|
||||||
model = "deepseek-coder",
|
model = "anthropic/claude-sonnet-4",
|
||||||
},
|
|
||||||
-- deepseek chat v3
|
|
||||||
deepseek_chat = {
|
|
||||||
__inherited_from = "openai",
|
|
||||||
api_key_name = "DEEPSEEK_API_KEY",
|
|
||||||
endpoint = "https://api.deepseek.com",
|
|
||||||
model = "deepseek-chat",
|
|
||||||
},
|
|
||||||
-- deepseek r1
|
|
||||||
deepseek_reasoner = {
|
|
||||||
__inherited_from = "openai",
|
|
||||||
api_key_name = "DEEPSEEK_API_KEY",
|
|
||||||
endpoint = "https://api.deepseek.com",
|
|
||||||
model = "deepseek-reasoner",
|
|
||||||
},
|
},
|
||||||
|
-- ==============================================
|
||||||
|
-- https://bailian.console.aliyun.com/?tab=model
|
||||||
|
-- ==============================================
|
||||||
aliyun_qwen3 = {
|
aliyun_qwen3 = {
|
||||||
__inherited_from = "openai",
|
__inherited_from = "openai",
|
||||||
api_key_name = "DASHSCOPE_API_KEY",
|
api_key_name = "DASHSCOPE_API_KEY",
|
||||||
endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
||||||
-- model = "qwen-coder-plus-latest",
|
-- model = "qwen-coder-plus-latest",
|
||||||
model = "qwen3-235b-a22b",
|
model = "qwen3-235b-a22b",
|
||||||
|
-- disable_tools = true,
|
||||||
|
},
|
||||||
|
aliyun_dpr1 = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "DASHSCOPE_API_KEY",
|
||||||
|
endpoint = "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
||||||
|
model = "deepseek-r1-0528",
|
||||||
|
disable_tools = true,
|
||||||
|
},
|
||||||
|
-- ==============================================
|
||||||
|
-- https://console.volcengine.com/ark/region:ark+cn-beijing/model?feature=&vendor=DeepSeek&view=VENDOR_VIEW
|
||||||
|
-- ==============================================
|
||||||
|
ark_dpr1 = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "ARK_API_KEY",
|
||||||
|
endpoint = "https://ark.cn-beijing.volces.com/api/v3",
|
||||||
|
model = "deepseek-r1-250528",
|
||||||
|
-- disable_tools = true,
|
||||||
|
},
|
||||||
|
-- ==============================================
|
||||||
|
-- https://cloud.siliconflow.cn/models
|
||||||
|
-- ==============================================
|
||||||
|
sflow_dpr1 = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "SILICONFLOW_API_KEY",
|
||||||
|
endpoint = "https://api.siliconflow.cn/v1",
|
||||||
|
model = "Pro/deepseek-ai/DeepSeek-R1",
|
||||||
|
-- disable_tools = true,
|
||||||
|
},
|
||||||
|
-- ==============================================
|
||||||
|
-- https://platform.deepseek.com/usage
|
||||||
|
-- ==============================================
|
||||||
|
dp_coder = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "DEEPSEEK_API_KEY",
|
||||||
|
endpoint = "https://api.deepseek.com",
|
||||||
|
model = "deepseek-coder",
|
||||||
|
},
|
||||||
|
-- deepseek chat v3
|
||||||
|
dp_chat = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "DEEPSEEK_API_KEY",
|
||||||
|
endpoint = "https://api.deepseek.com",
|
||||||
|
model = "deepseek-chat",
|
||||||
|
-- disable_tools = true,
|
||||||
|
},
|
||||||
|
-- deepseek r1
|
||||||
|
dp_r1 = {
|
||||||
|
__inherited_from = "openai",
|
||||||
|
api_key_name = "DEEPSEEK_API_KEY",
|
||||||
|
endpoint = "https://api.deepseek.com",
|
||||||
|
model = "deepseek-reasoner",
|
||||||
|
-- disable_tools = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
-- File explorer(Custom configs)
|
-- File explorer(Custom configs)
|
||||||
return {
|
return {
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
opts = {
|
opts = function(_, opts)
|
||||||
filesystem = {
|
opts.filesystem.filtered_items = {
|
||||||
filtered_items = {
|
|
||||||
visible = true, -- visible by default
|
visible = true, -- visible by default
|
||||||
hide_dotfiles = false,
|
hide_dotfiles = false,
|
||||||
hide_gitignored = false,
|
hide_gitignored = false,
|
||||||
},
|
}
|
||||||
},
|
opts.filesystem.follow_current_file = {
|
||||||
},
|
enabled = true, -- This will find and focus the file in the active buffer every time
|
||||||
|
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
|
||||||
|
}
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ return {
|
|||||||
formatting.shfmt, -- Shell formatter
|
formatting.shfmt, -- Shell formatter
|
||||||
formatting.terraform_fmt, -- Terraform formatter
|
formatting.terraform_fmt, -- Terraform formatter
|
||||||
formatting.stylua, -- Lua formatter
|
formatting.stylua, -- Lua formatter
|
||||||
formatting.alejandra, -- Nix formatter
|
-- formatting.alejandra, -- Nix formatter
|
||||||
formatting.sqlfluff.with { -- SQL formatter
|
formatting.sqlfluff.with { -- SQL formatter
|
||||||
extra_args = { "--dialect", "postgres" }, -- change to your dialect
|
extra_args = { "--dialect", "postgres" }, -- change to your dialect
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,17 +2,19 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
home.packages = with pkgs; (
|
{
|
||||||
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
(
|
||||||
# -*- Data & Configuration Languages -*-#
|
# -*- Data & Configuration Languages -*-#
|
||||||
[
|
[
|
||||||
#-- nix
|
#-- nix
|
||||||
nil
|
nil
|
||||||
# rnix-lsp
|
nixd
|
||||||
# nixd
|
|
||||||
statix # Lints and suggestions for the nix programming language
|
statix # Lints and suggestions for the nix programming language
|
||||||
deadnix # Find and remove unused code in .nix source files
|
deadnix # Find and remove unused code in .nix source files
|
||||||
alejandra # Nix Code Formatter
|
nixfmt # Nix Code Formatter
|
||||||
|
|
||||||
#-- nickel lang
|
#-- nickel lang
|
||||||
nickel
|
nickel
|
||||||
@@ -61,10 +63,11 @@
|
|||||||
vscode-extensions.vadimcn.vscode-lldb.adapter # codelldb - debugger
|
vscode-extensions.vadimcn.vscode-lldb.adapter # codelldb - debugger
|
||||||
|
|
||||||
#-- python
|
#-- python
|
||||||
|
pipx # Install and Run Python Applications in Isolated Environments
|
||||||
|
uv # python project package manager
|
||||||
pyright # python language server
|
pyright # python language server
|
||||||
(python313.withPackages (
|
(python313.withPackages (
|
||||||
ps:
|
ps: with ps; [
|
||||||
with ps; [
|
|
||||||
ruff
|
ruff
|
||||||
black # python formatter
|
black # python formatter
|
||||||
# debugpy
|
# debugpy
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
age
|
age
|
||||||
pkgs-unstable.sops
|
sops
|
||||||
rclone
|
rclone
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
mysecrets,
|
mysecrets,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
homedir = "${config.home.homeDirectory}/.gnupg";
|
homedir = "${config.home.homeDirectory}/.gnupg";
|
||||||
|
|||||||
@@ -3,9 +3,11 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
passwordStoreDir = "${config.xdg.dataHome}/password-store";
|
passwordStoreDir = "${config.xdg.dataHome}/password-store";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.pass.withExtensions (exts: [
|
package = pkgs.pass.withExtensions (exts: [
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
config,
|
config,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
inherit (pkgs-unstable) nu_scripts;
|
inherit (pkgs-unstable) nu_scripts;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.nushell = {
|
programs.nushell = {
|
||||||
# load the alias file for work
|
# load the alias file for work
|
||||||
# the file must exist, otherwise nushell will complain about it!
|
# the file must exist, otherwise nushell will complain about it!
|
||||||
@@ -14,6 +16,10 @@ in {
|
|||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
source /etc/agenix/alias-for-work.nushell
|
source /etc/agenix/alias-for-work.nushell
|
||||||
|
|
||||||
|
# using claude-code with kimi k2
|
||||||
|
$env.ANTHROPIC_BASE_URL = "https://api.moonshot.cn/anthropic/"
|
||||||
|
$env.ANTHROPIC_API_KEY = $env.MOONSHOT_API_KEY
|
||||||
|
|
||||||
# Directories in this constant are searched by the
|
# Directories in this constant are searched by the
|
||||||
# `use` and `source` commands.
|
# `use` and `source` commands.
|
||||||
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}/share/nu_scripts']
|
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}/share/nu_scripts']
|
||||||
@@ -34,7 +40,7 @@ in {
|
|||||||
# use custom-completions/zoxide/zoxide-completions.nu *
|
# use custom-completions/zoxide/zoxide-completions.nu *
|
||||||
|
|
||||||
# alias
|
# alias
|
||||||
use aliases/git/git-aliases.nu *
|
# use aliases/git/git-aliases.nu *
|
||||||
use aliases/eza/eza-aliases.nu *
|
use aliases/eza/eza-aliases.nu *
|
||||||
use aliases/bat/bat-aliases.nu *
|
use aliases/bat/bat-aliases.nu *
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
mysecrets,
|
mysecrets,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.file.".ssh/romantic.pub".source = "${mysecrets}/public/romantic.pub";
|
home.file.".ssh/romantic.pub".source = "${mysecrets}/public/romantic.pub";
|
||||||
|
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
|
|||||||
@@ -303,69 +303,6 @@ default_shell "nu"
|
|||||||
//
|
//
|
||||||
// scrollback_lines_to_serialize 10000
|
// scrollback_lines_to_serialize 10000
|
||||||
|
|
||||||
// Define color themes for Zellij
|
|
||||||
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
|
|
||||||
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
|
|
||||||
//
|
|
||||||
themes {
|
|
||||||
// https://github.com/zellij-org/zellij/blob/main/zellij-utils/assets/themes/catppuccin.kdl
|
|
||||||
catppuccin-latte {
|
|
||||||
bg "#acb0be" // Surface2
|
|
||||||
fg "#acb0be" // Surface2
|
|
||||||
red "#d20f39"
|
|
||||||
green "#40a02b"
|
|
||||||
blue "#1e66f5"
|
|
||||||
yellow "#df8e1d"
|
|
||||||
magenta "#ea76cb" // Pink
|
|
||||||
orange "#fe640b" // Peach
|
|
||||||
cyan "#04a5e5" // Sky
|
|
||||||
black "#dce0e8" // Crust
|
|
||||||
white "#4c4f69" // Text
|
|
||||||
}
|
|
||||||
|
|
||||||
catppuccin-frappe {
|
|
||||||
bg "#626880" // Surface2
|
|
||||||
fg "#c6d0f5"
|
|
||||||
red "#e78284"
|
|
||||||
green "#a6d189"
|
|
||||||
blue "#8caaee"
|
|
||||||
yellow "#e5c890"
|
|
||||||
magenta "#f4b8e4" // Pink
|
|
||||||
orange "#ef9f76" // Peach
|
|
||||||
cyan "#99d1db" // Sky
|
|
||||||
black "#292c3c" // Mantle
|
|
||||||
white "#c6d0f5"
|
|
||||||
}
|
|
||||||
|
|
||||||
catppuccin-macchiato {
|
|
||||||
bg "#5b6078" // Surface2
|
|
||||||
fg "#cad3f5"
|
|
||||||
red "#ed8796"
|
|
||||||
green "#a6da95"
|
|
||||||
blue "#8aadf4"
|
|
||||||
yellow "#eed49f"
|
|
||||||
magenta "#f5bde6" // Pink
|
|
||||||
orange "#f5a97f" // Peach
|
|
||||||
cyan "#91d7e3" // Sky
|
|
||||||
black "#1e2030" // Mantle
|
|
||||||
white "#cad3f5"
|
|
||||||
}
|
|
||||||
|
|
||||||
catppuccin-mocha {
|
|
||||||
bg "#585b70" // Surface2
|
|
||||||
fg "#cdd6f4"
|
|
||||||
red "#f38ba8"
|
|
||||||
green "#a6e3a1"
|
|
||||||
blue "#89b4fa"
|
|
||||||
yellow "#f9e2af"
|
|
||||||
magenta "#f5c2e7" // Pink
|
|
||||||
orange "#fab387" // Peach
|
|
||||||
cyan "#89dceb" // Sky
|
|
||||||
black "#181825" // Mantle
|
|
||||||
white "#cdd6f4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Choose the theme that is specified in the themes section.
|
// Choose the theme that is specified in the themes section.
|
||||||
// Default: default
|
// Default: default
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,12 +1,18 @@
|
|||||||
{pkgs, ...}: let
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
"zj" = "zellij";
|
"zj" = "zellij";
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.zellij = {
|
programs.zellij = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.zellij;
|
package = pkgs.zellij;
|
||||||
};
|
};
|
||||||
|
xdg.configFile."zellij/config.kdl".source = ./config.kdl;
|
||||||
|
# Disable catppuccin to avoid conflict with my non-nix config.
|
||||||
|
catppuccin.zellij.enable = false;
|
||||||
|
|
||||||
# auto start zellij in nushell
|
# auto start zellij in nushell
|
||||||
programs.nushell.extraConfig = ''
|
programs.nushell.extraConfig = ''
|
||||||
# auto start zellij
|
# auto start zellij
|
||||||
@@ -29,6 +35,4 @@ in {
|
|||||||
# only works in bash/zsh, not nushell
|
# only works in bash/zsh, not nushell
|
||||||
home.shellAliases = shellAliases;
|
home.shellAliases = shellAliases;
|
||||||
programs.nushell.shellAliases = shellAliases;
|
programs.nushell.shellAliases = shellAliases;
|
||||||
|
|
||||||
xdg.configFile."zellij/config.kdl".source = ./config.kdl;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,11 +226,6 @@ run = 'move-node-to-workspace 3Work'
|
|||||||
if.app-id = 'com.tinyspeck.slackmacgap'
|
if.app-id = 'com.tinyspeck.slackmacgap'
|
||||||
run = 'move-node-to-workspace 3Work'
|
run = 'move-node-to-workspace 3Work'
|
||||||
|
|
||||||
|
|
||||||
[[on-window-detected]]
|
|
||||||
if.app-id = 'us.zoom.xos'
|
|
||||||
run = 'move-node-to-workspace 3Work'
|
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'org.mozilla.firefox'
|
if.app-id = 'org.mozilla.firefox'
|
||||||
run = 'move-node-to-workspace 4Firefox'
|
run = 'move-node-to-workspace 4Firefox'
|
||||||
@@ -285,6 +280,14 @@ run = ['layout floating', 'move-node-to-workspace 9File']
|
|||||||
if.app-id = 'com.apple.Preview'
|
if.app-id = 'com.apple.Preview'
|
||||||
run = ['layout floating', 'move-node-to-workspace 9File']
|
run = ['layout floating', 'move-node-to-workspace 9File']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.microsoft.VSCode'
|
||||||
|
run = ['layout floating', 'move-node-to-workspace 9File']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.todesktop.230313mzl4w4u92' # Cursor AI Editor
|
||||||
|
run = ['layout floating', 'move-node-to-workspace 9File']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'org.wireshark.Wireshark'
|
if.app-id = 'org.wireshark.Wireshark'
|
||||||
run = ['layout floating', 'move-node-to-workspace 0Other']
|
run = ['layout floating', 'move-node-to-workspace 0Other']
|
||||||
@@ -294,8 +297,8 @@ if.app-id = 'ai.elementlabs.lmstudio'
|
|||||||
run = ['layout floating', 'move-node-to-workspace 0Other']
|
run = ['layout floating', 'move-node-to-workspace 0Other']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.microsoft.VSCode'
|
if.app-id = 'us.zoom.xos'
|
||||||
run = ['layout floating', 'move-node-to-workspace 0Other']
|
run = 'move-node-to-workspace 0Other'
|
||||||
|
|
||||||
# Auth UI - do not move it
|
# Auth UI - do not move it
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
@@ -307,6 +310,11 @@ run = ['layout floating']
|
|||||||
if.app-id = 'com.apple.systempreferences'
|
if.app-id = 'com.apple.systempreferences'
|
||||||
run = ['layout floating']
|
run = ['layout floating']
|
||||||
|
|
||||||
|
# Clash Verge - has problem with floating
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'io.github.clash-verge-rev.clash-verge-rev'
|
||||||
|
run = ['move-node-to-workspace 0Other']
|
||||||
|
|
||||||
# Make all windows float by default
|
# Make all windows float by default
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
check-further-callbacks = true
|
check-further-callbacks = true
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{config, ...}: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
home.file.".aerospace.toml".source =
|
home.file.".aerospace.toml".source =
|
||||||
config.lib.file.mkOutOfStoreSymlink
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nix-config/home/darwin/aerospace/aerospace.toml";
|
||||||
"${config.home.homeDirectory}/nix-config/home/darwin/aerospace/aerospace.toml";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,10 @@
|
|||||||
mylib,
|
mylib,
|
||||||
myvars,
|
myvars,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.homeDirectory = "/Users/${myvars.username}";
|
home.homeDirectory = "/Users/${myvars.username}";
|
||||||
imports =
|
imports = (mylib.scanPaths ./.) ++ [
|
||||||
(mylib.scanPaths ./.)
|
|
||||||
++ [
|
|
||||||
../base/core
|
../base/core
|
||||||
../base/tui
|
../base/tui
|
||||||
../base/gui
|
../base/gui
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
clash-meta
|
clash-meta
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file.".proxychains/proxychains.conf".source =
|
home.file.".proxychains/proxychains.conf".source =
|
||||||
config.lib.file.mkOutOfStoreSymlink
|
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nix-config/home/darwin/proxy/proxychains.conf";
|
||||||
"${config.home.homeDirectory}/nix-config/home/darwin/proxy/proxychains.conf";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
# Squirrel Input Method
|
# Squirrel Input Method
|
||||||
home.file."Library/Rime" = {
|
home.file."Library/Rime" = {
|
||||||
# my custom squirrel data (flypy input method)
|
# my custom squirrel data (flypy input method)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{lib, ...}: let
|
{ lib, ... }:
|
||||||
|
let
|
||||||
envExtra = ''
|
envExtra = ''
|
||||||
export PATH="$PATH:/opt/homebrew/bin:/usr/local/bin"
|
export PATH="$PATH:/opt/homebrew/bin:/usr/local/bin"
|
||||||
'';
|
'';
|
||||||
@@ -20,7 +21,8 @@
|
|||||||
true
|
true
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
# Homebrew's default install location:
|
# Homebrew's default install location:
|
||||||
# /opt/homebrew for Apple Silicon
|
# /opt/homebrew for Apple Silicon
|
||||||
# /usr/local for macOS Intel
|
# /usr/local for macOS Intel
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
config,
|
config,
|
||||||
myvars,
|
myvars,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
d = config.xdg.dataHome;
|
d = config.xdg.dataHome;
|
||||||
c = config.xdg.configHome;
|
c = config.xdg.configHome;
|
||||||
cache = config.xdg.cacheHome;
|
cache = config.xdg.cacheHome;
|
||||||
in rec {
|
in
|
||||||
|
rec {
|
||||||
home.homeDirectory = "/home/${myvars.username}";
|
home.homeDirectory = "/home/${myvars.username}";
|
||||||
|
|
||||||
# environment variables that always set at login
|
# environment variables that always set at login
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
# Linux Only Packages, not available on Darwin
|
# Linux Only Packages, not available on Darwin
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# misc
|
# misc
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
{
|
{
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
# pkgs-stable,
|
# pkgs-stable,
|
||||||
nur-ryan4yin,
|
nur-ryan4yin,
|
||||||
blender-bin,
|
blender-bin,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
home.packages = with pkgs; [
|
{
|
||||||
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
# creative
|
# creative
|
||||||
# https://github.com/edolstra/nix-warez/blob/master/blender/flake.nix
|
|
||||||
blender-bin.packages.${pkgs.system}.blender_4_2 # 3d modeling
|
|
||||||
# gimp # image editing, I prefer using figma in browser instead of this one
|
# gimp # image editing, I prefer using figma in browser instead of this one
|
||||||
inkscape # vector graphics
|
inkscape # vector graphics
|
||||||
krita # digital painting
|
krita # digital painting
|
||||||
@@ -18,36 +20,41 @@
|
|||||||
# sonic-pi # music programming
|
# sonic-pi # music programming
|
||||||
|
|
||||||
# 2d game design
|
# 2d game design
|
||||||
ldtk # A modern, versatile 2D level editor
|
|
||||||
# aseprite # Animated sprite editor & pixel art tool
|
# aseprite # Animated sprite editor & pixel art tool
|
||||||
|
|
||||||
# this app consumes a lot of storage, so do not install it currently
|
# this app consumes a lot of storage, so do not install it currently
|
||||||
# kicad # 3d printing, eletrical engineering
|
# kicad # 3d printing, eletrical engineering
|
||||||
|
]
|
||||||
|
++ (lib.optionals pkgs.stdenv.isx86_64 [
|
||||||
|
# https://github.com/edolstra/nix-warez/blob/master/blender/flake.nix
|
||||||
|
blender-bin.packages.${pkgs.system}.blender_4_2 # 3d modeling
|
||||||
|
|
||||||
|
ldtk # A modern, versatile 2D level editor
|
||||||
|
|
||||||
# fpga
|
# fpga
|
||||||
pkgs-unstable.python313Packages.apycula # gowin fpga
|
python313Packages.apycula # gowin fpga
|
||||||
pkgs-unstable.yosys # fpga synthesis
|
yosys # fpga synthesis
|
||||||
pkgs-unstable.nextpnr # fpga place and route
|
nextpnr # fpga place and route
|
||||||
pkgs-unstable.openfpgaloader # fpga programming
|
openfpgaloader # fpga programming
|
||||||
# nur-ryan4yin.packages.${pkgs.system}.gowin-eda-edu-ide # app: `gowin-env` => `gw_ide` / `gw_pack` / ...
|
# nur-ryan4yin.packages.${pkgs.system}.gowin-eda-edu-ide # app: `gowin-env` => `gw_ide` / `gw_pack` / ...
|
||||||
];
|
]);
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
# live streaming
|
# live streaming
|
||||||
obs-studio = {
|
obs-studio = {
|
||||||
enable = true;
|
enable = pkgs.stdenv.isx86_64;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins =
|
||||||
|
with pkgs.obs-studio-plugins;
|
||||||
|
[
|
||||||
# screen capture
|
# screen capture
|
||||||
wlrobs
|
wlrobs
|
||||||
# obs-ndi
|
# obs-ndi
|
||||||
obs-vaapi
|
|
||||||
# obs-nvfbc
|
# obs-nvfbc
|
||||||
obs-teleport
|
obs-teleport
|
||||||
# obs-hyperion
|
# obs-hyperion
|
||||||
droidcam-obs
|
droidcam-obs
|
||||||
obs-vkcapture
|
obs-vkcapture
|
||||||
obs-gstreamer
|
obs-gstreamer
|
||||||
obs-3d-effect
|
|
||||||
input-overlay
|
input-overlay
|
||||||
obs-multi-rtmp
|
obs-multi-rtmp
|
||||||
obs-source-clone
|
obs-source-clone
|
||||||
@@ -61,7 +68,11 @@
|
|||||||
obs-backgroundremoval
|
obs-backgroundremoval
|
||||||
# advanced-scene-switcher
|
# advanced-scene-switcher
|
||||||
obs-pipewire-audio-capture
|
obs-pipewire-audio-capture
|
||||||
];
|
]
|
||||||
|
++ (lib.optionals pkgs.stdenv.isx86_64 [
|
||||||
|
obs-vaapi
|
||||||
|
obs-3d-effect
|
||||||
|
]);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
android-tools
|
android-tools
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Adjust the color temperature(& brightness) of your screen according to
|
# Adjust the color temperature(& brightness) of your screen according to
|
||||||
# your surroundings. This may help your eyes hurt less if you are
|
# your surroundings. This may help your eyes hurt less if you are
|
||||||
# working in front of the screen at night.
|
# working in front of the screen at night.
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
# Vertical Candidate List
|
|
||||||
Vertical Candidate List=False
|
|
||||||
# Use Per Screen DPI
|
|
||||||
PerScreenDPI=True
|
|
||||||
# Use mouse wheel to go to prev or next page
|
|
||||||
WheelForPaging=True
|
|
||||||
# Font
|
|
||||||
Font="Sans 10"
|
|
||||||
# Menu Font
|
|
||||||
MenuFont="Sans 10"
|
|
||||||
# Tray Font
|
|
||||||
TrayFont="Sans Bold 10"
|
|
||||||
# Tray Label Outline Color
|
|
||||||
TrayOutlineColor=#000000
|
|
||||||
# Tray Label Text Color
|
|
||||||
TrayTextColor=#ffffff
|
|
||||||
# Prefer Text Icon
|
|
||||||
PreferTextIcon=False
|
|
||||||
# Show Layout Name In Icon
|
|
||||||
ShowLayoutNameInIcon=True
|
|
||||||
# Use input method language to display text
|
|
||||||
UseInputMethodLangaugeToDisplayText=True
|
|
||||||
# Theme macchiato, frappe, latte, mocha
|
|
||||||
Theme=catppuccin-mocha
|
|
||||||
# Force font DPI on Wayland
|
|
||||||
ForceWaylandDPI=0
|
|
||||||
@@ -1,10 +1,5 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
nur-ryan4yin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.file.".local/share/fcitx5/themes".source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-fcitx5}/src";
|
|
||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"fcitx5/profile" = {
|
"fcitx5/profile" = {
|
||||||
source = ./profile;
|
source = ./profile;
|
||||||
@@ -12,12 +7,12 @@
|
|||||||
# so we need to force replace it in every rebuild to avoid file conflict.
|
# so we need to force replace it in every rebuild to avoid file conflict.
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
"fcitx5/conf/classicui.conf".source = ./classicui.conf;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
i18n.inputMethod = {
|
i18n.inputMethod = {
|
||||||
enable = true;
|
enable = true;
|
||||||
type = "fcitx5";
|
type = "fcitx5";
|
||||||
|
fcitx5.waylandFrontend = true;
|
||||||
fcitx5.addons = with pkgs; [
|
fcitx5.addons = with pkgs; [
|
||||||
# for flypy chinese input method
|
# for flypy chinese input method
|
||||||
fcitx5-rime
|
fcitx5-rime
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
nix-gaming,
|
nix-gaming,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# nix-gaming.packages.${pkgs.system}.osu-laser-bin
|
# nix-gaming.packages.${pkgs.system}.osu-laser-bin
|
||||||
gamescope # SteamOS session compositing window manager
|
gamescope # SteamOS session compositing window manager
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# If your themes for mouse cursor, icons or windows don’t load correctly,
|
# If your themes for mouse cursor, icons or windows don’t load correctly,
|
||||||
# try setting them with home.pointerCursor and gtk.theme,
|
# try setting them with home.pointerCursor and gtk.theme,
|
||||||
# which enable a bunch of compatibility options that should make the themes load in all situations.
|
# which enable a bunch of compatibility options that should make the themes load in all situations.
|
||||||
@@ -42,16 +43,5 @@
|
|||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-icon-theme;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
theme = {
|
|
||||||
# https://github.com/catppuccin/gtk
|
|
||||||
name = "catppuccin-macchiato-pink-compact";
|
|
||||||
package = pkgs.catppuccin-gtk.override {
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/data/themes/catppuccin-gtk/default.nix
|
|
||||||
accents = ["pink"];
|
|
||||||
size = "compact";
|
|
||||||
variant = "macchiato";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
# TODO not used yet, need to test it.
|
# TODO not used yet, need to test it.
|
||||||
#
|
#
|
||||||
##############################################################################################
|
##############################################################################################
|
||||||
with lib; let
|
with lib;
|
||||||
|
let
|
||||||
cfg = config.home.immutable-file;
|
cfg = config.home.immutable-file;
|
||||||
immutableFileOpts = _: {
|
immutableFileOpts = _: {
|
||||||
options = {
|
options = {
|
||||||
@@ -42,24 +43,25 @@ with lib; let
|
|||||||
sudo cp $2 $1
|
sudo cp $2 $1
|
||||||
sudo chattr +i $1
|
sudo chattr +i $1
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.home.immutable-file = mkOption {
|
options.home.immutable-file = mkOption {
|
||||||
type = with types; attrsOf (submodule immutableFileOpts);
|
type = with types; attrsOf (submodule immutableFileOpts);
|
||||||
default = { };
|
default = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (cfg != { }) {
|
config = mkIf (cfg != { }) {
|
||||||
home.activation =
|
home.activation = mapAttrs' (
|
||||||
mapAttrs'
|
name:
|
||||||
(name: {
|
{
|
||||||
src,
|
src,
|
||||||
dst,
|
dst,
|
||||||
}:
|
}:
|
||||||
nameValuePair
|
nameValuePair "make-immutable-${name}" (
|
||||||
"make-immutable-${name}"
|
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
(lib.hm.dag.entryAfter ["writeBoundary"] ''
|
|
||||||
${mkImmutableFile} ${dst} ${src}
|
${mkImmutableFile} ${dst} ${src}
|
||||||
''))
|
''
|
||||||
cfg;
|
)
|
||||||
|
) cfg;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,39 +6,31 @@
|
|||||||
}:
|
}:
|
||||||
# media - control and enjoy audio/video
|
# media - control and enjoy audio/video
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
# audio control
|
# audio control
|
||||||
pavucontrol
|
pavucontrol
|
||||||
playerctl
|
playerctl
|
||||||
pulsemixer
|
pulsemixer
|
||||||
imv # simple image viewer
|
imv # simple image viewer
|
||||||
|
|
||||||
nvtopPackages.full
|
|
||||||
|
|
||||||
# video/audio tools
|
# video/audio tools
|
||||||
# cava # for visualizing audio
|
|
||||||
libva-utils
|
libva-utils
|
||||||
vdpauinfo
|
vdpauinfo
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
glxinfo
|
glxinfo
|
||||||
|
nvitop
|
||||||
|
]
|
||||||
|
++ (lib.optionals pkgs.stdenv.isx86_64 [
|
||||||
(zoom-us.override { hyprlandXdgDesktopPortalSupport = true; })
|
(zoom-us.override { hyprlandXdgDesktopPortalSupport = true; })
|
||||||
];
|
]);
|
||||||
|
|
||||||
# https://github.com/catppuccin/cava
|
programs.mpv = {
|
||||||
xdg.configFile."cava/config".text =
|
|
||||||
''
|
|
||||||
# custom cava config
|
|
||||||
''
|
|
||||||
+ builtins.readFile "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-cava}/mocha.cava";
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
mpv = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultProfiles = [ "gpu-hq" ];
|
defaultProfiles = [ "gpu-hq" ];
|
||||||
scripts = [ pkgs.mpvScripts.mpris ];
|
scripts = [ pkgs.mpvScripts.mpris ];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
playerctld.enable = true;
|
playerctld.enable = true;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# GUI apps
|
# GUI apps
|
||||||
# e-book viewer(.epub/.mobi/...)
|
# e-book viewer(.epub/.mobi/...)
|
||||||
@@ -20,17 +21,10 @@
|
|||||||
# my custom hardened packages
|
# my custom hardened packages
|
||||||
pkgs.nixpaks.qq
|
pkgs.nixpaks.qq
|
||||||
pkgs.nixpaks.qq-desktop-item
|
pkgs.nixpaks.qq-desktop-item
|
||||||
|
# qqmusic
|
||||||
wechat-uos
|
pkgs.bwraps.wechat
|
||||||
# pkgs.nixpaks.wechat-uos
|
|
||||||
# pkgs.nixpaks.wechat-uos-desktop-item
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# GitHub CLI tool
|
|
||||||
programs.gh = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# allow fontconfig to discover fonts and configurations installed through home.packages
|
# allow fontconfig to discover fonts and configurations installed through home.packages
|
||||||
# Install fonts at system-level, not user-level
|
# Install fonts at system-level, not user-level
|
||||||
fonts.fontconfig.enable = false;
|
fonts.fontconfig.enable = false;
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
{pkgs-stable, ...}: {
|
{ pkgs, ... }:
|
||||||
home.packages = with pkgs-stable; [
|
{
|
||||||
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
(lib.optionals pkgs.stdenv.isx86_64 [
|
||||||
# https://joplinapp.org/help/
|
# https://joplinapp.org/help/
|
||||||
joplin # joplin-cli
|
joplin # joplin-cli
|
||||||
joplin-desktop
|
joplin-desktop
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,18 +4,28 @@
|
|||||||
lib,
|
lib,
|
||||||
wallpapers,
|
wallpapers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
systemd.user.services.wallpaper = {
|
systemd.user.services.wallpaper = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Wallpaper Switcher daemon";
|
Description = "Wallpaper Switcher daemon";
|
||||||
After = ["graphical-session-pre.target" "xdg-desktop-autostart.target"];
|
After = [
|
||||||
|
"graphical-session-pre.target"
|
||||||
|
"xdg-desktop-autostart.target"
|
||||||
|
];
|
||||||
Wants = [ "graphical-session-pre.target" ];
|
Wants = [ "graphical-session-pre.target" ];
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "graphical-session.target" ];
|
Install.WantedBy = [ "graphical-session.target" ];
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = lib.getExe (pkgs.writeShellApplication {
|
ExecStart = lib.getExe (
|
||||||
|
pkgs.writeShellApplication {
|
||||||
name = "wallpaper";
|
name = "wallpaper";
|
||||||
runtimeInputs = with pkgs; [procps feh swaybg python3];
|
runtimeInputs = with pkgs; [
|
||||||
|
procps
|
||||||
|
feh
|
||||||
|
swaybg
|
||||||
|
python3
|
||||||
|
];
|
||||||
text = ''
|
text = ''
|
||||||
export WALLPAPERS_DIR="${wallpapers}"
|
export WALLPAPERS_DIR="${wallpapers}"
|
||||||
export WALLPAPERS_STATE_FILEPATH="${config.xdg.stateHome}/wallpaper-switcher/switcher_state"
|
export WALLPAPERS_STATE_FILEPATH="${config.xdg.stateHome}/wallpaper-switcher/switcher_state"
|
||||||
@@ -23,7 +33,8 @@
|
|||||||
export WALLPAPER_WAIT_MAX=180
|
export WALLPAPER_WAIT_MAX=180
|
||||||
exec ${./wallpaper-switcher.py}
|
exec ${./wallpaper-switcher.py}
|
||||||
'';
|
'';
|
||||||
});
|
}
|
||||||
|
);
|
||||||
RestartSec = 3;
|
RestartSec = 3;
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xdg-utils # provides cli tools such as `xdg-mime` `xdg-open`
|
xdg-utils # provides cli tools such as `xdg-mime` `xdg-open`
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
@@ -31,10 +32,20 @@
|
|||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# let `xdg-open` to open the url with the correct application.
|
# let `xdg-open` to open the url with the correct application.
|
||||||
defaultApplications = let
|
defaultApplications =
|
||||||
browser = ["firefox.desktop" "google-chrome.desktop"];
|
let
|
||||||
editor = ["nvim.desktop" "Helix.desktop" "code.desktop" "code-insiders.desktop"];
|
browser = [
|
||||||
in {
|
"google-chrome.desktop"
|
||||||
|
"firefox.desktop"
|
||||||
|
];
|
||||||
|
editor = [
|
||||||
|
"nvim.desktop"
|
||||||
|
"Helix.desktop"
|
||||||
|
"code.desktop"
|
||||||
|
"code-insiders.desktop"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
"application/json" = browser;
|
"application/json" = browser;
|
||||||
"application/pdf" = browser; # TODO: pdf viewer
|
"application/pdf" = browser; # TODO: pdf viewer
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
{mylib, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = mylib.scanPaths ./.;
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
zed-editor
|
||||||
|
code-cursor
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
zed-editor
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -7,11 +7,14 @@ exec-once = ln -s "$XDG_RUNTIME_DIR/hypr" /tmp/hypr
|
|||||||
# Terminals
|
# Terminals
|
||||||
exec-once = foot
|
exec-once = foot
|
||||||
exec-once = alacritty
|
exec-once = alacritty
|
||||||
|
# Network
|
||||||
|
exec-once = clash-verge &
|
||||||
# Browsers
|
# Browsers
|
||||||
exec-once = firefox
|
exec-once = firefox
|
||||||
exec-once = google-chrome-stable
|
exec-once = google-chrome-stable
|
||||||
|
exec-once = chromium-browser
|
||||||
# Chat
|
# Chat
|
||||||
exec-once = telegram-desktop
|
exec-once = Telegram
|
||||||
|
|
||||||
|
|
||||||
# Switch to Terminals & Browsers
|
# Switch to Terminals & Browsers
|
||||||
|
|||||||
@@ -134,6 +134,6 @@ bind = $mod, Print, exec, hyprshot -m window -o ~/Pictures/Screenshot
|
|||||||
bind = CTRL, Print, exec, hyprshot -m region -o ~/Pictures/Screenshots
|
bind = CTRL, Print, exec, hyprshot -m region -o ~/Pictures/Screenshots
|
||||||
|
|
||||||
# -- Others --
|
# -- Others --
|
||||||
bind = CTRL ALT, l, exec, hyprlock
|
bind = CTRL ALT, l, exec, swaylock
|
||||||
bind = $mod SHIFT, x, exec, wlogout
|
bind = $mod SHIFT, x, exec, wlogout
|
||||||
bind = $mod, n, exec, nm-connection-editor # need install network-manager-applet
|
bind = $mod, n, exec, nm-connection-editor # need install network-manager-applet
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ cursor {
|
|||||||
|
|
||||||
ecosystem {
|
ecosystem {
|
||||||
no_donation_nag = true
|
no_donation_nag = true
|
||||||
|
no_update_news = true
|
||||||
}
|
}
|
||||||
|
|
||||||
misc {
|
misc {
|
||||||
@@ -123,6 +124,13 @@ input {
|
|||||||
natural_scroll=0
|
natural_scroll=0
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll = 1
|
natural_scroll = 1
|
||||||
|
clickfinger_behavior = true
|
||||||
|
disable_while_typing = true # seems useless...
|
||||||
|
# tap - 轻触触摸板, click - 点击触摸板
|
||||||
|
# disable tap related features to avoid palm rejection.
|
||||||
|
tap-to-click = false
|
||||||
|
tap-and-drag = false
|
||||||
|
|
||||||
}
|
}
|
||||||
force_no_accel=0
|
force_no_accel=0
|
||||||
# repeat_rate=
|
# repeat_rate=
|
||||||
|
|||||||
@@ -10,12 +10,14 @@
|
|||||||
windowrulev2 = workspace 1, class:^(foot)$
|
windowrulev2 = workspace 1, class:^(foot)$
|
||||||
windowrulev2 = workspace 2, class:^(Alacritty)$
|
windowrulev2 = workspace 2, class:^(Alacritty)$
|
||||||
# Work Chat / Meeting
|
# Work Chat / Meeting
|
||||||
windowrulev2 = workspace 3, class:^(zoom)$
|
windowrulev2 = workspace 3, class:^(Zoom Workplace)$
|
||||||
# Browsers
|
# Browsers
|
||||||
windowrulev2 = workspace 4, class:^(firefox)$
|
windowrulev2 = workspace 4, class:^(firefox)$
|
||||||
windowrulev2 = workspace 5, class:^(google-chrome)$
|
windowrulev2 = workspace 5, class:^(google-chrome)$
|
||||||
|
windowrulev2 = workspace 5, class:^(chromium-browser)$
|
||||||
# Chat
|
# Chat
|
||||||
windowrulev2 = workspace 6, class:^(QQ)$
|
windowrulev2 = workspace 6, class:^(QQ)$
|
||||||
|
windowrulev2 = workspace 6, class:^(wechat)$
|
||||||
windowrulev2 = workspace 6, class:^(org.telegram.desktop)$
|
windowrulev2 = workspace 6, class:^(org.telegram.desktop)$
|
||||||
# Music
|
# Music
|
||||||
# windowrulev2 = workspace 7, class:^(music)$
|
# windowrulev2 = workspace 7, class:^(music)$
|
||||||
@@ -23,12 +25,15 @@ windowrulev2 = workspace 6, class:^(org.telegram.desktop)$
|
|||||||
windowrulev2 = workspace 8, class:^(thunderbird)$,title:^(.*Reminder)
|
windowrulev2 = workspace 8, class:^(thunderbird)$,title:^(.*Reminder)
|
||||||
# File Manager & Image/PDF Viewer
|
# File Manager & Image/PDF Viewer
|
||||||
windowrulev2 = workspace 9, class:^(thunder)$
|
windowrulev2 = workspace 9, class:^(thunder)$
|
||||||
|
windowrulev2 = workspace 9, class:^(code)$ # VS Code
|
||||||
|
windowrulev2 = workspace 9, class:^(cursor)$ # Cursor AI Editor
|
||||||
# Other
|
# Other
|
||||||
windowrulev2 = workspace 10, class:^(code)$ # VS Code
|
|
||||||
windowrulev2 = workspace 10, class:^(org.wireshark.Wireshark)$
|
windowrulev2 = workspace 10, class:^(org.wireshark.Wireshark)$
|
||||||
|
windowrulev2 = workspace 10, class:^(clash-verge)$
|
||||||
|
|
||||||
|
|
||||||
# Float RULE WINDOW
|
# Float RULE WINDOW
|
||||||
|
windowrulev2 = float, class:^(Zoom Workplace)$
|
||||||
windowrulev2 = float, class:^(pulsemixer)$
|
windowrulev2 = float, class:^(pulsemixer)$
|
||||||
windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$
|
windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$
|
||||||
windowrulev2 = float, class:^(nm-connection-editor)$
|
windowrulev2 = float, class:^(nm-connection-editor)$
|
||||||
@@ -44,7 +49,7 @@ windowrulev2 = float, class:^(thunderbird)$,title:^(.*Reminder)
|
|||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
# Steam
|
# Steam
|
||||||
# Fix: Steam menus dissapearing on mouseover
|
# Fix: Steam menus disappearing on mouseover
|
||||||
windowrulev2 = stayfocused, title:^()$, class:^(steam)$
|
windowrulev2 = stayfocused, title:^()$, class:^(steam)$
|
||||||
windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$
|
windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$
|
||||||
# Fix: Steam starts in a broken position as float window
|
# Fix: Steam starts in a broken position as float window
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
general {
|
general {
|
||||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple instances
|
lock_cmd = pidof swaylock || swaylock # avoid starting multiple instances
|
||||||
before_sleep_cmd = loginctl lock-session # lock before suspend
|
before_sleep_cmd = loginctl lock-session # lock before suspend
|
||||||
after_sleep_cmd = hyprctl dispatch dpms on # resume dpms after suspend
|
after_sleep_cmd = hyprctl dispatch dpms on # resume dpms after suspend
|
||||||
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests
|
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests
|
||||||
@@ -13,25 +13,25 @@ general {
|
|||||||
# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||||
# }
|
# }
|
||||||
|
|
||||||
listener {
|
# listener {
|
||||||
timeout = 180 # 3min.
|
# timeout = 600 # 10min.
|
||||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
# on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||||
on-resume = brightnessctl -r # monitor backlight restore.
|
# on-resume = brightnessctl -r # monitor backlight restore.
|
||||||
}
|
# }
|
||||||
|
|
||||||
listener {
|
listener {
|
||||||
timeout = 300 # 5 minutes
|
timeout = 1200 # 20 minutes
|
||||||
on-timeout = pidof hyprlock || hyprlock # lock screen
|
on-timeout = pidof swaylock || swaylock # lock screen
|
||||||
on-resume = hyprctl dispatch dpms on # monitor wake up
|
on-resume = hyprctl dispatch dpms on # monitor wake up
|
||||||
}
|
}
|
||||||
|
|
||||||
listener {
|
listener {
|
||||||
timeout = 360 # 6 minutes
|
timeout = 1260 # 21 minutes
|
||||||
on-timeout = hyprctl dispatch dpms off # screen off
|
on-timeout = hyprctl dispatch dpms off # screen off
|
||||||
on-resume = hyprctl dispatch dpms on && brightnessctl -r # monitor wake up & screen on
|
on-resume = hyprctl dispatch dpms on && brightnessctl -r # monitor wake up & screen on
|
||||||
}
|
}
|
||||||
|
|
||||||
# listener {
|
# listener {
|
||||||
# timeout = 600 # 10min
|
# timeout = 1800 # 30min
|
||||||
# on-timeout = systemctl suspend # suspend pc
|
# on-timeout = systemctl suspend # suspend pc
|
||||||
# }
|
# }
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ on-touch=dismiss
|
|||||||
on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga
|
on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga
|
||||||
|
|
||||||
# STYLE OPTIONS
|
# STYLE OPTIONS
|
||||||
font=JetBrains Mono 10
|
font=Maple Mono NF CN
|
||||||
width=300
|
width=300
|
||||||
height=100
|
height=100
|
||||||
margin=10
|
margin=10
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
"modules-center": ["custom/playerctl"],
|
"modules-center": ["custom/playerctl"],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
"battery",
|
|
||||||
"memory",
|
"memory",
|
||||||
"cpu",
|
"cpu",
|
||||||
"network",
|
"network",
|
||||||
|
"battery",
|
||||||
"clock",
|
"clock",
|
||||||
"idle_inhibitor",
|
"idle_inhibitor",
|
||||||
"custom/powermenu",
|
"custom/powermenu",
|
||||||
@@ -91,12 +91,12 @@
|
|||||||
"network": {
|
"network": {
|
||||||
"interval": 5,
|
"interval": 5,
|
||||||
"format": "{ifname}",
|
"format": "{ifname}",
|
||||||
"format-wifi": " {essid} ({signalStrength}%) Up: {bandwidthUpBits} Down: {bandwidthDownBits}",
|
"format-wifi": " {signalStrength}% Down: {bandwidthDownBytes} Up: {bandwidthUpBytes} {essid}",
|
||||||
"format-ethernet": " {ifname} Up: {bandwidthUpBits} Down: {bandwidthDownBits}",
|
"format-ethernet": " {ifname} Down: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
|
||||||
"format-disconnected": "Disconnected ⚠",
|
"format-disconnected": "Disconnected ⚠",
|
||||||
"tooltip-format": " {ifname} via {gwaddri}",
|
"tooltip-format": " {ifname} via {gwaddri}",
|
||||||
"tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\nUp: {bandwidthUpBits} Down: {bandwidthDownBits}",
|
"tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\nDown: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
|
||||||
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n up: {bandwidthUpBits} down: {bandwidthDownBits}",
|
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n Down: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
"max-length": 50,
|
"max-length": 50,
|
||||||
"on-click-middle": "nm-connection-editor",
|
"on-click-middle": "nm-connection-editor",
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
"scroll-step": 5.0,
|
"scroll-step": 5.0,
|
||||||
// Commands to execute on events
|
// Commands to execute on events
|
||||||
"on-click": "amixer set Master toggle",
|
"on-click": "amixer set Master toggle",
|
||||||
"on-click-right": "pavucontrol",
|
"on-click-right": "GSK_RENDERER=opengl pavucontrol",
|
||||||
"smooth-scrolling-threshold": 1,
|
"smooth-scrolling-threshold": 1,
|
||||||
},
|
},
|
||||||
"temperature": {
|
"temperature": {
|
||||||
@@ -138,8 +138,6 @@
|
|||||||
"spacing": 5,
|
"spacing": 5,
|
||||||
},
|
},
|
||||||
"battery": {
|
"battery": {
|
||||||
"bat": "BAT0",
|
|
||||||
"adapter": "ADP0",
|
|
||||||
"interval": 60,
|
"interval": 60,
|
||||||
"states": {
|
"states": {
|
||||||
"warning": 30,
|
"warning": 30,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* {
|
* {
|
||||||
/* https://docs.gtk.org/gtk3/css-overview.html#colors */
|
/* https://docs.gtk.org/gtk3/css-overview.html#colors */
|
||||||
color: @text;
|
color: @text;
|
||||||
font-family: "JetBrainsMono Nerd Font";
|
font-family: "Maple Mono NF CN";
|
||||||
font-size: 12pt;
|
font-size: 12pt;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
@@ -149,4 +149,3 @@ tooltip label {
|
|||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/** ********** Fonts ********** **/
|
/** ********** Fonts ********** **/
|
||||||
* {
|
* {
|
||||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", sans-serif;
|
font-family: "Maple Mono NF CN", sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,11 @@
|
|||||||
anyrun,
|
anyrun,
|
||||||
...
|
...
|
||||||
}@args:
|
}@args:
|
||||||
with lib; let
|
with lib;
|
||||||
|
let
|
||||||
cfg = config.modules.desktop.hyprland;
|
cfg = config.modules.desktop.hyprland;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# anyrun.homeManagerModules.default # the module is already in hm now.
|
# anyrun.homeManagerModules.default # the module is already in hm now.
|
||||||
./options
|
./options
|
||||||
@@ -16,7 +18,9 @@ in {
|
|||||||
options.modules.desktop.hyprland = {
|
options.modules.desktop.hyprland = {
|
||||||
enable = mkEnableOption "hyprland compositor";
|
enable = mkEnableOption "hyprland compositor";
|
||||||
settings = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
type = with lib.types; let
|
type =
|
||||||
|
with lib.types;
|
||||||
|
let
|
||||||
valueType =
|
valueType =
|
||||||
nullOr (oneOf [
|
nullOr (oneOf [
|
||||||
bool
|
bool
|
||||||
@@ -37,11 +41,13 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (
|
config = mkIf cfg.enable (
|
||||||
mkMerge ([
|
mkMerge (
|
||||||
|
[
|
||||||
{
|
{
|
||||||
wayland.windowManager.hyprland.settings = cfg.settings;
|
wayland.windowManager.hyprland.settings = cfg.settings;
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
++ (import ./values args))
|
++ (import ./values args)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{mylib, ...}: {
|
{ mylib, ... }:
|
||||||
|
{
|
||||||
imports = mylib.scanPaths ./.;
|
imports = mylib.scanPaths ./.;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,11 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib;
|
||||||
|
let
|
||||||
cfg = config.modules.desktop.hyprland;
|
cfg = config.modules.desktop.hyprland;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.modules.desktop.hyprland = {
|
options.modules.desktop.hyprland = {
|
||||||
nvidia = mkEnableOption "whether nvidia GPU is used";
|
nvidia = mkEnableOption "whether nvidia GPU is used";
|
||||||
};
|
};
|
||||||
@@ -14,12 +16,13 @@ in {
|
|||||||
wayland.windowManager.hyprland.settings.env = [
|
wayland.windowManager.hyprland.settings.env = [
|
||||||
# for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/
|
# for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
"XDG_SESSION_TYPE,wayland"
|
|
||||||
"GBM_BACKEND,nvidia-drm"
|
|
||||||
"AQ_DRM_DEVICES,/dev/dri/card1"
|
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||||
# fix https://github.com/hyprwm/Hyprland/issues/1520
|
# enable native Wayland support for most Electron apps
|
||||||
"WLR_NO_HARDWARE_CURSORS,1"
|
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||||
|
# VA-API hardware video acceleration
|
||||||
|
"NVD_BACKEND,direct"
|
||||||
|
|
||||||
|
"GBM_BACKEND,nvidia-drm"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user