sqlite-backed shell history | FORK
0

Configure Feed

Select the types of activity you want to include in your feed.

Go 78.8%
Nix 21.2%
5 1 0

Clone this repository

https://git.vm.fail/sophii.xyz/stinkpot-fish https://git.vm.fail/did:plc:2zvkvbbgjybp6ewq27osqcof
ssh://git@knot1.tangled.sh:2222/sophii.xyz/stinkpot-fish ssh://git@knot1.tangled.sh:2222/did:plc:2zvkvbbgjybp6ewq27osqcof

For self-hosted knots, clone URLs may differ based on your setup.


readme.txt
stinkpot
--------
                             _
                         _  / \  _
                        (_\/\_/\/_)
                          /\/ \/\
                          \/\_/\/
                           \/_\/
                           "   "

stinkpot is an sqlite backed shell-history searcher for
bash and fish.

stinkpot is a much tinier atuin (https://atuin.sh). i have
been using atuin for a while, but i don't use most of its
features: the sync server, atuin AI, dotfiles manager,
script manager or the KV store. while sync is interesting,
my machines have very different setups and i tend to run
very different commands on them.

my only usecase for atuin was the session agnostic history
management, and the searcher TUI. stinkpot provides these
while being about 400 lines of go.

stinkpot is a tiny turtle species apparently, hence the
name.

develop
-------

to build:

    go build -o stinkpot .

install
-------
flakes:
	inputs.stinkpot.url = "git+https://tangled.org/opp.li/stinkpot";

package only:

	environment.systemPackages =[
		inputs.stinkpot.packages.${pkgs.stdenv.hostPlatform.system}.default;
	];

or with the overlay:

	nixpkgs.overlays = [ inputs.stinkpot.overlays.default ];
	environment.systemPackages = [ pkgs.stinkpot ];

homeManager module:

	home-manager.users.<name> = {
		imports = [inputs.stinkpot.homeManagerModules.default];
		programs.stinkpot = {
	     enable = true;
		 enableBashIntegration = true; # if you use bash
		 enableFishIntegration = true; # if you use fish 		
		};
	};

without flakes:

	clone this repository and cd into it, then run:

	go build -o stinkpot .
	cp stinkpot ~/.local/bin
	eval "$(stinkpot init)"      # for bash
	stinkpot init-fish | source  # for fish
	
you can put one of the last 2 commands in your bash or fish configuration file to add it permanently
or directly call the commands, losing them on next shell init

usage
-----

start by importing your existing bash history into stinkpot:

    stinkpot import

!! this currently only works on bash.


and then hit ctrl+r at your shell to trigger reverse search:

    > search history...
     1s vim flake.nix
     3m redis-server
     3m jj l
    35m jj show m
    36m jj git fetch
    39m cd
    40m vim readme.txt
      788 matches · ↑/↓ move · enter accept · esc cancel


hit tab/enter to accept the selection, hit enter again to
execute. the history database is stored in
~/.local/share/stinkpot. if upgrades break the DB, just
delete it and run the import command.