Git Product home page Git Product logo

mouseable's Introduction

Mouseable

Control the mouse via the keyboard. intended to replace a mouse or trackpad.

mouseable-demo-notion.mp4

The keyboard in the demo video is just a regular keyboard. It doesn't offer anything related to mouse.

Features

  • Leverage on the features of a computer mouse without using the actual device.
  • Fully customizable hotkeys.
  • Convenient features which helps to move the cursor quickly.

Installation

Download the installer or portable executable file at Releases.

Requires Chrome or Edge because Mouseable uses lorca to draw the GUI.

Reason to stop using the mouse

  1. Better Productivity

Ask yourself, do you use your mouse frequently (or at all) during programming? Is it really necessary? I think not. Since, you could very well perform most of the tasks in your workflow using various keyboard shortcuts and hotkeys, and achieve even better productivity and efficiency, as you would otherwise, achieve using a mouse. Every single action in your IDE of choice will most likely have a binded shortcut. If you could familiarize yourself with just using a keyboard, instead of relying on a mouse, you will most likely attain way better productivity. For instance, in these common situations listed down below, you don't even need a mouse:

  • In IDE, use vim plugin and shortcuts.

  • In Browser, use Vimium

Mouseable is for rare situations not listed above.

  • Drag-Drop file into web browser.
  • The website that does not support Vimium.
  • Some situation that need scroll wheel button.
  1. Health Benefits

    Using a mouse puts unnecessary strain on your wrist. As such, just place your wrists in front of your keyboard and maintain that position, instead of constantly having to move your wrist around while using a mouse!

  2. Better Utilization of Existing Table Space

    Extra table space is required to use a computer mouse. Hence, keep your desk nice and free by putting away your mouse!

Limitations

  • Windows Only
  • Mouseable must be run with administrator privileges, otherwise it will not work on system software such as Task Manager.

Contributing

It is a project that pays attention to abstraction. If you like Golang or Typescript, please contribute.

Motivation

This program was inspired by Ultimate Hacking Keyboard Demo, Windows built-in function and NeatMouse.

mouseable's People

Contributors

alaharon123 avatar arye-eidelman avatar dancinparrot avatar wirekang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mouseable's Issues

Option to send keypress on activate

It would be useful to have an option to send a keypress on activate. Currently, Mousable hijacks the key used to activate, so it can't be used for other keybindings as far as I am aware.

For example, I hold Caps Lock to activate Mousable - it would be handy to be able to send a single Esc when Mouseable is activating, so that I can use my Caps Lock as an Esc key when using Vim.

How do I use this?

Hi,
the Portable Version does not work. It throws three "windows Typeerror" and the below the Hotkey Example is blank.

I now installed the Installer and.... well I have no idea how to use it.
It shows the commands and their corresponding Keys, but it does do nothing.

Like I click "alt+j" and then "s, w, d" etc and nothing moves.

What else do I have to do?

2.0 conflates arrow keys with numpad

With version 1, I got used to using the numpad for controlling the mouse (leaving Mouseable permanently active), however, version 2 somehow thinks that my arrow keys are equivalent to my numpad entry, and so activating Mousable makes my arrow keys control the mouse.

shuts down after i try to open gui? SOLVED / WORKAROUND

It shuts down after i try to open it. yesterday it worked fine tho? what to do?

WORKAROUND: It does not work with latest chrome browser. U need to uninstall and install older version. I think it works on 111.0.5481.177 chrome if not try earlier versions.

Plan for mouseable3

Hi everybody. It's been a long time since I've neglected Mouseable. The main reason is the switch of primary OS, Windows to Ubuntu, to unify development environments with my co-workers. I tried to make Mouseable cross-platform, but failed. It seems there is no requiring api in Ubuntu or macOS. Please help me if you are expert of this kind of field.

I'm going to rewrite this problem from scratch. The new version will be on another repository. I can't say when it'll be done since I don't have enough time now.

The key points for end-user are below:

1. Drop GUI

Drop chormium based lorca and make everything file-based. Simple window will be remained for warning message, latest version prompt and error reporting.

2. Hotkey based activation

For now, Mouseable watches whole keyboard input for detect activation command. I want to change this behavior to register hotkey to operating system and do nothing until user press the hotkey. This change will increase performance, reassure the antivirus and increase posibillity for cross-platform. On the other hand it going to be impossible to activate Mouseable with non-hotkey way such as double pressing Ctrl which is my favorite ๐Ÿ˜ข.

Please don't hesitate to share you opinion.

Documentation that lists all the commands available

