README.md
1[![pipeline status](https://gitlab.com/cutecom/cutecom/badges/master/pipeline.svg)](https://gitlab.com/cutecom/cutecom/commits/master)
2
3## Welcome to _CuteCom_
4
5CuteCom is a graphical serial terminal, like minicom.
6Currently it runs on Linux (tested) and should run on FreeBSD, Mac OS X and maybe other systems as well (untested).
7It is aimed mainly at hardware developers or other people who need a terminal to talk to their devices.
8It is free software and distributed under the GNU General Public License Version 3.
9It is written using the [Qt library](http://www.qt.io/) originally created by Trolltech.
10
11### History
12
13The current CuteCom-version has being reimplemented using Qt 5 switching to the now available QSerialport.
14The GUI was facelifted and amongst other features a session support was added.
15Session support comes in handy if you have two or more devices connected, each of it talking
16in different baudrates or other connection parameters. The command history is stored for each individual session since
17different devices may provide a different set of commands.
18Features enhancements of various forks have been included see [**_CREDITS_**](CREDITS) for a complete list.
19Version 0.30.0 is the first public release after the reimplementation.
20
21### Features:
22
23* easy to use GUI
24* no cryptic keyboard shortcuts
25* lineoriented interface instead of character-oriented
26* Ctrl+C, Ctrl+Q and Ctrl+S control sequences work (use CMD+<Key> on MacOS)
27* input history
28* a cute GUI ;-)
29* session support via -s <session name> specified at the command line
30* switching sessions via a session manager
31* control panel hides when not used
32* xmodem, ymodem, zmodem support (requires the sz tools)
33* easy to differentiate between typed text and echoed text
34* select between read/write, read-only and write-only open mode
35* hexadecimal input and output
36* configurable line end characters (LF, CR, LFCR)
37* configurable delay between characters
38* optionally show control characters like line feed or tabs in output
39* optionally prefix each line in output with a timestamp
40* open the device without changing its settings (was not ported but could be added if demand arrises )
41* plugins (macros, netproxy)
42
43
44### Build instructions
45
46On Linux you will hopefully find ready made packages using the package manager of your distribution.
47To build your own copy, you need to run `cmake .` followd by make.
48You'll then find a cutecom binary in the same folder.
49`make package` should provide you with a generic RPM package (which lacks the documentation and the like).
50`make dist` creates a tar ball (so does `make package_source`).
51The latter are especially usefule for crafting [a new release](./Releasing.md).
52CuteCom is using [GitLabCI](./CI.md).
53
54#### Requirements for Building:
55
56* CuteCom 0.30.0 +: Qt >= 5.3, CMake >= 2.8.11
57* on linux look for the qt5 development packages including QSerialport
58* Since C++C11 features are used a gcc supporting these is needed too
59
60## Changelog
61
62Here is the complete [**_Changelog_**](Changelog).
63
64**_Current state:_** stable
65
66**_TODO_ **:
67
68* searching in the output view via context menu and Ctrl+F shortcut
69* translations
70* show control characters in a different colour
71* selectable style for the output view like green on black including
72* font selection for the output view
73
74
75As always:
76**Pull requests are welcome ! :-)**
77Please check the [contribution guidelines](CONTRIBUTING.md).
78
79### Screenshot
80
81Ok, here comes the inevitable screenshot:
82
83![Screenshots](cutecom.png)
84
85The control panel for adjusting the device settings slides out when pressing the Settings button.
86At the upper half, commands issued are accumulated.
87Commands may be selected from the history using up and down arrow keys.'
88Right below command line situated right in the middle, the output view can be found.
89It will autoscroll to the end of the date sent from the connected device.
90Autoscolling will stop, once a certain section of the data is scrolled to.
91PageUp and PageDown are working for moving through the output view.
92
93![Pressing Ctrl will open a widget allowing you to add control characters into the input field](ctr_characters.png)
94Pressing Ctrl will open a widget allowing you to add control characters into the input field.
95
96## Previous versions:
97
98**_Previous version (uses Qt4):_** [cutecom-0.22.0.tar.gz,](http://cutecom.sourceforge.net/cutecom-0.22.0.tar.gz) , June 27th, 2009
99(yes, it's really only 22kb). Now also works on Mac OSX and supports more baud rates.
100
101For older versions have a look at the SourceForge project page.
102
103CuteCom was heavily inspired by [Bray++ Terminal for Windows](https://sites.google.com/site/terminalbpp/).
104
105