Giter Club home page Giter Club logo

projecteur's Introduction

Projecteur

develop: Build Status develop master: Build Status master

Linux/X11 application for the Logitech Spotlight device (and similar devices).
See Download section for binary packages.

Motivation

I saw the Logitech Spotlight device in action at a conference and liked it immediately. Unfortunately as in a lot of cases, software is only provided for Windows and Mac. The device itself works just fine on Linux, but the cool spotlight feature is only available using additional software.

So here it is: a Linux application for the Logitech Spotlight.

Table of Contents

Features

  • Configurable desktop spotlight
    • shade color, opacity, cursor, border, center dot and different shapes
    • Zoom (magnifier) functionality
  • Multiple screen support
  • Support of devices beyond the Logitech Spotlight (see Device Support)
  • Button mapping:
    • Map any button on the device to (almost) any keyboard combination.
    • Switch between (cycle through) custom spotlight presets.
    • Audio Volume / Horizontal and Vertical Scrolling (Logitech Spotlight).
  • Vibration (Timer) Support for the Logitech Spotlight
  • Usable without a presenter device (e.g. for online presentations)

Screenshots

Planned features

  • Support for more customizable button mapping actions.
  • Support of more proprietary features of the Logitech Spotlight and other devices.

Supported Environments

The application was mostly tested on Ubuntu 18.04, Ubuntu 20.04 (GNOME) and OpenSuse 15 (GNOME) but should work on almost any Linux/X11 Desktop. In case you are building the application yourself, make sure you have the correct udev rules installed (see pre-requisites section).

How it works

With a connection via the USB Dongle Receiver or via Bluetooth, the Logitech Spotlight device will be detected by Linux as a HID device with mouse and keyboard events. As mouse events, the device sends relative cursor movements and left button presses. Acting as a keyboard, the device basically just sends left and right arrow key press events when forward or back is pressed on the device.

The mouse move events of the device are what we are mainly interested in. Since the device is already detected as a mouse input device and able to move the cursor, we simply detect if the Spotlight device is sending mouse move events. If it is sending mouse events, we will 'turn on' the desktop spot (virtual laser).

For more details: Have a look at the source code ;)

Button mapping

Button mapping works by grabbing all device events of connected devices and forwarding them to a virtual 'uinput' device if not configured differently by the button mapping configuration. If a mapped configuration for a button exists, Projecteur will inject the mapped action instead. (You can still disable device grabbing with the --disable-uinput command line option - button mapping will be disabled then.)

Input events from the presenter device can be mapped to different actions. The Key Sequence action is particularly powerful as it can emit any user-defined keystroke. These keystrokes can invoke shortcut in presentation software (or any other software) being used. Similarly, the Cycle Preset action can be used for cycling different spotlight presets. However, it should be noted that presets are ordered alphabetically on program start. To retain a certain order of your presets, you can prepend the preset name with a number.

Hold Button Mapping for Logitech Spotlight

Logitech Spotlight can send Hold event for Next and Back buttons as HID++ messages. Using this device feature, this program provides three different usage of the Next or Hold button.

  1. Button Tap
  2. Long-Press Event
  3. Button Hold and Move Event

On the Input Mapper tab (Devices tab in Preferences dialog box), the first two button usages (i.e. tap and long-press) can be mapped directly by tapping or long pressing the relevant button. For mapping the third button usage (i.e. Hold Move Event), please ensure that the device is active by pressing any button, and then right click in first column (Input Sequence) for any entry and select the relevant option. Additional mapped actions (e.g. Vertical Scrolling, Horizontal Scrolling, or Volume control) can be selected for these hold move events.

Please note that in case when both Long-Press event and Hold Move events are mapped for a particular button, both actions will executed if user hold the button and move device. To avoid this situation, do not set both Long-Press and Hold Move actions for the same button.

Download

The latest binary packages for some Linux distributions are available for download on cloudsmith. Currently binary packages for Ubuntu, Debian, Fedora, OpenSuse, CentOS and Arch Linux are automatically built. For release version downloads you can also visit the project's github releases page.

  • Latest release:
    • on cloudsmith: cloudsmith-rel-badge
    • on secondery server: projecteur-rel-badge
  • Latest development version:
    • on cloudsmith: cloudsmith-dev-badge
    • on secondary server: projecteur-dev-badge

See also the list of Linux repositories where Projecteur is available.

Building

Requirements

  • C++14 compiler
  • CMake 3.6 or later
  • Qt 5.7 and later

Build Example

    git clone https://github.com/jahnf/Projecteur
    cd Projecteur
    mkdir build && cd build
    cmake ..
    make

Building against other Qt versions, than the default one from your Linux distribution can be done by setting the QTDIR variable during CMake configuration.

Example: QTDIR=/opt/Qt/5.9.6/gcc_64 cmake ..

Installation/Running

Pre-requisites

When building Projecteur yourself

The input devices detected from the Spotlight device must be readable to the user running the application. To make this easier there is a udev rule template file in this repository: 55-projecteur.rules.in

  • During the CMake run, the file 55-projecteur.rules will be created from this template in your build directory. Copy that generated file to /lib/udev/rules.d/55-projecteur.rules
  • Most recent systems (using systemd) will automatically pick up the rule. If not, run sudo udevadm control --reload-rules and sudo udevadm trigger to load the rules without a reboot.
  • After that, the input devices from the Logitech USB Receiver (but also the Bluetooth device) in /dev/input should be readable/writable by you. (See also about device detection)
  • When building against the Qt version that comes with your distribution's packages, you might need to install some additional QML module packages. For example this is the case for Ubuntu, where you need to install the packages qml-module-qtgraphicaleffects, qml-module-qtquick-window2, qml-modules-qtquick2 and qtdeclarative5-dev to satisfy the application's run time dependencies.

Application Menu

The application menu is accessible via the system tray icon. There you will find the preferences and the menu entry to exit the application. If the system tray icon is missing, see the Troubleshooting section.

Command Line Interface

Additional to the standard --help and --version options, there is an option to send commands to a running instance of Projecteur and the ability to set properties.

Usage: projecteur [OPTION]...

