Вопрос или проблема
Чтобы создавать документацию/видеоуроки, мне нужно выделить мышь, например, с помощью желтой полупрозрачной короны вокруг неё:
Маркёр должен быть активен при нажатии и перемещении, но если он включен постоянно, это тоже хорошо.
Он может частично скрывать тот, что находится за ним, но не должен препятствовать возможности нажимать на элементы за ним или забирать фокус от окон.
Compiz кажется устаревшим, find-cursor не привязан к каким-либо действиям (клики/движения) и блокирует взаимодействие (во время рисования невозможно кликнуть “через” него), а key-mon рисует неправильно, также блокирует взаимодействие и в общем случае глючит, когда дело доходит до выделения курсора, по крайней мере, с плиточным оконным менеджером.
Я использую Arch Linux и awesome wm.
Спасибо!
Для меня ни одно из решений не было удовлетворительным. Одна из причин в том, что я хочу использовать vlc для записи экрана, и на GNU/Linux он вообще не отображает указатель мыши. Что очень хорошо работает для меня: highlight-pointer
https://github.com/swillner/highlight-pointer
Преимущества:
- включайте его, когда вам нужно (не нужно переключаться между темами курсора)
- настраиваемый (радиус, цвета, …)
Редактировать 2021-05-04: Я считаю, что недавно добавленное решение от @johannes-titz (highlight-pointer) лучше, так как оно не использует тему курсора. Я оставлю остальную часть моего сообщения как есть, так как это всё ещё может быть полезно кому-то.
Хотя тема DMZ-Highlight, предложенная выше, работает для базового стрелочного указателя, ни один из других курсоров не выделяется.
Разочарованный этим, я написал небольшую программу, которая применяет аналогичное выделение ко всем курсорам для данной темы.
Для тех, кто не хочет собирать и запускать её, я включил также результаты запуска программы против курсоров DMZ-White, создавая тем самым обновлённую версию темы DMZ-Highlight, где все курсоры выделены
(Редактировать: Тема указателя +DMZB очень похожа, но с цветным кругом.)
Используйте пользовательскую тему курсора, которая следует спецификации XDG.
Это могло бы быть самым простым способом введения маркера. Я полагаю, это просто добавляет полупрозрачный слой круга к курсору или что-то подобное. Лучше всего, этот подход, скорее всего, применим как для тем курсора X11, так и для Wayland, как отмечено в этой статье ArchWiki.
Как создать тему курсора
Нужно ли создавать пользовательскую тему курсора? Да, если пользователь предпочитает создавать её самостоятельно. Это может занять время, и большинству пользователей придётся немного почитать.
Последняя дискуссия на тему “создание тем значков” датируется примерно 2015 годом, которую можно найти в этой теме на Linux.org. Она немного охватывает курсоры и щедро предоставляет больше ссылок для дальнейшего изучения.
Несколько старых ссылок около 2010 года упоминают этот плагин для GIMP для создания курсора X11 (XMC). Другой подход — использование программы Xcursorgen, которая объясняется в этой статье на ehow.com.
Или без создания темы
С другой стороны, нужно ли создавать тему? Нет, потому что некоторые пользователи уже создали такие темы. Большинству пользователей нужно будет просто найти, скачать и установить её.
Я нашёл, что DMZ-Highlight от MBOSSG является простым и элегантным решением.
Это пользовательская тема курсора для Ubuntu/Linux, которая имеет полупрозрачный жёлтый круг под курсором, что почти полностью соответствует описанию в вопросе. Как намекает название, DMZ-Highlight (слева) основана на белом варианте DMZ из тем курсора DMZ.
Работает ли DMZ-Hightlight?
- выделенный маркер: Да
- полупрозрачный жёлтый: Да
- активный маркер: Да, при нажатии и перемещении ^1
- запрещает клики: Нет ^2
- крадёт фокус: Нет ^2
^1: виден всё время для большинства элементов интерфейса, за исключением ввода текста, который будет показывать обычный курсор
I
^2: тема курсора ни не мешает, ни не отнимает фокус от окон, это просто обычный курсор с выделением под ним
Отказ от ответственности: Этот ответ предназначен для предложения самого простого способа введения маркера на курсор. Как таковой, этот ответ не будет объяснять “как установить тему курсора” (Это должно быть охвачено отдельным вопросом и ответом).
Автор DMZ-Highlight предоставил скрипты установки и удаления, что удобно для пользователей Ubuntu. В моём случае курсор был установлен и настроен вручную через команды sudo update-alternative
, так как я предпочитаю этот способ.
Тестировал DMZ-Highlight в Xubuntu 14.04 (Xfce 4.10).
Кратко Установите пользовательскую тему курсора, которая подчеркнёт курсор. Ноль скриптов, работает всё время.
После поиска той же функциональности (из-за некоторых VNC-подобных программ, которые не показывают курсор), я использовал решение из ответа https://unix.stackexchange.com/a/228674 и добавил функциональность (https://github.com/arp242/find-cursor/pull/15).
Вы уже пробовали то, что подробно описано в этом ответе на аналогичный вопрос? https://unix.stackexchange.com/a/183941/141220
У вас Arch и необычный wm, так что вы, вероятно, знали, что вам придётся делать что-то самому.
перепостив здесь, это исходит из вышеуказанной ссылки, если это сработает, не забудьте поблагодарить пользователя mikeserv тоже, так как я в основном здесь просто посланник.
Следующий код, вероятно, будет работать для вас:
#!/bin/sh
unset X Y; sleep 1
eval "$(xdotool getmouselocation -shell 2>/dev/null)"
for n in X Y; do : "$(($n-=$n>25?25:$n))"; done
xwd -root -silent |
xv - -crop "$X" "$Y" 50 50 \
-geometry "50x50+$X+$Y" \
-nodecor -viewonly -rv -quit
Для его работы нужны три утилиты xv
, xwd
, и xdotool
. Первые две очень распространены среди утилит X, и третью я с уверенностью предполагаю, что у вас уже есть.
После ожидания в течение одной секунды, xdotool
записывает текущие координаты мыши в свой стандартный вывод в формате -shell
, удобном для исполнения eval
:
X=[num]
Y=[num]
windowID=[num]
eval
устанавливает переменные оболочки соответственно, и цикл for вычитает половину размера изображения, которое будет отображено, из каждого значения $X
и $Y
, а если значение меньше 25
, устанавливает их в 0
.
xwd
кидает корневое окно через пайп в xv
, который обрезает вокруг местоположения мыши до изображения размером 50x50
и отображает негатив изображения под текущим курсором мыши в маленьком окне без каких-либо украшений оконного менеджера.
Конечный результат выглядит как-то так:
…хотя я думаю, что мой курсор мыши не отображается на скриншотах. Но будьте уверены, он был прямо над белым ящиком, когда я снимал снимок.
Вы можете видеть на изображении, как я также записал это как функцию оболочки и отправил её в фоновый режим. Именно по этой причине там вообще присутствует sleep
— нажатие клавиши RETURN прокрутит терминал, если вы уже находитесь внизу, и xwd
был достаточно быстр, чтобы сделать снимок экрана до того, как терминал прокрутился — что сдвинуло бы мой негатив в изображении немного и мне это не нравилось.
В любом случае, поскольку xv
запускается с переключателями -viewonly
и -quit
, он исчезнет, как только будет нажата кнопка мыши или клавиша на клавиатуре — но останется до тех пор, пока вы не сделаете это.
Безусловно, вы могли бы сделать намного более сложные вещи с ImageMagick
или даже самим xv
— но я просто сделал небольшой негатив под курсором мыши. Вы можете найти документацию xv здесь и документацию для xwd
в man xwd
.
vokoscreenNG имеет встроенную опциональную визуализацию кликов и кружок (“Halo”) вокруг мыши.
Ответ или решение
Для создания обучающих видео или документации на базе Linux, особенно с использованием Arch Linux и оконного менеджера Awesome WM, важно иметь возможность выделять курсор мыши без потери функциональности в работе. Это позволяет зрителям легко следить за действиями на экране. Рассмотрим несколько эффективных способов реализации этой функции, принимая во внимание специфику вашего окружения.
Решение проблемы с подсветкой курсора:
-
Использование highlight-pointer:
Этот инструмент позволяет добавить визуальное выделение курсору при клике или перемещении по экрану. Он не меняет тему курсора и может быть тонко настроен под ваши нужды (цвет, радиус и т.д.). Это решение подходит как для X11, так и для Wayland, что делает его универсальным.Преимущества:
- Простота активации и деактивации.
- Высокая степень настройки, позволяющая адаптировать внешний вид под стиль вашего видео.
GitHub-репозиторий: highlight-pointer
-
Темы курсора:
Если вы предпочитаете статическое выделение курсора, можно использовать готовые темы, такие как DMZ-Highlight. Данный подход добавляет дополнительные элементы к стандартному курсору, создавая эффект подсветки.Преимущества:
- Не требует дополнительных скриптов.
- Работает без привязки к действиям, что упрощает процесс записи видео.
Некоторые популярные темы:
-
Программы для записи экрана:
Некоторое программное обеспечение для записи экрана, например, vokoscreenNG, предоставляет встроенные функции для визуализации кликов и добавления "ореола" вокруг курсора.Преимущества:
- Интеграция функций записи и подсветки курсора в одном приложении.
- Удобный пользовательский интерфейс, облегчающий настройку параметров записи.
Сайт программы: vokoscreenNG
Подведение итогов:
Каждое из предложенных решений имеет свои уникальные преимущества и недостатки. Выбор подходящего метода зависит от ваших специфических требований и технического уровня. Инструменты, такие как highlight-pointer, предлагают больше гибкости и имеют преимущество в адаптации к различным рабочим окружениям, в то время как готовые темы курсора могут быть быстрее и проще в настройке. Программы типа vokoscreenNG смогут стать универсальным решением, интегрировав несколько функций в одном продукте.
Каждый подход следует протестировать, чтобы убедиться, что он соответствует вашим требованиям без нарушения рабочего процесса.