Причина та установка command-not-found
не начинал обеспечивать, предложения для неустановленных пакетов был то, что я пропустил маленькое уведомление от dpkg как часть установки.
Каждый, как предполагается, выполняет команду update-command-not-found
сразу после выполнения apt-get install command-not-found
. На самом деле dpkg запрашивает выполнение этой команды.
Этот ключ/схема был удален в gnome-shell ≥ 3.10
, поэтому решения, которые вы нашли в интернете, больше не работают.
Рэй Строуд, разработчик gnome dev1:
Несколько человек спросили меня, есть ли способ сделать это в gnome-shell 3.10 и более поздних версиях, и у меня не было хорошего ответа. Это осложняется тем фактом, что g-s-d теперь обрабатывает запуск вещей и схема org.gnome.shell.recorder исчезла. Предложение
Рэя (назначить ярлык на команду gjs
) довольно круто, но в его строке не хватает js
. Мне пришлось заменить %T
в threads=%T
на число (например, 2
), чтобы заставить его работать. Также обратите внимание, что имя результирующего файла .webm
не имеет временной метки, поэтому последующие запуски будут перезаписывать существующий файл, если вы не переименуете его. Наконец, убедитесь, что ваш XDG_VIDEOS_DIR
определен в ~/.config/user-dirs.dirs
, иначе команда не будет работать (выдает ошибку cannot open output file
).
В любом случае, возвращаясь к вашему вопросу, параметры кастинга экрана сейчас жестко закодированы в gnome-shell (shell-recorder.c
), например:
#define DEFAULT_PIPELINE "vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"
или
shell_recorder_init (ShellRecorder *recorder)
{
....
recorder->draw_cursor = TRUE;
и, насколько я могу судить, единственный способ изменить их - это использовать расширение типа
(исходный код здесь), которое позволяет вам настроить все параметры (включая draw-cursor
). Работает отлично, мне только пришлось добавить свою версию gnome-shell
, например 3.16.1
- в metadata. json
и этот пользовательский gstreamer
конвейер:
vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux
через Tweak-tool > Extensions > Easyscreencast > Screencast options:
Это не считая того, тривиальный способ скринкастинга + внутренний звук - через командную строку. Все, что вам нужно, это указать источник входного сигнала для записи звука - либо с помощью pacmd
(cli), либо с помощью pavucontrol
(gui) и использовать gst-launch
для записи. Итак, сначала получите имя источника ввода, заканчивающееся на .monitor
(этот источник может записывать звук с вашей звуковой карты):
pacmd list-sources | sed -n 's/name: <\(.*\.monitor\)>/\1/p'
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
а затем запустите:
pacmd set-default-source "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"
gst-launch-1.0 ximagesrc ! videoconvert ! queue ! videorate ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux ! filesink location=screencast.webm
Чтобы остановить запись, переключитесь обратно в терминал и нажмите Ctrl+C.
1: source
На основе ответа DON_CRISSTI я создал скрипт Bash для автоматизации этой задачи.
Вот сценарий:
#!/bin/bash
if [ -z $1 ]; then
echo "usage: screencast <outfile>"
exit 1
fi
fname=$1
audio=$(pacmd list-sources | sed -n 's/\s*name: <\(.*\.monitor\)>/\1/p')
pacmd set-default-source "$audio"
echo "Screencast started, to stop it come back to terminal and hit ctrl+c..."
gst-launch-1.0 ximagesrc \
! videoconvert \
! queue \
! videorate \
! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 \
! queue \
! mux. pulsesrc \
! queue \
! audioconvert \
! vorbisenc \
! queue \
! mux. webmmux name=mux \
! filesink location=$fname > /dev/null
echo
echo "Screencast saved as $fname"
Использование:
$ ./screencast out_file_name.webm
Все кредиты переходят на don_crissti. Пожалуйста, проголосуйте его ответ!