README.md 4.78 KB
Newer Older
Sebastian Gottfried's avatar
Sebastian Gottfried committed
1
# KTouch
2

Sebastian Gottfried's avatar
Sebastian Gottfried committed
3 4
<a href='https://flathub.org/apps/details/org.kde.ktouch'><img height='56' alt='Get KTouch from Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'></a>
<a href='https://snapcraft.io/ktouch'><img height='56' alt='Get KTouch from the Snap Store' src='https://snapcraft.io/static/images/badges/en/snap-store-black.svg'></a>
Sebastian Gottfried's avatar
Sebastian Gottfried committed
5 6

![Screenshot](https://cdn.kde.org/screenshots/ktouch/ktouch.png)
7

8 9 10 11 12 13 14
KTouch is a program to learn and practice touch typing. Every finger
has its place on the keyboard with associated keys to press. Starting
with only a few keys to remember you will advance through different
training levels where additional keys are introduced. Because you no
longer need to search for the keys on the keyboard you will be able
to type quickly and accurately.

Sebastian Gottfried's avatar
Sebastian Gottfried committed
15 16 17 18
# Build Status

| Jenkins CI Name | Master | Stable |
| --------------- | ------ | ------ |
19 20
| OpenSuse Qt 5.14 | [![Build Status](https://build.kde.org/job/Applications/job/ktouch/job/kf5-qt5%20SUSEQt5.14/badge/icon)](https://build.kde.org/job/Applications/job/ktouch/job/kf5-qt5%20SUSEQt5.14/) | [![Build Status](https://build.kde.org/job/Applications/job/ktouch/job/stable-kf5-qt5%20SUSEQt5.14/badge/icon)](https://build.kde.org/job/Applications/job/ktouch/job/stable-kf5-qt5%20SUSEQt5.14/) |
| FreeBSD Qt 5.14 | [![Build Status](https://build.kde.org/job/Applications/job/ktouch/job/kf5-qt5%20FreeBSDQt5.14/badge/icon)](https://build.kde.org/job/Applications/job/ktouch/job/kf5-qt5%20FreeBSDQt5.14/) | [![Build Status](https://build.kde.org/job/Applications/job/ktouch/job/stable-kf5-qt5%20FreeBSDQt5.14/badge/icon)](https://build.kde.org/job/Applications/job/ktouch/job/stable-kf5-qt5%20FreeBSDQt5.14/) |
Sebastian Gottfried's avatar
Sebastian Gottfried committed
21

Sebastian Gottfried's avatar
Sebastian Gottfried committed
22 23
# Development Setup

24 25 26 27 28 29
## Quick Start

In the top level directory there is a script called `build-install-run`
which can be used to configure, build, install and run KTouch in one
step. Execute:

Sebastian Gottfried's avatar
Sebastian Gottfried committed
30
    ./build-install-run
31 32 33 34 35 36

in the top-level directory of the KTouch repository to get started.
It is just simple wrapper arround CMake and set ups the necessary
environment variables to run KTouch. Build artifacts are stored in
the subdirectory `build/`, install files go to `install/`.

Sebastian Gottfried's avatar
Sebastian Gottfried committed
37
## Building
38 39

KTouch has the following build dependencies:
Sebastian Gottfried's avatar
Sebastian Gottfried committed
40 41 42 43

 * [CMake][cmake] ≥ 3.0.0
 * [Extra CMake Modules][ecm] ≥ 1.0.0
 * [Qt][qt] ≥ 5.9 with the following modules
44 45 46 47 48 49 50 51 52
   * Qt GUI
   * Qt QML
   * Qt Quick
   * Qt Quick Widgets
   * Qt Quick Controls 2
   * Qt SQL
   * Qt Test
   * Qt XML
   * Qt XML Patterns
Sebastian Gottfried's avatar
Sebastian Gottfried committed
53
 * [KDE Frameworks 5][kf5] with:
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
   * Completion
   * Config
   * ConfigWidgets
   * CoreAddons
   * Declarative
   * DocTools
   * I18n
   * ItemViews
   * KCMUtils
   * KIO
   * TextWidgets
   * WidgetsAddons
   * WindowSystem
   * XmlGui
   * IconThemes
69
 * optionally, for keyboard layout auto-detection:
70
   * Qt X11 Extras
71 72 73 74
   * [Xlib][xlib]
   * [XKB][xkb]
   * [libxkbfile][libxkbfile]
   * [libxcb][libxcb] with libxcb-xkb
Sebastian Gottfried's avatar
Sebastian Gottfried committed
75 76 77 78 79

[cmake]: https://cmake.org/
[ecm]: https://cgit.kde.org/extra-cmake-modules.git/
[qt]: https://www.qt.io/
[kf5]: https://api.kde.org/frameworks/
80 81 82
[xlib]: https://tronche.com/gui/x/xlib/
[xkb]: https://www.x.org/wiki/XKB/
[libxkbfile]: https://gitlab.freedesktop.org/xorg/lib/libxkbfile
Sebastian Gottfried's avatar
Sebastian Gottfried committed
83
[libxcb]: https://xcb.freedesktop.org/
84

Sebastian Gottfried's avatar
Sebastian Gottfried committed
85 86 87 88 89 90 91
Collecting and installing all dependencies by hand can be a challenge.
Far easier is to use the dependency resolution of your package
manager. Usually they can be instructed to install all dependencies
automatically by using the information of the packaged version of
KTouch:

    apt-get build-dep ktouch # Ubuntu, Debian, ...
92
    zypper source-install --build-deps-only ktouch # openSUSE
Sebastian Gottfried's avatar
Sebastian Gottfried committed
93 94 95

If the build requirements are met, execute the following commands in
the root directory of your working copy to built and install KTouch:
96

Sebastian Gottfried's avatar
Sebastian Gottfried committed
97
    mkdir build
Sebastian Gottfried's avatar
Sebastian Gottfried committed
98 99
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=../install
Sebastian Gottfried's avatar
Sebastian Gottfried committed
100
    make
Sebastian Gottfried's avatar
Sebastian Gottfried committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
    make install

These commands install KTouch to the directory `install` in the root of
your working copy. You can install KTouch to any directory of your
choice by passing a different path to `-DCMAKE_INSTALL_PREFIX`.

## Running

At runtime KTouch needs the following additional software packages to be
installed:

 * [Breeze icon set][breeze]
 * [kqtquickcharts][kqtquickcharts] ≥ 16.12
 * [plasma-desktop][plasma-desktop] (optional, for keyboard layout
   configuration inside the application)

[breeze]: https://phabricator.kde.org/source/breeze-icons/
[kqtquickcharts]: https://phabricator.kde.org/source/kqtquickcharts/
[plasma-desktop]: https://phabricator.kde.org/source/plasma-desktop/

KTouch needs the following environment variables to be set in order
to find all its installed resources:
123

Sebastian Gottfried's avatar
Sebastian Gottfried committed
124 125
    export KDEDIRS=<full-path-to-install-dir>:$KDEDIRS
    export XDG_DATA_DIRS=<full-path-to-install-dir>/share:$XDG_DATA_DIRS
126

Sebastian Gottfried's avatar
Sebastian Gottfried committed
127
After this, KTouch can finally be launched with:
128

Sebastian Gottfried's avatar
Sebastian Gottfried committed
129
    <path-to-install-dir>/bin/ktouch