Делать скриншот (в пределах X)

8

Как я могу сделать скриншот в X.org?

Я не уверен, что кнопка Print Screen будет «просто работать», и я не знаю, как бы я ее протестировал.

Эндрю Фогг
источник

Ответы:

8

Наиболее часто используемое приложение Linux для снятия скриншотов называется scrot

Вы можете установить его для Debian:

sudo apt-get install scrot

Или для арки:

sudo pacman -S scrot

Скриншот сделан, набрав:

scrot output-file.png

Если вы хотите привязать scrotк print screenключу, тогда это должно контролироваться вашим оконным менеджером.

Jivings
источник
1
Scrot быстрее и меньше, чем ImageMagick - 1 МБ по сравнению с 43 МБ.
5

Я нашел большой ответ на этот вопрос здесь , это стоит повторить.

Это может быть достигнуто с помощью ImageMagick. Установите, запустив команду

sudo apt-get install imagemagick

Чтобы захватить весь рабочий стол, просто введите

import -window root screen.png

Или вы можете сделать это с задержкой в ​​5 секунд

sleep 5; import -window root screen.png
Эндрю Фогг
источник
Интересно, можем ли мы связать это с ключевым комбо? кто-нибудь?
Алекс Чемберлен
@AlexChamberlain: это зависит от используемого WM.
Jivings
@AlexChamberlain есть ответ относительно того, как сделать это здесь
-1 Я презираю ImageMagick и все его производные / родственники. Это удар по штанам для установки, и еще хуже исправить, если что-то сломается.
Эндрю Ларссон
@Jivings Я думаю, если вы используете сочетания клавиш вашего оконного менеджера; Я думаю, что большинство людей используют, xbindkeysхотя
Майкл Мрозек
0

Я использую «xwd». Например, один из них, который я только что сделал: xwd | xwdtopnm > dw.ppm единственный недостаток, который я знаю о xwd, заключается в том, что вам нужна какая-то другая утилита для преобразования ее вывода во что-то, понятное для чего-либо, кроме 'xwud'.

Марк Вуд
источник
0

Это скрипт perl6, который я использую, чтобы открыть окно корневой области или отложить скриншоты с помощью импорта:

#!/usr/bin/env perl6
use v6;

sub message(Str $file) {
  run <xmessage -nearmouse -timeout 3>, "Screenshot saved in $file";
}

sub print_window(Str $file) {
  qx{xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"} ~~ /(0x\d*).*$/;
  run <import -window>, $0, $file;
  message($file);
}

sub MAIN( Str $option where $option ∈ <root area window delay> ) {
  my $today = DateTime.now( formatter => { 
        sprintf "%04d_%02d_%02d_%02d:%02d:%02d", 
                .year, .month, .day, .hour, .minute, .second 
       } );
  my $file  = "$*HOME/Dades/Imatges/ScreenShots/$today.png";

  given $option {
    when 'root'   { run <import -window root>, $file; message($file) }
    when 'area'   { run "import", $file             ; message($file) }
    when 'window' { print_window($file)                              }
    when 'delay'  { sleep 5; print_window($file)                     }
    default       { say 'Something went wrong'      ; exit           }
  }
}

Это привязки клавиш в i3 для запуска скрипта:

bindsym $mod+Print exec Print_Screen root 
bindsym --release $mod+Shift+Print exec Print_Screen area
bindsym $mod+Mod1+Print exec Print_Screen delay
bindsym $mod+Control+Print exec Print_Screen window
Mimosinnet
источник