Giter Site home page Giter Site logo

verbose-void / chrome-controller Goto Github PK

View Code? Open in Web Editor NEW
16.0 3.0 3.0 3.82 MB

ATTENTION: Chrome Controller has unfortunately been removed from the webstore and will no longer be maintained. It's been a good run! </3

License: Creative Commons Zero v1.0 Universal

JavaScript 30.83% CSS 39.85% HTML 27.73% Ruby 1.58%
chrome-extension gamepad-api gamepad-support gamepad-inputs javascript

chrome-controller's Introduction

Build and deploy Jekyll site to GitHub Pages

Chrome Controller (Browser Extension)

If you enjoy the extension, consider becoming a patron or buying me a coffee :)

My name is Dyllan McCreary and I'm the original developer of Chrome Controller. It started as a fun high school project to let me relax even harder while on my computer all day. From my bed! Now it's gained some traction and I've hired another engineer to take care of the project. Currently it's very buggy and in beta, but this month (July 2020) I'm shooting for an official version 1 release with more stability & performance + features!

But it's very expensive to maintain a project like this. With artwork, maintenance, hosting, etc. So I'm asking for your help. :)

What is Chrome Controller?

  • Equipped with a secondary mouse cursor for your controller and on screen keyboard, you can browse in leisure from a distance! Supports any Gamepad API compatible controller via bluetooth & wired connections. Supported controllers include but are not limited to: Xbox 360/1 and PlayStation 3/4.
  • Just connect to your computer via Bluetooth (or wired if you have the USB connector), add the extension to chrome, and browse away!

Download from the Google Web Store here!

Note: Chrome Controller is currently in beta. Version 1 official release is scheduled for July 2020 with tons of bug fixes, performance increase, and hopefully new features! Please report any issues by email to [email protected]

Not sure if your controller will work?

Controller Setup:

  • All you have to do is plug your controller in via USB to where your computer can recognize it, and install Chrome Controller!
  • The rest gets taken care of by Chrome Controller!

Bluetooth Controller Setup Instructions:

Artwork

Promo Video

Developers:

This is the front-end repository. If you would like to make contributions to our backend, please reach out to [email protected].

Setting up your development environment:

  1. Clone this repository.
  2. Make sure you have Google Chrome installed.
  3. In the google chrome address bar, type chrome://extensions. In the top left corner, click load unpacked. This will ask for a folder, navigate to where you cloned the repository.
  4. Bang! You now can reload your webpages and make source code modifications.
  5. Deploying your build can be done by zipping up the contents of your source code version and creating a pull request with that zip file as an attachment. Make sure you update the manifest.json with an updated version number.

chrome-controller's People

Contributors

verbose-void avatar tristan-kenneth-tarpley avatar dependabot[bot] avatar

Stargazers

Chris Varenhorst avatar Jikku Jose avatar  avatar  avatar Anthony Cossins avatar  avatar Akil M Hylton  avatar kaungmyat.mindfulness avatar Bin avatar  avatar eg avatar Ethan Sherbondy avatar Roque avatar SurReality45 avatar  avatar  avatar

Watchers

 avatar  avatar SurReality45 avatar

chrome-controller's Issues

Button maps no longer function

Various button mappings such as the click map have stopped functioning at some point; I have been unsuccessful in attempting to make them work. Looking at the support tab in the Chrome store, this appears to be a widespread and longstanding issue with the extension. Scrolling and movement using the controller sticks still works, so I doubt this is an issue regarding the connection between the gamepad and the browser.

Debug Information

Gamepad Information

Hardware Version
Gamepad Xbox 360 Controller (XInput STANDARD GAMEPAD)

Browser Information

Google Chrome 81.0.4044.138 (Official Build) (64-bit) (cohort: 81_Win_138)
Revision 8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999}
OS Windows 10 OS Version 1903 (Build 18362.778)
JavaScript V8 8.1.307.32
User Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36

Websites Tested

Side-Bar Not Working Sometimes

If you keep going from different video to different video and back to home a lot, eventually the sidebar will not be useable anymore. Either has to do with caching or can be fixed much like how #16 was fixed (using a validity check for the selected item). Maybe make the sidebar index-independent as well?

Side-Bar Access From Anywhere

Currently, you can only open the sidebar if you are on the first video element. Make it so that any far-left item can access it.

Hover Magnifier

Add a way to magnify what the cursor is hovering over for users that are further away from their monitor.

