• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

debian/H03-May-2022-638441

doc/H03-May-2022-303250

etc/H03-May-2022-2,3862,127

familiar/H03-May-2022-6244

test/H03-May-2022-1,8321,701

AUTHORSH A D16-Aug-2001141 42

COPYINGH A D01-Nov-200017.6 KiB341281

ChangeLogH A D02-Feb-200217.8 KiB488345

ImakefileH A D03-May-20221.4 KiB3829

READMEH A D16-Aug-20015.3 KiB125103

TODOH A D02-Feb-20023.1 KiB9564

action.cH A D31-Oct-20011.8 KiB8456

action.hH A D31-Oct-2001929 3414

action_item.cH A D31-Oct-20016.7 KiB291232

action_item.hH A D03-May-20223.2 KiB11079

anchor_engine.cH A D10-Dec-20013.4 KiB12678

anchor_engine.hH A D31-Oct-20011.5 KiB4721

args.cH A D10-Dec-20015.6 KiB220191

args.hH A D03-May-20222 KiB8158

backing.cH A D31-Oct-20017.3 KiB253211

backing.hH A D19-Sep-20011.4 KiB5428

bresenham.cH A D31-Oct-20012.1 KiB9874

bresenham.hH A D31-Oct-20011 KiB3011

brush-image.hH A D19-Sep-2001723 1814

brush-shadow.hH A D19-Sep-2001683 1814

brush.cH A D10-Dec-20016.1 KiB219145

brush.hH A D19-Sep-20011.1 KiB5026

control_win.cH A D02-Feb-200215.1 KiB551383

control_win.hH A D02-Feb-20021.7 KiB6438

copyrightH A D15-Aug-2001346 107

dir_engine.cH A D10-Dec-200125.1 KiB865550

dir_engine.hH A D10-Dec-20011.3 KiB4017

feature.cH A D31-Oct-20012.2 KiB9562

feature.hH A D31-Oct-20011.2 KiB4724

fixed.cH A D10-Dec-20011.2 KiB4828

fixed.hH A D10-Dec-2001898 268

gesture.cH A D31-Oct-20012.9 KiB12888

gesture.hH A D31-Oct-20011.4 KiB5327

grab_test.cH A D10-Dec-20011.5 KiB6150

grid.cH A D31-Oct-20012.6 KiB11685

grid.hH A D31-Oct-2001787 267

grid_engine.cH A D10-Dec-20013.3 KiB13483

grid_engine.hH A D31-Oct-20011.5 KiB4822

include_stack.cH A D31-Oct-20011.1 KiB4320

include_stack.hH A D31-Oct-20011,008 3415

log.cH A D31-Oct-20014.1 KiB178143

log.hH A D17-Sep-2001865 3415

matrix.cH A D10-Dec-20013.5 KiB13597

matrix.hH A D24-Sep-20011.4 KiB4321

option.cH A D31-Oct-20011.5 KiB6941

option.hH A D31-Oct-20011.1 KiB4220

raw_engine.cH A D10-Dec-20013 KiB12881

raw_engine.hH A D10-Dec-20011.5 KiB4822

rec.cH A D02-Feb-200213.4 KiB511397

rec.hH A D10-Dec-20012.1 KiB8047

rec_baseline.cH A D10-Dec-20012.7 KiB10062

rec_baseline.hH A D19-Sep-20011.2 KiB4017

rec_callback.cH A D31-Oct-2001987 3818

rec_callback.hH A D31-Oct-2001986 3414

rec_engine.cH A D10-Dec-20016.7 KiB293231

rec_engine.hH A D31-Oct-20012.7 KiB7950

rec_history.cH A D31-Oct-20013 KiB11983

rec_history.hH A D24-Sep-20011.6 KiB5429

rec_lex.hH A D10-Dec-2001754 246

rec_lex.lH A D10-Dec-20017.1 KiB318257

rec_mode.cH A D31-Oct-20013.6 KiB160102

rec_mode.hH A D31-Oct-20011.5 KiB5428

rec_parse.hH A D31-Oct-2001703 245

rec_parse.yH A D03-May-20226.9 KiB368311

rec_private.hH A D16-Aug-2001734 245

regex_feature.cH A D03-May-20221.7 KiB7246

regex_feature.hH A D03-May-2022844 278

sprintf_alloc.cH A D10-Dec-20012.3 KiB10167

sprintf_alloc.hH A D31-Oct-2001747 235

stroke.cH A D10-Dec-20016.4 KiB262198

stroke.hH A D10-Dec-20011.4 KiB6636

xlp.cH A D02-Feb-200211.2 KiB470309

xlp.hH A D02-Feb-20021.5 KiB5932

xlp_callback.cH A D31-Oct-20011.3 KiB5332

xlp_callback.hH A D09-Oct-20011.2 KiB4222

xlp_color.cH A D31-Oct-20011.9 KiB6541

xlp_color.hH A D31-Oct-20011,008 3616

xlp_timeout.cH A D02-Feb-20021.2 KiB4726

