В qmmp есть плагин глобальных клавиш, который может обрабатывать кнопки переключения треков, паузы, проигрывания и остановки. Помимо этого он может перехватывать клавиши управления громкостью, выключения динамиков. И делает он это по умолчанию.
Так вот, это поведения очень нехорошо дружит с плазмоидом, который через трей выводит индикатор громкости. Точнее начинает глючить функционал, который собственно и обрабатывает мультимедийные кнопки управления громкостью и выводит OSD уведомление на экран.
Судя по всему qmmp умудряется переопределить глобальный хук и полностью получает управление этими кнопками. До плазмоида попросту не доходят события. А так как подписка происходит при старте плазмоида, то и после выхода из qmmp обработка не возвращается на свои места.
Лечение простое:
- в настройках qmmp для плагина глобальных клавиш убрать реакцию на кнопки управления громкостью.
- открыть настройки трея и выключить и снова включить индикатор громкости.
PS подобное наблюдается и при использовании kmix. Более того, управления перехватывает последний запущенный механизм: или плазмоид или kmix. При закрытии одного из них, рекомендую перезагрузить оставшийся.
На днях заметил, что часть приложений время от времени перестают рисовать свои иконки в трее. С одной стороны, xembed - deprecated, но, судя по всему, плазма как-то пытается его использовать и отображать иконки в трее для “устаревших” приложений. Но не всегда это получается (ниже чуть подробнее).
По сути, нормально работать будут только приложения, которые поддерживают appindicator api.
Я делаю так:
ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:1 -c:v copy -c:a copy -f matroska - | ffplay -autoexit -f matroska -
matroska
может запаковать RAW/YUV/RGB данные, поэтому она. MPEG-TS не может, поэтому не подходит.
Или не менее наркоманский вариант, используя только FFMPEG:
ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:1 -vcodec rawvideo -pix_fmt yuv420p -c:a copy -f sdl2 default -f alsa default
Конвертация в yuv420p нужна для SDL2.
Памятка:
Т.е. используя std::tie()
вполне, без труда и пыли, можно сделать операторы сравнения для сложных структур. Сложности могут возникнуть, если нужно переопределить операторы сравнения для отдельных элементов (например: критерии сравнения строк).
Почему tie
, а не напрямую tuple
? tie
захватывает аргументы по ссылке - экономия на копировании.
Когда PulseAudio стартует, оно захватывает устройства и если пробуем запустить какое-то приложение, которое может только ALSA, то получим сообщение о невозможности открыть устройство, так как оно уже занято.
Что бы решить проблему нужна пара простых (по факту, но не по пути, которым к ним пришёл) шагов. Но для начала нужно посмотреть соответствующий раздел в вики Арчика:
https://wiki.archlinux.org/index.php/PulseAudio#ALSA.2Fdmix_without_grabbing_hardware_device
Идея проста: сказать пульсе работать через dmix для воспроизведения и через dsnoop для записи.
Собственно - сабж!
…и не нужные никакому пакету.
На случай, если что-то удалялось как pacman -R пакет
вместо pacman -Rs пакет
:
DEL:
pacman -Qd | awk '{print $1}' | xargs -I{} bash -c 'cnt=$(LANG=C pacman -Qi {} | grep "Required By<br/>|Optional For" | grep None | wc -l); (test $cnt -eq 2 && echo "{}")' | xargs -I{} bash -c '(pacman -Qi {};pacaur -Sii {};echo ================:simple_smile:' 2>&1 | less -R
Спасибо Романычу, просто список пакетов:
и с описанием, как в уродстве выше (без запроса к Sync базе или AUR можно просто: pacman -Qtdqi
):
pacman -Qtdq | xargs -I{} bash -c '(pacman -Qi {};pacaur -Sii {};echo ================:simple_smile:' 2>&1 | less -R
pacaur используется, что бы запросить информацию для AUR пакетов.
Если какой-то пакет в этом списке уже нужен как самостоятельная единица, то можно снять пометку:
pacman -S --asexplicit пакет
Теперь вопрос: а как проще?
ЗЫ пакеты, которые не требуются никаким другим пакетом можно получить просто выполнив pacman -Qt
Вроде не делал анонс…
Серия старых скринкастов, описывающая процесс разбора формата файлов локализации игр Boishock 1 и 2, создания библиотеки для распаковки/паковки и графического кросс-платформенного архиватора.
Залито на ютуб, что бы не занимало место на диске. Плюс ценность сомнительная, что бы делать более правильный бекап :wink:
Ссыль:
https://www.youtube.com/playlist?list=PLUrplWzJ_-EupzIVpgfRlarNjN0zcarpr
Используется для распределения и контроля количества клея по поверхности плитки. Хотя можно и для распределения других смесей использовать.
Хорошая статья которая описывает нюансы:
Если коротко, то эта связка криво работает. Поймано на ARM GDB 8.0, но воспроизводится и на 7.12.1. При наличии на борту устройства какой-либо RTOS. У меня это ThreadX. Хотя, возможно, для других всё отработает нормально. Но это мало что меняет: на старом GDB 7.7.1 тот же OpenOCD работает.
Суть проблемы и способ её решения без вмешивания в код под катом.