Keybinds para print na área de transferência

Experimentando tiling WMs, uma das coisas que senti falta eram teclas de atalho que pudessem facilmente enviar prints da tela para a área de transferência (tinha um bocado de keybind para isso com o Spectacle). Depois de uma pesquisada, venho trazer os resultados.

Todos os comandos vão ser no formato: comando | xclip -t image/png. Vou deixar o | xclip -t image/png subtendido para não ficar tão poluído.


Usando ImageMagick

Todos os monitores: import -window root png:-
Janela atual: import -window "$(xdotool getactivewindow)" png:-
Seleção retangular import -window root -crop "$(slop)" png:-

  • Observe que os últimos dois comandos tem dependências além do ImageMagick.
  • O última comando tem duas ressalvas se você tem compositor:
    • Lembre-se de configurar para o slop não ser borrado. Por exemplo, no Picom: blur-background-exclude = [ ..., "class_g = 'slop'", ... ]
    • Lembre-se de excluir o slop de animações (como fade-out, etc. – isso vai interferir no print). Por exemplo, fade do picom: fade-exclude = [ ..., "class_g = 'slop'", ... ]

Usando Scrot

Todos os monitores: scrot -o /dev/stdout
Janela atual: scrot -uo /dev/stdout
Seleção retangular: scrot -so /dev/stdout

  • Uma opção adicional do scrot é o -f, que congela a tela antes de tirar o print. Bastante útil em conjunto com a seleção retangular.
  • Se tiver alguma janela em cima da janela que você estiver tentando capturar, ela vai junto no print (a versão ImageMagick não tem esse comportamento). Pode ser um problema se você estiver com janelas no modo floating.

Lembre-se de acrescentar o | xclip -t image/png quando for configurar as keybinds do seu TWM favorito, por exemplo, shxkd do Bspwm:

ctrl + Print
    scrot -f -so /dev/stdout | xclip -t image/png

Por hoje é isso, com algumas técnicas mais complicadas dá para fazer coisas como obter a configuração de monitor atual e daí tirar um print dele. Porém, não achei nenhuma maneira “fácil” (uma linha) de fazer isso, por isso não coloquei.

4 curtidas

Ótimas dicas, aproveito para compartilha minha configuração, incluindo print com atraso:

# Take a screenshot
Print
	scrot 'Screenshot_%Y-%m-%d-%S_$wx$h.png' -e 'mv $f $$(xdg-user-dir PICTURES) ; viewnior $$(xdg-user-dir PICTURES)/$f'
	
# Take a screenshot in 5 second
alt + Print	
	scrot -d 5 'Screenshot_%Y-%m-%d-%S_$wx$h.png' -e 'mv $f $$(xdg-user-dir PICTURES) ; viewnior $$(xdg-user-dir PICTURES)/$f'
2 curtidas

Uso as ferramentas de print raramente. Também utilizo o scrot. Não fazia ideia que dava para fazer essas coisas com o ImageMagick, gostei das dicas.

1 curtida