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