<Options>
  -h, --help              Show command line usage.
  --help-all              Show complete command line usage with all properties.
  -v, --version           Print application version.
  -f, --fullversion       Print extended version info.
  --cfg FILE              Set custom config file.
  -d, --device-scan       Print device-scan results.
  -l, --log-level LEVEL   Set log level (dbg,inf,wrn,err), default is 'inf'.
  --show-dialog           Show preferences dialog on start.
  -m, --minimize-only     Only allow minimizing the preferences dialog.
  -D DEVICE               Additional accepted device; DEVICE=vendorId:productId
  -c COMMAND|PROPERTY     Send command/property to a running instance.

<Commands>
  spot=[on|off|toggle]     Turn spotlight on/off or toggle.
  spot.size.adjust=[+|-]N  Increase or decrease spot size by N.
  settings=[show|hide]     Show/hide preferences dialog.
  preset=NAME              Set a preset.
  quit                     Quit the running instance.

A complete list the properties that can be set via the command line, can be listed with the --help-all option or can also be found on the man pagers with newer versions of Projecteur (man projecteur).

Scriptability

Projecteur allows you to set almost all aspects of the spotlight via the command line for a running instance.

Example:

# Set showing the border to true
projecteur -c border=true
# Set the border color to red
projecteur -c border.color=#ff0000
# Send a vibrate command to the device with
# intensity=128 and length=0 (only Logitech Spotlight)
projecteur -c vibrate=128,0

While Projecteur does not provide global keyboard shortcuts, command line options can but utilized for that. For instance, if you like to use Projecteur as a tool while sharing your screen in a video call without additional presenter hardware, you can assign global shortcuts in your window manager (e.g. GNOME) to run the commands projecteur -c spot=on and projecteur -c spot=off or projecteur -c spot=toggle, and therefore turning the spot on and off with a keyboard shortcut.

A complete list the properties that can be set via the command line, can be listed with the --help-all command line option.

Using Projecteur without a device

You can use Projecteur for your online presentations and video conferences without a presenter device. For this you can assign a global keyboard shortcut in your window manager (e.g. KDE, GNOME...) to run the command projecteur -c spot=toggle. You will then be able to turn the digital spot on and off with the assigned keyboard shortcut while sharing your screen in an online presentation or call.

Device Support

Besides the Logitech Spotlight, the following devices are currently supported out of the box:

  • AVATTO H100 / August WP200 (0c45:8101)
  • August LP315 (2312:863d)
  • AVATTO i10 Pro (2571:4109)
  • August LP310 (69a7:9803)
  • Norwii Wireless Presenter (3243:0122)
  • Kensington PowerPointer (1ea7:0002)

Compile Time

Besides the Logitech Spotlight, similar devices can be used and are supported. Additional devices can be added to devices.conf. At CMake configuration time, the project will be configured to support these devices and also create entries for them in the generated udev-rule file.

Runtime

Projecteur will also accept devices as supported when added via the -D command line option.

Example: projecteur -D 04b3:310c

This will enable devices within Projecteur and the application will try to connect to that device if it is detected. It is, however, up to the user to make sure the device is accessible (via udev rules).

Troubleshooting

Opaque Spotlight / No Transparency

To be able to show transparent windows, a compositing manager is necessary. If there is no compositing manager running you will see the spotlight overlay as an opaque window.

  • On KDE it might be necessary to turn on Desktop effects to allow transparent windows.
  • Depending on your Linux Desktop and configuration there might not be a compositing manager running by default. You can run xcompmgr, compton or others manually.
    • Examples: xcompmgr -c -t-6 -l-6 -o.1 or xcompmgr -c

Missing System Tray

Projecteur was developed and tested on GNOME and KDE Desktop environments, but should work on most other desktop environments. If the system tray with the Application Menu is not showing, commands can be send to the application to bring up the preferences dialog, test the spotlight, quit the application or set spotlight properties. See Command Line Interface. There is also a command line option (-m) to prevent the preferences dialog from hiding, allowing it only to minimize - behaving more like a regular application window.

On some distributions that have a GNOME Desktop by default there is no system tray extensions installed (Fedora for example). You can install the KStatusNotifierItem/AppIndicator Support or the TopIcons Plus GNOME extension to have a system tray that can show the Projecteur tray icon (and also from other applications like Dropbox or Skype).

Zoom is not updated while spotlight is shown

Zoom does not update while spotlight is shown due to how the zoom currently works. A screenshot is taken shortly before the overlay window is shown, and then a magnified section is shown wherever the mouse/spotlight is. If the zoom would be updated while the overlay window is shown, the overlay window it self would show up in the magnified section. That is a general problem that other magnifier tools also face, although they get around the problem by showing the magnified content rectangle always in the same position on the screen.

Wayland

While not developed with Wayland in mind, users reported Projecteur works with Wayland. If you experience problems, you can try to set the QT_QPA_PLATFORM environment variable to wayland, example:

user@ubuntu1904:~/Projecteur/build$ QT_QPA_PLATFORM=wayland ./projecteur
Using Wayland-EGL

Wayland Zoom

On Wayland the Zoom feature is currently only implemented on KDE and GNOME. This is done with the help of their respective DBus interfaces for screen capturing. On other environments with Wayland, the zoom feature is not currently supported.

Device shows as not connected

If the device shows as not connected, there are some things you can do:

  • Check for devices with Projecteur's command line option -d or --device-scan option. This will show you a list of all supported and detected devices and also if they are readable/writable. If a detected device is not readable/writable, it is an indicator that there is something wrong with the installed udev rules.
  • Manually on the shell: Check if the device is detected by the Linux system: Run cat /proc/bus/input/devices | grep -A 5 "Vendor=046d"
    This should show one or multiple spotlight devices (among other Logitech devices)
    • Check that the corresponding /dev/input/event?? device file is readable by you.
      Example: test -r /dev/input/event19 && echo "SUCCESS" || echo "NOT readable"
  • Make sure you don't have conflicting udev rules installed, e.g. first you installed the udev rule yourself and later you used the automatically built Linux packages to install Projecteur.

Changelog

See CHANGELOG.md for a detailed changelog.

License

Copyright 2018-2021 Jahn Fuchs

This project is distributed under the MIT License, see LICENSE.md for more information.

projecteur's People

Contributors

