likethemammal / daisywheeljs Goto Github PK
View Code? Open in Web Editor NEWThe Steam "Big Picture" Daisywheel ported to JS and CSS. Supports Gamepad API.
Home Page: https://likethemammal.github.io/daisywheeljs/
License: MIT License
The Steam "Big Picture" Daisywheel ported to JS and CSS. Supports Gamepad API.
Home Page: https://likethemammal.github.io/daisywheeljs/
License: MIT License
Is there full xbox one controller support? Switching between caps and numbers isn't properly registering
LT switches letters to numbers, and RT is supposed to switch lowercase to uppercase.
What I see is no reaction to RT whatsoever. Is there a way to check for if RT is registered at all?
Katakana:
["ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヰ", "ヱ", "ヲ", "ン", "ッ", "ヽ", "゛", "゜"]
Hirigana:
["あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "ゐ", "ゑ", "を", "ん", "っ", "ゝ", "゛", "゜"]
As a side note, each would require 13 petals, including the diacritics, assuming a single layer (like is used for the capital letters of Latin scripts, with the trigger button switching layers). I wonder what Japanese users would actually want. Since there are five vowels, it doesn't map nicely to the four buttons. Would using a chord of buttons, like X+A, or a shoulder/trigger button, for an extra letter-entering key, make it more natural? That way each petal could represent a consonant. Anyways, just food for thought.
What would I need to make it work as an onscreen keyboard generally?
The triggers seem to require that the analog be held to work.
daisywheeljs.org 404's now.
Right now, the triggers toggle their actions. It should be that their actions only switch when the trigger is held.
There should be sound effects for each action the daisywheel makes. Moving the analog. Selecting a symbol. Space. Backspace. Arrow keys. etc.
When a petal it should scale to show it's selection and to should its letters easier.
If the user types out a long string of text, they can navigate back to edit other parts of the text but the input's focus will stay where it originally was. The focus of the input needs to change as the cursor pushs the edge of the field, either left or right.
For UX purposes, the LS letters and symbol should be visible in the middle of the wheel, the entire time.
This UI seems very nice, but I can barely type with this. I have to really peck at the keys quickly.
And once I had typed something and tried to backspace a letter, I backspaced everything I typed. And there's no undo to get it back.
Add the UMD to the library so it works out of the box, where ever its being used. Here: https://github.com/umdjs/umd/blob/master/returnExports.js
use ds4drv with Linux
ran into an issue with Ubuntu
chrippa/ds4drv#66 (comment)
This question on Stackoverflow mentions a use case where the user might want to cycle through available inputs.
This could be accomplished a few different ways.
daisywheel
and cycle through them intentionally.Either way there needs to be a new control for triggering the cycle. No idea what gamepad button that should be tho. There also might need to be a new UI element to show the cyclable inputs.
For some reason, the button numbers are firing twice on windows. May be because XInput is registering the gamepad twice. Once as a usb, and once as a blutooth.
When clicking with the mouse, the text in the main input can't be selected.
When using the controller the cursor isn't visible unless you click the input element directly. This includes when using the dpad and the backspace and space functionality.
The error handling for the gamepad api and the daisywheel itself is lacking. It would really help to be able to see whats going on. Maybe even add in a debug mode.
The font quality degrades at certain screen sizes, based on the scale of the flower. There might be some css optimizations that can be made. It could also be improved by giving the text their own rendering context layer. Not sure on that last one, but it might help.
On Chrome, the petal selector will default to the top petal. But the petal won't actually be 'selected' so the buttons won't fire to select any of the symbols.
Right now flux
is stored on the window. This includes all it's actions too. flux
should be passed around more efficiently than this, and it should be taken off the window object.
Is there a need for dismiss and confirm buttons? Because there is always an input field visible, there isn't any reason for an actual dismiss/close and confirm/send button. Is there a use case for this feature? Could it just be an option?
I have two controllers plugged in:
Neither are recognized by the demo site (saying "Connect a gamepad to use the Daisywheel"). The console shows no errors, aside this deprecation warning:
[Deprecation] GainNode.gain.value setter smoothing is deprecated and will be removed in M64, around January 2018. Please use setTargetAtTime() instead if smoothing is needed. See https://www.chromestatus.com/features/5287995770929152 for more details.
http://html5gamepad.com/ finds and reads them correctly, showing
I tried daisywheel.js on my Xbox One controller, and it worked fine. However, I tried it on my Nintendo Switch wired controller, and it produced weird results:
This is likely due to different mappings from physical buttons to button IDs.
Adding a copy to clipboard option to one of the controller controls would help make the library more portable. This would also mean it could be packaged up as a chrome web app and provided as a utility. Just a thought..
Troubleshooting section should explain how to connect common gamepads to different OS's. Heres some current notes. Make this a table
Windows 8/8.1:
XBOX 360 - Should just work. LINK TO DRIVERS
Chrome:
Dualshock - Mention and link to XInput. Link to getting blutooth to work. Also mention MotionJoy. (Worked, blutooth was a little slow)
Linux:
XBOX 360 - LINK TO: Program that runs the xbox 360 controller emulator.
PS3 - Link to page explaining how to run ps3 controller.
Sixaxis/DualShock - Can act strange, may need to be mapped correctly. And may cause the interface to spasm. (Different behavior for firefox and chrome) (https://help.ubuntu.com/community/Sixaxis) Could be the program itself.
Chrome OS:
XBOX 360 - TBA
PS3 - Maybe through blutooth.
OUYA - Maybe trough blutooth.
OSX:
TBA
Also try to get Steam Controller support.
Mentions:
Might need to restart browser completely for it to recognize the gamepad.
Need to press a button for the browser to be able to recognize the gamepad.
On large resolutions font will randomly change sizes slightly. This may be solvable through the use of rems.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.