Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Easystroke is written in C++ and uses gtkmm for its GUI, but it also depends on the availability of several X11 extensions (Xtst, Xrandr and Xinput) and on the boost::serialization library. Installation of the libraries is distribution-specific. Please feel free to add instructions for your distro of choice.
sudo apt-get install g++ libboost-serialization-dev libgtkmm-3.0-dev libxtst-dev libdbus-glib-1-dev intltool xserver-xorg-dev
sudo apt-get build-dep easystroke
NOTE: Easystroke 5.x and below need libgtkmm-2.4-dev to build, not 3.0.
yum install gcc-c++ gtkmm24-devel dbus-glib-devel boost-devel libXtst-devel intltool
NOTE: You might have to install 'xorg-x11-server-devel' for easystroke to compile probably (I had to).
zypper in make gcc gcc-c++ gtkmm2-devel glib2-devel dbus-1-glib-devel boost-devel intltool
NOTE: You might have to install 'xorg-x11-server-sdk' to successfully build on 12.X.
pisi it make gcc gtkmm boost-devel intltool
For Pardus, you also have to add -lXi to the LIBS row in the Makefile in order to get the app to compile.
NOTE: As for now, easystroke is in an unmaintained state.
- The original author is not available.
- The last release was on 23. March 2013, so ~6 Years ago.
- Even the master tree is not build-able any more without patches from unmerged pull requests.
- As we do not have the credentials for this repository and the sourceforge page, an alternative solution has to be found.
- Many distributions still build their packages from 0.6.0 release, which causes numerous problems.
- A list of the commits to git master since release can be found here
- On Ubuntu's bug tracker for example, there are numerous bug entries where fixes are available, but they are not applied there.
The steady flow of pull requests nevertheless shows the interest in this unique program
Preliminary binary bugfix-release of 2018/12/05: AppImage (built on Ubuntu 18.04; easystroke should run directly by making it executable and double clicking it.)
Preliminary Debian package release with all patches applied: easystroke_0.6.0-0ubuntu8_amd64.deb (built on Ubuntu 18.04)
Preliminary source-code bugfix-release of 2018/12/05: patched-easystroke-master.tar.bz2 (already patched, patches included for reference)
- Short instructions for compiling (after you installed the build-dependencies for your distribution as stated above) :
wget http://openartisthq.org/easystroke/patched-easystroke-master.tar.bz2 tar xvjf patched-easystroke-master.tar.bz2 cd patched-easystroke-master/easystroke make
then run it with
or install it to /usr/local with
sudo make install
(in case your distribution does not have sudo installed, it's obviously just "make install"
These patches were applied on top of git master:
- fix build failed in libsignc++ version 2.5.1 or newer build fix
- Remove abs(float) function that clashes with std::abs(float) build fix
- fixed recurring crash when trying to render 0x0 tray icon bug fix
- dont-ignore-xshape-when-saving.patch bug fix, fixes Changing 'method to show gestures' to Xshape does not persist
switch from fork to g_spawn_async bug fix
This fixes a serious bug that can lead to system instability. Without this patch, if a 'Command' action is commonly used, it will lead to so many zombie processes that the OS will be unable to launch additional processes.
- add-toggle-option.patch new feature: adds a actvation/deactivation toggle when right-clicking the tray icon``
- easystroke-0.6.0-gnome3-fix-desktop-file cosmetic fix
A list of all available Patches can be found here for now.
Detailed instructions to follow.
As development is stalled, the following section is not relevant for now.
Most users will probably want to use a released version, so they can skip this section. However, there are a few reasons why someone would use the latest development version and you are absolutely encouraged to do so. You want to get a sneak preview of the awesome features that are planned for the next release. You want to help me out by trying to catch bugs before they make it into a release. This is greatly appreciated. You want to send me a patch. Please always keep a backup of your .easystroke configuration directory, as the file format is often unstable during development and it is usually not possible to go back to the stable release once the configuration has been saved in a newer file format.
Note that some advanced features are only available if easystroke is started with the -e command line option.
Easystroke uses git for revision control. To fetch the development tree for the first time, type
git clone git://github.com/thjaeger/easystroke.git
which will create a subdirectory 'easystroke' containing the sources. You can update to the latest tree anytime by changing into that directory and typing 'git pull'.
Now we're ready to build the program. Change into the easystroke directory and type 'make -j2'. This will create an executable file that you can either run directly or copy into your $PATH (easystroke does not require additional files to be installed), but of course you can also use 'make install' to install the program to /usr/local/bin. You can also create a small manpage using help2man by typing 'make man'.