Hide mouse pointer on Chromium kiosk - pointers

Web application with xHTML UI is shown on self-service kiosk, using Chromium in fullscreen kiosk mode. As the kiosk display is intended only for visual feedback, there is no mouse/touchscreen connected.
While it's very easy to hide the mouse pointer via the CSS:
html { cursor: none; }
This approach has one essential problem - user MUST move mouse at least few pixels for pointer to disappear. As I mentioned above, this kiosk has no input methods, and, as a result, after UI is loaded, cursor is still visible right in the middle of screen for rest of the time.
I know that it's possible to simply set transparent cursor in OS options, but unfortunately few of these kiosks has already been shipped to clients, so we can only change the displayed HTML/CSS/JS content remotely, not access and configure the underlying OS itself.
Also I googled around and it seems that there is no way to move the mouse via the jQuery. Can anyone suggest how to deal with this problem?

You cant do this only via browser && CSS/JS (belive me, i tried).
For me solution was to install unclutter on the client:
sudo apt-get install unclutter
And turn cursor off, by adding to autostart
nano ~/.config/lxsession/LXDE/autostart
line:
#unclutter -idle 0.1
It will make your coursor disappear after not moving for 0.1s, so if you want to use mouse - you still can.

For those searching for a SO level solution:
I suggest using nano, so on terminal type sudo nano /etc/lightdm/lightdm.conf to edit this file and add this line below:
xserver-command=X -nocursor
Important: You must add this line after [Seat*] declaration.
Solution used in Raspbian linux distribution.

Related

Awesome WM wonky multi-monitor setup

I have a 3-monitor setup, except that 1 of my monitors is attached to a KVM switch that I switch between my computers. It seems like when Awesome WM starts up without the 3rd monitor accessible to it, it refuses to recognize it from that point on until the next reboot (simply restarting Awesome WM doesn't work).
The odd thing is, xrandr is aware of the monitor, and I can even see my mouse pointer appear there when I move it into the 3rd monitor, but the rest of it is black. Dragging windows there makes them disappear and Awesome WM does not render anything on this screen until the reboot.
I'm assuming this has something to do with how Awesome recomputes the screen geometry available to it but I'm not sure how to force it to recompute it? I've already enabled both secondary monitors via a couple bash commands I use:
xrandr --output DP-2-2 --auto --right-of eDP-1
xrandr --output DP-2-1 --auto --right-of DP-2-2
When I run xrandr --current, it claims all 3 monitors are connected and shows correct resolution for each. I did some searching, but there isn't much help on this issue, I believe it's a similar issue to the one reported here: https://www.reddit.com/r/awesomewm/comments/6rhvp9/switching_monitor_setups
How do I get Awesome to redraw into the 3rd monitor and use it correctly? Also, how can I get Awesome to dynamically handle addition/removal of monitors (this is a laptop connected to a docking station)? I tried screenful, but that repo seems out of date and seems to do more harm than good for me, with monitor flickering if I start with multiple and then unplug from docking station.
If you have a compositor like compton running, try restarting it after turning on the screen with (x|a)randr and optionally refreshing awesome.

Is there a way to disable virtual keyboard in JavaFX for ARM?

I'm using ARM build of JavaFX from Gluon on my Raspberry Pi. It has Virtual Keyboard enabled, so every time I touch an input field -- the keyboard pops up. Is there a way to disable it? I've tried using -Dcom.sun.javafx.isEmbedded=false -Dcom.sun.javafx.touch=false -Dcom.sun.javafx.virtualKeyboard=none but that has no effect.
I need to do this to replace the default VK with a custom one, that supports different layouts and locales (and looks better, tbh). Right now both of them pop up, overlapping each other.
With JavaFX 11 -Dcom.sun.javafx.virtualKeyboard="none" works for Gluon builds. For JavaFX8 I haven't found a solution at the time except rebuilding from source.

Keep QDialog on top of everything, even fullscreen applications?

On a project I work on, using Python3 + PySide, I try to print a popup-message as some sort of notification.
This popup needs to be on top of everything, this includes fullscreen applications like games or browsers. And that's the point that does not work. It works fine for all windows on my Desktop, normal windows, maximized, but as soon as there is a fullscreen application or a borderless window ("pseudo fullscreen") the popup is created, but "behind" the fullscreen app.
I already use self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint) but this flag does get ignored by other fullscreen apps.
How do I fix this? Also without giving focus to the popup.
It is just there to present information, and it is not good when your window looses focus while playing a game.
My code can be found here: https://github.com/GosuSan/PyECM
additional Info:
- my project aims to be cross-platform, so I need a platform-independend solution
- I am running linux, without having a windows machine atm,
so I can't test stuff there.
If you need any more info, let me know!
Edit:
It seems that PySide.QtGui.QSystemTrayIcon.showMessage does what I want, it works on fullscreen as well as on borderless-windows. So I will try to either find out how those messages are displayed on top, or just use them, not sure for now.

WatchKit Menu Items Not Displaying

I'm in Xcode 6.2 Beta 3 (Build 6C101), I've added a menu and two menu items to my Interface Controller, and created IBActions for both. I've given them titles and images, but when I run the app nothing displays.
I've read
https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/Menus.html
and can't see anything about need to show menu items programatically - what am I missing?
You do not need to present the menu programmatically. The only thing you need to do is wire each button to IBActions in your Watch app extension.
The most likely issue is caching of the previous Watch app storyboard. Do a clean build and try again.
Finally, as you likely know WatchKit menus only display on a "force press". They cannot be used for the main interface of the Watch app. In the Simulator, a click and hold with the mouse will simulate a force press, and the animation will make it clear when you have done one, even in contexts where it doesn't do anything.
This was solution for me- Go to Hardware->Touch Pressure->Deep Press then try tap on watch simulator.
I have recently encountered this issue on a real device, although the menu was working as expected on the watch simulator. In my case, the problem was in SF Symbol that I've used as an image.
Everything was fixed after replacing it with an image from the assets catalogue.

clicking or scrolling on terminal outputs text

this is driving me crazy. Everytime I click on the terminal, I get text output but the click does not happen. I can't select anything, scroll on the terminal or perform any mouse operations.
For example, if I click I get things like "TB#TB", which is "TB" when I click and "#TB" when I release the click. If I scroll I get 'UC'` for every scroll of the wheel. Total rubbish.
I'm using cygwin to connect to a redhat machine and it happens only for this one machine. If I connect to a different one, also running redhat, it doesn't happen, so I think the issue is on the remote machine's side. It's also independent of what shell I'm using.
Any ideas?
EDIT: I discovered that pressing shift returns all the usual mouse functionality. I wonder why.
This is more like a "come down to your machine and solve problem"
You must have save default setting for that particular machine to direct it to shift option. As you said shift solves the problem.
You should reset the settings.
go here.
Putty configuration>windows>selection>click on shift overrides application's use of mouse
hope this helps

Resources