It would be useful to have a place, either in the README.md file and/or via a button/link on the interface of the program, where you can see all the commands/parameters available (with some explanation if necessary).

Tray Icon

  • It would be useful to have an indication in the Tray icon if it's active or not.
  • The tooltip says "ToolTip"
  • Double clicking the tray icon while the UI is loading will open another one, and if you close one it will close both.
  • It would be useful that if you double click the tray icon while the UI window is already open it gets the focus.

Deactivate modifier key

Suggestion: it would be useful to have a key that you can hold down to temporarily deactivate (and when released, re-activate) for doing things like running keyboard shortcuts quickly

Adjust horizontal and vertical teleport distances independently

At the moment, there is only one field that applies the same number to both the horizontal and the vertical teleport distance (unless I am missing something).
Depending on each monitor and monitor setup (ultrawide, vertical monitor, multiple monitors), the distance to travel horizontally and vertically is different and the jumps don't have the same impact.
So it would be nice to have two fields to adjust them independently.

GUI stuck at Loading...

After clicking on the tray icon, the GUI window will get stuck at the Loading... screen. Closing and clicking again results in the same behavior. After restarting the application, it will work once or twice before getting stuck again.

Diagonal movements are odd

  1. Somehow they seem to not follow the normal acceleration rules, instead being very slow.
  2. Depressing an orthogonal movement together with a diagonal one makes the mouse fly orthogonally at exceptional speed.

Adjust and reset mouse speed with shortcuts

It would be nice to be able to change and reset the speed of the mouse on the fly with shortcuts.
I use an extension (Video Speed Controller) to do that with the speed of YouTube videos and it is very useful.
You can jump to a chosen speed and increase/decrease the speed by increments you chose.
You can see what I mean with the screenshot below:

Adjust-reset-speed

It is kind of like one of the other issues posted previously with the different profiles (#12) but with a different angle as you can have multiple profiles (low/middle/high speed) but can also adjust the speed in between as needed.

Minimize to tray

The app looks amazing for people who want to navigate as much as possible using the keyboard. Thanks for all the hard work.

It would be good to be able to minimize it to system tray.

Red indicator square oddities

  1. It stays in place when mouse cursor is moved using actual mouse
  2. Hovering the mouse cursor over it makes the mouse pointer be "busy"
  3. There's no way to turn it off

Capitalisation

On my system, Alt as used in the default config files does not work; instead I had to change it to ALT. Could mouseable ignore capitalisation here?

High CPU usage

Just starting and it has an excessively high CPU usage all the time and not even active
image

Activate and deactivate with the same shortcut

It would be nice to have the possibility to use the same shortcut (like a toggle on/off) to activate and deactivate Mouseable. At the moment, if I enter the same shortcut for Activate and Deactivate, it activates but deactivates immediately.

I get this error? what to do?


Mouseable

runtime error: slice bounds out of range [:-1]

StackTrace:
goroutine 1 [running]:
runtime/debug.Stack()
C:/Program Files/Go/src/runtime/debug/stack.go:24 +0x65
github.com/wirekang/first-error.StackTrace({0x7ff7a2a78cc0, 0xc0000a2768})
C:/Users/temp/go/pkg/mod/github.com/wirekang/[email protected]/first-error.go:51 +0xd8
github.com/wirekang/first-error.RecoverCallback(0xc0000c3e00)
C:/Users/temp/go/pkg/mod/github.com/wirekang/[email protected]/first-error.go:24 +0x30
panic({0x7ff7a2a78cc0, 0xc0000a2768})
C:/Program Files/Go/src/runtime/panic.go:838 +0x207
github.com/wirekang/mouseable/internal/cfg.(*config).SetJSON(0xc00009c7b0, {0xc00013e380, 0x310})
C:/workspace/mouseable/internal/cfg/cfg.go:63 +0x5bf
github.com/wirekang/mouseable/internal/io.(*manager).ApplyConfig(0xc0000ec4c0, {0xc00009eb30, 0x10})
C:/workspace/mouseable/internal/io/io.go:75 +0x231
github.com/wirekang/mouseable/internal/logic.(*logicState).loadAndApplyConfig(0xc0000983c0)
C:/workspace/mouseable/internal/logic/state.go:130 +0x71
github.com/wirekang/mouseable/internal/logic.(*logicState).Run(0xc0000983c0)
C:/workspace/mouseable/internal/logic/state.go:17 +0x2f
github.com/wirekang/mouseable/internal/logic.Run()
C:/workspace/mouseable/internal/logic/logic.go:103 +0x21b
main.main()
C:/workspace/mouseable/main.go:25 +0x7a

Press Ctrl+C to copy message.

OK

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.