1# 0.6.0 - 0.6.1
2* universal open/save:
3Clients that announce support for global open/save via bchunk-hints
4now trigger the file browser accordingly.
5
6* display/share and target/share reworked:
7Display/region/ based sharing removed (except for snapshot/monitor)
8in favoring of a /target/share menu that consolidate all such options.
9
10* uiprim/sbar:
11statusbar custom button controls added, it is now possible to define
12alt-action (such as custom popup spawn) as well as drag-action.
13
14* workspace buttons now popup layout mode selector on altclick, and
15migrate window on drag-drop
16
17* uiprim/tbar:
18titlebar merge-to-status bar mode on select (if hidden)
19titlebar rclick now mappable (default, popup /target)
20
21* uiprim/popup:
22added basic popup component
23
24* target-launch:
25When activating global/target/launch to start a trusted application you
26can also supply an application tag. This helps automation as you can now
27specify that tag as part of /windows/by-tag etc. when there are no UUIDs
28or other values to take advantage of.
29
30* input/rotary added:
31This tool implements basic gestures, commands and mapping for rotary devices
32like the 'Surface Dial' and 'Griffin PowerMate'.
33
34* tools/extbtn added:
35Registers into global/settings/statusbar and adds option for external clients
36to connect and attach custom buttons. This deprecates the statusbar IPC in
37favor of solving this externally.
38
39* tools/autostart added:
40This tool allows a series of paths to be automatically run on startup.
41
42* tools/profile\_picker added:
43This tool is the first step towards better initial configuration. It triggers
44on startup and installs UI schemas for default inputs, colors and security
45profiles.
46
47* triggers:
48added per-window option to bind multiple custom triggers on select,
49deselect and destroy
50
51* layout/tile:
52allow titlebar drag/drop as a mouse- triggered way to swap, m1 and m2 control
53swap, join as child or join as sibling. allow better gap controls.
54
55* layout/htab:
56added side column based tabbed layout mode
57
58* menu/hud:
59Cipharius added support for fuzzy-string matching to the HUD, switch it on by
60entering % and pick fuzzy_relevance as the sort method.
61
62* menu/devmaps:
63Custom menus/aliasmaps can now be built. These register in the menu root
64(/menus) and are intended for shortcut button grids, popup menus, radial menus
65and so on.
66
67* workspaces assignment:
68It is now possible to control which workspace new windows currently spawn at,
69see the /global/settings/workspaces/spawn path.
70
71* visual:
72Add soft shadow controls to windows, ui elements and statusbar
73
74* input/touch improvements:
75New gestures, 'tap', 'doubletap', 'idle\_return', 'idle\_enter'. improved
76relative mouse emulation to better handle click-select refactored some of the
77code to more easilly accomodate custom classifiers. Some device profile based
78values can now be changed through the path /global/input/touch. A classifier
79that forwards as basic touch events has been added.
80
81* first round of (non-text) icon management (caching, shared sets etc.) added
82
83* displays/current/zoom added:
84Bind to keyboard for zooming in/out around the mouse cursor position
85
86* new tool: streamdeck
87This allows external mini displays (touchbars etc.) to be hooked up and
88act as restricted input devices as well as custom widget mappings
89
90* new tool: todo
91This tool allows for simple tracking of todo tasks that integrate with
92the notification system, status bars and so on.
93
94* new tool: tracing
95This tool mixes the monitoring wm inspection parts of durden with the
96tracing facility in arcan to produce chrome://tracing friendly json logs.
97
98Minor / Fixes:
99* global/settings/terminal/tpack added for temporarily forcing server-side
100  text on for all new terminal windows (feature still experimental)
101
102* display resolution picker should now bias towards the highest refresh
103rate when there are multiple to chose from at the desired resolution
104
105* added controls to insert subwindows as new windows or relative to their
106parents, (global/settings/workspaces/tiled/subwindow=normal,child)
107
108* removed the 'alternate' window feature (used with wayland toplevels and
109terminal groups), the feature turned out way to complex and demanding in
110the way it was implemented.
111
112* float/minimize prefers client provided icon or canvas contents as statusbar
113icon rather than a longer text representation
114
115* added 'invert light' shader that retains most of hue while inverting
116  dark/light colors
117
118* handover subsegment allocation now routes correctly
119
120* silent shutdown retains known window position and states, should
121  recover properly when started back up.
122
123* region selection closure management reworked
124
125* more subsystems expose logging over the monitor ipc
126
127* /global/displays/color can be used to change the default clear color
128when there is no wallpaper. A single color background can also be
129generated through /global/workspace/background.
130
131* statusbar ws- button coloring now defaults to dynamic from hc palette
132
133* /windows/name added for individual explicit window addressing
134
135* started refactoring and splitting uiprim.lua
136
137* started refactoring and splitting tiler.lua
138
139* allow disabling meta-guard (rebinding) via /input/keyboard/meta\_guard
140
141* gconf.lua split up into config.lua (keys) and gconf.lua (mgmt code)
142
143* /bindtarget=/some/path sets a 'consume on use' path that allows interactive
144  menu paths like key and button bindings to be automated
145
146* target/window/move\_fx/fy added for display- size relative move
147
148* firstrun.lua added to setup custom defaults on first run/config reset
149
150* added color picker widget
151
152* dropped the vr-viewer tool in favor of an upcoming way of allowing lwa
153clients that use the vr-subsystem so that safespaces can be used nested
154at minimal cost.
155
156* display backlight controls changed into a submenu, added options for
157stepping
158
159* generalized/cleaned up the external-listener implementation. fixing
160reliability and rate-limit misses.
161
162* multiple changes to display hotplug behavior / detection, fallback when
163edid fail after power cycle
164
165* added visual indicators to window drag-reorder in tiling mode
166
167* added dynamic statusbar buttons to control / reach other displays
168
169* HC-palette color changes (global/settings/visual/colors/palette) persist
170
171* input devices can be forgotten (global/input/all-devices/dev/forget=yes
172
173* better error reporting for init-script errors
174
175* number of fixes to drag-resize
176
177# 0.5.0
178  * tools/advfloat:
179     window-to-background will now receive input when no window is
180     selected.
181
182  * tools/advfloat:
183     autolayout now recurses when one pass didn't position all windows
184     autolayout also got a hide/reveal mode
185
186   tools/vrviewer
187     added 'vrviewer', an integrated 3D/VR tool that acts as a
188     3D desktop-within-the-desktop.
189
190  * distr/durden:
191     launcher- script for reasonable defaults for linux/BSDs with
192     arcan on egl-dri (native) platform.
193
194  * widgets/input:
195     new widget (target/input activated) that presents client provided
196     input labels as clickable options
197
198  * widgets/notification:
199     new widget (activated on any path) that flushes the currently
200     queued set of notifications on HUD activation
201
202  * widgets/icon:
203	   new widget (for UI button to emoji- unicode-subset mapping)
204
205  * custom-crop:
206     support cropping [t l d r] px from the canvas area
207
208  * impostors:
209     crop t- px and bind to a toggle-able titlebar
210
211  * browser:
212     add controls for preview-launch delay, and allow video previews
213
214  * decorations:
215     added controls to hide dynamic workspace buttons
216     added per-window controls to override titlebar pattern
217     added per-window controls to modify titlebar buttons
218		 added paths for border/titlebar primary colors
219
220  * cursortagging:
221     added (target/window/cursortag) as an option, experimental
222
223  * mass-actions:
224	   the root node /windows can now be used to address collections of
225		 windows based on some property, such as name or type
226
227Breaking:
228  * statusbar visual config area changed to [px] from % point and
229    order changed to [t l r d] to match other similar functions
230
231  * target titlebar controls moved to its own group
232
233	* border settings moved to its own group (/global/settings/border)
234
235  * control channel (ipc pipes) have switched to using a domain
236    socket for both input and output
237
238  * entire menu/browser system refactored to have a more shared codebase,
239    this moves all paths to be explicit /global/path/to /target/path/to
240    /browse/shared/
241
242  * multiple menu functions moved around and regrouped, all toggle
243    options have been merged into the YES/NO paths that have been
244    extended with YES/NO/FLIP
245
246  * mouse devices now get joined into one abstract label by default
247	  for binding, to revert back to the devid\_subid setup, you can
248		use /global/input/mouse/coalesce=false
249
250Minor / Fixes:
251  * activate GPU rescan on hotplug event
252
253  * reworked multi-display state management / restoration / discovery
254
255  * mouse should now work better with the HUD menu, particularly
256	  mouse-wheel, navigation button clicks and right-click to exit.
257
258  * regression in hotplugging causing nil table member dereference
259    on remove event with active listeners
260
261  * input focus can be changed by explicit display path / name
262
263  * reworked most sizing / positioning code to be less strict on
264    client- driven resizing
265
266  * per- target default decoration color overrides
267
268	* split border controls into float and other modes
269
270  * expose target menu binding in recovery binding handler
271
272  * expose input caret manipulation as part of basic bindings
273
274  * system shutdown gets a silent option that doesn't tell clients
275    to shut down, but rather to reconnect or migrate
276
277  * add menu options to join 'n' windows to the left or right in
278    tile mode as children of the selected window
279
280  * added global/config/commit to make sure the current setings get
281	  saved immediately
282
283	* mouse/keyboard scripts are now switched to use the distribution
284	  default from arcan
285
286  * more terminal controls exposed: blinkrate, cursor style
287
288  * added controls for border color
289
290  * display preset map now respects density and backlight
291
292  * launch targets with the tag 'autorun' will be launched on
293	  startup
294
295  * display orientation options are now explicit +- 90
296
297	* added target/video/advanced/override\_size for testing client
298	  behavior at explicit sizes (combine with _block_resize)
299
300# 0.4.0
301  * Display region sharing now supports force-pushing into clients
302    that can handle input segments.
303
304  * target/video/advance/migrate - send a migrate request to a
305    client, which may prompt a client to jump to a different
306    connection point or display server instance.
307
308  * shader subsystem - added a multi-pass effect format along with
309    some initial effects (gaussian blur, CRT-lottes).
310
311  * tools/advfloat - extended float layout mode capabilities:
312    spawn control (draw2spawn)
313    hide-to-statusbar
314    cursor-action-region (see tools/advfloat/cregion.lua for definition)
315    automatic relayouter
316    grid-cell align
317
318  * tools/overview - added a HUD- like workspace switcher
319
320  * tools/flair - added a visual effects layers and some initial
321    effects, e.g. clothy windows, the natural successor to wobbly
322    windows.
323
324  * terminal-group spawn-mode added, allows a connection primitive
325    to be generated per terminal and clients which connect via this
326    group share the same logical window tree slot.
327
328  * Tui/terminal clients are now allowed to spawn additional tui
329    subsegments. This match the new support in afsrv_terminal that
330    allows the window to be cloned into a copy-window.
331
332  * File browser now expose wild-card matching (asterisk), Lua
333    patterns (%%) and sort-order modification (typing % lists options).
334
335  * retain some window and workspace properties across script errors
336    crashes and resets
337
338  * menu navigation can now shows a helper description of the
339    currently selected item
340
341  * mode-sensitive titlebar icons - window titlebar icons can now be
342    set to be activated only in certain modes
343
344Minor:
345 * Destroying a window in fullscreen mode now returns the workspace
346   to the last known mode instead of forcing to tile.
347
348 * Double-tap input-lock automatically unlocks if the locked window
349   is closed
350
351 * Double-tap input-lock without a selected windows is now a no-op
352
353 * Float mode border drag sizing, cursorhint and positioning fixes
354
355 * Float mode drag now respects statusbar- imposed boundaries
356
357 * Float mode canvas-drag/resize option for self-decorated clients
358
359 * improved (less broken) handling for wayland popups and subsurfaces
360
361 * Step-resize keybinding now aligns to window- cell size (terminals)
362
363 * statusbar can now be sized/padded to percentage of display output
364   (config/statusbar/borderpad)
365
366 * statusbar specific configuration moved to (config/statusbar) from
367   (config/visual/bars/...)
368
369 * statusbar number prefix on known workspaces and statusbar mode
370   button can now be toggled on/off
371
372 * add support for window canvas overlays, intended for wayland-
373   toplevel windows and senseye translators
374
375# 0.3.0
376  * Now requires arcan >= 0.5.3.
377
378  * Documentation Moved to a separate webpage,
379    http://durden.arcan-fe.com
380
381  * Client- defined mouse-cursor support.
382
383  * Window slicing: target/window/slice allows mouse-selected
384    subregion to (active->input forward or passive) bind a subregion
385    of one window to a new window.
386
387  * External clipboard manager support: external clients can be
388    permitted to read and/or inject entries unto the clipboard. See
389    global/config/system/clipboard-bridge.
390
391  * Gamma controls: external clients can be permitted to set custom
392    color/ and gamma/ lookup tables, either per window or globally.
393    See target/video/advanced/color-gamma synch and
394    global/config/system/gamma-bridge.
395
396  * Filesystem-like IPC: the iopipes IPC path has been extended to
397    allow ls, read, write and exec like navigation of the menu
398    subsystem. This can be bound to a FUSE-wrapper to fully control
399    durden from a terminal.
400
401  * LED devices: added support for profile driven LED device control
402    see devmaps/led/README.md or global/config/led
403
404  * Input multicast : added support for input multicast groups.
405    Enable per window via target/input/multicast. Keyboard input
406    received will be forwarded to all children.
407
408  * Statusbar: can now be set to 'HUD' mode, where it is only visible on the
409    global/ or target/ menu HUDs. (config/visual/bars/statusbar(HUD)/...)
410
411  * Tools/Autolayout improvements: can now disable titlebars on
412    side-columns, and allow a different shader on side-columns
413    (see global/config/tools/autolayouting)
414
415  * Tools/Overlay: [new], can now take the contents of a window and add
416    to a vertical column stack at left or right edge as scaled-down
417    previews.
418
419  * Target/Video/Advanced: allow per-window output density overrides.
420
421  * Atypes/wayland/x11: new scaling mode, 'client' to allow the client to
422    know about the max dimensions, but let it chose its own actual size
423    within those constraints.
424
425  * Window- relayout/resize animations for float/tile:
426    disable/enable via config/visual/window animation speed
427
428  * Dynamically switchable visual/action schemes (devmaps/schemes/README.md)
429    that can be used to set a global, per-display, per workspace or per window
430    scheme of fonts and other configuration presets.
431
432Minor:
433  * (arcan > 0.5.2) allow GPU- authentication controls
434  * Split mouse cursors into sets.
435  * more consistent font/font-size switching when migrating across displays
436  * default-off display profiles for vive/psvr
437  * per window font override controls
438  * defer window attachment to reduce resize operations
439  * menu options for appl- switching (global/system/reset/...)
440  * hidden bind path for suspend-state toggle (target/state/...)
441  * menu path to reset workspace background (global/workspace/...)
442  * menu path for global/workspace/switch/last
443  * option to force bitmap font path for terminal
444  * a shader for luma (monochrome) - only mode
445  * atype- profile for wayland clients
446  * option to disable/block mouse (global/input/mouse/block)
447  * target menu path for set-x, set-y in float mode
448  * mouse button debounce timer support (global/inpput/mouse/debounce)
449  * expose backlight controls per display (global/display/displays/...)
450  * path for setting workspace background to a solid color
451  * Tools/pulldown: can now set a shadow/colored border
452
453# 0.2.0 - New features
454
455  * Tool: Added autolayouter
456
457  * Tool: Added 3d-modelviewer, can remap contents of other
458          windows unto a 3d-model.
459
460  * Feature: OCR to Clipboard, access through global/display/region
461             Requires tesseract- support in arcan encode frameserver
462
463  * Cheatsheet Widget: Added path activation
464
465  * Security/Safety: Added connection rate limiting
466
467  * Performance: Added dedicated fullscreen mode
468
469# 0.1.0 - Initial Release
470