That is, if you'd like an easy way to securely synchronise your zsh_history across many computers connected to the Internet, this plugin will help you. Be creative with this - I dare you.
-
GnuPG
history-sync uses GPG to encrypt/decrypt your zsh_history. The GnuPG documentation is very good. -
Git
history-sync uses Git to push/pull your zsh_history to/from a remote repository.
- Create a Git repo for housing your encrypted zsh_history file. This repo needs to be accessible from all client shells you'd like to synchronize
- Mine is $HOME/.zsh_history_proj
- Activate history-sync plugin in your .zshrc
git clone git@github.com:wulfgarpro/history-sync.git $HOME/.oh-my-zsh/plugins/.
- Export environment variables (or use defaults found in the plugin file history-sync.plugin.zsh)
These are:- ZSH_HISTORY_FILE
Your zsh_history file location - ZSH_HISTORY_PROJ
Your Git project for housing your zsh_history file - ZSH_HISTORY_FILE_ENC
Your encrypted zsh_history file location - GIT_COMMIT_MSG
Your default message when pushing to $ZSH_HISTORY_PROJ
- ZSH_HISTORY_FILE
- Ensure your GPG setup is complete and you have a public/private key pair for encrypting/decrypting:
man gpg
- Run
zhpl
to pull - Run
zhps
to encrypt and push - Run
zhsync
to pull/push