dbrandonjohnson avatar denizthatmenace avatar dev-zero avatar freddii avatar gszy avatar jahnf avatar llimeht avatar lumnicence avatar marcelwaldvogel avatar mayanksuman avatar mlouielu avatar rj-jesus avatar sidroberts avatar tbk avatar theassassin 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

projecteur's Issues

[BUG] two monitors, only one with spotlight

Description
Attach 2 monitors, spotlight will always be in left monitor (irrespective of the QT5 screen number), it cannot move to the other monitor. You can exchange the position of displays in gnome settings to get it into the other screen. You can use --cfg FILE to see that screen is only updated if the gnome displays have been exchanged in settings

Expected behavior
Should be able to move spotlight between screens

Desktop/Linux Environment (please complete the following information):

  • Fedora 31
  • GNOME 3.34
  • Did you built Projecteur yourself?: y

Debugging:
In void ProjecteurApplication::setScreenForCursorPos():
QCursor::pos() will always report the last (x,y) position seen in the left monitor after moving the mouse pointer into the right monitor. The screen index is that of the left monitor (could be 0 or 1, depending on which monitor is left) but never changes since pos() is not correctly updated. This appears to be a QT5 bug, possibly due to Wayland. I'm not sure if it has been reported. See the kludge above of moving displays to get around it for now.

Feature Request: Windows and Mac support

I have just discovered this and I must say this is SO MUCH BETTER than the original. Kudos to you, my (wo)man.

But I can't build it for Windows and/or Mac... So, could you create a Windows port? I'd even donate to see it happen :)

overlay not transparent [solved]

Observation:
When I use Projecteur's lens function (click the lens button on the presenter), I get a completely dark grey screen with a black circle, which moves as I move the presenter (obviously the lens).
The colour difference is minimal.

Expectation:
When I use the lens function, I get a normally-visible circle, while the area outside the circle is "shaded" (darkened but still clearly visible).

Steps to reproduce:

  • Start Projecteur 0.4-alpha.9
  • try to use the lens feature
  • always reproducible

Environment:

  • compiled using qt 5.12.2
  • using i3 window manager
  • environment:
$ uname -a
Linux dell 4.18.0-16-generic #17-Ubuntu SMP Fri Feb 8 00:06:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

 $ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.10
Release:	18.10
Codename:	cosmic

$ i3 --version
i3 version 4.15 (2018-03-10) © 2009 Michael Stapelberg and contributors

Disable Git for version check.

Currently, even on normal release, a Gitcheck is run to determinate version.
So on a release zip, this will fail and produce a 0.0 version.

This check should depend on CMAKE_BUILD_TYPE =! Release or something like this.

[BUG] Fedora 31/Wayland - No system tray / preferences dialog

On Fedora 31 w/ gnome, there is no icon or settings menu (even after -c settings=show) ever.
Tried Topicons Plus and Dash to Panel. It shows up in the application menu but the running program is not handled by (not visible to) gnome. Looks like it's time to switch away from Wayland/gnome (wanted to give it a try), back to KDE. Otherwise working.

Feature parity with official Logitech software

This is a meta-issue for tracking all the development required to have reasonable amount of feature parity with official software (#14). I think following features if implemented will resolve this issue. (Feel free to edit them). The implemented features are striked out.

  1. Pointer Button Mode (digital laser, Highlight, and zoom (#28, #39)) and easy switching between them. May require grabbing the double click from device (Please see #54): Implemented as preset and cycle preset option in input mapper in v0.8+.
  2. Options for onHold event of the Next and Back buttons (Will be available in v1.0)
  3. Vibrational alert for timer (#6)
  4. Show battery information. (Will be available in v1.0)
  5. Settings for automatic start on system startup (Optional)
  6. Cross Platform (Optional)

Redesign of preferences dialog box

With increasing number of settings, the current preferences dialog box may become cluttered. For instance, options for pointer modes (#38), timer (#6), modifying Next/Back keystroke (#43) and their hold events will be added in the future, which require a redesign of preference dialog box.

I think, following two steps are necessary for fixing this issue:

  1. Separate SpotAreaSettings (all options related to spot) class and its instances are member of Settings class: This will also help us in defining different Pointer modes.
  2. Redesign preferences dialog box using tabs (preferably in QML)

What do you think? I will be posting mockups of the dialog box soon.

Vibration Timer Notification

Thanks a lot for your work :) I have tested it with Fedora 29 and it works very well !

Do you think it is possible to implement the timer functionnality ?

Mate System tray

Thanks a lot for the devlopment of the software.
You are my hero.
I think I have the most done. By moving or turning the pointer I can move the cursor on the screen (so I think the udev rules are set correctly). But there is one problem left. I'm using Ubuntu 18.10 with mate. In my system tray there is no icon and I can't find the tool to change the preferences.
It would be nice if you have an idea to solve this problem.

Thanks a lot.

Gunther

AUR Package for Arch Linux

Hi there!

thanks for the good work on this app!

I've just published a package for the upstream version on AUR, so the package is available to all Arch Linux users from their package manager. I'll maintain it stick to the develop branch.

Thanks again 👋 !

Add device diagnostics informations

Give the user more information why a device could not be found. Or cannot be detected:

  • It should be possible to get the following information via command line or the user interface:
    • No Logitech Spotlight device found.
    • Logitech Spotlight device found but cannot open/read (either wrong access rights, or the user is not member of the group that can access the device)
    • List of detected Spotlight devices
    • (optional / unsure: Check if the spotlight udev rules are valid)

Put sources into subdirectory

The project's root directory is getting too crowded. (e.g. you need to scroll down on github to see the README). Put sources into a sub directory.

Projecteur on Debian 10

I downloaded the .deb file for Debian 9, hoping it to work on Debian 10 (KDE Plasma Desktop). Unfortunately, something is wrong somewhere. When going to Projecteur settings, the "Device connected:" field always display "false". Is there any obvious difference between Debian 9 and 10 explaining this behaviour ?

I'll try to build it by myself later on.

Completing the build...?

My apologies for this new message as it doesn't necessarily fit into the general discussion of making this project better. I'm relatively new to github and importing code into ubuntu. I only bring this up here because I am in charge of getting this up an running for my university chemistry department and some responsibility to complete everything (as opposed to giving up if it was a personal system! :) ).

Anyways, I am running Ubuntu 18.04 on a Raspberry Pi 4. I was able to successfully add the GCC/C++14, CMake, and Qt packages to ubuntu. For the last ~4 hours I have been trying to complete the "make" portion of the build. I get a "Fatal error: GLES3/gl31.h: No such file or directory"... etc

After quite a bit of searching, I have installed several libraries, including what I believe to be the correct one - namely the libgles2-mesa-dev library. I have installed several others along the way that were hinted at, including other mesa utility packages, etc. Seeing how I am missing the openGL files, I searched on my system for the folders, which didn't seem to be installed after the apt-get installs. I have tried to install this package several times. I have also tried to copy the /GLES3/ folder to /opt/vc/ directory to try to force it in there. That idea came from https://raspberrypi.stackexchange.com/questions/56137/fatal-error-gles2-gl2-h-no-such-file-or-directory.

I'm sort of lost if this is something that is a library that is not installed, or if it is somehow in the compiler code that is leading me astray. There doesn't seem to be too many google results for the GLES3 issues... Here is the full error: https://imgur.com/a/53KBky3

Thanks for any input anyone might have.

Black rectangle instead of spotlight

I just built and installed the latest Projecteur (0.6 alpha2), but instead of the expected spotlight, hitting the lens button gets me a black rectangle stuck at the top left corner of the screen as shown in the attached screenshot. I use awesome-wm; under windowmaker, I get the same result, while mate just renders nothing.

Any advice would be much appreciated. Many thanks for providing this!

screenshot

Use with other devices

Please, add the ability to choose from menu the device used as "mouse presenter". This way people could use "other" (non Logitech) cheaper devices...
This way the software would become "universal" and no Logitech locked.
Thank you for your attention.

No Transparency in EXWM

Hi all,
I was using Projecteur for some time on gnome desktop and was really satisfied with it (a really really stable application!).
Now I'm using EXWM as window manager (since I spend most of my time in emacs anyway, it's really convenient) and would like to continue using Projecteur to present my lectures. Unfortunately the result looks as shown in the following picture (I set the shade color to red and dot color to yellow to show the effect):
IMG_1869
instead of:
IMG_1870

To me it seems as if the fullscreen window where the spotlight and pointer are shown in is supposed to be 100% transparent but is completely black when using EXWM. So everything is not shown in front of the presentation but on top of a black layer above the presentation. Can this be correct? Does anybody have an idea how this issue could be resolved?
Thanks in advance,
Alex

Feature Request: emulate keyboard keypress

Dear Jahn,
first of all, I found your project to be very useful to be able to use the Logitech Spotlight on Linux. I do use Fedora on my own.

Have you heard of "Impressive!"
I present my slideshows using "Impressive!". It presents PDF slideshows in a great and impressive way. Thus, the name. For example does Impressive support a spotlight like highlighting by itself, as well as zoom, rectangular highlighting or overview. I love it, it is the perfect tool for slideshows.
It is great especially when you write your slideshows with LaTeX and the Beamer Class.

To activate the effects of Impressive one uses keypresses like "Return" for the spotlight", "left mouse click" to highlight an area, "Z" to zoom, middle mouse button to show the overview. In the beginning I thought that Logitech Spotlight emulates keyboard keypresses for all buttons, but actually thats not the case, which is a pity. The top button only sends a mouse click.

But there is an issue with impressive and projecteur:
the projecteur spotlight effect extremely stucks. So currently it is not really possible to use projecteur in combination with Impressive! So the Logitech Spotlight is degraded to just a forward and backward button connected via bluetooth or USB dongle.

So I thought, why not improve your Projecteur that way to make it a bit more flexible.
Instead of using the projecteur effetcts just juse impressive ones but use projecteur to emulate keypresses. So it would be necessary to disable the projecteur spotlight effect.

What is the idea for improvement:
The goal would be to detect the number of button presses and emulate keyboard buttons like "Return", "Z" that specific presentation tools use for certain actions, etc.
What I have read is that the original Logitech software supports up to for times click of the button.

From my understanding it shouldn't be too difficult to count the numbers of keypresses within a certain amount of time and then send a preconfigured key.

In addition it may be combined with #43 "Remap Buttons"

In addition it would be necessary to add an option to to projecteur config to disable the spotlight effect (or every effect or overlay effect produced by projecteur).

What do you think about the idea?
I think it offers many room for flexibility and applicability with almost every presenting tool that way.

Best Regards, Reinhard

Builds with Qt 5.8 do not work & Device detection issue on Hyperbola Linux

Note: This is more a feedback from experience than an issue report.

When I plug a second screen in the VGA port of my X200, Projecteur works perfectly.

Otherwise, I had to struggle a bit to figure out how to make Projecteur work with a second HDMI screen plugged in the DisplayPort provided by the dock station of the X200. The only scenario that works is the following:

  1. Before launching Projecteur itself, disable the second screen, so that Projecteur sees it as "not connected" when it is launched.
  2. Launch Projecteur.
  3. After that, enable the second screen. If the spotlight doesn't show, select the appropriate screen in the settings of Projecteur.

The same scenario applies with so-called DisplayLink screens which are plugged in USB ports.

Otherwise, the spotlight shows, but it is limited to a small area stuck at the top left corner of the selected screen. This may be related to #22 (comment).

Feature: Logging

As the project grows and more and more functionality comes in, the logging needs an overhaul:

  • Different log levels are necessary (e.g. debug, info, warning, error...)
  • Log output (at least warnings and errors) should be accessible via GUI
  • Setting a log level via command line option.
  • Logging to a file

Logitech R500

It seems Logitech released R500 as a cheaper alternative to the Spotlight.
https://www.logitech.com/en-us/product/r500-laser-presentation-remote

When installing Logitect Presentation on Windows you can chose your device (R500 | Spotlight).

I do not have a R500 available so I can test it with Projecteur, but I think it would be great if Projecteur could support both devices.

Edit:
Currently it does not make sense since the R500 does not have the "software pointer" and Projecteur does not provide an options to customize the button actions. If button customize is added then it would, since it has the next and back buttons.

Add settings to commands

Hi there, first of all, thanks for this project, its awesome!

I'm using KDEConnect-android + KDEConnect, which provide a simple spotlight function in it. I've made a modification in KDEConnect to make it use Projecteur as the spotlight backend, which use projecteur -c spot=on/off to toggle the spotlight function.

It is nice to have all the settings can pass by the commands -c, so it is possible for others to config at runtime, I'll provide a prototype PR for this.

How do you folks think?

Feature Request: new USB device option (generic mouse, trackpoint)

Hi!

I've made it work with an arbitrary mouse by adding a "device" option.
Works for an IBM wheel mouse but more significantly for my trackpoint on a Thinkpad.
I can used the touchpad as a regular mouse and the trackpoint as spotlight.
Should work with USB mouse as well, patch attached.

It would be great if you included it in the next release. Code could be cleaned up, I know :-)

/lib/udev/rules.d/55-spotlight.rules:
#IBM mouse
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b3", ATTRS{idProduct}=="310c", MODE="0660", TAG+="uaccess"
#trackpoint
SUBSYSTEMS=="input", ATTRS{name}=="TrackPoint", MODE="0660", TAG+="uaccess"

You can get trackpoint info from /proc/bus/input/devices, but this will likely work for anyone.
For my trackpoint:
./projecteur -D 02:0a:0
For my USB mouse:
./projecteur -D 04b3:310c:0

BTW, I wonder if the uinput branch could be used to forward /dev/input/event* > /dev/uinput ?

Nice project, keep it up!

Frank
projecteur-device-patch.txt

Feature request: Make spotlight follow mouse across multiple attached screens

@jahnf: Thanks for continuously improving projecteur! I am using it daily for highlighting things on my slides while teaching my courses.

As I am using my spotlight device so frequently, I have projecteur setup to get launched automatically when I log into my KDE Plasma desktop. One usability issue that I have found during that daily usage is that I frequently have to go to the configuration window to select another screen for displaying the spotlight. The reason is that my monitor configuration frequently changes throughout the day, as I work in my office and several different classrooms with differing video projector / monitor setups. Most of the time, the video projector / monitor gets attached via HDMI, but sometimes also via Mini-DisplayPort, DVI, or VGA. Additionally, I have to change frequently between duplicating my laptop screen and a dual screen configuration. The dual screen configuration, I use while working on my desk or presenting slides with pdfpc. Duplicating the screen is useful, when I demonstrate software tools or coding/debug techniques.

Currently, one has to choose manually the screen on which the spotlight is to be shown in projecteur's configuration dialogue. It would be nice if the active screen for the spotlight would be automatically chosen based on which screen the mouse cursor was located when the spotlight button is pressed. This would make using projecteur more intuitive and safe me time in the classroom.

Related, I have noticed that the name for the screens listed in projecteur's configuration panel are not always correct after attaching a screen and opening the panel. Anyway, switching the monitor to the corresponding signal usually works.

Zoom Feature

Implement a zoom feature, similar to the one int the Logitech Windows Application.

Wayland support?

Hi jahnf,

Thanks for the great tool. It works as expected under gnome (arch) running on Xorg, but does struggle on gnome Wayland (I get the spot occasionally when bringing up the preference menu, probably over Xorg control part of the screen?). Not complaining though, but do you have any pointer to make it work more reliably under wayland? Not too worry if you don't ! Congrats for the linux support of this gadget.

i3 Window manager?: When opening preferences, the entire screen flickers

Observation:
When I open Projecteur preferences,

  • the entire screen flickers like mad (between, it seems, black and the actual screeen image).
  • I can apparently only interact with the window while the screen isn't black. So I need to click everything many times, until I hit the right timing by luck (e.g. to close the window again)
  • Once I close the window, the flickering stops

Expectation:
Opening the window should not produce any visual distortion, interaction with the window should be as usual

Steps to reproduce:

  • Start Projecteur 0.4-alpha.9
  • open the settings window
  • always reproducible

Environment:

  • compiled using qt 5.12.2
  • using i3 window manager
  • environment:
$ uname -a
Linux dell 4.18.0-16-generic #17-Ubuntu SMP Fri Feb 8 00:06:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

 $ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.10
Release:	18.10
Codename:	cosmic

$ i3 --version
i3 version 4.15 (2018-03-10) © 2009 Michael Stapelberg and contributors

Support for AVATTO H100 Spotlight 2.4GHz Wireless Digital Laser Pointer

Hi!

A friend of mine just bought this little digital pointer on the net.
https://www.aliexpress.com/item/32931337912.html

Any chances to get it work with this application?

I can take additional HW info if needed:

I: Bus=0003 Vendor=046a Product=0011 Version=0111
N: Name="HID 046a:0011"
P: Phys=usb-0000:00:14.0-4.3/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.3/1-4.3:1.0/0003:046A:0011.000D/input/input31
U: Uniq=
H: Handlers=sysrq kbd leds event20 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff980000000007ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=0c45 Product=8101 Version=0101
N: Name="USB USB Device Consumer Control"
P: Phys=usb-0000:00:14.0-2.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:0C45:8101.000E/input/input32
U: Uniq=
H: Handlers=kbd event21 
B: PROP=0
B: EV=1f
B: KEY=3f000300ff 0 0 483ffff17aff32d bfd4444600000000 1 130ff38b17c000 677bfad9415fed 19ed68000004400 10000002
B: REL=1040
B: ABS=100000000
B: MSC=10

I: Bus=0003 Vendor=0c45 Product=8101 Version=0101
N: Name="USB USB Device System Control"
P: Phys=usb-0000:00:14.0-2.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:0C45:8101.000E/input/input33
U: Uniq=
H: Handlers=kbd event22 
B: PROP=0
B: EV=13
B: KEY=40000000000000 0 0 0 40000010cc00 10000000000000 0
B: MSC=10

I: Bus=0003 Vendor=0c45 Product=8101 Version=0101
N: Name="USB USB Device Keyboard"
P: Phys=usb-0000:00:14.0-2.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:0C45:8101.000E/input/input34
U: Uniq=
H: Handlers=sysrq kbd leds event23 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=0c45 Product=8101 Version=0101
N: Name="USB USB Device"
P: Phys=usb-0000:00:14.0-2.4/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.1/0003:0C45:8101.000F/input/input35
U: Uniq=
H: Handlers=mouse3 event24 
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=903
B: MSC=10

I: Bus=0003 Vendor=0c45 Product=8101 Version=0101
N: Name="USB USB Device"
P: Phys=usb-0000:00:14.0-2.4/input3
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.3/0003:0C45:8101.0011/input/input36
U: Uniq=
H: Handlers=event25 js0 
B: PROP=0
B: EV=1b
B: KEY=7fff000000000000 0 0 0 0
B: ABS=1000003063f
B: MSC=10


Feature Request: Allow to modify the key-events sent by the spotlight device

Problem

Some presentation tools (like reveal.js) allow to navigate through slides in multiple directions:

  • up and down,
    • using <up> and <down> arrow keys,
  • left and right,
    • using <left> and <right> arrow keys,
  • forward and backward,
    • using <space> and <space>+<shift> keys.

As Projecteur always sends <left> and <right> keystrokes, navigating through such slides skips a lot of slides.

Solution

Expose the selected key-settings to the GUI application and allow to change that with another key-combination. (Here, it would be <space> and <space>+<shift>.)


By the way: Thanks a lot for Projecteur. It is a cool tool.

Missing Runtime Dependancies in Instructions

Trying to get this working and the projecteur binary compiles, but at runtime I get the following error:

$ ./projecteur

(projecteur:3183): Gtk-WARNING **: 11:27:01.819: Theme parsing error: gtk.css:1:8: Expected a valid selector

(projecteur:3183): Gtk-WARNING **: 11:27:01.820: Theme parsing error: gtk.css:11:2: Expected a valid selector
QQmlApplicationEngine failed to load component
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:3 module "QtGraphicalEffects" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:3 module "QtGraphicalEffects" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:3 module "QtGraphicalEffects" is not installed

zsh: segmentation fault (core dumped)  ./projecteur

Support Bluetooth

Current implementation is only tested and developed with the USB Receiver.
Todo: Support devices connected via Bluetooth.

Add spotlight shapes

Give the user the option to change the shape of the default (circle) spotlight, e.g.

  • square
  • star
  • ...

Spotlight not detected by Projecteur when connected via Bluetooth

During my test of Projecteur on the KDE Plasma desktop of Debian Buster (issue #5), I also tried to use Projecteur when Spotlight is connected via Bluetooth. Spotlight pairs without problem with my Debian laptop and is recognized as a mouse and keyboard:

$ cat /proc/bus/input/devices
[...]
I: Bus=0005 Vendor=046d Product=b503 Version=0028
N: Name="SPOTLIGHT Keyboard"
P: Phys=E4:70:B8:42:0E:E5
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B503.0003/input/input31
U: Uniq=E2:13:08:A2:CE:B1
H: Handlers=sysrq kbd event26 
B: PROP=0
B: EV=100013
B: KEY=1000000000007 ff800000000007ff febeffdfffefffff fffffffffffffffe
B: MSC=10

I: Bus=0005 Vendor=046d Product=b503 Version=0028
N: Name="SPOTLIGHT Mouse"
P: Phys=E4:70:B8:42:0E:E5
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B503.0003/input/input32
U: Uniq=E2:13:08:A2:CE:B1
H: Handlers=mouse4 event27 
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0
B: REL=143
B: MSC=10

I: Bus=0005 Vendor=046d Product=b503 Version=0028
N: Name="SPOTLIGHT Consumer Control"
P: Phys=E4:70:B8:42:0E:E5
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B503.0003/input/input33
U: Uniq=E2:13:08:A2:CE:B1
H: Handlers=kbd event28 
B: PROP=0
B: EV=1f
B: KEY=3007f 0 0 483ffff17aff32d bf54444600000000 1 130f938b17c000 677bfad9415fed 9ed68000004400 10000002
B: REL=40
B: ABS=100000000
B: MSC=10
[...]

However, the installed udev rule doesn't seem to match the connected device so that none of the input devices gets assigned to the plugdev group:

$ ls -al /dev/input
insgesamt 0
drwxr-xr-x  4 root root     780 Apr 20 18:22 .
drwxr-xr-x 19 root root    3820 Apr 20 18:22 ..
drwxr-xr-x  2 root root      60 Apr 20 18:22 by-id
drwxr-xr-x  2 root root     200 Apr 20 18:22 by-path
crw-rw----  1 root input 13, 64 Apr 20 17:38 event0
crw-rw----  1 root input 13, 65 Apr 20 17:38 event1
crw-rw----  1 root input 13, 74 Apr 20 17:38 event10
crw-rw----  1 root input 13, 75 Apr 20 17:38 event11
crw-rw----  1 root input 13, 76 Apr 20 17:38 event12
crw-rw----  1 root input 13, 77 Apr 20 17:38 event13
crw-rw----  1 root input 13, 78 Apr 20 17:38 event14
crw-rw----  1 root input 13, 79 Apr 20 17:38 event15
crw-rw----  1 root input 13, 80 Apr 20 17:38 event16
crw-rw----  1 root input 13, 81 Apr 20 17:38 event17
crw-rw----  1 root input 13, 82 Apr 20 17:38 event18
crw-rw----  1 root input 13, 83 Apr 20 17:38 event19
crw-rw----  1 root input 13, 66 Apr 20 17:38 event2
crw-rw----  1 root input 13, 84 Apr 20 17:38 event20
crw-rw----  1 root input 13, 85 Apr 20 17:38 event21
crw-rw----  1 root input 13, 86 Apr 20 17:38 event22
crw-rw----  1 root input 13, 87 Apr 20 17:38 event23
crw-rw----  1 root input 13, 88 Apr 20 17:38 event24
crw-rw----  1 root input 13, 89 Apr 20 17:38 event25
crw-rw----  1 root input 13, 90 Apr 20 17:40 event26
crw-rw----  1 root input 13, 91 Apr 20 17:40 event27
crw-rw----  1 root input 13, 92 Apr 20 17:40 event28
crw-rw----  1 root input 13, 67 Apr 20 17:38 event3
crw-rw----  1 root input 13, 68 Apr 20 17:38 event4
crw-rw----  1 root input 13, 69 Apr 20 17:38 event5
crw-rw----  1 root input 13, 70 Apr 20 17:38 event6
crw-rw----  1 root input 13, 71 Apr 20 17:38 event7
crw-rw----  1 root input 13, 72 Apr 20 17:38 event8
crw-rw----  1 root input 13, 73 Apr 20 17:38 event9
crw-rw----  1 root input 13, 63 Apr 20 17:38 mice
crw-rw----  1 root input 13, 32 Apr 20 17:38 mouse0
crw-rw----  1 root input 13, 33 Apr 20 17:38 mouse1
crw-rw----  1 root input 13, 34 Apr 20 17:38 mouse2
crw-rw----  1 root input 13, 35 Apr 20 17:38 mouse3
crw-rw----  1 root input 13, 36 Apr 20 17:40 mouse4

When Spotlight is connected using the unifying receiver, 4 device files get associated to the plugdev group:

$ ls -al /dev/input
insgesamt 0
drwxr-xr-x  4 root root        880 Apr 20 18:26 .
drwxr-xr-x 20 root root       3900 Apr 20 18:26 ..
drwxr-xr-x  2 root root        140 Apr 20 18:26 by-id
drwxr-xr-x  2 root root        280 Apr 20 18:26 by-path
crw-rw----  1 root input   13,  64 Apr 20 17:38 event0
crw-rw----  1 root input   13,  65 Apr 20 17:38 event1
crw-rw----  1 root input   13,  74 Apr 20 17:38 event10
crw-rw----  1 root input   13,  75 Apr 20 17:38 event11
crw-rw----  1 root input   13,  76 Apr 20 17:38 event12
crw-rw----  1 root input   13,  77 Apr 20 17:38 event13
crw-rw----  1 root input   13,  78 Apr 20 17:38 event14
crw-rw----  1 root input   13,  79 Apr 20 17:38 event15
crw-rw----  1 root input   13,  80 Apr 20 17:38 event16
crw-rw----  1 root input   13,  81 Apr 20 17:38 event17
crw-rw----  1 root input   13,  82 Apr 20 17:38 event18
crw-rw----  1 root input   13,  83 Apr 20 17:38 event19
crw-rw----  1 root input   13,  66 Apr 20 17:38 event2
crw-rw----  1 root input   13,  84 Apr 20 17:38 event20
crw-rw----  1 root input   13,  85 Apr 20 17:38 event21
crw-rw----  1 root input   13,  86 Apr 20 17:38 event22
crw-rw----  1 root input   13,  87 Apr 20 17:38 event23
crw-rw----  1 root input   13,  88 Apr 20 17:38 event24
crw-rw----  1 root input   13,  89 Apr 20 17:38 event25
crw-rw----  1 root plugdev 13, 256 Apr 20 18:26 event256
crw-rw----  1 root input   13,  90 Apr 20 17:40 event26
crw-rw----  1 root input   13,  91 Apr 20 17:40 event27
crw-rw----  1 root input   13,  92 Apr 20 17:40 event28
crw-rw----  1 root plugdev 13,  93 Apr 20 18:26 event29
crw-rw----  1 root input   13,  67 Apr 20 17:38 event3
crw-rw----  1 root plugdev 13,  94 Apr 20 18:26 event30
crw-rw----  1 root plugdev 13,  95 Apr 20 18:26 event31
crw-rw----  1 root input   13,  68 Apr 20 17:38 event4
crw-rw----  1 root input   13,  69 Apr 20 17:38 event5
crw-rw----  1 root input   13,  70 Apr 20 17:38 event6
crw-rw----  1 root input   13,  71 Apr 20 17:38 event7
crw-rw----  1 root input   13,  72 Apr 20 17:38 event8
crw-rw----  1 root input   13,  73 Apr 20 17:38 event9
crw-rw----  1 root input   13,  63 Apr 20 17:38 mice
crw-rw----  1 root input   13,  32 Apr 20 17:38 mouse0
crw-rw----  1 root input   13,  33 Apr 20 17:38 mouse1
crw-rw----  1 root input   13,  34 Apr 20 17:38 mouse2
crw-rw----  1 root input   13,  35 Apr 20 17:38 mouse3
crw-rw----  1 root input   13,  36 Apr 20 17:40 mouse4
crw-rw----  1 root plugdev 13,  37 Apr 20 18:26 mouse5

I tried it both with the provided udev rules files and a slightly modified one:

$ cat /etc/udev/rules.d/55-spotlight.rules        
# Set up permissions for non root users to open the Logitech Spotlight USB Receiver
# Enables the Projecteur application to access the device.

# Copy this file to /etc/udev/rules.d/55-spotlight.rules and update the 'plugdev' group in the
# file to a group you are a member in. (plugdev exists on Ubuntu, other distributions have
# other groups)
# Run `sudo udevadm control --reload-rules` and `sudo udevadm trigger`
# to load rules without rebooting.

# Note that for kernels before 2.6.24, you will need to substitute "usb" with "usb_device".

# Rule for USB Receiver
SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c53e", MODE="660", GROUP="plugdev", ENV{USB_HUB_TYPE}="046d:c53e"

# Rule when connected via Bluetooth
#SUBSYSTEMS=="input", ATTRS{name}=="SPOTLIGHT", MODE="660", GROUP="plugdev"
SUBSYSTEMS=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="b503", MODE="660", GROUP="plugdev"

Spotlight does not stick the the cursor

OS: Debian 9.9 with gnome 3.22.3-3

When I hold upper button down, the spotlight appears. Unfortunatly, when moving the presenter, the spotlight barely moves and after some centimeters it just stops. The cursor appears and can be moves just as normal.
My self-compiled version 0.4 worked as expected.

Can you help? :/

Edit: I just tested version 0.4 again and it still works fine. When I compile 0.5 locally, the issue still persists.

circle_does_not_stick

Device ID for smartphone gyroscope/mouse emulators

Hi,

afais changing the device ID should be doable by changing the ID string, or?

I just thought about, if one could use Projecteur in connection with a smartphone.

There seem to be a number of mouse emulators for Android out there, translating gyroscope data into mouse movements.
On a quick search, most apps seem to be closed source and rely on client/server approach via Wifi. But I have not given up to find something Bluetooth based (if a phone could be paired on a Bluetooth input device profile without rooting...)

Feature: RHEL8 RPM Build

I was able to compile projecteur on RHEL8 and it seems to be working. I had to install a few QT libraries, but it works. There was a bit of ham fisted grasping at QT packages, but I could probably produce a list of required RPM's if someone wanted to undertake the effort.

Cannot compile: error: ‘class QWindow’ has no member named ‘setFlag’

Many thanks for bringing Spotlight support to Linux. I am certain that this didactic tool will help my students to better understand my lectures!!!

Sadly so far when trying to compile I get the following error output:

/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate expects 1 argument, 2 provided /home/jfk/Software/Projecteur/projecteurapp.cc:84:11: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowTransparentForInput, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:85:11: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::Tool, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc: In lambda function: /home/jfk/Software/Projecteur/projecteurapp.cc:102:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowTransparentForInput, false); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:103:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowStaysOnTopHint, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:110:17: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowStaysOnTopHint, false); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:114:17: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowTransparentForInput, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc: In lambda function: /home/jfk/Software/Projecteur/projecteurapp.cc:125:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowTransparentForInput, false); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:126:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowStaysOnTopHint, false); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:133:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowStaysOnTopHint, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc:136:15: error: ‘class QWindow’ has no member named ‘setFlag’ window->setFlag(Qt::WindowTransparentForInput, true); ^ /home/jfk/Software/Projecteur/projecteurapp.cc: In constructor ‘ProjecteurCommandClientApp::ProjecteurCommandClientApp(const QString&, int&, char**)’: /home/jfk/Software/Projecteur/projecteurapp.cc:238:24: error: ‘QOverload’ was not declared in this scope connect(localSocket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error), ^ /home/jfk/Software/Projecteur/projecteurapp.cc:238:64: error: expected primary-expression before ‘>’ token connect(localSocket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error), ^ /home/jfk/Software/Projecteur/projecteurapp.cc:238:65: error: ‘::of’ has not been declared connect(localSocket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error), ^ CMakeFiles/projecteur.dir/build.make:150: die Regel für Ziel „CMakeFiles/projecteur.dir/projecteurapp.cc.o“ scheiterte make[2]: *** [CMakeFiles/projecteur.dir/projecteurapp.cc.o] Fehler 1 CMakeFiles/Makefile2:72: die Regel für Ziel „CMakeFiles/projecteur.dir/all“ scheiterte make[1]: *** [CMakeFiles/projecteur.dir/all] Fehler 2 Makefile:83: die Regel für Ziel „all“ scheiterte make: *** [all] Fehler 2

Some system info:

$ uname -a Linux jfk 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial

Compiler and Qt:
$ QTDIR=/opt/Qt/5.12.3/gcc_64 /opt/cmake-3.14.1-Linux-x86_64/bin/cmake ..

Window manager is xfce4 with openbox.

Logitech Presentation features

This issues is meant to document the features offered by the official Logitech application.

Screenshots captured of Logitech Presentation version 1.54.24 on Windows.

Main window

2019-04-19_17-17-05

2019-04-19_12-57-27

Text changes when several pointers options are activated at the same time:
2019-04-19_16-47-12

2019-04-19_16-54-17

Timer window

2019-04-19_16-41-28

2019-04-19_16-42-00

2019-04-19_16-43-45

Timer subwindow

2019-04-19_16-43-04

Pointer window

2019-04-19_16-44-51

Pointer subwindows

2019-04-19_16-45-41

2019-04-19_16-48-33

2019-04-19_16-49-11

Hold Next window

2019-04-19_16-50-20

2019-04-19_16-51-12

Hold Back window

2019-04-19_16-53-23

More settings window

2019-04-19_16-54-41

2019-04-19_16-54-46

2019-04-19_16-54-52

2019-04-19_16-54-57

Opaque black screen using rpm installs on OpenSUSE 15.1 KDE [solved]

Hi,

I was encouraged to buy this tool as a colleague who uses OpenSUSE Leap (Gnome I think) said he got his working after using projeceur and talking with you. Thanks for your solution.

I have quickly used both your stable (0.5) and alpha latest (0.6) rpm builds on my Dell Precision 5530 with openSUSE Leap 15.1, KDE 5, not wayland (way too much trouble ;0), plasma 5.12.8. QT 4.8.7. I have tested against the Intel driver (non accelerated setup) and the NVIDIA setup (accelerated).

The results are consistent: It will not start under standard user (reports app already running). When running under root (sudo) the desktop tray app starts only when used the screen becomes black opaque when the spotlight is used (dark black for whole screen except the lighter grey opaque spotlight circle if I set it's colour to lighter than black).

In debugging I see that I have no group names "spotlight-xxx" at all after zypper in of rpm. Which seems odd and I assume connected.
I also saw a lot of these type of messages in journalctl:
qt.qpa.xcb: QXcbConnection: XCB error: 2 (BadValue), sequence: 14344, resource id: 58720261, major code: 142 (Unknown), minor code: 3

I'll happily try to build this from the git repo now, just wanted you to be aware of the issue I saw.

KDE Plasma support

Thank you for developing this! I am trying to get Spotlight working in Manjaro Linux. I followed the steps to build and install it without any problem. However, the application does not show up in the system tray. Any suggestions?

No spotlight shown after switching application to fullscreen

Description
No spotlight shown when switching application to fullscreen. Restart of projeceur necessary after switch to fullscreen

To Reproduce
Steps to reproduce the behavior:

  1. Start projecteur
  2. open browser non-fullscreen
  3. use spotlight successfully
  4. switch to fullscreen
  5. Unexpected: spotlight acts as pointer (i.e. mouse) not as spotlight
  6. restart projecteur
  7. spotlight acts as expected (also in fullscreen)
  8. goto 2

Expected behavior
No change when switching application to fullscreen

Desktop/Linux Environment (please complete the following information):

  • Linux Distribution and Version: Debian testing/bulleseye
  • Desktop/Window Manager and Version EXWM on gnome-flashback with xcmpmgr
  • Qt Version:qt5.12.5
  • Did you built Projecteur yourself?:y
  • What is the output of projecteur -f:

Projecteur 0.6-alpha.70

  • git-branch: develop
  • git-hash: b137770
  • compiler: GNU 9.2.1
  • Qt-version: build: 5.12.5, runtime: 5.12.5

Update the zoom regularly

When user is using zoom spotlight and he switches window using Alt+TAB, the zoom from the last screen is shown even if the screen has changed.

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.