Page 5 of 50 FirstFirst ... 3456715 ... LastLast
Results 41 to 50 of 495

Thread: Announcing easystroke, a gesture recognition app

  1. #41
    Join Date
    Dec 2007
    Location
    Berlin, Germany
    Beans
    21
    Distro
    Xubuntu 8.04 Hardy Heron

    Re: Announcing easystroke, a gesture recognition app

    Tom, thanks a lot for this little app! I have been looking for long to find a proper replacement for StrokeIt. Investigated wavy, xstroke, chickenscratch and gestikk. The latter one seemed to be most suitable and it is nice but suffers from the problems you mentioned as it is not meant to be for tablet pen input but for regular mouse usage.

    I had 3 minor issue I ran into using easystroke. First one is that I don't see easystroke as a menu entry (I am using Xubuntu on a ThinkPad x61t). So I cannot start it from the GUI but only from a terminal.
    Secondly, I could not store gestures as the gesture file belongs to root, so I had to change file permissions.
    Thirdly, when I right click the easystroke taskbar icon, the context menu shows up at a little weird offset position.

    Of course these issues are minor and easystroke works great here. I have defined a couple of gestures including:

    * minimize and close window
    * cut, copy, paste
    * delete, backspace, space, return
    * forward, backward, new tab, close tab for Firefox
    * launchers for cellwriter and some other tools

    works great so far, accurate and lag free, and makes a whole different tablet experience

    Now I am wondering whether it is possible to define a full blown xstroke/graffiti-like alphabet to input text? Anybody did that?

    Other questions include:
    * is it possible to share the gesture definition with other users? Or have a default gestures file included. This might be very helpful for all first-time users of gesture software and easystroke.
    * is it possible to issue a right-click, Ctrl-Click, Shift click, Alt-click to the gesture starting position? This would be great (never succeeded in doing this with StrokeIt).

    best regards,

    Peter
    Last edited by pibach; July 5th, 2008 at 02:03 PM.

  2. #42
    Join Date
    May 2008
    Beans
    25

    Re: Announcing easystroke, a gesture recognition app

    Thanks for you comments, Peter.

    Quote Originally Posted by pibach View Post
    I had 3 minor issue I ran into using easystroke. First one is that I don't see easystroke as a menu entry (I am using Xubuntu on a ThinkPad x61t). So I cannot start it from the GUI but only from a terminal.
    That seems easy enough, I'll be sure to include a proper .desktop file in the next release.
    Secondly, I could not store gestures as the gesture file belongs to root, so I had to change file permissions.
    I have no idea what's going on here. I'm using the standard C++ functions to open and write the config files, so they should get the default permissions. Is this reproducible?
    Thirdly, when I right click the easystroke taskbar icon, the context menu shows up at a little weird offset position.
    Thanks, I hadn't even noticed that. Turned out to be trivial to fix. Now it would be nice if GTK could be configured to always open menus a few pixels away from the mouse to avoid accidentally activating the first menu item.
    [/QUOTE]

    Other questions include:
    * is it possible to share the gesture definition with other users? Or have a default gestures file included. This might be very helpful for all first-time users of gesture software and easystroke.
    I've thought about that but it's not quite clear to me what the right user interface would be. One idea is to somehow use tags (which I will implement soon anyway to allow application-dependent behavior) in order not to clutter up the UI too much. I'll get to it eventually, but it's not the highest priority right now.

    * is it possible to issue a right-click, Ctrl-Click, Shift click, Alt-click to the gesture starting position? This would be great (never succeeded in doing this with StrokeIt).
    Emulating clicks is already possible in the development version, however, the click will originate at the position where the stroke ended. This seems to be a limitation of XTest, which can't move the pointer and issue the click atomically, so 4 times out of 5, the tablet pen causes the mouse to move back before we get a chance to send the click. It doesn't even seem to work well with a mouse. I've tried to send the clicks directly to the active application via XSendEvent, but that didn't work either, presumably because gtk ignores fake button events.

  3. #43
    Join Date
    Sep 2005
    Beans
    99
    Distro
    Dapper Drake Testing/

    Re: Announcing easystroke, a gesture recognition app

    Thanks for the update Tom. I'm afraid it will be a few days before I'm able to test it - I have some problems with my ISP and I can't connect to the internet from Ubuntu at the moment. I'm not sure I'll be able to test the current version before you release the next one
    The sole meaning of life is to serve humanity
    To me, GPL still means Grand Prix Legends...

  4. #44
    Join Date
    Dec 2007
    Location
    Berlin, Germany
    Beans
    21
    Distro
    Xubuntu 8.04 Hardy Heron

    Re: Announcing easystroke, a gesture recognition app

    Thanks, Tom again for the detailed answers.

    I think I got the purpose of the "Matrix" feature: As long as there are no >70% similarities, you can define as many gestures as you like, with high correct recognition probability. So I'll going to try this for a full alphabet...

    Still I have some issues:

    * I am starting easystroke via autostart entry. But then x11 crashes when I do a gesture, everything freezes. To fix this I go to console (CTRL-ALT-F1) and do a killall easystroke.
    But when I start easystroke from terminal it does not crash. Weird. But there I get the error : "XError: BadWindow (invalid Window parameter): request_code=20". Any hint?

  5. #45
    Join Date
    Dec 2007
    Location
    Berlin, Germany
    Beans
    21
    Distro
    Xubuntu 8.04 Hardy Heron

    Re: Announcing easystroke, a gesture recognition app

    I have defined a full alphabet. I am using it to write this post. Works well so far. My observations:

    * works fine and convenient on left click. If I use it on right click it becomes cumbersome after a while. Solution could be either a) a gesture to switch the click options b) on/off toggle c) ingnore if gestures start on GUI elements (e.g. scrollbars). ritePen from evernote does these things pretty well on Windows.

    * I cannot have a shift gesture, right? This might be helpful. Otherwise one needs to define a second set of upper case letters.

    * when I write in the URL bar of Firefox, then the popup listbox steals focus. I have the same issue with xvkbd, so every key must be enterd twice, quite annoying. GOK (Gnome Onscreen Keyboard) somehow has solved this problem.

    * the visual feedback in the taskbar icon does not help much. Would be better to visualize the actual recognized prototype there. And make it red if first and second recognition choices are too close or first choice is below threshold. I still get some wrong classifications.

    * still it has some slight performance issues when you get going to write fast. Also the windows and panel get flickering.
    Last edited by pibach; July 6th, 2008 at 01:12 AM.

  6. #46
    Join Date
    May 2008
    Beans
    25

    Re: Announcing easystroke, a gesture recognition app

    Gotta make this quick, I don't have much time.

    Quote Originally Posted by pibach View Post
    Thanks, Tom again for the detailed answers.
    * I am starting easystroke via autostart entry. But then x11 crashes when I do a gesture, everything freezes. To fix this I go to console (CTRL-ALT-F1) and do a killall easystroke.
    I can't reproduce this one. If you're using the latest development version, the output of "easystroke -vv" would be very helpful. In the future you will just be able to press Esc to get everything back to normal, but that's not implemented yet. In any case, this is a bug that should be fixed.
    But when I start easystroke from terminal it does not crash. Weird. But there I get the error : "XError: BadWindow (invalid Window parameter): request_code=20". Any hint?
    Probably not a big deal, this usually means that a window disappeared right after you moved the mouse into it, so we get an error when easystroke queries the window.
    [/QUOTE]

  7. #47
    Join Date
    May 2008
    Beans
    25

    Re: Announcing easystroke, a gesture recognition app

    Quote Originally Posted by pibach View Post
    I have defined a full alphabet. I am using it to write this post. Works well so far. My observations:

    * works fine and convenient on left click. If I use it on right click it becomes cumbersome after a while. Solution could be either a) a gesture to switch the click options b) on/off toggle c) ingnore if gestures start on GUI elements (e.g. scrollbars). ritePen from evernote does these things pretty well on Windows.
    I'll think about it. Scrollbar detection will probably require a good amount of guess-work, I'm not sure how reliable that can be. You're best bet right now are "Ignore" actions which will simply ignore the next stroke.

    * I cannot have a shift gesture, right? This might be helpful. Otherwise one needs to define a second set of upper case letters.
    It should be pretty easy to rig something up with shell scripts and xte. I'll elaborate on that later.

    * when I write in the URL bar of Firefox, then the popup listbox steals focus. I have the same issue with xvkbd, so every key must be enterd twice, quite annoying. GOK (Gnome Onscreen Keyboard) somehow has solved this problem.
    cellwriter has the same issue (and I actually have a patch that solves it that I need to send to the author sometime). These programs have a much easier time working around this problem since their windows select on Button events and they will still receive the ButtonUp event. easystroke uses a button grab, which won't get any events if it misses the Down event. I need to explore whether I can use an Xinput workaround here, but that might just be too hacky - even for my taste.

    * the visual feedback in the taskbar icon does not help much. Would be better to visualize the actual recognized prototype there. And make it red if first and second recognition choices are too close or first choice is below threshold. I still get some wrong classifications.
    I know, the recognition algorithm could definitely benefit from a complete redesign. It's one of those things that will happen eventually, but probably not too soon.

    * still it has some slight performance issues when you get going to write fast. Also the windows and panel get flickering.
    I think what you're seeing here are the delays I put in place to reduce flickering, which I believe is mostly a compiz issue. It'd probably be a good idea to make these delays a little shorter - especially since they don't eliminate flickering completely anyway. Eventually, I'd like to draw the strokes using a more modern extension like XRender (or whatever it is that compiz' annotate plugin is using, but once again, this is kind of low priority.

  8. #48
    Join Date
    Dec 2007
    Location
    Berlin, Germany
    Beans
    21
    Distro
    Xubuntu 8.04 Hardy Heron

    Re: Announcing easystroke, a gesture recognition app

    Tom, I highly appreciate that you take this much time to answer everything in that detail.

    I agree that the above issues are low priority as easystroke works fine. It makes my tablet a lot more usable. This little tool has the potential to become a killer app for all tablet users. What is required most is only a bit of promotion and some more specific use-case advices. BTW: here I am collection everything for a "TabletBuntu" Edition together with some friends from the ThinkPad Community (in German).

    Some more thoughts:

    * is there a good way to define macros (as ritePen 3.0 does)? For example "wkr" Gesture Stroke should expand to "with kind regards". Would you do this by a sendevent command?

    Edit: I did define some macros successfully using xte command plus str option. In the above example just place in the command field: xte "str with kind regards". Works great!

    Edit2: Regarding flickering: I am not using compiz but XFCE without compositing. When I switch on the built in composition, flickering is gone! (Unfortunately, I get the old scroll performance problems on complex Web pages again then)

    Edit3:
    * Regarding the crash I could pinpoint it: it occurs if I do a gesture associated to launch xvkbd. This allway crashes. Another gesture launching cellwriter only crashes from time to time. All other gestures I have defined work fine.

    * regarding the activation button: what about when placing the cursor into an input field, then around this cursor position all strokes activate on left click? This would be similar to MacOS inking.
    Last edited by pibach; July 7th, 2008 at 01:55 AM.

  9. #49
    Join Date
    May 2008
    Beans
    25

    Re: Announcing easystroke, a gesture recognition app

    Quote Originally Posted by pibach View Post
    BTW: here I am collection everything for a "TabletBuntu" Edition together with some friends from the ThinkPad Community (in German).
    This is great. I have an x61t, too.

    Edit: I did define some macros successfully using xte command plus str option. In the above example just place in the command field: xte "str with kind regards". Works great!
    Seems like good way of accomplishing this sort of thing. I'll mention it in the documentation. As for defining actions consisting of multiple strokes, I might introduce a simple state-based model (since we will need a concept of state for application-dependent gestures anyway), but I somehow resist the idea of introducing full-fleged scripting capabilities.

    Edit2: Regarding flickering: I am not using compiz but XFCE without compositing. When I switch on the built in composition, flickering is gone! (Unfortunately, I get the old scroll performance problems on complex Web pages again then)
    That's odd, I'm don't see flickering in metacity.
    The 'Standard' setting in Preferences/Appearance/Method... might work better for you, but it will prevent screen updates until the gesture is over.

    Edit3:
    * Regarding the crash I could pinpoint it: it occurs if I do a gesture associated to launch xvkbd. This allway crashes. Another gesture launching cellwriter only crashes from time to time. All other gestures I have defined work fine.
    Fixed. These weren't really crashes, I previously used the system() call, which would wait for the application to finish before continuing. Of course you can easily walk around this by appending '&' to your command if you don't want to switch to the development version.

    * regarding the activation button: what about when placing the cursor into an input field, then around this cursor position all strokes activate on left click? This would be similar to MacOS inking.
    This is a great idea and I shouldn't give up on it too early, but it might not be possible: The X server is not aware of what widgets windows consist of, so there's no way to tell where the text input fields are.

    EDIT: It looks like I might be able to abuse the XDND drag and drop protocol, which is based around the idea that the source application must grab the server in order track the pointer outside its window and in order to change the pointer, so the target application can't get any mouse events and has to rely on the source to provide it with the necessary information. X is a mess.

    As for defining a "shift gesture" that causes the next character to be upper case, I would associate the command "touch /tmp/shift" with the shift gesture and then use the command "/path/to/key ..." to press the keys where key is the following shell script (untested):
    Code:
    #!/bin/bash
    if [ -f /tmp/shift ]
    then
      xte "keydown Shift_L" "key $1" "keyup Shift_L"
      rm -f /tmp/shift
    else
      xte "key $1"
    fi
    when I write in the URL bar of Firefox, then the popup listbox steals focus.
    Okay, I've taken the plunge and allowed gestures to be initiated as long as we are receiving XInput events. This seems to work better than I expected, but the fundamental problem remains: If the server is grabbed (usually because an app is showing a menu), the app will still receive the click event.

    I've attached another snapshot. Again, there've been lots of changes under the hood. If easystoke is acting weird, you should be able to fix things by pressing escape now (but unfortunately, that means that gestures sending an Escape key will not work for the time being).
    Attached Files Attached Files
    Last edited by Tom Jaeger; July 7th, 2008 at 11:12 PM.

  10. #50
    Join Date
    Dec 2007
    Location
    Berlin, Germany
    Beans
    21
    Distro
    Xubuntu 8.04 Hardy Heron

    Re: Announcing easystroke, a gesture recognition app

    Great! I can confirm that with new snapshot:

    * Focus issue: I can enter gestures. But as you explained, app receives the click. But when I write on an area that does not do anything on the click it works fine. In my case I use easystroke on right click, and Firefox URL list do not react on right click. So as long as I start gesturing within the popup list, there is no interference. Working. if you use left click for easystroke it conflicts with grab&drag scrolling. If you disable that, it steals focus...

    * "crash": fixed, I can invoke xvkbd. Working.

    * flickering: still get flickering on "standard" mode, but that seems to be normal (?). When I choose Xshape it works fine without flickering. Still there seems to be sligth performance issues, as when I do gestures very fast, first part sometimes is not correctly drawn and recognised.

    As easystroke works so nicely I experiment using it on left click and did define a "pause" gesture (should be explained in the Documentation as this is very important!). But for more convenient working on left click without interference I have the following idea:

    * If you start gesturing and do not move the pen for a threshold (e.g. 500milliseconds, 5 pixels), then ignore gesture mode and transmit input to the underlaying window. This way when you do a scrollbar slide, a drag&grad scroll slide, or some text selection slide, for example, you only get some short delay but can go ahead afterwards.

    * nevertheless there should be an easy way to change button option. Then you could switch to right button by a gesture (or by window context in future versions, e.g., no left click gestures over cellwriter). Also there should be a "deactivate" checkbox that can be automatically chosen (by a script) if changing back to laptop mode. To reactivate, one could tab the taskbar icon (and have options on right click menu).

    Tom, what do you think about these ideas?

    * another nice thing would be to place cellwriter, which I invoke by a geture, nearby the current cursor position (similar as Vista does with the TIP). Is there a way to do this?
    Last edited by pibach; July 8th, 2008 at 02:20 AM.

Page 5 of 50 FirstFirst ... 3456715 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •