[Tool][02 Nov]Kernel Gestures Builder

Search This thread

Flint2

Senior Member
Jun 6, 2012
777
870
Buenos Aires
Hi fellow devs of XDA !

On Aug 13 2012, Tungstwenty introduced a new awesome feature to android kernel, that empower our touch devices to a new level, the ability to respond to multitouch gestures:
[Ref][Kernel]Triggering actions with touch gestures

As Far as I Know, The feature is implemented in the following kernels:
Samsung Galaxy SII - I9100

Samsung Galaxy SIII - I9300

Now let me introduce to you Kernel Gestures Builder, the tool that allows you to define the gesture pattern in a user friendly fashion:




device-2012-11-30-184616.jpgdevice-2012-11-30-185024.jpgdevice-2012-11-30-185204.jpgScreenshot_2013-05-03-21-21-57.jpgScreenshot_2013-05-03-21-22-16.jpgScreenshot_2013-04-26-15-43-54.jpgScreenshot_2013-04-26-15-43-21.jpgScreenshot_2013-05-03-21-35-00.jpg




Usage:
  1. If you have DorimanX kernel you config is in /data/gesture_set.sh
  2. If you don't have current config the script will be installed in /etc/init.d/S50GestureActions
  3. Backup current script config, will be overwritten
  4. Launch Kernel Gesture Builder App
  5. Select Menu/Reset Gestures
  6. Select Menu/Reset Actions
  7. (optional) Select Menu / Settings / Grid Columns and Grid Rows (default 3 columns and 5 rows)
  8. Draw Gesture with as many fingers as you like (maximum supported by kernel is 5)
  9. When last finger leaves the screen, gesture definition is copied to clipboard and local file is saved
  10. Configure Actions by selecting Launch Application or Set Action
  11. If Desired, select Test Action to execute defined action
  12. Open gesture definition script with editor and paste gesture OR
  13. Configure Actions in /data/data/ar.com.nivel7.kernelgesturesbuilder/files/gesture-*.sh
    and Select Install Gestures to REPLACE without backup current gesture_set.sh or S50GestureActions and new directory /data/gestures (do not edit anything here, will be overwrite on each Install Gesture action)
  14. Select Menu/Select Gesture to edit another gesture and repeat the process from
  15. Draw Gesture for each desired gesture
  16. Select Menu/Install Gestures, if you have DorimanX kernel with Gestures enabled, turn off screen and turn it on again to activate new gestures. If you have another kernel reboot to apply changes.
  17. enjoy!

Thanks To:

License (Open Source, feel free to contribute and giving proper credit if you use it):
GPL Version 3



Changelog:
  • Version 1.15 [Nov 02 2013]
    Support for Android 4.4 KitKat
  • Version 1.14.1 [Jun 11 2013]
    Bug Fix: FC on start
  • Version 1.14 [Jun 06 2013]
    Select Gesture from Main Menu
  • Version 1.13 [May 03 2013]
    (unpublished)
  • Version 1.12 [Apr 26 2013]
    Set Action to gesture
    Test Action
  • Version 1.11 [Apr 19 2013]
    German, French & Spanish Translations
    Browse for Applications to Launch on Gesture
  • Version 1.10 [Apr 8 2013]
    Google Analytics for better support and future development
  • Version 1.9.1 [Mar 12 2013]
    Add support for new Superuser https://github.com/koush/Superuser
  • Version 1.8.1 [Jan 7 2013]
    Resolved bug in gesture install script
  • Version 1.8 [Dec 26 2012]
    Display actions for current gesture
    Force Portrait Mode
    Default gestures for 1280x720 devices
    Install Script in /system/etc/init.d if no /data/gesture_set.sh
  • Version 1.7 [Nov 30 2012]
    Draw actual path of traversal of every finger with different color and alpha blending [Debadatta]
    Read and Write to Scripts [It_ler]
    Parse gestures from config
  • Version 1.6 [Nov 23 2012]
    Install new Actions and Gestures config in /data/gestures (overwrites current script!)
    Changed max fingers to 5 (kernel limit)
  • Version 1.5 [Nov 15 2012]
    Allow changing of Gesture Number (1-30) from Settings
  • Version 1.4 [Nov 11 2012]
    Copy Gesture to Clipboard
  • Version 1.3
    Display Gesture Number fixed
  • Version 1.2
    Display Intercepted Hotspot
  • Version 1.1
    Detect Hotspot

Known Bugs:
  • Bad finger numbering if finger not lifted in inverse order
  • Any Bug that you report


Todo:
  • Animate the spots of an existing gesture to view on screen what trace you must do with fingers [Mario1968]
  • Custom name for gestures [Mario1968]
  • Always show current gesture anim, gesture number, gesture name on screen [Mario1968]
  • Any Feature that you request

If you like my work please buy me a beer



DONATIONS FROM:
DorimanX
 
Last edited:

It_ler

Recognized Contributor
Aug 23, 2011
12,445
17,150
Samsung Galaxy S8
Samsung Galaxy S10
Just my thoughts:
Have you thought about a collaboration with Tungstwenty to combine / integrate your gesture building app into his multi touch gesture kernel feature?
Ok, copy & paste the gesture definition into a script is not that difficult, but if you could define the gesture and assign it directly to a script/action (without manual copy & paste), that would be even easier and more (end-)user friendly.

I have something similar to tasker app in mind, but with your gesture (builder) as the trigger.

Good idea anyway !
 
  • Like
Reactions: Ghost-of-the-Sun

Flint2

Senior Member
Jun 6, 2012
777
870
Buenos Aires
Just my thoughts:
Have you thought about a collaboration with Tungstwenty to combine / integrate your gesture building app into his multi touch gesture kernel feature?
Ok, copy & paste the gesture definition into a script is not that difficult, but if you could define the gesture and assign it directly to a script/action (without manual copy & paste), that would be even easier and more (end-)user friendly.

I have something similar to tasker app in mind, but with your gesture (builder) as the trigger.

Good idea anyway !

Yes, the objective of this app is to be able to parse, edit, and generate Tungstwenty rc.d script (or DorimanX equivalent)
If you find anything else please ask and will be included in TODO

Sent from my GT-I9100 Powered by Dorimanx kernel and AOKP unicorn
 
  • Like
Reactions: It_ler

Debadatta

Senior Member
Dec 22, 2010
616
196
Kolkata
www.debadattabose.com
Yes, the objective of this app is to be able to parse, edit, and generate Tungstwenty rc.d script (or DorimanX equivalent)
If you find anything else please ask and will be included in TODO

Sent from my GT-I9100 Powered by Dorimanx kernel and AOKP unicorn
How about drawing the actual path of traversal of the finger? Would be helpful for some people. After the hand is lifted off, you can show an animation to replay how the finger was moved i.e. how the gesture actually will be. Then ask for a confirmation and copy to clipboard or merge with S50GestureActions like lt_ler said. Plus, you might want to ask gesture number before generating the definition. The def is always assuming 1. Yes, some people actually will have problems with changed a 1 to their desired number I know after being so long on XDA.

Also, when merged with S50GestureActions, create a check to check if a requested gesture already contains a predefined gesture. This is because, even if this gesture is defined, the predefined gesture will execute halfway between the requested gesture. I know, "Duh!", but this app makes defining gestures so damn easy, you'll have a noob attack here. So, its essential for this to be noob proof. :p

P.S. the drawable lines should have some percentage of transparency to avoid confusion when they overlap.
 
Last edited:
  • Like
Reactions: RovG

Flint2

Senior Member
Jun 6, 2012
777
870
Buenos Aires
How about drawing the actual path of traversal of the finger? Would be helpful for some people. After the hand is lifted off, you can show an animation to replay how the finger was moved i.e. how the gesture actually will be. Then ask for a confirmation and copy to clipboard or merge with S50GestureActions like lt_ler said. Plus, you might want to ask gesture number before generating the definition. The def is always assuming 1. Yes, some people actually will have problems with changed a 1 to their desired number I know after being so long on XDA.

Also, when merged with S50GestureActions, create a check to check if a requested gesture already contains a predefined gesture. This is because, even if this gesture is defined, the predefined gesture will execute halfway between the requested gesture. I know, "Duh!", but this app makes defining gestures so damn easy, you'll have a noob attack here. So, its essential for this to be noob proof. :p

P.S. the drawable lines should have some percentage of transparency to avoid confusion when they overlap.

Added lt_ler and Debadatta request to TODO section
 
  • Like
Reactions: Debadatta

Tungstwenty

Senior Member
Nov 1, 2011
1,828
4,512
Great initiative Flint!
This will be really useful for wider adoption of this "oh so scary" script-only feature ;)

Here are some comments from me on your current Todo list:

Generate the scripts
Since there's at least 3 ways of launching the scripts (I wasn't aware of all these :)), I'd suggest deciding a well-known place for storing per-gesture files for configuration (finger positions) and for actions (execution when detected) which would then be called by the main script(s).
Example:
Code:
[B]/etc/gestures/gesture-1.config[/B]

1:1:(0|100;0|100)
...
and
Code:
[B]/etc/gestures/gesture-1.sh[/B]

# Toggle "outdoor" mode

if [ `cat /sys/class/lcd/panel/user_gamma_adjust` != "50" ]; then
	echo "50" > /sys/class/lcd/panel/user_gamma_adjust
	echo 1 > sys/class/mdnie/mdnie/outdoor
else
	echo "0" > /sys/class/lcd/panel/user_gamma_adjust
	echo 0 > sys/class/mdnie/mdnie/outdoor
fi

Each of the wrapper script implementations would then:
- cat the *.config files all at once to the gesture_definitions file (it currently doesn't support incremental configuration, each write clears all the previous definition)
- loop waiting for a detected gesture and when each of those is detected launch the corresponding gesture-N.sh if it exists

This allows the definition and detection logic to keep working, and at the same time allow a frontend app such as this one to granularly parse and store each gesture's individual definition and action.
Additionally, the main script(s) can then be fixed and all the logic of maximum gestures, etc. depend only on whatever files exist on /etc/gestures/ or whatever. The app can ignore that part, especially taking into consideration that there are different approaches.

On a side note, I still am not sure about DorimanX's approach of stopping the loop while the screen is off, as the overhead afaik is nearly none (is memory relevant?). Also, I'm thinking of allow the configuration of whether you'd like gestures while screen is off or not; now that Siyah includes s2w it's merely an extra check and the associate configuration parameter for STweaks.


Review gesture paths
I also think this would be useful, not only for viewing but also "tuning".
Actual situation: if I want to draw e.g. a diagonal from top-left to bottom-right, it will pick up some of the rectangles in the middle depending on how much I deviate from the ideal diagonal.
Ideally, once a gesture is finished one would see all the touched rectangles - probably a small circle in the middle - and allow the removal of some of them as in the situation of the diagonal where the intermediate steps should be removed.
There are of course some challenges, like crossing paths or even the same finger that repeats the same path multiple times. Personally, the gesture I use to kill the current app is: 1 finger on the middle-left, another one goes from top-right to bottom-right and back, 3 times in a row.


Actions
In this topic I see several things:
- launching an app (which could allow you to browse for an app, or even better, configure a shortcut which can be a direct dial, compose message to, etc.)
- all the other advanced stuff that can be done by "am start ...", "service call ...", etc.
For this second group of items, perhaps a list of well-known things could be added gradually to the app, and still allow a fallback of directly editing the script's text for those things the user would like to add himself.
 

Flint2

Senior Member
Jun 6, 2012
777
870
Buenos Aires
Gestures Configuration

Great initiative Flint!
This will be really useful for wider adoption of this "oh so scary" script-only feature ;)

Here are some comments from me on your current Todo list:

Generate the scripts
Since there's at least 3 ways of launching the scripts (I wasn't aware of all these :)), I'd suggest deciding a well-known place for storing per-gesture files for configuration (finger positions) and for actions (execution when detected) which would then be called by the main script(s).
Example:
Code:
[B]/etc/gestures/gesture-1.config[/B]

1:1:(0|100;0|100)
...
and
Code:
[B]/etc/gestures/gesture-1.sh[/B]

# Toggle "outdoor" mode

if [ `cat /sys/class/lcd/panel/user_gamma_adjust` != "50" ]; then
	echo "50" > /sys/class/lcd/panel/user_gamma_adjust
	echo 1 > sys/class/mdnie/mdnie/outdoor
else
	echo "0" > /sys/class/lcd/panel/user_gamma_adjust
	echo 0 > sys/class/mdnie/mdnie/outdoor
fi

Each of the wrapper script implementations would then:
- cat the *.config files all at once to the gesture_definitions file (it currently doesn't support incremental configuration, each write clears all the previous definition)
- loop waiting for a detected gesture and when each of those is detected launch the corresponding gesture-N.sh if it exists

This allows the definition and detection logic to keep working, and at the same time allow a frontend app such as this one to granularly parse and store each gesture's individual definition and action.
Additionally, the main script(s) can then be fixed and all the logic of maximum gestures, etc. depend only on whatever files exist on /etc/gestures/ or whatever. The app can ignore that part, especially taking into consideration that there are different approaches.

On a side note, I still am not sure about DorimanX's approach of stopping the loop while the screen is off, as the overhead afaik is nearly none (is memory relevant?). Also, I'm thinking of allow the configuration of whether you'd like gestures while screen is off or not; now that Siyah includes s2w it's merely an extra check and the associate configuration parameter for STweaks.


Review gesture paths
I also think this would be useful, not only for viewing but also "tuning".
Actual situation: if I want to draw e.g. a diagonal from top-left to bottom-right, it will pick up some of the rectangles in the middle depending on how much I deviate from the ideal diagonal.
Ideally, once a gesture is finished one would see all the touched rectangles - probably a small circle in the middle - and allow the removal of some of them as in the situation of the diagonal where the intermediate steps should be removed.
There are of course some challenges, like crossing paths or even the same finger that repeats the same path multiple times. Personally, the gesture I use to kill the current app is: 1 finger on the middle-left, another one goes from top-right to bottom-right and back, 3 times in a row.


Actions
In this topic I see several things:
- launching an app (which could allow you to browse for an app, or even better, configure a shortcut which can be a direct dial, compose message to, etc.)
- all the other advanced stuff that can be done by "am start ...", "service call ...", etc.
For this second group of items, perhaps a list of well-known things could be added gradually to the app, and still allow a fallback of directly editing the script's text for those things the user would like to add himself.

Thank you very much for your feedback and suggestions!!

Generate the scripts
I can support many configurations, i'm aware of:
- Yours original (/system/etc/init.d/S50GestureActions) , will need root for remount system and modify file
- DorimanX (/data/gestures_set.sh), no need to be root, only adequate permissions on file
I'm not aware of 3th method that you mentioned.
Do you know other devices besides S2 and S3 or kernels apart from Siyah and DorimanX that have your feature implemented?

If you want to split the config and actions in an alternate setup, I will support it to, these are my suggestions:
- Please keep the writeable config in /data , so no remount and root is needed
- Keep in mind the overhead of forking one more process on each gesture (modular overhead vs. current monolithic approach)

I think DorimanX intention is to keep the script always working
Kernel 7.17 ICS-JB-MALI Uploaded. (BUG FIX) and STABLE.

*Thanks to GM for guide, now cortex + cron + gestures will never be killed from RAM. so stability restored to 100% no more stuck CPU on low/high freq.
May be later I will ask by PM or drop a question in his thread.

Review gesture paths
- My idea is to paint every hotspot with finger color and display the sequence number in the path inside it
- Even if i will include parsing and displaying current gestures, for now I think is easy to redo the gesture than to edit or trim it (I can change my mind later on this subject)
- There is no need to keep your second or third finger in the screen all the time, you can just touch on the first point of you imaginary line, lift the finger, and touch on the end of the imaginary line, repeating this start and end points as many times as you like
As long as you keep one finger in the screen, you're still constructing the paths
When you lift last finger, gesture definition is copied to clipoard
So you can define the '5 point ROM exploding thechnique' that reboots in recovery (borrowed from Kill Bill movie)


Actions
That's exactly what I have in mind, having a set of standard, browsable Androind intents, a set of predefined am , service, cat to config, etc, and a set of custom actions
Changing manually the script should be last resort for advanced users.

I like the idea of maintaining all the configs in scripts, and daemon also in script.
The idea of building a standalone service to replace it has come to my mind but i dislike it.

So far 100+ installs and no FC or bugs reports
I appreciate all the feedback from devs and users!
 
  • Like
Reactions: dorimanx

Flint2

Senior Member
Jun 6, 2012
777
870
Buenos Aires
Version 1.5 On Google Play

Version 1.5 On Google Play

Changelog:
  • Version 1.5 [Nov 15 2012]
    Allow changing of Gesture Number (1-30) from Settings

Should be updated in a few hours.

Enjoy!
 
  • Like
Reactions: It_ler

Tungstwenty

Senior Member
Nov 1, 2011
1,828
4,512
Generate the scripts
I can support many configurations, i'm aware of:
- Yours original (/system/etc/init.d/S50GestureActions) , will need root for remount system and modify file
- DorimanX (/data/gestures_set.sh), no need to be root, only adequate permissions on file
I'm not aware of 3th method that you mentioned.
Do you know other devices besides S2 and S3 or kernels apart from Siyah and DorimanX that have your feature implemented?

If you want to split the config and actions in an alternate setup, I will support it to, these are my suggestions:
- Please keep the writeable config in /data , so no remount and root is needed
- Keep in mind the overhead of forking one more process on each gesture (modular overhead vs. current monolithic approach)

Good idea about having the definitions in scripts under /data rather than /system (/etc) so it doesn't require a remount when changing definitions only.
The "bootstrap" main script can be anywhere (even in /data, as long as it's triggered somehow) and the individual files can be in /data/gestures/ or whatever.
Your app should be able to change that, but on the other hand it can't be world-writable since it will be running as root. If anyone can write the definitions, it can hijack control of the phone.
Therefore, it might not be that easy to make it so that your app doesn't require root and still prevent other apps from controlling this sensitive configs.

The main script can be as simple as this:

Code:
GESTURES_PATH=/data/whatever_folder

# Load all gesture definitions, removing comments to reduce the total size
cat $GESTURES_PATH/gesture-*.config | sed -e 's/#.*$//' > /sys/devices/virtual/misc/touch_gestures/gesture_patterns

# Start loop listening for triggered gestures
( while [ 1 ]
do

    GESTURE=`cat /sys/devices/virtual/misc/touch_gestures/wait_for_gesture`

    # Launch the action script if it exists, not spawning a separate process
    GESTURE_SCRIPT="$GESTURES_PATH/gesture-$GESTURE.sh"
    if [ -f $GESTURE_SCRIPT ]; then
        . $GESTURE_SCRIPT
    fi

done ) > /dev/null 2>&1 &
That's it, a universal "bootstrap" script.
It can be installed once on /etc/init.d/S50GestureActions, on /data/gestures_set.sh, or whatever. As long as the bootstrap script is executed somehow, everything else can be handled by your app by editing the config and sh files under the decided $GESTURES_PATH.

As for which kernels do implement the gestures, I don't have a clue. It's easy enough to cherry-pick the code to any kernel, even to other devices, so perhaps the best way for you to check for support within the app would be to check if /sys/devices/virtual/misc/touch_gestures/ exists. If it does, probably it will work regardless of the kernel. The max gestures might not be 30, just to give an example, but the mechanism is there for sure.

Review gesture paths
- My idea is to paint every hotspot with finger color and display the sequence number in the path inside it
- Even if i will include parsing and displaying current gestures, for now I think is easy to redo the gesture than to edit or trim it (I can change my mind later on this subject)
- There is no need to keep your second or third finger in the screen all the time, you can just touch on the first point of you imaginary line, lift the finger, and touch on the end of the imaginary line, repeating this start and end points as many times as you like
As long as you keep one finger in the screen, you're still constructing the paths
When you lift last finger, gesture definition is copied to clipoard
So you can define the '5 point ROM exploding thechnique' that reboots in recovery (borrowed from Kill Bill movie)
I know, that's exactly the same logic I implemented in the detection code. As long as at least one of the fingers is down, it will still be tracking.
I meant the visual clarity of the path. If a single finger goes through the same hotspot multiple times, as in the example I stated, it might be a bit challenging to draw the hole path at once and still be able to understand it visually :) I guess it will take some prototyping to see how it works out.


Actions
That's exactly what I have in mind, having a set of standard, browsable Androind intents, a set of predefined am , service, cat to config, etc, and a set of custom actions
Changing manually the script should be last resort for advanced users.

I like the idea of maintaining all the configs in scripts, and daemon also in script.
The idea of building a standalone service to replace it has come to my mind but i dislike it.
If the bootstrap script + individual files per gestures idea that I presented before does work (if I'm not forgetting any important detail), then a service is not needed at all.
In fact, for the runtime part (the loop detecting gestures and launching actions), it should absolutely be independent of java apps and be solely script-based. Otherwise it will be subject to app lifecycle (stopping app of service depending on available mem), responsiveness of the task scheduler, etc.
 
  • Like
Reactions: dorimanx and Flint2

dorimanx

Senior Member
Feb 20, 2010
12,711
93,517
TERA Prime.
www.dorimanx.com
Thank you very much for your feedback and suggestions!!

Generate the scripts
I can support many configurations, i'm aware of:
- Yours original (/system/etc/init.d/S50GestureActions) , will need root for remount system and modify file
- DorimanX (/data/gestures_set.sh), no need to be root, only adequate permissions on file
I'm not aware of 3th method that you mentioned.
Do you know other devices besides S2 and S3 or kernels apart from Siyah and DorimanX that have your feature implemented?

If you want to split the config and actions in an alternate setup, I will support it to, these are my suggestions:
- Please keep the writeable config in /data , so no remount and root is needed
- Keep in mind the overhead of forking one more process on each gesture (modular overhead vs. current monolithic approach)

I think DorimanX intention is to keep the script always working

May be later I will ask by PM or drop a question in his thread.

Review gesture paths
- My idea is to paint every hotspot with finger color and display the sequence number in the path inside it
- Even if i will include parsing and displaying current gestures, for now I think is easy to redo the gesture than to edit or trim it (I can change my mind later on this subject)
- There is no need to keep your second or third finger in the screen all the time, you can just touch on the first point of you imaginary line, lift the finger, and touch on the end of the imaginary line, repeating this start and end points as many times as you like
As long as you keep one finger in the screen, you're still constructing the paths
When you lift last finger, gesture definition is copied to clipoard
So you can define the '5 point ROM exploding thechnique' that reboots in recovery (borrowed from Kill Bill movie)


Actions
That's exactly what I have in mind, having a set of standard, browsable Androind intents, a set of predefined am , service, cat to config, etc, and a set of custom actions
Changing manually the script should be last resort for advanced users.

I like the idea of maintaining all the configs in scripts, and daemon also in script.
The idea of building a standalone service to replace it has come to my mind but i dislike it.

So far 100+ installs and no FC or bugs reports
I appreciate all the feedback from devs and users!

Hi,

my way is to shut gesture script on screen off, is for removing one more loop function, i have one that control many things, if i can do it, so why not :)
it's shut and start the gestures loop on need.

about GM suggestion to protect gestures loop script is to run it with

/sbin/busybox nohup /data/gestures_set.sh

then this script will never be killed from RAM.

if app run the script, app shell will be closed in time, and "child(our gestures loop script)" will be removed from ram, and stop working...

with the nohup it's has it's own shell that will never stop.
till force killed by:
pkill -f "/data/gestures_set.sh"

it's also NOT detected by
ps | grep "/data/gestures_set.sh"

only by:
pgrep -f "/data/gestures_set.sh"
then you see the PID.

so it's also good in case you will need to RELOAD the loop script via APP.
to use only nohup.

Thanks :)
 

Tungstwenty

Senior Member
Nov 1, 2011
1,828
4,512
Hi,

my way is to shut gesture script on screen off, is for removing one more loop function, i have one that control many things, if i can do it, so why not :)
it's shut and start the gestures loop on need.
What's your personal opinion about keeping gesture detection active even with screen off (optional of course), provided the touch screen is still powered, i.e., s2w is enabled?
I've been thinking about adding this optional behavior on the touch processing routine, and that would then require the loop to continue running in order to produce effects.
 
  • Like
Reactions: Flint2

bluefa1con

Inactive Recognized Developer
Aug 9, 2011
3,162
9,211
i was just thinking yesterday that this feature was useless for most of the people but u just made it easy
thanks man
 

Top Liked Posts

  • There are no posts matching your filters.
  • 39
    Hi fellow devs of XDA !

    On Aug 13 2012, Tungstwenty introduced a new awesome feature to android kernel, that empower our touch devices to a new level, the ability to respond to multitouch gestures:
    [Ref][Kernel]Triggering actions with touch gestures

    As Far as I Know, The feature is implemented in the following kernels:
    Samsung Galaxy SII - I9100

    Samsung Galaxy SIII - I9300

    Now let me introduce to you Kernel Gestures Builder, the tool that allows you to define the gesture pattern in a user friendly fashion:




    device-2012-11-30-184616.jpgdevice-2012-11-30-185024.jpgdevice-2012-11-30-185204.jpgScreenshot_2013-05-03-21-21-57.jpgScreenshot_2013-05-03-21-22-16.jpgScreenshot_2013-04-26-15-43-54.jpgScreenshot_2013-04-26-15-43-21.jpgScreenshot_2013-05-03-21-35-00.jpg




    Usage:
    1. If you have DorimanX kernel you config is in /data/gesture_set.sh
    2. If you don't have current config the script will be installed in /etc/init.d/S50GestureActions
    3. Backup current script config, will be overwritten
    4. Launch Kernel Gesture Builder App
    5. Select Menu/Reset Gestures
    6. Select Menu/Reset Actions
    7. (optional) Select Menu / Settings / Grid Columns and Grid Rows (default 3 columns and 5 rows)
    8. Draw Gesture with as many fingers as you like (maximum supported by kernel is 5)
    9. When last finger leaves the screen, gesture definition is copied to clipboard and local file is saved
    10. Configure Actions by selecting Launch Application or Set Action
    11. If Desired, select Test Action to execute defined action
    12. Open gesture definition script with editor and paste gesture OR
    13. Configure Actions in /data/data/ar.com.nivel7.kernelgesturesbuilder/files/gesture-*.sh
      and Select Install Gestures to REPLACE without backup current gesture_set.sh or S50GestureActions and new directory /data/gestures (do not edit anything here, will be overwrite on each Install Gesture action)
    14. Select Menu/Select Gesture to edit another gesture and repeat the process from
    15. Draw Gesture for each desired gesture
    16. Select Menu/Install Gestures, if you have DorimanX kernel with Gestures enabled, turn off screen and turn it on again to activate new gestures. If you have another kernel reboot to apply changes.
    17. enjoy!

    Thanks To:

    License (Open Source, feel free to contribute and giving proper credit if you use it):
    GPL Version 3



    Changelog:
    • Version 1.15 [Nov 02 2013]
      Support for Android 4.4 KitKat
    • Version 1.14.1 [Jun 11 2013]
      Bug Fix: FC on start
    • Version 1.14 [Jun 06 2013]
      Select Gesture from Main Menu
    • Version 1.13 [May 03 2013]
      (unpublished)
    • Version 1.12 [Apr 26 2013]
      Set Action to gesture
      Test Action
    • Version 1.11 [Apr 19 2013]
      German, French & Spanish Translations
      Browse for Applications to Launch on Gesture
    • Version 1.10 [Apr 8 2013]
      Google Analytics for better support and future development
    • Version 1.9.1 [Mar 12 2013]
      Add support for new Superuser https://github.com/koush/Superuser
    • Version 1.8.1 [Jan 7 2013]
      Resolved bug in gesture install script
    • Version 1.8 [Dec 26 2012]
      Display actions for current gesture
      Force Portrait Mode
      Default gestures for 1280x720 devices
      Install Script in /system/etc/init.d if no /data/gesture_set.sh
    • Version 1.7 [Nov 30 2012]
      Draw actual path of traversal of every finger with different color and alpha blending [Debadatta]
      Read and Write to Scripts [It_ler]
      Parse gestures from config
    • Version 1.6 [Nov 23 2012]
      Install new Actions and Gestures config in /data/gestures (overwrites current script!)
      Changed max fingers to 5 (kernel limit)
    • Version 1.5 [Nov 15 2012]
      Allow changing of Gesture Number (1-30) from Settings
    • Version 1.4 [Nov 11 2012]
      Copy Gesture to Clipboard
    • Version 1.3
      Display Gesture Number fixed
    • Version 1.2
      Display Intercepted Hotspot
    • Version 1.1
      Detect Hotspot

    Known Bugs:
    • Bad finger numbering if finger not lifted in inverse order
    • Any Bug that you report


    Todo:
    • Animate the spots of an existing gesture to view on screen what trace you must do with fingers [Mario1968]
    • Custom name for gestures [Mario1968]
    • Always show current gesture anim, gesture number, gesture name on screen [Mario1968]
    • Any Feature that you request

    If you like my work please buy me a beer



    DONATIONS FROM:
    DorimanX
    6
    That's is Awesome!

    Thanks allot! :)

    beer on me :)
    Confirmation number: 2WN54160CY969421P.
    5
    Version 1.7 On Google Play

    Changelog:
    • Version 1.7 [Nov 30 2012]
      Draw actual path of traversal of every finger with different color and alpha blending [Debadatta]
      Read and Write to Scripts [It_ler]
      Parse gestures from config

    Just uploaded Version 1.7 to Google Play

    CLICK HERE TO INSTALL

    Thank you very much for your feedback!
    4
    Reserved I

    Reserved I
    4
    Reserved II

    Reserved II