1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
= KMSCON Release News =
CHANGES WITH 6:
* Allow arbitrary paths with --vt (kmscon)
* xkbcommon is now mandatory. We need it to handle keyboard input
properly and since xkbcommon-0.2.0 is released, there is no reason to
not depend on it.
We also removed the plain-input backend with this change.
* Snap window to console/font-size on resize (wlterm)
* Adjust to new libwayland-1.0 (wlterm)
* Many new command-line options for wlterm including --term, --login,
--palette, --sb-size and many --grab-* options.
* fake-VTs no longer react on SIGUSR1/2. This was always broken and now
removed.
* --switchvt works again and is now enabled by default.
* --xkb-model was introduced. The other --xkb-<rmlvo> options also use
system-defaults instead of us-keymap as default value now.
* wlterm works properly in maximized and fullscreen mode now
* key-presses are now properly marked as "handled" so it is no longer
possible for two subsystems to handle the same key-press.
* wlterm can now zoom the font size with ctrl+Plus/Minus
* TSM now supports screen selections. wlterm is hooked up with this and
supports this, too. However, the VTE layer has not seen this yet so
everything is computed in the terminal for now. Next kmscon release
will include client-side mouse-protocol support.
* Copy/Paste now works with wlterm
* Key-repeat has been reworked and now allows adjusting repeat and delay
times.
* Session support allows for multiple terminals (sessions) inside of
each seat. You can switch between the sessions, kill them and create
new terminals via keyboard shortcuts. Also several other sessions than
terminal sessions were introduced. However, all of them are
experimental and shouldn't be used.
* TSM now supports alternate screen buffers. They're enabled by default.
* Configuration handling has been reworked. Multiple config-files can
now be parsed and each seat has its own configuration file in
/etc/kmscon/<seat>.seat.conf.
* The build-tools have been reworked. They should now work properly with
any option-combination imaginable.
* --login option can now be used in config-files.
* We print hints if keyboard-shortcut names are written with wrong
capitalization.
* ... and a lot of bugfixes
CHANGES WITH 5:
* Idle sources are now faster registered and unregistered so they can
be used for any scheduling tasks
* eloop got pre- and post-dispatch hooks to inetgrate external
event-loops better
* Added pkg-config files for eloop, tsm and uterm
* Added xkbcommon-keysyms.h as fallback
* fakevt got removed. It is now integrated into kmscon core and is no
longer needed.
* Cleaned up unicode, console and vte layer. It is now a fully
independent library calles TSM.
* All helpers were prefixed with SHL_* and can be used in any project
inside of this repository. They are linked statically and mostly
inlined code.
* VTE layer now handles ALT key
* fbdev devices are automatically used if they are not run by DRM
drivers. Use --fbdev to force the use of fbdev devices only.
* --vt=<num> now selects the TTY to use by kmscon on seat0
* Added wlterm, a native terminal emulator for Wayland
* Lots of bugfixes! Thanks to all the bug-reporters!
CHANGES WITH 4:
* The "conf" subsystem was modularized so we can use it in other
binaries as well. It is also much easier to add new parameters now.
* Remove internal dependencies. Several subsystems will be split into
separate libraries (like eloop, uterm, vte+console) so we should avoid
any internal dependencies between these. This shouldn't affect
performance, though.
* New --seats argument which allows to specify what seats kmscon is
running on.
* The old vt.[ch] subsystem is now merged into uterm_vt.c and a fake VT
backend was added. This allows to activate/deactivate kmscon via
keyboard shortcuts. This is for debugging only, though.
* The VTE layer was extended a lot to support more advanced control
sequences and fix several bugs.
* --dumb now forces kmscon to use non-accelerated rendering
* The scrollback buffer now works. You can specify keyboard shortcuts
via --grab-* options. Default is: <Shift>Up/Down/Prior/Next
* GL_EXT_unpack_subimage is not required anymore.
* _Lots_ of speed improvements in the rendering path.
* The unifont font backend was added. This is similar to 8x16 but has a
lot more characters.
* ... and a lot of bugfixes
CHANGES WITH 3: (development release)
* VTE support has been improved greatly. vt220 should be supported fully
except for multi-line characters.
* glib dependency removed. Hashtables and unicode support is now
implemented in kmscon.
* Configfiles are now supported. /etc/kmscon.conf and ~/.kmscon.conf are
read by kmscon on startup. They can include the same options as the
command line options of kmscon. However, command-line options have
precedence.
* Multiple video objects are now supported per seat. That is, if you
have more than one graphics card per seat, all of them will be used by
kmscon. Multiple displays were supported from the beginning.
* Modularized input backend. The XKB backend is fully optional and can
be activated/deactivated during runtime. The Dumb backend has been
renamed to "plain".
* The eloop library is fully documented and should be API stable from
now on.
* The font renderer subsystem has been rewritten and replaced with a new
subsystem which can load different font-renderers during runtime.
Several backends including static 8x16 backend has been added. It is
possible to compile kmscon without freetype2/pango dependencies now.
* 2D blitting to framebuffers has been improved greatly. More devices
are supported now and blending is available, too. The 3D devices have
been updated to support these blitting operations via OpenGL. This may
be slow on older devices, though.
* New text renderer subsystem has been added. It can load multiple
different text-renderers during runtime. The default renderer (bblit)
uses 2D blitting operations to render text. However, the gltex
renderer is also available (optionally) which renders with OpenGL
textures. This can improve performance greatly on modern devices.
* Gcc optimizations are now enabled by default to improve rendering
performance.
CHANGES WITH 2: (development release)
* Build scripts were improved and simplified. They also allow much more
control about the build process now. The source was split into several
different libraries.
* Added llog.h helper for logging in libraries.
* Eloop was moved into separate library and supports more more
use-cases now. It can be used as a standalone project.
* Terminal emulator (vte.c) was improved a lot and can run vim now.
* Console layer was rewritten and is now much faster and much more
standards compliant.
* Uterm monitor was added. The monitor uses udev and systemd-logind to
watch the system for new seats and devices. This allows us to run on
multiple seats simultaneously and being hotplug-capable.
* Uterm vt layer was added. This simply wraps the older VT layer so we
can switch to different VT systems on-the-fly.
* New uterm video backends: The fbdev backend is now fully functional
kmscon can run on any fbdev device now. Furthermore, the dumb backend
was added which is simply an unaccelerated DRM backend that should
work even without EGL, GL, gbm, etc.
* New 2D rendering API. In case OpenGL is not available, we now allow
blitting images into the framebuffer. This is used for fbdev and dumb
video devices.
* Font renderer now depends on pango. This is is needed only until I get
the time to rewrite the freetype backend. But for now we depend on
pango so have full font support.
* lots of small fixes
CHANGES WITH 1: (development release)
* First kmscon release. For testing purposes only. Includes a rendering
pipeline and a very rundimentary terminal emulator.
|