Как написать приложение X11, которое следует за курсором - PullRequest
2 голосов
/ 13 февраля 2009

Я хотел бы написать экранную лупу Linux, настроенную на мой вкус. В идеале увеличенное окно должно представлять собой квадрат шириной около 150 пикселей, который следует за курсором мыши, куда бы он ни шел.

Возможно ли это сделать в X11? Будет ли проще иметь окно приложения, которое следует за мышью, или лучше (или возможно) вообще забыть об этом окне и просто сделать указатель мыши квадратом 150x150, который увеличивает все, что находится под ним?

Ответы [ 5 ]

3 голосов
/ 13 февраля 2009

Посмотрите на источник xeyes ?

2 голосов
/ 13 февраля 2009

Это на самом деле уже существует, оно называется Xmag (выполните поиск Google для получения дополнительной информации). Возможно, вы захотите проверить исходный код, если хотите знать, как он работает.

РЕДАКТИРОВАТЬ : похоже, я немного неправильно прочитал ваш вопрос ... если вы хотите, чтобы увеличенный квадрат следовал за указателем мыши вокруг, я полагаю, что это возможно, но я не знаю технические детали того, как вы это сделаете. В любом случае, начинать, вероятно, следует с Xmag как с отправной точки.

0 голосов
/ 12 ноября 2018

Texworks поставляется с такой функцией для проверки PDF, полученного при наборе латексного источника. Вы также можете выбрать квадратную или круглую лупу. См. https://www.tug.org/texworks/ для доступа к коду, который может служить панелью запуска.

0 голосов
/ 18 апреля 2011

Я бы лично сделал это безрамное окно, которое всегда остается сверху с отверстием в 1 пиксель посередине. События, которые делает пользователь (щелчки мышью, нажатия клавиш и т. Д.), Передаются в окно ниже.

И когда пользователь перемещает его курсор, он должен быть виден вашему окну, и вы просто перемещаете его немного. Что касается увеличения, хорошо - это оставлено читателю как упражнение (потому что я пока не знаю, как это сделать; -).

0 голосов
/ 13 февраля 2009

Я не уверен, может ли это работать как собственное приложение или должно быть интегрировано в ваш оконный менеджер. В любом случае вам понадобится libx11 (может иметь другое имя от дистрибутива к дистрибутиву). Также я бы посоветовал взглянуть на swarp . Я знаю, что это даже не близко к тому, о чем вы говорите, но исходный код состоит всего из 35 строк и показывает, что можно сделать с помощью libx11.

...