explore: fzf vs television — two fuzzy finder options#21
Open
alycda wants to merge 2 commits into
Open
Conversation
Neither is imported yet — this PR shows both side-by-side so we can decide which (or both) to adopt. See PR description for tradeoffs. - home-manager/modules/tools/fzf.nix: mature Go-based fuzzy finder; home-manager's programs.fzf wires Ctrl+R/T/Alt+C into zsh automatically; bat+rg preview uses packages already in core - home-manager/modules/tools/television.nix: newer Rust-based finder with typed channels (files, text, git-log, shell-history, env…); invoked explicitly as `tv [channel]` rather than hijacking keybinds
statix flags { ... }: with no named bindings as an empty_pattern
anti-pattern. Since fzf.nix uses no module args, a plain attrset
module is cleaner and passes the lint.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's here
Two opt-in modules, neither wired into any profile yet. Import whichever (or both) you want to try.
Option A —
fzf(home-manager/modules/tools/fzf.nix)The battle-tested pick. Written in Go, been around since 2013. Home Manager has first-class support via
programs.fzf.What you get automatically once imported:
Ctrl+RCtrl+TAlt+CcdThe module is pre-configured to:
ripgrepas the file source (respects.gitignore, surfaces hidden files) — already in core packagesbat(syntax highlighting, line numbers) — already in core packagesTo activate: add to any profile's
imports:../modules/tools/fzf.nixOption B —
television(home-manager/modules/tools/television.nix)The modern pick. Written in Rust, released 2024. Channel-based: instead of one stream of results, you pick a typed source.
Channels you get out of the box:
The module adds a
Ctrl+Rbinding that usestv shell-history— remove that block if you're also using fzf.To activate: add to any profile's
imports:../modules/tools/television.nixTradeoffs
tv [channel]fzfas a pipe)programs.fzf(full HM module)pkgs.television(package only)My read: fzf is the safer default — it drops into existing shell habits immediately and pairs perfectly with
bat+rgalready in core. Television is worth trying if the channel model appeals;tv git-logandtv textare genuinely nicer than the fzf equivalents.The two aren't mutually exclusive — you can run both and let fzf own
Ctrl+T/Alt+Cwhile television handles explicit channel browsing.