Could be done similar to how iPhone does their selection mangifier. Or possibly a pop-up window that doesn't mess with the functionality of the controls.

Make a boolean value in the settings.

Gamesir T1 not functioning

Gamesir T1 uses an XInput method as one of its control schemes, but does not seem to work in the XInput mode with Xbox layout enabled. Is there any particular reason it wouldn't be working if it emulates XInput controls? (Please note: This is not the T1S, as that is an entirely different and newer model than the controller I'm using.)

Video Volume / Skip

D-Pad up/down should handle the volume slider & D-Pad left/right should skip a set amount of seconds through the video.

Youtube Home Screen Navigation Skipping

Videos are skipped when a container has an abnormal amount of videos per column. Like when all of the containers have, say, 4 items and another has 2: it will select a weird one.

Button Mappings

Add a new option menu for button mappings.

Need a generic controller to house all possible button inputs for those that don't have Xbox or PS4 Controllers.

Suggested by Tanner Van De Walle in the Chrome Controller support section.

Custom Cursors

Custom cursor packs besides the basic circle. Also, ability to have special ones for Patrons.

Scroll Off-Screen Deselect

If you scroll too far down, it should automatically deselect the one you had selected and make it so you can select another video where you scroll to.

De-Select After Time

After a certain time threshold, deselect the selection (visually, keeping the selection stored) and when the left joystick is moved, reselect it.

Finding Videos Doesn't Work When Too Far

When a video is too far down / up, it won't actually switch to it. Maybe implement a searching mechanic that finds the closest video on screen ( if there is one ).

Should scan like this:
Go down x amount of pixels, check, go left ( until you find a video or the edge of the screen is reached ), then if none is found go right. Go down, rinse, and repeat. Do the same thing for when going left to right, only searching upwards first, then going downwards.

Go to a Search Result

From a search results page, be able to navigate through and "click" on the one you want.

Automatic Webstore Publishing

System for deploying to the google chrome web-store (preferably a GitHub Action).

Synchronize with the master branch.

Steps for publishing (GitHub Action):

  1. Analyze every update to the master branch by checking the manifest.json file.
  2. If the manifest.json's version has been incremented, tag this commit as a new version release.
  3. After tagging the commit, run the webpack build command.
  4. After the dist folder has been created, zip it up then create a Chrome Controller release.
  5. Call the chrome webstore publish API to update the production version.

Main Menu Extra Items in Rows

For the youtube main menu there are sometimes little arrow buttons that you press and it displays more videos (usually under a channel). When going to the left or right if there is an arrow button, simulate a click on the arrow button.

Back to Home

Add a way to go back to the main page of youtube.

More Video Features

Add ability to seek through videos using some sort of +10s / -10s feature similar to youtube mobile or hitting your arrow keys in youtube.

Also add volume controls for videos. Can be done using the video.volume property.

Settings Drop-Down

Add a drop down menu next to the search bar that has settings ( controller mappings possibly as well ).

Left Hand Sidebar

Add main menu sidebar functionality such as viewing it when you go to the far left, navigating through, and hiding it when you go right.

Generalize Video Controls

If a video is present in the DOM, have controls then be activated rather than being just youtube.

Can be done using video.pause(), video.play(), etc.

Can’t see cursor

Every button and joystick works, I can even scroll with the right stick but I can’t see my cursor at all, using ps4 controller

Notifications

On screen notification UI for things like:

  • Controller connected - Alert the user when the cursor is mounted.
  • Controller disconnected.
  • Push notifications from backend (referenced in the backend repository here).

Youtube Watch Thin Screen

If you're on a youtube watch page and the screen is really small, the text takes up more space than the video thumbnail and it thinks that there are more than 1 video thumbnail per row so it skips a bunch of videos.

Keyboard Auto-Complete

Add support for auto complete in the on screen keyboard.

Support will have to be per site or some how generalized as there is no standard for auto complete forms.

Hold Seek

If you hold down the left joystick, instead of not doing anything: make it so that after a set amount of time it speeds up.

Side-Bar Interference

If you click to open the sidebar (with your mouse) the gamepad will think it's still closed and vice versa.

Should have a license

I know you want the extension to be Open Source but, since it does not have a license, using it as an open source project is tricky. Would you mind adding a license to the repository?

A very simple license that you could use is the 3-clause BSD license that is used by Chromium, for instance.

https://opensource.org/licenses/BSD-3-Clause

Search Bars

Open a useable on-screen keyboard when the A button is pressed on a search bar.

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.