Минималистичный скриншотер (связка) maim+xclip
2023-03-22T19:03:32+05:00
linuxЕсли вам не очень понравился flameshot то связка из 2 мелких пакетов может сделать ваш день с Linux лучше
Можно скринить игры при помощи опции -o
Все опции описаны в man page maim
sudo pacman -S xclip maim
Цвет выделения
Не рекомендуется вместе с юзать с опцией -o
(Disable graphics acceleration), да и вообще если делаете скрин игры
Светло синее
maim -lc 0.3,0.4,0.6,0.4
Фиолетовое
maim -lc 0.3,0,0.5,0.3
Светло белое
maim -lc 1,1,1,0.3
И добавляем в бинды sxhkd ниже описанное
Если сохраняете скриншоты в HDD NTFS диск, тогда советую не ставить date по типу $(date +%F-%T).png (Имя файла будет 2022-04-15-22:56:12.png) т.к файловая система ntfs не позволяет создавать файлы в которых содержат ” * / : < > ? \ | а на шинде вы не сможете просмотреть эти скрины
Ставьте $(date +%s) и тогда проблем с файловой системой ntfs не возникнут
# Скрин всего экрана, без clipboard
Print
IMG=~/Pictures/Screenshots/$(date +%s).png \
&& maim $IMG \
&& notify-send -i $IMG \
"Скриншот сохранён" "Место: $IMG" || notify-send "Failed to take screenshot"
# Скрин с выделением или нажатием на выбранное окно
super + shift + s
PIC=~/Pictures/Screenshots/$(date +%s).png \
&& maim -suof png $PIC \
&& cat $PIC | xclip -selection clipboard -t image/png \
&& notify-send -i $PIC \
"Обрезанный скриншот сохранён в буфер обмена" "Место: $PIC" || notify-send "Failed to take screenshot"
# Скрин окна который в фокусе (для тех у кого нету мышки)
super + shift + P maim ~/Pictures/Screenshots/$(date +%s).png -ui \
$(xdotool getactivewindow) \
&& notify-send -i ~/Pictures/Screenshots/$(date +%s).png \
"Фокус скриншота сохранён" "Место: ~/Pictures/Screenshots \nИмя: $(date +%s).png" || notify-send "Failed to take screenshot"
Или через i3 конфиг файл
# Скрин всего экрана, без clipboard
bindsym Print exec --no-startup-id \
IMG=~/Pictures/Screenshots/$(date +%s).png \
&& maim $IMG \
&& notify-send -i $IMG \
"Скриншот сохранён" "Место: $IMG" || notify-send "Failed to take screenshot"
# Скрин с выделением области или клик на выбранное окно
bindsym $mod+shift+s exec --no-startup-id \
PIC=~/Pictures/Screenshots/$(date +%s).png \
&& maim -suof png $PIC \
&& cat $PIC | xclip -selection clipboard -t image/png \
&& notify-send -i $PIC \
"Обрезанный скриншот сохранён в буфер обмена" "Место: $PIC" || notify-send "Failed to take screenshot"
# Скрин окна который в фокусе (для тех у кого нету мышки)
bindsym $mod+shift+P exec --no-startup-id \
maim ~/Pictures/Screenshots/$(date +%s).png -ui \
$(xdotool getactivewindow) \
&& notify-send -i ~/Pictures/Screenshots/$(date +%s).png \
"Фокус скриншота сохранён" "Место: ~/Picturesg/Screenshots \nИмя: $(date +%s).png" || notify-send "Failed to take screenshot"
# Делаем из maim сканнер цветовой палитры
Качаем пакет если у вас его нету
sudo pacman -S slop
И добавляем в бинды sxhkd ниже описанное
# Определение цветовой палитры
super + shift + d
notify-send "Color Picker" "Выберите цвет" && \
maim /tmp/color-picker.png -ug $(slop -t 0) && \
convert -size 100x100 xc:"$(convert /tmp/color-picker.png -format '#%[hex:s]\n' info:)" /tmp/color-picker.png && \
notify-send -i /tmp/color-picker.png "Палитра скопирована в буфер обмена" $(convert /tmp/color-picker.png -format "#%[hex:s]\n" info:) && \
convert /tmp/color-picker.png -format "#%[hex:s]\n" info: | xclip -sel c
Или через i3 конфиг файл
bindsym $mod+shift+d exec notify-send "Color Picker" "Выберите цвет" && maim /tmp/color-picker.png -ug $(slop -t 0) && convert -size 100x100 xc:"$(convert /tmp/color-picker.png -format '#%[hex:s]\n' info:)" /tmp/color-picker.png && notify-send -i /tmp/color-picker.png "Палитра скопирована в буфер обмена" $(convert /tmp/color-picker.png -format "#%[hex:s]\n" info:) && convert /tmp/color-picker.png -format "#%[hex:s]\n" info: | xclip -sel c
# !Делаем из maim OCR сканер с помощью Tesseract + скрипта
Устанавливаем пакеты
sudo pacman -S tesseract tesseract-data-rus tesseract-data-eng tesseract-data-jpn
Скачиваем скрипт делаем его исполняемым (chmod +x ocr
) и закидываем его в $PATH переменную (т.е в ~/.local/bin
)
В скрипте необходимо выставить доп язык для более лучшего распознавания. OCR сканер Tesseract умеет работать с нескольколькими языками, 3 языка вместе работают хорошо, поэтому дерзайте.
Редактируя скрипт в 13 строке, плюсуем любой из скачанных языковых пакетов tesseract-data-[язык]
tesseract -l [язык]+[язык]+[язык]
Не забываем что для доп распознавания необходимо скачать пакет с данным языком иначе результат будет неудовлетворительным
Список доступных языков Tesseract
tesseract --list-langs
Далее теперь можно забиндить скрипт на любую клавишу
Через sxhkd
# OCR сканер maim + tesseract + xclip
super + shift + f
ocr
Через i3/config
bindsym $mod+shift+f exec ocr
# Делаем из maim сканер QR кодов ZBar + Xclip
Исходник скрипта:
- https://github.com/jayden-chan/dotfiles/blob/5b6d5b6ad820be4d491779cfdba4c68d90699882/scripts/screenshot.sh
Для сканирования необходим пакет zbar
sudo pacman -S zbar
Сохраняем мой модифицированный скрипт в $PATH переменную (т.е в ~/.local/bin
) для удобного запуска
И биндим на любую удобную клавишу
Через sxhkd
# QR сканер maim + zbar + xclip
super + shift + Print
qr-scan
# !Делаем из maim переводчик текста с помощью Tesseract + Translate-Shell + Xclip
Источник скрипта:
- https://github.com/jkovacevic/dotfiles/blob/master/shared/bash/ocr.sh
При выделении Японского или Английского текста translate-shell переведёт его на Русский скопирует в буфер обмена и выведет уведомление переведённого
Можете отредактировать данный скрипт и добавить другие языки которые вы хотите перевести
Для работы необходимо установить пакет translate-shell и база данных языков для tesseract
sudo pacman -S translate-shell tesseract-data-eng tesseract-data-jpn
Сохраняем мой модифицированный скрипт в $PATH переменную (т.е в ~/.local/bin
) для удобного запуска
И биндим на любую удобную клавишу
Через sxhkd
# Быстрый перевод на Русский (tesseract + translate-shell + xclip)
alt + r
ocr-translate