среда, 2 августа 2023 г.

Командой "Снимок экрана" в Cinnamon делать снимок выбранной области экрана по умолчанию

При использовании xfce после запуска команды сделать снимок экрана или его части (xfce4-screenshooter) у меня запоминался выбор действия: сделать снимок экрана полностью или его части. И при последующем запуске этой команды действие выполнялось с последним выбором автоматически, что позволяло назначить на данную команду комбинацию горячих клавиш через настройку клавиатуры либо ПО autokey:

import subprocess
subprocess.Popen(["/usr/bin/xfce4-screenshooter"])

🔰  Примечание. Установить autokey в Linux Mint можно командой sudo apt install autokey-gtk

К своему сожалению, при использовании Cinnamon при вызове аналогичной команды "Снимок экрана" (gnome-screenshoter) выбор по последнему действию не сохранялся, снова предлагая сделать выбор "что фотографировать".

При обращении к справке (gnome-screenshoter --help) было обнаружено, что сразу делать снимок выделенной части экрана необходимо командой gnome-screenshoter -a

Если такую команду указать в программе autokey

import subprocess
subprocess.Popen(["/usr/bin/gnome-screenshoter -a"]) 

то она не будет распознана и вам будет отображена ошибка выполнения. Для назначения команды снимка части экрана в этом случае необходимо вызвать скрипт, например (свой пример):

subprocess.Popen(["/home/minter/Tools/scripts/modules/screenshot.sh"])

Листинг скрипта screenshot.sh простой:

#!/bin/bash
gnome-screenshot -a
exit

Для добавления команды gnome-screenshoter -a в главное меню (секция "Стандартные") откройте каталог /usr/share/applications с правами root, например, 

sudo nemo /usr/share/applications

Найдите файл кнопки запуска "Снимок экрана" и и откройте его в текстовом редакторе:



Сохраните его "как" (с другим именем), например Screenshot-part.desktop  

Измените содержание нового файла на примерно такое:

[Desktop Entry]
Name=Screenshot part screen
Comment=Save images of your individual windows
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=snapshot;capture;print;screenshot;
Exec=gnome-screenshot -a
Terminal=false
Type=Application
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=org.gnome.Screenshot
StartupNotify=true
Categories=GTK;GNOME;Utility;X-GNOME-Utilities;
NotShowIn=KDE;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-utils
X-GNOME-Bugzilla-Component=screenshot
Actions=screen-shot;window-shot;
DBusActivatable=true

Сохраните изменения и закройте текстовый редактор. Найдите свой созданный файл по имени  Screenshot part screen  и в его свойствах (Права) отметьте "Разрешить исполнять как программу".

Пример того, что должно получиться:


Теперь такое наименование дополнительной кнопки запуска будет отображаться в меню Cinnamon. Чтобы созданную новую кнопку запуска "русифицировать" добавьте в конец файла Screenshot-part.desktop строку (пример):

Name[ru]=Снимок части экрана

В результате новая кнопка запуска будет отображаться по-русски:



После этого в меню Cinnamon (Стандартные) будет иметься 2 кнопки запуска c одним и тем же значком фотоаппарата: "Снимок части экрана" (созданная вами) и "Снимок экрана" (по умолчанию).

🔰  Примечание. Аналогично для xfce листинг скрипта screenshot.sh :

#!/bin/bash
xfce4-screenshooter -r
exit

или для кнопки вызова (файл desktop) Exec=xfce4-screenshooter -r