Giter VIP home page Giter VIP logo

highlight-pointer's Introduction

highlight-pointer

Highlight mouse pointer/cursor using a dot - useful for presentations, screen sharing, ...

Demo

Features

  • Very lightweight, should work on any Linux/Unix system running an X server
  • Should work with any software capturing/sharing the screen regardless if it shows the cursor (like Zoom) or not (like Skype)
  • Set color for mouse button released and/or pressed state
  • Highlight using a filled or outlined dot
  • Auto-hide highlight and/or cursor after a time when not moving and re-show when moving again
  • Global hotkeys for toggling cursor or highlighter and for toggling auto-hiding

Installation

Download the highlight-pointer binary from the releases page or see below to build yourself.

Prerequisites

To build highlight-pointer you need the X11, Xext, Xfixes, and Xi libraries. On Debian/Ubuntu, just install these using

sudo apt-get install libx11-dev libxext-dev libxfixes-dev libxi-dev

Building

Just build the highlight-pointer binary using

make

Usage

Just call the highlight-pointer binary and include command line options if you want to change color, size, etc. (see below).

To quit the program press Ctrl+C in the terminal where you started it, or run killall highlight-pointer.

Options

Usage:
  highlight-pointer [options]

  -h, --help      show this help message

DISPLAY OPTIONS
  -c, --released-color COLOR  dot color when mouse button released [default: #d62728]
  -p, --pressed-color COLOR   dot color when mouse button pressed [default: #1f77b4]
  -o, --outline OUTLINE       line width of outline or 0 for filled dot [default: 0]
  -r, --radius RADIUS         dot radius in pixels [default: 5]
      --hide-highlight        start with highlighter hidden
      --show-cursor           start with cursor shown

TIMEOUT OPTIONS
      --auto-hide-cursor      hide cursor when not moving after timeout
      --auto-hide-highlight   hide highlighter when not moving after timeout
  -t, --hide-timeout TIMEOUT  timeout for hiding when idle, in seconds [default: 3]

HOTKEY OPTIONS
      --key-quit KEY                        quit
      --key-toggle-cursor KEY               toggle cursor visibility
      --key-toggle-highlight KEY            toggle highlight visibility
      --key-toggle-auto-hide-cursor KEY     toggle auto-hiding cursor when not moving
      --key-toggle-auto-hide-highlight KEY  toggle auto-hiding highlight when not moving

      Hotkeys are global and can only be used if not set yet by a different process.
      Keys can be given with modifiers
        'S' (shift key), 'C' (ctrl key), 'M' (alt/meta key), 'H' (super/"windows" key)
      delimited by a '-'.
      Keys themselves are parsed by X, so chars like a...z can be set directly,
      special keys are named as in /usr/include/X11/keysymdef.h
      or see, e.g. http://xahlee.info/linux/linux_show_keycode_keysym.html

      Examples: 'H-Left', 'C-S-a'

highlight-pointer's People

Contributors

kareltucek avatar swillner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

highlight-pointer's Issues

Wont align with cursor in remote server

This program is almost exactly what I need. I'm using it in GeForce Now Cloud gaming which is basically gaming on a remote server.

--The issue-- The dot and the in-game cursor are out of alignment by about 3-4".
Any ideas how I can jump under the hood and resolve this.

Perhaps another out there desire. Is there any way I can replace the red dot with a png?

Big Thank You and minor thoughts

Having now troubles with my eyes, always seeking the cursor, thank you, the troubles of seeking are gone. Great work!
(But I have further to use a head magnifier with headband for working on screen)
Did you think upon a small .highlight-pointer config file or do you think "cursorhighlighter.sh" which executes highlight-pointer with the desired parameters, or an alias in bashrc is enough?
Problem may be starting highlight-pointer more than once.
Try yourself:
1 Terminal: highlight-pointer --show cursor --outline 3 --radius 30 --auto-hide-highlight
2 Terminal: highlight-pointer --radius 20
looks nice, but could give troubles. (Wrapper with pgrep or lsof or flock or file with PID or ... could prevent this).
Best wishes
Thomas

Can't seem to find the correct dependencies to make this library

Hi,
I'm trying to make this but am getting the error below. Tried for a while to find the right packages to install after using the one in the README but am coming up short. If possible any help or pointers would be appreciated.

Thanks for developing this library

(base) canyon@canyon-MS-7A59:/repos/highlight-pointer$ sudo apt-get install libx11-dev libxext-dev libxfixes-dev libxi-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libxext-dev is already the newest version (2:1.3.4-0ubuntu1).
libxfixes-dev is already the newest version (1:5.0.3-2).
libxi-dev is already the newest version (2:1.7.10-0ubuntu1).
libx11-dev is already the newest version (2:1.6.9-2ubuntu1.2).
0 upgraded, 0 newly installed, 0 to remove and 95 not upgraded.
(base) canyon@canyon-MS-7A59:
/repos/highlight-pointer$ make
/home/canyon/miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc highlight-pointer.c -o highlight-pointer -flto -O3 -Wall -Wextra -Wshadow -std=c99 -lX11 -lXext -lXfixes -lXi
highlight-pointer.c:30:10: fatal error: X11/Xatom.h: No such file or directory
#include <X11/Xatom.h>
^~~~~~~~~~~~~
compilation terminated.
make: *** [makefile:2: highlight-pointer] Error 1
(base) canyon@canyon-MS-7A59:~/repos/highlight-pointer$

Opacity

Hello Sven, thanks for this project.

It would be great to have an opacity argument to get something like windows' cursor highlight mode: https://www.youtube.com/watch?v=NLFfz2ZS1Js

Like:

highlight-pointer --show-cursor --radius 50 --released-color '#ffcc00' --pressed-color '#ff0000' --opactity 0.5

Or maybe to use rgba colors in pressed/released-color argument.

I found this:
https://gist.github.com/ericek111/774a1661be69387de846f5f5a5977a46#file-xoverlay-cpp-L112

But I'm not good with X11 and C to port this from C++.

So, do you see this as a feature?

Thanks.

highlighting sometimes hidden behind dialog windows, and many thanks for a nice utility,

clicking the green 'code' button in the github window
a dialog or info window pops up where the highlighting
together with the cursor stays 'above' the window, visible.
Different clicking e.g. firefox'es menu a dialog appears
where the cursor stays visible, while the highlighting
hides behind the layer of the dialog.
Observed in actual ubuntu with GNOME and Kali with
XFCE4 desktop.
Hope someone will like to improve and hope it's not too
difficult.
And again, thank you very much, very useful utility. :-)

Grey Square Background

I'm getting a grey square background around my cursor, and I'm not sure why. Or when it started--I hadn't used highlight-pointer for a long time.

Thank you very much for this project, and if you have any ideas what could be causing it, I'd appreciate it.

Helpfile is not correct?

First of all: A big Thank You for this great tiny programme :)

