Code Monkey home page Code Monkey logo

yoke's Introduction

Yoke

Yoke is an android app that that provides extra macro keys for your computer. This allows you to add macro keys to your setup, without having to buy an expensive keyboard or other additional hardware.

Installation

Yoke has only been tested and confirmed to work on windows 10, but might also work on different operating systems.

It consists of two parts: A receiver and the app. The receiver is a runnable jar file which you can just start whenever you want to use it, or you may enable auto startup from the tray menu after running it once. This jar can be obtained in the releases tab. The app may also be obtained in the releases tab, or obtained from Google Play.

App details

Profiles

The home screen provides several standard profiles which can be opened to execute any of their macros by tapping on them.

Profiles can be deleted, created and modified by users. When modifying a profile consists of several different parts:

  • Changing the profile's name
  • Removing or adding macros
  • Modifying macros
  • Reordering macros
  • Changing the associated programs

The associated programs field allows you to define program names to which this profile should be associated. These would be names that are shown in the window of an arbitrary program on your computer. Once a profile and program are associated, the profile will automatically open when the program receives focus on your computer. This allows you to always display a profile that makes sense for the task you are working on. It will only switch from one profile to another however, and won't force open the app if something different is running. You can define multiple programs in this field, by seperating them with a comma. In order to make use of this feature program poll must be enabled in the receiver.

As an example, you could type chrome in the associated programs field, and open another profile. Then once chrome gets focused, the initial profile will be opened.

Macros

Macros consist of an appereance and an action. As you might expect, the appearance is what you see on your profile and the action is what happens when pressed. This action is a list of commands. Each of these commands may also be repeated a number of times. There are several command types available:

  • Open profile: Switches to another profile
  • Open url: Opens a defined url on your computer
  • Open program: Opens a defined program on your computer
  • Key press: Presses a defined set of keys on your computer
  • Mouse:
    • Press: Presses a defined mouse button on your computer
    • Trackpad: Opens a trackpad on your phone to control the mouse
  • Computer command: performs a computer command such as shutdown or next track

By allowing you to perform a sequence of commands, you can create some pretty useful setups. You could for instance have a command that switches to another profile, and any macro in this profile could perform a task and switch back to the intial profile afterwards. However, if Yoke's macro system isn't powerfull enough for your needs, you could always use something like AHK to create your macro, and simply run the exe using Yoke.

Miscellaneous

Connection

Currently Yoke can only connect to your computer over bluetooth, there were plans to also add USB and WIFI support but there unfortunately was too little time to implement this. The structure of the code allows for the addition of these new connection types rather easily however, so they could be added in the future.

Settings

Yoke has a settings activity in which a couple of things can be done, including changing Yoke main color theme and selecting one of the three supported languages:

  • English
  • Dutch
  • Bulgarian

Tutorial

Yoke also has a simple tutorial from which all basic required information can be optained to get started:

Project

This project has been created for a course at the TUe by group 19 with the following members:

  • Tar van Krieken
  • Bram van Leeuwen
  • Dylan Mijling
  • Karolina Strahilova
  • Yeochan Yoon
  • Ivo Zenden

The project had quite some emphasis on the design process, rather than just the code. As a result we have several documents for Yoke in the docs directory. These documents definitely aren't perfect, but they are kept here since they are part of the project.

The course ran from 06-02-2019 until 21-04-2019 after which the first working version was finished.

Contributing

Any contributions to the project are welcome, but generally it is unlikely that the project will be maintained by any of the original creators. Feel free to fork this repository and do whatever you want with it, including copying code for other projects.

Credits

We have used some codes and guides from other authors and want to properly credit them below.

Journaldev’s draglistener was used as a base for the following files:

  • ItemMoveCallback.java
  • ButtonEditRecyclerViewAdapter.java:

https://demonuts.com/android-shake-detection/ was used as a guide for:

  • ShakeService.java

AmbilWarna Color Picker was used for:

  • picking the back- and foreground colour of macros
  • changing the main colour of the app.

Yaroslav Berezanskyi's guide on changing the language at runtime was used as a guide for :

  • the language change setting

yoke's People

Contributors

kstrahilova avatar tarvk avatar yeochan avatar ivozenden avatar eaglefly-nl avatar

Stargazers

Rex_sa avatar Cane Lagerwaard avatar

Watchers

James Cloos avatar Rex_sa avatar  avatar

yoke's Issues

F-Droid inclusion

Hi,

Since this app is MIT licensed, are you considering the fact to add the android part to F-Droid? There is a strong community behind.

You can find some documentation here.

Otherwise, if you don't want to work on the inclusion of this app by yourself, would it be ok for you if someone else do it for you?

Logo Design For Yoke

Hi @TarVK , I'm a graphic designer. I have reviewed your project and I like it.

But you don't have a logo yet, so I'm interested in contributing by creating a free logo for your project.

What do you think?

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.