Socket
Socket
Sign inDemoInstall

github.com/kutsan/zsh-system-clipboard

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/kutsan/zsh-system-clipboard


Version published
Created
Source

zsh-system-clipboard

Zsh plugin that adds key bindings support for ZLE (Zsh Line Editor) clipboard operations for vi emulation keymaps. It works under Linux, macOS and Android (via Termux).

demonstration-gif

By default, ZLE has its own clipboard buffer. So, using keys like y inside ZLE's normal mode for yanking operations will not send that yanked text to system clipboard. It will live inside ZLE and using C-v won't paste that text in another program. This plugin synchronizes your system clipboard with ZLE buffers while it's not overriding anything. You can still use ZLE's " register if you want to.

It also synchronizes tmux clipboard buffers if tmux available and the ZSH_SYSTEM_CLIPBOARD_TMUX_SUPPORT variable is set to 'true'. See Options section for more details.

Installation

Using Plugin Managers

Use your favorite plugin manager, e.g. zplug:

zplug "kutsan/zsh-system-clipboard"
Manually

Clone this repository somewhere,

git clone https://github.com/kutsan/zsh-system-clipboard ~/.zsh/plugins/zsh-system-clipboard

Source the zsh-system-clipboard.zsh file in your ~/.zshrc.

source "$HOME/.zsh/plugins/zsh-system-clipboard/zsh-system-clipboard.zsh"

The script zsh-system-clipboard.zsh parses the output of bindkey -M vicmd, bindkey -M emacs, bindkey -M visual in order to rebind your keys (along with the default ones) the ZLE widgets functions that copy from and paste to the system clipboard. This means that you should put all of your bindings before sourcing zsh-system-clipboard.zsh in your ~/.zshrc.

Note: widget functions that replace builtin functions for the emacs keymap are not yet written (see #12).

Options

  • ZSH_SYSTEM_CLIPBOARD_TMUX_SUPPORT: Set it to 'true' to enable tmux support. That way, if tmux available, every new clipboard content will be also sent to tmux clipboard buffers. Run tmux choose-buffer to view them.
  • ZSH_SYSTEM_CLIPBOARD_XCLIP_SELECTION: Specify which X selection to use for xclip utility. Either 'PRIMARY' or 'CLIPBOARD'. Defaults to 'CLIPBOARD'.

For example:

typeset -g ZSH_SYSTEM_CLIPBOARD_TMUX_SUPPORT='true'
typeset -g ZSH_SYSTEM_CLIPBOARD_XCLIP_SELECTION='PRIMARY'

API

The plugin itself provides a separate cross-platform clipboard API for internal widgets. You can use this API as a standalone function.

To set system clipboard buffer:

_zsh_system_clipboard_set "example text"

To get system clipboard buffer to stdout:

_zsh_system_clipboard_get

It will show pretty-printed errors via stderr or stdout if something went wrong.

Thanks

Special thanks to Doron Behar (@doronbehar) for their interests, suggestions, time and pull requests.

License

GPL-3.0

FAQs

Package last updated on 30 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc