3
3
develop: [ ![ Build Status develop] ( https://travis-ci.org/jahnf/Projecteur.svg?branch=develop )] ( https://travis-ci.org/jahnf/Projecteur )
4
4
master: [ ![ Build Status master] ( https://travis-ci.org/jahnf/Projecteur.svg?branch=master )] ( https://travis-ci.org/jahnf/Projecteur )
5
5
6
- Linux/X11 application for the Logitech Spotlight device.
6
+ Linux/X11 application for the Logitech Spotlight device. \
7
+ See [ Download] ( #download ) section for binary packages.
7
8
8
9
Copyright 2018-2019
[ Jahn Fuchs
] ( mailto:[email protected] )
9
10
10
11
## Motivation
11
12
12
13
I saw the Logitech Spotlight device in action at a conference and liked it
13
- immediately. Unfortenately as in a lot of cases software is only provided for Windows
14
+ immediately. Unfortunately as in a lot of cases software is only provided for Windows
14
15
and Mac. The device itself works just fine on Linux, but the cool spot feature
15
16
is done by additional software.
16
17
17
18
So here it is: a Linux application for the Logitech Spotlight.
18
19
19
20
## Features
20
21
21
- * Configurable desktop spotlight. Configure color, opacity, cursor, center dot.
22
+ * Configurable desktop spotlight. Configure color, opacity, cursor, center dot and shape .
22
23
* Multiple screen support
23
24
24
25
![ Settings] ( ./doc/screenshot-settings.png )
@@ -38,24 +39,41 @@ The mouse input device sends relative cursor coordinates and left button presses
38
39
The keyboard device basically just sends left and right arrow key events when
39
40
forward or back on the device is pressed.
40
41
41
- The dectected mouse input device is what we are interested in. Since it's
42
+ The detected mouse input device is what we are interested in. Since it's
42
43
already detected as a mouse input device and able to move the cursor, we will
43
44
simply detect if it is the Spotlight device which is sending mouse events.
44
45
If it is sending mouse events, we will 'turn on' the desktop spot.
45
46
46
47
For more details: Have a look at the source code ;)
47
48
49
+ ## Download
50
+
51
+ The latest automatically built binary packages for some Linux distributions
52
+ can be downloaded from bintray:
53
+
54
+ Make sure to add the user running the application to the ` spotlight-device ` group
55
+ after package installation. This group is created during installation of the binary packages.
56
+ _ Note_ : When adding your user to a new group you will need to login and logout again
57
+ for the change to take full effect.
58
+
59
+ Latest develop:
60
+ [ ![ Download] ( https://api.bintray.com/packages/jahnf/Projecteur/projecteur-develop/images/download.svg ) ] ( https://bintray.com/jahnf/Projecteur/projecteur-develop/_latestVersion#files )
61
+
62
+ Latest release:
63
+ [ ![ Download] ( https://api.bintray.com/packages/jahnf/Projecteur/projecteur-master/images/download.svg ) ] ( https://bintray.com/jahnf/Projecteur/projecteur-master/_latestVersion#files )
64
+
48
65
## Building
49
66
50
67
### Requirements
51
68
52
69
* C++11 compiler
53
70
* CMake 3.6 or later
54
- * Qt 5.9 and later
71
+ * Qt 5.6 and later
55
72
56
73
### Build Example
57
74
58
- Note: You can ommit setting the ` QTDIR ` variable, CMake will then usually find the Qt versin that comes with the distribution's packacke management.
75
+ Note: You can omit setting the ` QTDIR ` variable, CMake will then usually find
76
+ the Qt version that comes with the distribution's package management.
59
77
60
78
> git clone https://github.com/jahnf/projecteur
61
79
> cd projecteur
@@ -67,18 +85,87 @@ Note: You can ommit setting the `QTDIR` variable, CMake will then usually find t
67
85
68
86
### Pre-requisites
69
87
88
+ #### When using pre-built binary packages
89
+
90
+ Make sure to add the user running the application to the ` spotlight-device ` group
91
+ after package installation. This group is created during installation of the binary packages. \
92
+ _ Note_ : When adding your user to a new group you will need to login and logout again
93
+ for the change to take full effect.
94
+
95
+ #### When building Projecteur yourself
96
+
70
97
The input devices detected from the Spotlight device must be readable to the
71
98
user running the application. To make this easier there is a udev rule template
72
- file in this repository: ` 55-spotlight.rules `
99
+ file in this repository: ` 55-spotlight.rules.in `
73
100
74
- * Copy this file to /etc/udev/rules.d/55-spotlight.rules and update the
75
- 'plugdev' group in the file to a group you are a member in
101
+ * Copy that file to ` /etc/udev/rules.d/55-spotlight.rules ` and replace the
102
+ '@DEVICE_USER_GROUP@' in the file with a group your user is a member in
76
103
* Run ` sudo udevadm control --reload-rules ` and ` sudo udevadm trigger ` to load
77
104
the rules without a reboot.
78
105
* After that the two input devices from the Logitech USB Receiver in /dev/input
79
- should have the group 'plugdev', i.e. the group you configure in the rules file.
106
+ should have the group you used, i.e. the group you configured in the rules file.
107
+ * When building against the Qt version that comes with your distribution's packages
108
+ you might need to install some additional QML module packages. For example this
109
+ is the case for Ubuntu, where you need to install the packages
110
+ ` qml-module-qtgraphicaleffrects ` , ` qml-module-qtquick-window2 ` and ` qml-modules-qtquick2 `
111
+ to satisfy the application's runtime dependencies.
80
112
81
113
### Application Menu
82
114
83
115
The application menu is accessable via the system tray icon. There you will find
84
116
the preferences and the menu entry to exit the application.
117
+
118
+ ### Command Line Interface
119
+
120
+ Additional to the standard ` --help ` and ` --version ` options, there is an option to send
121
+ commands to a running instance of _ Projecteur_ .
122
+
123
+ ```
124
+ Usage: projecteur [option]
125
+
126
+ <Options>
127
+ -h, --help Show command line usage.
128
+ -v, --version Print application version.
129
+ -c COMMAND Send command to a running instance.
130
+
131
+ <Commands>
132
+ spot=[on|off] Turn spotlight on/off.
133
+ settings=[show|hide] Show/hide preferences dialog.
134
+ quit Quit the running instance.
135
+ ```
136
+
137
+ ### Troubleshooting
138
+
139
+ #### Missing System Tray
140
+
141
+ _ Projecteur_ was developed and tested on GNOME and KDE Desktop environments, but should
142
+ work on most other desktop environments. If the system tray with the _ Application Menu_
143
+ is not showing, commands can be send to the application to bring up the preferences
144
+ dialog, to test the spotlight or quit the application.
145
+ See [ Command Line Interface] ( #command-line-interface ) .
146
+
147
+ #### Wayland
148
+
149
+ While not developed with Wayland in mind, some users reported _ Projecteur_ works with
150
+ Wayland. If you experience problems, you can try to set the ` QT_QPA_PLATFORM ` environment
151
+ variable to ` wayland ` :
152
+
153
+ ```
154
+ user@ubuntu1904:~/Projecteur/build$ QT_QPA_PLATFORM=wayland ./projecteur
155
+ Using Wayland-EGL
156
+ ```
157
+
158
+ #### Device shows as not connected
159
+
160
+ If the device shows as not connected, there are some things you can do:
161
+
162
+ * Make sure the device is detected by the Linux system: Run
163
+ ` cat /proc/bus/input/devices | grep -A 3 "Vendor=046d" ` \
164
+ This should show one or multiple spotlight devices (among other Logitech devices)
165
+ * Make sure the detected devices have the correct user/group asssigned. \
166
+ Run ` ls -al /dev/input/event* | grep spotlight `
167
+ (or replace ` spotlight ` by a string that matches the group you put into the
168
+ udev rule file in case you edited it yourself). \
169
+ * Make sure you don't have conflicting udev rules installed, e.g. first you installed
170
+ the udev rule yourself and later you used the automatically built Linux packages to
171
+ install _ Projecteur_ .
0 commit comments