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

31

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

Я не хочу воссоздавать мою установку Ubuntu на виртуальной машине.

ændrük
источник
1
Первое, что я хотел бы найти, это то, что фиксирует вывод X. Поиск по запросу «screenshot xserver» приводит меня к этому ответу на Linuxquestions.org .
Лекенштейн
Это связанное обсуждение может быть актуальным: superuser.com/q/290432/120246
Вальдир Леонсио
Я поделился сценарием, чтобы сделать это, в этом askubuntu.com/questions/177067/…
Нафис Ахмад

Ответы:

17

Этот блог может быть полезен: http://ptspts.blogspot.com/2010/02/how-to-create-screen-shot-of-gdm-login.html

Установите ImageMagick для преобразования формата файла изображения ниже:

sudo apt-get install imagemagick

Создайте вспомогательный скрипт:

echo 'DISPLAY=:0 XAUTHORITY=/var/lib/gdm/:0.Xauth xwd -root' >/tmp/shot.sh

Убедитесь, что экран входа в систему активен (выйдите из системы или перезагрузите компьютер и дождитесь появления экрана входа в систему). Войдите в текстовом режиме (нажав Ctrl-Alt-F1) или используя SSH. Создайте снимок экрана, запустив

sudo bash /tmp/shot.sh >/tmp/shot.xwd

Вы можете войти в систему сейчас (нажав Ctrl-AltF7, чтобы вернуться к экрану входа в GDM). Преобразовать снимок экрана в JPEG и / или PNG:

convert -quality 50 /tmp/shot.xwd /tmp/shot.jpg
convert /tmp/shot.xwd /tmp/shot.png

Просмотр снимка экрана в вашем любимом просмотрщике изображений.

Niroshan
источник
4
Я закончил тем, что использовал sudo sh -c 'sleep 5s; xwd -display :0 -root | convert - screenshot.png'с виртуальной консоли и переключился на экран входа в систему во время 5-секундного сна.
rndrük
3
Я настроил это для Lightdm. $ echo 'DISPLAY =: 0 XAUTHORITY = / var / run / lightdm / root /: 0 xwd -root'> /tmp/shot.sh
popey
11

Для 11.10 и Lightdm и позже

Вы можете попробовать запустить unity-greeter --test-modeв терминале. Он отображает экран входа в систему в течение сеанса. Затем вы можете сделать снимок экрана входа в систему, как вы обычно делаете с любым другим приложением.

введите описание изображения здесь

Джокердино
источник
но это слишком общее, никаких изменений не видно. Есть ли способ проверить текущие модификации?
Ubuntuser
@ Ubuntuser Не то, что я знаю. Какую модификацию вы тестируете?
Джокердино
Я тестирую сканер отпечатков пальцев. на экране входа в систему и на экране блокировки он отображается красиво. Я хочу сделать скриншот обоих.
Ubuntuser
@ Ubuntuser Я предполагаю, что сделанные вами изменения напрямую влияют на lightdm, а не на Unity-greeter? Я не уверен. Я просто размышляю. Возможно, вы захотите задать новый вопрос ..
Джокердино
8

Вы можете попробовать это:

gnome-screenshot -d 10

Вам не нужно ничего устанавливать, просто введите команду и заблокируйте экран, экран будет снят в течение 10 секунд после выполнения команды.

Более того, команда заблокирует экран, скопирует снимок экрана в буфер обмена и снова разблокирует экран. Все само собой.

gnome-screensaver-command -l && sleep 2 && gnome-screenshot -c && loginctl unlock-session

 введите описание изображения здесь

Махмуд С. Марвад
источник
3
Это, безусловно, самое простое решение, которое я нашел.
Каустик
7

Для Ubuntu 14.04

