Easy search mechanism for nix manuals, built on fzf
Go to file
Oystein Kristoffer Tveit 93cc90c97b
json2nix: add compiler as a package option
2022-11-29 15:31:48 +01:00
internals json2nix: add compiler as a package option 2022-11-29 15:31:48 +01:00
searchers json2nix: use nixfmt internally 2022-11-26 20:50:22 +01:00
templates naming consistency: `nix-attrs-*` -> `nix-attr-*` 2022-11-26 21:01:29 +01:00
utils naming consistency: `nix-attrs-*` -> `nix-attr-*` 2022-11-26 21:01:29 +01:00
.gitignore Initial commit 2022-11-24 20:09:31 +01:00
LICENSE Initial commit 2022-11-24 20:09:31 +01:00
README.md nix-option-search: Init 2022-11-26 06:35:58 +01:00
default.nix Restructure project: 2022-11-26 05:14:14 +01:00
flake.lock Initial commit 2022-11-24 20:09:31 +01:00
flake.nix json2nix: add compiler as a package option 2022-11-29 15:31:48 +01:00
shell.nix naming consistency: `nix-attrs-*` -> `nix-attr-*` 2022-11-26 21:01:29 +01:00

README.md

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.

nix run github:h7x4/nix-attr-search#nix-option-search

Or a more advanced version:

nix run github:h7x4/nix-attr-search#nix-option-search -- --flake="github:NixOS/nixpkgs" --ref="nixos-22.05"

Homemanager

nix run github:h7x4/nix-attr-search#home-manager-search

Or a more advanced version:

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.