All Projects → wulfgarpro → History Sync

wulfgarpro / History Sync

Licence: mit
An oh-my-zsh plugin for GPG encrypted internet synchronised Zsh history, with Git.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to History Sync

zsh-ssh-agent
Ssh-agent management for zsh
Stars: ✭ 19 (-85.93%)
Mutual labels:  zsh, oh-my-zsh, zsh-plugin
Zsh Vi Mode
💻 A better and friendly vi(vim) mode plugin for ZSH.
Stars: ✭ 181 (+34.07%)
Mutual labels:  zsh, oh-my-zsh, zsh-plugin
Fz
Cli shell plugin, the missing fuzzy tab completion feature of z jump around command.
Stars: ✭ 359 (+165.93%)
Mutual labels:  zsh, oh-my-zsh, zsh-plugin
Zsh Nvm
Zsh plugin for installing, updating and loading nvm
Stars: ✭ 1,670 (+1137.04%)
Mutual labels:  zsh, oh-my-zsh, zsh-plugin
Kube Aliases
Kubernetes Aliases and Bash Functions
Stars: ✭ 40 (-70.37%)
Mutual labels:  zsh, oh-my-zsh, zsh-plugin
Dotfiles
What tools and plugins I use for web development?
Stars: ✭ 73 (-45.93%)
Mutual labels:  zsh, oh-my-zsh
Lambda Gitster
oh-my-zsh theme
Stars: ✭ 74 (-45.19%)
Mutual labels:  zsh, oh-my-zsh
Zsh Abbrev Alias
This zsh plugin provides functionality similar to Vim's abbreviation expansion.
Stars: ✭ 84 (-37.78%)
Mutual labels:  zsh, zsh-plugin
Zsh to fish
How to make zsh like fish?
Stars: ✭ 93 (-31.11%)
Mutual labels:  zsh, oh-my-zsh
Honukai Iterm Zsh
Honukai theme and colors for Oh My ZSH and iTerm
Stars: ✭ 1,034 (+665.93%)
Mutual labels:  zsh, oh-my-zsh
Castle Winbuntu
Homesick Castle for use on WSL.
Stars: ✭ 87 (-35.56%)
Mutual labels:  zsh, oh-my-zsh
Autoenv
Autoenv for zsh
Stars: ✭ 131 (-2.96%)
Mutual labels:  zsh, zsh-plugin
Fzf Widgets
ZLE widgets of fzf
Stars: ✭ 72 (-46.67%)
Mutual labels:  zsh, zsh-plugin
Dotfiles
Get started with your own dotfiles.
Stars: ✭ 1,094 (+710.37%)
Mutual labels:  zsh, oh-my-zsh
Pi
A minimalist zsh theme with git status decorations
Stars: ✭ 76 (-43.7%)
Mutual labels:  zsh, oh-my-zsh
Zsh Symfony Completion
(Oh My) ZSH symfony/console Completion Plugin
Stars: ✭ 50 (-62.96%)
Mutual labels:  zsh, oh-my-zsh
Awesome Zsh Plugins
A collection of ZSH frameworks, plugins, themes and tutorials.
Stars: ✭ 10,129 (+7402.96%)
Mutual labels:  oh-my-zsh, zsh-plugin
Zui
⬢ Zsh User Interface library – CGI+DHTML-like rapid application development with Zsh
Stars: ✭ 95 (-29.63%)
Mutual labels:  zsh, zsh-plugin
Zsh Snap
⚡️ Znap! A fast & light-weight plugin manager & Git repo manager for Zsh.
Stars: ✭ 98 (-27.41%)
Mutual labels:  zsh, zsh-plugin
Iterm Tab Color Oh My Zsh
Oh My Zsh plugin for setting iTerm2's custom tab colors
Stars: ✭ 21 (-84.44%)
Mutual labels:  zsh, oh-my-zsh

history-sync

An Oh My Zsh plugin for GPG encrypted, Internet synchronized Zsh history using Git.

Installation

sudo apt install gpg git
git clone [email protected]:wulfgarpro/history-sync.git
cp -r history-sync ~/.oh-my-zsh/plugins

Then open .zshrc file and append history-sync to the plugin line:

plugins=(... history-sync)

And finally, reload zsh:

zsh

Usage

Before history-sync can be useful, you need two things:

  1. A hosted git repository, e.g. GitHub, Bitbucket
    • Ideally with ssh key access
  2. A configured gpg key pair for encrypting and decrypting your history file and the enrolled public keys of all the nodes in your web of trust

Once you have these things in place, it's just a matter of updating the needed environment variables to suit your configuration:

  • 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

Which have the following defaults:

ZSH_HISTORY_FILE_NAME=".zsh_history"
ZSH_HISTORY_FILE="${HOME}/${ZSH_HISTORY_FILE_NAME}"
ZSH_HISTORY_PROJ="${HOME}/.zsh_history_proj"
ZSH_HISTORY_FILE_ENC_NAME="zsh_history"
ZSH_HISTORY_FILE_ENC="${ZSH_HISTORY_PROJ}/${ZSH_HISTORY_FILE_ENC_NAME}"
GIT_COMMIT_MSG="latest $(date)"

and running the commands:

# pull history
zhpl

# push history
zhps -r "John Brown" -r 876T3F78 -r ...

# pull and push history
zhsync

Demo

Check out the screen cast.

Licence

MIT @ James Fraser

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].