2009-02-13 2 views
2

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

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

+0

Какой Вам понравился? Выбери один. (xmag или xeyes, оба из которых существуют и являются широко открытым исходным кодом). Также примите приведенный ниже ответ. – jcolebrand

ответ

2

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

EDIT: похоже, я немного неправильно разобрал ваш вопрос ... если вы хотите, чтобы увеличенный квадрат следовал указателю мыши, я полагаю, это должно быть возможно, но я не знаю технических деталей как вы это сделаете. Несмотря на это, место для начала - это, вероятно, просмотр Xmag в качестве отправной точки.

0

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

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^