npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@phoenix-plugin-registry/stevche.radevski.eyenav

v1.0.0

Published

EyeNav is a Brackets.io plugin that allows you to do simple navigation in the IDE using an eye-tracking device. It allows you to scroll, click, select text, and more using your eyes and keyboard shortcuts.

Readme

Synopsis

EyeNav is a Brackets.io plugin that allows you to do simple navigation in the editor using an eye-tracking device. It allows you to scroll, click, select text, and more using your eyes and keyboard shortcuts.

Demo

A demo video of EyeNav is available on YouTube.

Installation

As EyeNav is a Brackets.io extension, the plugin is delivered through the Brackets.io Extension Registry. After installing EyeNav from the extension manager, there are 2 more steps left to navigating code with your eyes!

  • Install the SDK for your eye tracker
  • Install/Run the websocket server that wraps the SDK for your tracker.

There are currently 2 popular eye trackers aimed at the mass market, and we provide a websocket server for both of them.

EyeTribe

Install information can be found at: EyeTribe Getting Started. The EyeTribe WebSocket Server can be found: EyeTribe Web Socket Server

Tobii EyeX

Install information can be found at: Tobii EyeX Getting Started. The Tobii EyeX WebSocket Server can be found at: Tobii EyeX Web Socket Server

Simulator

If, for any reason, you want to use a simulator websocket server, you can find it at: EyeNav Eye Tracker Simulator.

You can also easily create a websocket server by yourself for any device and you can start using EyeNav in no time. You can refer to the code for either Tobii EyeX and EyeTribe to get an idea how they are implemented and what data format EyeNav expects from the servers.

Usage

After installing EyeNav and the dependencies as described above, it is time to start using it! EyeNav will be located in the right-side bar menu (look for an eye!). Before running EyeNav, you should run the eye tracker server and the websocket server for your device. The menu icon is color coded, so it gives you immediate feedback on the state of EyeNav. EyeNav can be in one of the following states:

  • Gray: EyeNav is not activated
  • Red: EyeNav is activated, but it isn't/can not connect to the websocket server.
  • Green: EyeNav is connected to the server, but it isn't getting valid gaze data(or any data at all)
  • Blue: EyeNav is getting gaze data and it is ready to use.

If everything works well, you can start the magic just by pressing some keyboard shortcuts. The general shortcut pattern is Trigger Key + (Modifier Key) + Command Key, pressed in the listed order. The trigger key essentially switches the keyboard key meaning between standard key functions and EyeNav-related functions.

Trigger:

Key | Action --- | ------ 'Right Alt' | Trigger EyeNav functionalities

Modifiers:

Key | Action --- | ------ 'Shift' | Select text with any command that moves the caret '.' | Manual gaze calibration (works with WASD commands)

Commands:

Key | Action --- | ------ 'Q' | Move caret at gaze location 'R' | Move caret along its current line at gaze x location 'F' | Move caret along its current column at gaze y location 'Z' | Scroll in gaze direction relative to the center of the editor 'W' | Mapping for the Up Arrow key 'A' | Mapping for the Left Arrow key 'S' | Mapping for the Down Arrow key 'D' | Mapping for the Right Arrow key

Architecture

In order to make EyeNav as flexible and extensible as possible, we decided to make the eye tracker and EyeNav talk through Web Sockets (see figure below). This means EyeNav can work for any eye tracker as long as you create a wrapper over its SDK.

alt text

Preferences

You can change the key shortcuts and the port and address of the websocket server by modifying the Brackets.io preferences file.

If you wish to change the port and IP address of the websocket server, you can use the following options (the one below are the default options):

"eyeNav.ipAddress": "127.0.0.1",
"eyeNav.port": 8887

You can also change the keyboard shortcuts for each command. In order to see which keys are possible, please refer to the KeyManager file. Even though the keys are separated in 3 objects depending on their function, you can treat them as one when writing your desired options. In order to get the keyCode and location you can use the following JsBin. btnName is used just for reference so there isn't a right format in specifying it as of now. Note that Brackets.io has some limitations on which keys can be used. An example keys option: (you must use double quotes)

"eyeNav.keys": {
  "textSelection": {
    "keyCode": 16,
    "location": [1,2],
    "btnName": "Shift"
  },
  "click": {
    "keyCode": 81,
    "location": [0],
    "btnName": "Q"
  }
}

Contributors

EyeNav has been developed at Nara Institute of Science and Technology (NAIST), Software Engineering Laboratory.

If anyone is interested in improving EyeNav and contributing, please contact me directly. If there is some interest I will create a guide on how to contribute, but it is not necessary at this stage. You can report any bugs or feature requests at: EyeNav Trello.

License

This project is under the MIT Licence