I encountered the following problem:
The helpfile says:
--released-color COLOR dot color when mouse button released [default: #d62728]

so I tried a different colour with
--released-color #9acd32
which did not work

Only after reading slavas comment in
#3

I realized that the color-code hat to be set between '...'
--released-color '#9acd32'

So maybe you should hint out in the helpfile that the colour-code ist to be set between '...'

Turn on when mouse keys enabled

Would like to have the highlight turn on when mouse keys in linux is enabled. Is there an easy way to do this? Thanks in advance

change the pointer of an xinput device other than the default?

I'm using ssh-rdp to control a PC from a tablet running Linux. ssh-rdp utilizes netevent to forward touchscreen events from the tablet to the PC, recreating the same xinput device(s). If I launch highlight-pointer on the PC or tablet, I only see it work when using the mouse. If I use the touchscreen (which is still a pointer device), I see the default X11 pointer.

edit

I run highlight-pointer --auto-hide-highlight --hide-timeout 1 --radius 10 --outline 2 on the PC, using its mouse the pointer changes as expected.

Just to have the same behavior, I run the same command on the tablet, using the tablet's mouse the pointer changes as expected.

I launch ssh-rdp and see the PC screen on the tablet. If I use the tablet's mouse, the events are forwarded, and I see the highlight-pointer pointer on the PC, but there is a normal X11 pointer overlaid (even with highlight-pointer still running on the tablet and PC). If I use the touchscreen, only the normal X11 pointer is visible. It's not clear to me whether this second X11 pointer is created on the PC or the tablet (I guess the tablet but I'm not sure), even though touchscreen events are forwarded correctly, I don't see pointers on the PC while using the tablet touchscreen.

If I run highlight-pointer after establishing the ssh-rdp connection, with the xinput devices already created, the result does not change.

I created a second pointer with xinput create second and associated it with a second mouse using xinput reattach MOUSEID POINTERID (use xinput --list for the IDs), and I see that highlight-pointer has some issues there too. The pointer appears, clicks are visible, but it doesn't move.

I tried xev to see if there were differences in the generated events but I don't see any significant one (see attached logs).

xinput-devs-on-pc.txt
mouse.log
touch.log

Thanks

Hi! I'm a high school teacher in Mallorca and just signed up to say thanks for this project. Keeps me away from a MS Windows installation.

Dídac.

Fault make highligh-pointer

Hello, i trying make my own highlight-pointer following your instructions but i receive a fault in terminal taking:

cc highlight-pointer.c -o highlight-pointer -flto -O3 -Wall -Wextra -Wshadow -std=c99 -lX11 -lXext -lXfixes -lXi
In file included from highlight-pointer.c:31:
/usr/include/X11/Xlib.h:38:10: fatal error: sys/types.h: No such file or directory
38 | #include <sys/types.h>
| ^~~~~~~~~~~~~
compilation terminated.

if you can help please

fault-make-pointer

The circle is drawn below the drop-down menus (Cinnamon desktop environment)

I would like to thank you for your 'highlight-pointer' program, I think it will be useful to me.

I have only encountered one small inconvenience. The circle is drawn below the dropdown menus (I'm using the cinnamon desktop environment on Debian Sid).

I do not have enough knowledge to evaluate the source code file, 'highlight-pointer.c', but I suspect the key is in the "redraw" function...

I wonder if a "simple" modification to that file would be possible (to plot the circle on top of anything else, except the mouse pointer). Would you know what I should modify to achieve that goal?

Thank you
Leonardo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.