Ответы выше не сработали для меня в Ubuntu 14.04 - я искал вокруг и нашел, что это работает.

  1. Установить ImageMagick

    sudo apt-get install imagemagick
    
  2. Создайте файл в вашем домашнем каталоге с именем, shot.shпредпочтительно в вашей домашней папке, и вставьте в него следующий код:

    chvt 7;
    sleep 5s;
    DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -root -out ~/screenshot.xwd;
    convert ~/screenshot.xwd ~/screenshot.png;
    rm ~/screenshot.xwd
    
  3. Сделайте это исполняемым

    sudo chmod +x shot.sh
    
  4. Выход из системы. Нажмите Ctrl+ Alt+, F1чтобы перейти к консоли (tty1) и войти в систему. Запустите скрипт с помощью этой команды:

    sudo ./shot.sh
    

Он вернет вас в графический интерфейс экрана входа в систему (chvt 7) и через пять секунд сделает снимок экрана и сохранит его в вашем домашнем каталоге с именем файла screenshot.png.


Вот мой:

введите описание изображения здесь

Источник: http://itsfoss.com/screenshot-login-screen-ubuntu-linux/

Parto
источник
Я могу подтвердить, что этот скрипт все еще работает на Ubuntu 18.10 Cosmic Cuttlefish с Unity 7.5.0. Я могу сделать скриншот успешно в одну попытку. Спасибо @Parto.
Аде Мальсаса Акбар,
6

Введите это в терминале:

dm-tool add-nested-seat --fullscreen

Это оно! сделай скриншот как обычно

Нажмите Alt + F4, чтобы закрыть полноэкранное окно вашего экрана входа

друг
источник
Это красота! Genius!
Анвар
Я также могу подтвердить, что этот трюк отлично работает на Ubuntu 18.10. Я думаю, что этот трюк проще и быстрее, чем сценарий оболочки. Спасибо @afriend.
Аде Мальсаса Акбар,
2

Просто хотел отметить, что у меня была куча проблем, делающих это на Ubuntu 10.04 LTS с этим - вот мое решение:

Я на машине A, и я вхожу в машину B через SSH:

myusername@pcA:~$ ssh pcB
myusername@pcB's password: 
Linux pcB 2.6.32-44-generic #98-Ubuntu SMP Mon Sep 24 17:32:45 UTC 2012 i686 GNU/Linux
Ubuntu 10.04.4 LTS

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

myusername@pcB:~$ 

Затем я продолжаю делать несколько попыток получить скриншот, но все они провалились. Проблема может быть уменьшена до xwininfoневозможности проверить состояние окна:

myusername@pcB:~$  xwininfo
xwininfo:  unable to open display ''

myusername@pcB:~$ sudo xwininfo
[sudo] password for myusername: 
xwininfo:  unable to open display ''

myusername@pcB:~$ DISPLAY=:0.0 xwininfo
No protocol specified
xwininfo:  unable to open display ':0.0'

myusername@pcB:~$ DISPLAY=:0 xwininfo
No protocol specified
xwininfo:  unable to open display ':0'

Что ж, получается, что по какой-то причине правильный вызов для таргетинга на X-windows через ssh DISPLAY=:0.0 sudo xwininfo ...- это то, что DISPLAY=:0.0переменная окружения идет первой; sudoидет второй - а затем соответствующую команду X:

myusername@pcB:~$ DISPLAY=:0 sudo xwininfo

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

myusername@pcB:~$ DISPLAY=:0.0 sudo xwininfo -root

xwininfo: Window id: 0x109 (the root window) (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1366
  Height: 768
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1366x768+0+0

Теперь, когда мы знаем, что xwininfoможем проверить состояние, также нет проблем с захватом снимка экрана с помощью xwd:

myusername@pcB:~$ DISPLAY=:0.0 sudo xwd -root > /tmp/shot.xwd
sdaau
источник
0

Я отредактировал "/ etc / mdm / Init / Default" и добавил:

scrot -d 5 -e 'mv $f /root' &

перед строкой с «выходом 0».

При следующем входе в систему я считаю до пяти, подаю звуковой сигнал и получаю свой скриншот в "/ root".

Икем Крюгер
источник