likethemammal / daisywheeljs

The Steam "Big Picture" Daisywheel ported to JS and CSS. Supports Gamepad API.
https://likethemammal.github.io/daisywheeljs/
MIT License
87 stars 8 forks source link

Using outside of a browser? #22

Open RomajiQuadhash opened 7 years ago

RomajiQuadhash commented 7 years ago

What would I need to make it work as an onscreen keyboard generally?

likethemammal commented 7 years ago

I've thought about this for a while, but havent actually dove into any solution. I believe using Electron, with a transparent background window, you'd be able to get a similar effect to how the library works in the browser. Electron has functionality to hide and show from the system tray, but I'm unsure about hooking into the system's keyboard or triggering keyboard strokes.

RomajiQuadhash commented 7 years ago

How do you get that to work?

On Feb 25, 2017 16:09, "Chris Dolphin" notifications@github.com wrote:

I've thought about this for a while, but havent actually dove into any solution. I believe using Electron, with a transparent background window, you'd be able to get a similar effect to how the library works in the browser. Electron has functionality to hide and show from the system tray, but I'm unsure about hooking into the system's keyboard or triggering keyboard strokes.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/likethemammal/daisywheeljs/issues/22#issuecomment-282512607, or mute the thread https://github.com/notifications/unsubscribe-auth/AO96OtnJXdazdceOl6kr7d_mPgFJyJGDks5rgJiUgaJpZM4MLt_H .

likethemammal commented 7 years ago

I haven't actually done any work on this specific issue, so I have limited knowledge. Electron is Github's library for rendering web technology at the system level. Heres the documention for a 'frameless-window' https://github.com/electron/electron/blob/master/docs/api/frameless-window.md

RomajiQuadhash commented 7 years ago

... How would that help?

On Feb 26, 2017 00:41, "Chris Dolphin" notifications@github.com wrote:

I haven't actually done any work on this specific issue, so I have limited knowledge. Electron http://electron.atom.io/ is Github's library for rendering web technology at the system level. Heres the documention for a 'frameless-window' https://github.com/electron/ electron/blob/master/docs/api/frameless-window.md

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/likethemammal/daisywheeljs/issues/22#issuecomment-282534742, or mute the thread https://github.com/notifications/unsubscribe-auth/AO96Osk4UI8ivIzIpg-Z7jYeU-_Zp3kxks5rgRCcgaJpZM4MLt_H .

likethemammal commented 7 years ago

What are you trying to do exactly? I was under the assumption you wanted to use this as a keyboard replacement for your system in general

RomajiQuadhash commented 7 years ago

That is what I want. Why would the important part be a borderless window? I would more need to know how to make it type into a feild, rather than into the box on the web page

On Feb 28, 2017 16:40, "Chris Dolphin" notifications@github.com wrote:

What are you trying to do exactly? I was under the assumption you wanted to use this as a keyboard replacement for your system in general

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/likethemammal/daisywheeljs/issues/22#issuecomment-283168461, or mute the thread https://github.com/notifications/unsubscribe-auth/AO96OsXqA2qDi9LRtE1ml6nWMWputFyIks5rhJRcgaJpZM4MLt_H .

likethemammal commented 7 years ago

Listening for system-wide field Focus and Blur events is probably OS specific. Otherwise, its up to the executable program's developer and what framework they're using. So Idk how you'd go about showing the daisywheel onFocus of an input system-wide.

Other than the Focus event issue, I'm sure theres a way to fake keyboard events. Again depending on OS. But I think Electron, and most of the web-to-native hybrids, have some way of adding stuff to an input field's value, or faking system keyboard events to "type" into the field.

This is a priority for the project, but the feasibility makes it hard to work on