xlp_timeout.hH A D02-Feb-20021.1 KiB4120

xlp_win.cH A D02-Feb-20024.7 KiB175127

xlp_win.hH A D02-Feb-20021.8 KiB6238

xpiercH A D22-May-2001455 5352

xstroke.cH A D10-Dec-200116.4 KiB589470

xstroke.hH A D31-Oct-20011.5 KiB6431

xstroke.manH A D27-Aug-20011.2 KiB3927

README

1xstroke - full-screen gesture recognition for X
2
3Copyright (C) 2000 Carl Worth
4
5xstroke is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19Comments are welcome.
20
21What is xstroke?
22----------------
23xstroke is a gesture recognition program. Performing known gestures in
24the xstroke window, (using a stylus, mouse, or other ppointer), will
25cause actions to be performed, (most commonly to send character events
26to the currently focused window). The known strokes actions and there
27corresponding actions are defined in the ${HOME}/.xstrokerc file
28described below. The underlying recognizer uses a 3X3 grid,
29(originally inspired by libstroke, but now an independent
30implementation).
31
32This is the first release of xstroke, (version 0.1), and it should be
33considered alpha-quality, (expecially the build environment, or lack
34thereof, and documentation). I've found xstroke to be useful and
35usable personally, but I have no idea if anyone else will. Also, I did
36the X programming in Xlib, (as opposed to Xt or some other toolkit),
37as a learning exercise. I'm new to X programming, so there may be some
38rough spots.
39
40What does xstroke depend on?
41----------------------------
42To compile xstroke you will need:
43	X
44	A C compiler
45
46To generate the diagrams of known strokes you will need:
47	perl
48	Metapost, (part of the texmf distribution)
49
50Compiling xstroke
51-----------------
52If you would like to compile xstroke, simply edit the Makefile to
53point to correct locations for X and type make. (Yes, this is a
54primitive build environment -- something fancy like autoconf will come
55in a future release).
56
57To install, copy xstroke to a directory on your path and copy the
58default xstrokerc file to ${HOME}/.xstrokerc.
59
60Using xstroke
61-------------
62The xstrokerc file included with this version of xstroke defines an
63alphabet for all lowercase/capital letters, all numbers, and all
64punctuation that is on my keyboard, (pc104 US), including Space,
65BackSpace, Return, Tab, Escape and the four cursor arrows. It does not
66define any accented characters, (although anyone could add
67these). Also, xstroke does not yet support modifier keys. (Note: You
68can put a modifier key specification in the configuration file, but
69currently it will just send a single KeyPress event followed by a
70KeyRelease event for that key, just as it does with all other keys. So
71this is not very useful for entering modified keys using strokes.) The
72next release of xstroke will include support for modifiers.
73
74To use xstroke, simply stroke into its window. For each recognized
75stroke, a KeyPress and a KeyRelease event will be sent to the window
76that has focus.
77
78Look at the doc/alphabet.ps file to see what the currently defined
79strokes are. This document can be regenerated from ${HOME}/.xstrokerc
80to include any customized strokes, see doc/generate_diagrams.pl as
81well as doc/Makefile.
82
83What alphabet is this?
84----------------------
85The default alphabet in xstrokerc is an original alphabet that I
86created. I made many strokes similar to the strokes in the program
87xscribble. The big difference in my alphabet is that I do not use any
88shift modes, (capitals, num-shift, punc-shift, etc). Instead, I have
89all letters, numbers, and punctuation defined in a single alphabet. To
90do this, I've implemented capital letters as strokes just like the
91corresponding lowercase stroke, but with the last line segment
92repeated in the opposit direction. For example, the capital 'L' stroke
93goes down, to the right, then back to the left, (1478987). Most
94numbers, (except 6, 8, and 9), are drawn in reverse to distinguish
95them from letters. My punctuation alphabet is largely custom. The
96alphabet also includes many strokes shaped like lowercase letters, (b,
97d, e, etc.) that do not exist in xscribble.
98
99See doc/alphabet.ps for a more exact depiction of the alphabet.
100
101Also, see doc/xstroke_vs_xscribble if you are interested in how this
102alphabet differs from xscribble's.
103
104Will you add support for modes?
105-------------------------------
106I plan to make a future release of xstroke that will support
107modes. Then, anyone that cares to could implement their favorite modal
108alphabet.
109
110Can I make my own strokes?
111--------------------------
112The xstroke configuration file, (${HOME}/.xstrokerc), defines strokes
113and actions to be performed when the stroke is entered. Currently, the
114only supported action is to send a KeyPress and KeyRelease event to
115the currently focused window. Future releases of xstroke will add
116support for addition actions including sending strings of characters,
117(macro expansion), as well as executing commands. See the
118doc/configuration file for an explanation of the syntax of
119${HOME}/.xstrokerc or just dive in and figure it out!
120
121Well, that's about it. Feel free to send me comments, suggestions, or
122bug fixes.
123
124-Carl Worth <cworth@east.isi.edu>
125