zsh-clipboard: init at 1.0 (#115450)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
This commit is contained in:
bb2020 2021-04-06 00:26:20 +03:00 committed by GitHub
parent c8919c6f14
commit ea0e582d8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,40 @@
_cb-yank() {
AA=$(clippaste 2>/dev/null) && CUTBUFFER="$AA"
zle yank
}
_cb-kill-line() {
zle kill-line
printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-kill-whole-line() {
zle kill-whole-line
printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-kill-word() {
zle kill-word
printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-backward-kill-word() {
zle backward-kill-word
printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
_cb-copy-region-as-kill() {
## https://unix.stackexchange.com/questions/19947/
zle copy-region-as-kill
zle set-mark-command -n -1
printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
}
zle -N _cb-yank
zle -N _cb-kill-line
zle -N _cb-kill-whole-line
zle -N _cb-kill-word
zle -N _cb-backward-kill-word
zle -N _cb-copy-region-as-kill
bindkey '^y' _cb-yank
bindkey '^k' _cb-kill-line
bindkey '^u' _cb-kill-whole-line
bindkey '\ed' _cb-kill-word
bindkey '\e^?' _cb-backward-kill-word
bindkey '\ew' _cb-copy-region-as-kill

View File

@ -0,0 +1,27 @@
{ stdenv, lib }:
stdenv.mkDerivation rec {
pname = "zsh-clipboard";
version = "1.0";
src = ./.;
dontBuild = true;
installPhase = ''
install -D -m0444 -t $out/share/zsh/plugins/clipboard ./clipboard.plugin.zsh
'';
meta = with lib; {
description = "Ohmyzsh plugin that integrates kill-ring with system clipboard";
longDescription = ''
Ohmyzsh plugin that integrates kill-ring with system clipboard.
Key bindings for C-y, C-k, C-u, M-d, M-backspace and M-w are rebound.
Behaviour of these keys should not be changed.
'';
license = licenses.mit;
maintainers = with maintainers; [ bb2020 ];
platforms = platforms.unix;
};
}

View File

@ -9655,6 +9655,8 @@ in
zsh-bd = callPackage ../shells/zsh/zsh-bd { };
zsh-clipboard = callPackage ../shells/zsh/zsh-clipboard { };
zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
zsh-history = callPackage ../shells/zsh/zsh-history { };