From 52261371c0ccbdafd05e6bcbf1b6f3585a5db137 Mon Sep 17 00:00:00 2001 From: imxyy_soope_ Date: Sat, 6 Dec 2025 02:38:24 +0800 Subject: [PATCH] feat(fish): yank to system clipboard --- modules/cli/shell/fish.nix | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/modules/cli/shell/fish.nix b/modules/cli/shell/fish.nix index ffc3369..455d669 100644 --- a/modules/cli/shell/fish.nix +++ b/modules/cli/shell/fish.nix @@ -49,6 +49,45 @@ lib.my.makeSwitch { ''; functions = { fish_greeting = ""; + yank_to_clipboard = { + description = "Insert latest killring entry into the system clipboard"; + body = ''printf "%s" "$fish_killring[1]" | fish_clipboard_copy''; + }; + fish_user_key_bindings = '' + # make vi mode yanks copy to clipboard + bind yy kill-whole-line yank_to_clipboard yank + bind Y kill-whole-line yank_to_clipboard yank + bind y,\$ kill-line yank_to_clipboard yank + bind y,\^ backward-kill-line yank_to_clipboard yank + bind y,0 backward-kill-line yank_to_clipboard yank + bind y,w kill-word yank_to_clipboard yank + bind y,W kill-bigword yank_to_clipboard yank + bind y,i,w forward-single-char forward-single-char backward-word kill-word yank_to_clipboard yank + bind y,i,W forward-single-char forward-single-char backward-bigword kill-bigword yank_to_clipboard yank + bind y,a,w forward-single-char forward-single-char backward-word kill-word yank_to_clipboard yank + bind y,a,W forward-single-char forward-single-char backward-bigword kill-bigword yank_to_clipboard yank + bind y,e kill-word yank_to_clipboard yank + bind y,E kill-bigword yank_to_clipboard yank + bind y,b backward-kill-word yank_to_clipboard yank + bind y,B backward-kill-bigword yank_to_clipboard yank + bind y,g,e backward-kill-word yank_to_clipboard yank + bind y,g,E backward-kill-bigword yank_to_clipboard yank + bind y,f begin-selection forward-jump kill-selection yank_to_clipboard yank end-selection + bind y,t begin-selection forward-jump-till kill-selection yank_to_clipboard yank end-selection + bind y,F begin-selection backward-jump kill-selection yank_to_clipboard yank end-selection + bind y,T begin-selection backward-jump-till kill-selection yank_to_clipboard yank end-selection + bind y,h backward-char begin-selection kill-selection yank_to_clipboard yank end-selection + bind y,l begin-selection kill-selection yank_to_clipboard yank end-selection + bind y,i,b jump-till-matching-bracket and jump-till-matching-bracket and begin-selection jump-till-matching-bracket kill-selection yank_to_clipboard yank end-selection + bind y,a,b jump-to-matching-bracket and jump-to-matching-bracket and begin-selection jump-to-matching-bracket kill-selection yank_to_clipboard yank end-selection + bind y,i backward-jump-till and repeat-jump-reverse and begin-selection repeat-jump kill-selection yank_to_clipboard yank end-selection + bind y,a backward-jump and repeat-jump-reverse and begin-selection repeat-jump kill-selection yank_to_clipboard yank end-selection + bind -M visual -m default y kill-selection yank_to_clipboard yank end-selection repaint-mode + + # use system clipboard for vi mode pastes + bind -s p 'set -g fish_cursor_end_mode exclusive' forward-char 'set -g fish_cursor_end_mode inclusive' fish_clipboard_paste + bind -s P fish_clipboard_paste + ''; }; }; };