Supports fuzzy search, multi-select and other adorable chicaneries.
go install github.com/kaliv0/homie@latestOn linux you would also need xclip, xsel or wl-clipboard installed as an external dependency
homie startRuns homie in a daemon process to track your clipboard.
It stores all copied items in a sqlite3 homie.db file under $XDG_CONFIG_HOME/homie/ or $HOME/.config/homie/.
homie stopStop the daemon process. You will be able to open the history window,
search and select (and of course - paste) items from it,
but homie won't track any new changes in the clipboard.
homie historyOpens a preview window of the copied chronology.
(Running with the --limit <n> flag retrieves only the last n items. Default limit value: 20)
The history window comes with integrated fuzzy_search that checks the loaded records against a desired pattern.
If nothing is found, homie pulls more (paginated) records from the database.
After selecting an record and closing the window, homie puts the text inside the clipboard (ready the be pasted wherever needed).
(NB: You can select multiple items by pinning them with the tab key. They will be added to your clipboard buffer as a single string separted by spaces.)
To paste the text directly in your terminal run the history command with --paste.
homie clearDeletes all items from the homie.db store
homie shellGenerates a shell configuration for your .bashrc that will start the application automatically
as well add extra key bindings for opening the preview window.
homie completionGenerates a shell configuration for the .bash_completion file that will enable auto_complete for all homie commands
homie tmuxGenerates a tmux integration script for your .tmux.conf. Requires tmux 3.2+ (for display-popup support).
When you start homie it will automatically stop other running instances of the application if any.
After that it will scan the database and if there are records above certain limit (default size: 500) it will purge them leaving only a minimum amount (default: 20)
- You can control this behavior creating a .homierc config inside your root directory. (See .homierc example)
- Using
ttlstrategy will delete the oldest records (specified in the config as ttl: <days>) disregarding the total amount of items in the db. - To disable entirely the history clean-up phase, put clean_up: false in the
.homierc.
Key bindings:
- Ctrl + h (prefix + h if inside a tmux session) - opens clipboard history popup (copies selection to system clipboard)
- Ctrl + p (prefix + p) - opens clipboard history popup and pastes selected item
You can tweak and customize those in your .bashrc and .tmux.conf files.
Currently homie is designed for bash and tmux only.