A área de transferência do Bash é interna para o bash, o bash não se conecta ao servidor X.
O que você poderia fazer é alterar o significado de M-w
para copiar a seleção para a área de transferência X, além da área de transferência interna do bash. No entanto, a integração do bash é bastante solta, e eu não acho que haja uma maneira de acessar as informações da região ou a área de transferência do código bash. Você pode fazer uma ligação de chave para copiar toda a linha para a área de transferência do X.²
if [[ -n $DISPLAY ]]; then
copy_line_to_x_clipboard () {
printf %s "$READLINE_LINE" | xsel -ib
}
bind -x '"\eW": copy_line_to_x_clipboard'
fi
Se você quiser fazer coisas sofisticadas no shell, mude para o zsh, o que (entre outras vantagens) tem uma integração muito melhor entre o editor de linha e a linguagem de script.
if [[ -n $DISPLAY ]]; then
x-copy-region-as-kill () {
zle copy-region-as-kill
print -rn -- "$CUTBUFFER" | xsel -ib
}
x-kill-region () {
zle kill-region
print -rn -- "$CUTBUFFER" | xsel -ib
}
zle -N x-copy-region-as-kill
zle -N x-kill-region
bindkey '\C-w' x-kill-region
bindkey '\ew' x-copy-region-as-kill
fi
O Gnome não possui especificamente uma área de transferência, isso é geral para o X.
²
A partir do bash 4.1, há um bug no código de análise de chave: sequências de teclas vinculadas com bind -x
podem não ter mais de dois caracteres. Eu acho que o bash 4.2 corrige alguns casos de prefixos mais longos, mas não todos eles; Eu não pesquisei os detalhes.