Skip to content

Easy search mechanism for nix manuals, built on fzf

License

Notifications You must be signed in to change notification settings

h7x4/nix-attr-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.