mirror of
https://github.com/h7x4/nix-attr-search.git
synced 2024-12-22 03:57:32 +01:00
58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
# Nix Attr Search
|
|
|
|
**NOTE: This is still in alpha**
|
|
|
|
These are some tools i made for ease of searching for stuff while writing my nix configs.
|
|
|
|
They are made with `fzf`, so they can easily be piped into other programs.
|
|
|
|
Also, they all create a derivation containing all of the attributes.
|
|
|
|
---
|
|
|
|
## Try it out!
|
|
|
|
### Nix Packages
|
|
|
|
TODO:
|
|
|
|
### Nix Options
|
|
|
|
**NOTE:** This is mostly a copypaste of `home-manager-search`.
|
|
The documentation structure for `home-manager-search` and `nix-option-search` differ slightly, but they are similar enough that the copypaste version is kind of usable.
|
|
I will fix up this in the future, but for now I am focusing on squashing the bugs within `home-manager-search`.
|
|
|
|
```console
|
|
nix run github:h7x4/nix-attr-search#nix-option-search
|
|
```
|
|
|
|
Or a more advanced version:
|
|
|
|
```console
|
|
nix run github:h7x4/nix-attr-search#nix-option-search -- --flake="github:NixOS/nixpkgs" --ref="nixos-22.05"
|
|
```
|
|
|
|
### Homemanager
|
|
|
|
```console
|
|
nix run github:h7x4/nix-attr-search#home-manager-search
|
|
```
|
|
|
|
Or a more advanced version:
|
|
|
|
```console
|
|
nix run github:h7x4/nix-attr-search#home-manager-search -- --flake="github:nix-community/home-manager" --ref="release-22.05"
|
|
```
|
|
|
|
---
|
|
|
|
## Some piping ideas
|
|
|
|
### Misc
|
|
|
|
- Pipe the option into the clipboard
|
|
- Bind shortcut keys to open a terminal with the program, and paste the chosen option directly into the current program (probably a code editor of some sort, with your nix configs open).
|
|
|
|
### Repiping values into `jq`
|
|
- Repipe the chosen value into `jq`, and choose either the default value, the example value.
|
|
- Repipe the chosen value into `jq`, choosing its referenced configs, pipe these into `fzf` once more to choose one referenced config, then pipe this relative file path into `rg` to (hopefully) find the specific location the value was set, and then open the file at its specific position in an editor. |