diff --git a/.config/nvim/lua/bumpsoo/plugins/osc_yank.lua b/.config/nvim/lua/bumpsoo/plugins/osc_yank.lua new file mode 100644 index 0000000..56f0664 --- /dev/null +++ b/.config/nvim/lua/bumpsoo/plugins/osc_yank.lua @@ -0,0 +1,27 @@ +return { + 'ojroques/vim-oscyank', + config = function() + local valid_registers = { + [''] = true, + ['+'] = true, + ['*'] = true, + } + + local valid_operators = { + ['y'] = true, + ['d'] = true, + } + + vim.api.nvim_create_autocmd('TextYankPost', { + callback = function() + local regname = vim.v.event.regname + local operator = vim.v.event.operator + + if valid_registers[regname] and valid_operators[operator] then + vim.fn.OSCYankRegister(regname) + end + end, + }) + end +} + diff --git a/.tmux.conf b/.tmux.conf index 2b9e582..9231750 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -3,5 +3,9 @@ setw -g mode-keys vi bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel bind-key -T copy-mode-vi 'r' send -X rectangle-toggle -set -s copy-command 'wl-copy' + +set-option -s set-clipboard on + +bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "tmux save-buffer - | tmux load-buffer - && tmux show-buffer | osc52_copy" +bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel "tmux save-buffer - | tmux load-buffer - && tmux show-buffer | osc52_copy" diff --git a/Dockerfile b/Dockerfile index 5199caf..28c7e2d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,6 +66,8 @@ COPY --chown=${USERNAME}:${GID} .config/nvim /home/${USERNAME}/.config/nvim COPY --chown=${USERNAME}:${GID} .tmux.conf /home/${USERNAME}/.tmux.conf +COPY --chown=${USERNAME}:${GID} bin/osc52_copy /home/${USERNAME}/.local/bin/osc52_copy + RUN echo 'export LANG=ko_KR.UTF-8' >> ~/.bashrc \ && echo 'export LC_ALL=ko_KR.UTF-8' >> ~/.bashrc diff --git a/bin/osc52_copy b/bin/osc52_copy new file mode 100755 index 0000000..617eb33 --- /dev/null +++ b/bin/osc52_copy @@ -0,0 +1,9 @@ +#!/bin/bash +# OSC52로 클립보드에 복사하는 스크립트 +if [ -t 0 ]; then + input="$*" +else + input="$(cat)" +fi +printf '\033]52;c;%s\a' "$(printf "%s" "$input" | base64 | tr -d '\r\n')" +