Прежде всего, очистите свой sources.list.d
и удалите все ненужное.
Во-вторых, почему вы используете Персональные архивы пакетов ( PPA s)? Не используйте Ubuntu PPA в дистрибутиве Debian, многие PPA Launchpad несовместимы с Debian, поскольку пакеты построены на библиотеках Ubuntu.
Чтобы удалить PPA, сделайте следующее:
add-apt-repository --remove ppa:whatever/ppa
Кроме того, нет необходимости в строке deb-src
, если она вам не нужна, строки deb
являются относительно двоичных пакетов, а deb-src
- для пакетов с исходным кодом. Так что от этого можно избавиться. - если это не важно для вас, я лично их не удаляю.
Между тем, Ошибка 404 - это статус HTTP и код ответа, указывающий на то, что клиент смог успешно связаться с сервером, но сервер не может найти то, что было запрошено. PPA не полностью совместимы с Debian, я рекомендую вам удалить их и попытаться создать необходимые репозитории.
Вот что вам нужно и что должно быть в вашем sources.list.d
, ваших репозиториев не существует, поэтому вы получаете Ошибка 404 Not Found !
deb http://httpredir.debian.org/debian jessie main
deb-src http://httpredir.debian.org/debian jessie main
deb http://httpredir.debian.org/debian jessie-updates main
deb-src http://httpredir.debian.org/debian jessie-updates main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
Если вам также нужны несвободные компоненты contrib и , добавьте contrib non-free после main :
deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
Я давно не задавал этот вопрос, и похоже, что он полезен для некоторых пользователей. Поэтому я предоставляю свой собственный сценарий для создания снимков экрана с помощью пакетов xclip
и imagemagick
.
Прежде всего, установите вышеупомянутые зависимости. Затем вы можете делать все, что хотите, с помощью приведенного ниже сценария. Он поддерживает создание снимка экрана всего экрана или области экрана, а также автоматически копирует снимок экрана в буфер обмена, чтобы вы могли вставить его куда угодно (например, в браузер или мессенджер Telegram).
Пара несложных хаков могла бы добавить поддержку захвата определенных окон и переключить копируемую часть.
#!/usr/bin/env bash
# screenshots stuff
# TODO: docs
function help_and_exit {
if [ -n "${1}" ]; then
echo "${1}"
fi
cat <<-EOF
Usage: scregcp [-h|-s] [<screenshots_base_folder>]
Take screenshot of a whole screen or a specified region,
save it to a specified folder (current folder is default)
and copy it to a clipboard.
-h - print help and exit
-s - take a screenshot of a screen region
EOF
if [ -n "${1}" ]; then
exit 1
fi
exit 0
}
if [ "${1}" == '-h' ]; then
help_and_exit
elif [ "${1:0:1}" == '-' ]; then
if [ "${1}" != '-s' ]; then
help_and_exit "error: unknown option ${1}"
fi
base_folder="${2}"
else
base_folder="${1}"
params="-window root"
fi
file_path=${base_folder}$( date '+%Y-%m-%d_%H-%M-%S' )_screenshot.png
import ${params} ${file_path}
xclip -selection clipboard -target image/png -i < ${file_path}
А вот мои ссылки на ярлыки для i3wm
, чтобы использовать этот скрипт:
# take a screenshot of a screen region and copy it to a clipboard
bindsym --release Shift+Print exec "scregcp -s /home/ddnomad/pictures/screenshots/"
# take a screenshot of a whole window and copy it to a clipboard
bindsym --release Print exec "scregcp /home/ddnomad/pictures/screenshots/"
Сначала установите xclip, imagemagick и jq!
pacman -S imagemagick jq xclip
У меня есть эта строка в моей конфигурации i3:
bindsym $mod+Print exec \
import -window $( \
i3-msg -t get_tree | \
jq 'recurse(.nodes[]) | select(.focused).window' \
) png:- | \
xclip -selection clipboard -t image/png
Это поместит скриншот активного окна в ваш буфер обмена, когда вы нажмете mod (Window / Alt) + Printscreen.
i3-msg -t get-tree получает все окна из i3 в формате json, затем мы используем jq для получения идентификатора окна, на которое наведен фокус. Мы передаем его команде импорта imagemagicks и передаем результат в xclip, который помещает его в буфер обмена!
Огненный выстрел — достойная альтернатива.
bindsym Print exec flameshot full
bindsym Shift+Print exec flameshot gui
Вы можете использовать опцию -p /path/to/directory
, чтобы пропустить выбор каталога для сохранения.
Этот сценарий perl6 используеткорень, область, окно,илизадержкускриншоты с помощью импорта и сохраняет их в $file и в буфере обмена.
#!/usr/bin/env perl6
use v6;
sub print_window(Str $file) {
qx{xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"} ~~ /(0x\S*)/;
run <import -window>, $0, $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 }
when 'area' { run 'import', $file }
when 'window' { print_window($file) }
when 'delay' { sleep 10; print_window($file) }
}
run <xclip -selection clipboard -target image/png -i>, $file;
run <xmessage -nearmouse -timeout 3>, "Screenshot in clipboard, and saved in $today.png";
}
Это привязки клавиш в 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
Слегка отредактировал решение @ddnomad выше, вот bash
версия скрипта с большей ясностью и другим флагом, который позволяет сохранять только в буфер обмена.
#! /bin/bash -
help_and_exit() {
cat <<-EOF
Usage: scregcp [-h|-s|-c] [<screenshots_base_folder>]
Take screenshot of a whole screen or a specified region,
save it to a specified folder (current folder is default)
and copy it to a clipboard.
-h - print help and exit
-s - take a screenshot of a screen region
-c - save only to clipboard
EOF
exit 0
}
base_folder="./"
savefile=true
region=false
params="-window root"
while test $# -gt 0; do
case "$1" in
-h|--help*)
help_and_exit
;;
-r|--region*)
params=""
shift
;;
-c|--clipboard-only*)
savefile=false
shift
;;
*)
if [[ $1 =~ ^\- ]] ; then
echo "error: unknown flag '$1'"
help_and_exit
fi
base_folder="${1}"
shift
;;
esac
done
file_path=${base_folder}$( date '+%Y-%m-%d_%H-%M-%S' )_screenshot.png
import ${params} ${file_path}
xclip -selection clipboard -target image/png -i < ${file_path}
if [ "$savefile" = false ] ; then
rm ${file_path}
fi
Тогда это то, что вы добавляете кi3
config
:
bindsym --release Shift+Print exec --no-startup-id "/dir/to/script.sh -r $HOME/Pictures/screenshots/"
bindsym --release Control+Shift+Print exec --no-startup-id "/dir/to/script.sh -r -c $HOME/Pictures/screenshots/"
bindsym --release Print exec --no-startup-id "/dir/to/script.sh $HOME/Pictures/screenshots/"
bindsym --release Control+Print exec --no-startup-id "/dir/to/script.sh -c $HOME/Pictures/screenshots/"
Таким образом, привязка клавиш:
PrtSc
= сделать скриншот +Control
= сохранять только в буфер обмена +Shift
= захват только определенной области экрана