Skip to content

Latest commit

 

History

History
604 lines (400 loc) · 21.3 KB

CHANGELOG.md

File metadata and controls

604 lines (400 loc) · 21.3 KB

0.7.0 (ongoing):

  • global/audio extended with toggles for spatial audio and device reassignment

  • new tool: typer (global/input/text)

  • new tool: mouse gestures (global/input/mouse/gesture)

  • crash log widget replaced with control IPC command "info /"

  • added preview image to workspace button hover

  • menu paths now have alt-clicks via m1+enter, TAB and right-click

  • file picker: item sensitive popup menu actions

  • much improved cursor handling and cursor tagging (DND)

  • added 'sticky' drag and drop option (input/mouse/stickydnd)

  • new tool: composition-window (global/tools/composition)

  • new path: global/settings/tools/reload for hot-reloading tools and widgets

  • new tool: osdkbd (global/input/osd)

  • split out target/open into target/open and target/open_tag

  • new path: display/displays/current/format for controlling output format selection (rgb565, 888, deep, hdr, ...)

  • target/video/colors: add option to switch/control client-preferred color palette for clients that support the feature

  • drag-resize in floating mode now has an 'silent' global option for using server-side selection, and a 'per-type' enable with tui default

  • display scanout and refresh preferences can be set (globally) through: global/display/variable_refresh and global/displays/.../direct_scanout

  • added a tile-bsp mode that adds new windows based on the highest-level tile with less than 2 children (/global/workspace/layout/tile_bsp)

  • statusbar / titlebar - added vertical layout

  • new path: global/input/keyboard/maps/platform added for platform translation controls (rmvo, ...)

  • new path: display/displays/current/orientation/flip_y,rotate_180

  • the browse/ path now supports basic user-defined namespaces

  • touch - added an empty (disable) classifier, exposed more profile values dynamically, option to hook profile picking on unknown device.

  • new tool - text to speech

  • flair - add background effect to HUD (darken, blur+vignette)

  • compact-mode for statusbar and titlebar (global/settings/titlebar,statusbar/compact)

  • expose bond-target between windows of the same state identifier

  • add m2- drag to cursortag (drag-share behaviour)

  • new path, global/workspace/import to retrieve a workspace from an inaccessible display

  • new path, target/clipboard/autopaste_on,off: autopaste messages added to the global clipboard

  • added option to pick terminal state machine priority

  • atypes/x11 - multiple choices for x11 client integration: sepaate 'wm as exclusive workspace', dynamic single client, extract specific toplevels

  • target/input/keyboard/send_keymap - extract current or factory-str platform keymap and send to client, useful for x11/wayland.

  • net tool: a12net, this adds tools/networking, open/a12_directory and settings/networking for working with arcan >= 0.6.3

  • tools/autolayouter: add the option to colorize side-columns scaled through the shader (simple/sidecol) from the high-contrast palette

minor:

  • migrate control IPC to asynch-i/o

  • statusbar cpath popcount incorrectly reset in some cases causing binding failures and visual glitches

  • overlay tool updated to respect statusbar size and side orientations

  • default HUD sort order split into two, one for browse/ and one for other paths

  • dropped 'simple' display mode in favor of the direct scanout control

  • added dracula/gruvbox/gruvbox-light colorschemes

  • color picking widget not shows tui- colorschemes

  • activation / type fixes for universal open/save

  • value-input cancel-out crash fixed

  • terminal hard coded colorscheme deprecated in favor of dynamic switching (/global/settings/terminal/colorscheme)

  • added font- size stepping control (/target/visual/font/step_size)

  • uiprim/bar - label dominant-axis positioning fixed

  • uiprim/lbar - helper text padding and background size increased

  • clipboard/url paste scripting error fixed

  • swapping from fullscreen workspace to a non fullscreen one and back should no longer lose the surface canvas

  • resource browser preview on-select triggers for mouse motion as well

  • added padding rules to hud widget borders, popups and other elements

  • navigation menu for binding timer or input now shows helper status text (widget/helper)

  • display helper widget now shows buffer mapping format (LDR, SDR, HDR)

  • client subwindows can now have requests for parent-relative position honored

  • reset or crash recovery should now restore active workspace index

  • resource browser spawned windows now track a playlist of similar items from the folder, adds /target/playlist and bindings to step with F1, F2, F3

  • paths for controlling window stacking in float mode, /target/window/select/to_front, /target/window/select/to_back

  • added breadth cap option for tiled modes (global/config/workspaces/tile/breadth_cap) when exceeded will try and find new fitting workspace for attaching window

0.6.0 - 0.6.1

  • universal open/save: Clients that announce support for global open/save via bchunk-hints now trigger the file browser accordingly.

  • display/share and target/share reworked: Display/region/ based sharing removed (except for snapshot/monitor) in favoring of a /target/share menu that consolidate all such options.

  • uiprim/sbar: statusbar custom button controls added, it is now possible to define alt-action (such as custom popup spawn) as well as drag-action.

  • workspace buttons now popup layout mode selector on altclick, and migrate window on drag-drop

  • uiprim/tbar: titlebar merge-to-status bar mode on select (if hidden) titlebar rclick now mappable (default, popup /target)

  • uiprim/popup: added basic popup component

  • target-launch: When activating global/target/launch to start a trusted application you can also supply an application tag. This helps automation as you can now specify that tag as part of /windows/by-tag etc. when there are no UUIDs or other values to take advantage of.

  • input/rotary added: This tool implements basic gestures, commands and mapping for rotary devices like the 'Surface Dial' and 'Griffin PowerMate'.

  • tools/extbtn added: Registers into global/settings/statusbar and adds option for external clients to connect and attach custom buttons. This deprecates the statusbar IPC in favor of solving this externally.

  • tools/autostart added: This tool allows a series of paths to be automatically run on startup.

  • tools/profile_picker added: This tool is the first step towards better initial configuration. It triggers on startup and installs UI schemas for default inputs, colors and security profiles.

  • triggers: added per-window option to bind multiple custom triggers on select, deselect and destroy

  • layout/tile: allow titlebar drag/drop as a mouse- triggered way to swap, m1 and m2 control swap, join as child or join as sibling. allow better gap controls.

  • layout/htab: added side column based tabbed layout mode

  • menu/hud: Cipharius added support for fuzzy-string matching to the HUD, switch it on by entering % and pick fuzzy_relevance as the sort method.

  • menu/devmaps: Custom menus/aliasmaps can now be built. These register in the menu root (/menus) and are intended for shortcut button grids, popup menus, radial menus and so on.

  • workspaces assignment: It is now possible to control which workspace new windows currently spawn at, see the /global/settings/workspaces/spawn path.

  • visual: Add soft shadow controls to windows, ui elements and statusbar

  • input/touch improvements: New gestures, 'tap', 'doubletap', 'idle_return', 'idle_enter'. improved relative mouse emulation to better handle click-select refactored some of the code to more easilly accomodate custom classifiers. Some device profile based values can now be changed through the path /global/input/touch. A classifier that forwards as basic touch events has been added.

  • first round of (non-text) icon management (caching, shared sets etc.) added

  • displays/current/zoom added: Bind to keyboard for zooming in/out around the mouse cursor position

  • new tool: streamdeck This allows external mini displays (touchbars etc.) to be hooked up and act as restricted input devices as well as custom widget mappings

  • new tool: todo This tool allows for simple tracking of todo tasks that integrate with the notification system, status bars and so on.

  • new tool: tracing This tool mixes the monitoring wm inspection parts of durden with the tracing facility in arcan to produce chrome://tracing friendly json logs.

Minor / Fixes:

  • global/settings/terminal/tpack added for temporarily forcing server-side text on for all new terminal windows (feature still experimental)

  • display resolution picker should now bias towards the highest refresh rate when there are multiple to chose from at the desired resolution

  • added controls to insert subwindows as new windows or relative to their parents, (global/settings/workspaces/tiled/subwindow=normal,child)

  • removed the 'alternate' window feature (used with wayland toplevels and terminal groups), the feature turned out way to complex and demanding in the way it was implemented.

  • float/minimize prefers client provided icon or canvas contents as statusbar icon rather than a longer text representation

  • added 'invert light' shader that retains most of hue while inverting dark/light colors

  • handover subsegment allocation now routes correctly

  • silent shutdown retains known window position and states, should recover properly when started back up.

  • region selection closure management reworked

  • more subsystems expose logging over the monitor ipc

  • /global/displays/color can be used to change the default clear color when there is no wallpaper. A single color background can also be generated through /global/workspace/background.

  • statusbar ws- button coloring now defaults to dynamic from hc palette

  • /windows/name added for individual explicit window addressing

  • started refactoring and splitting uiprim.lua

  • started refactoring and splitting tiler.lua

  • allow disabling meta-guard (rebinding) via /input/keyboard/meta_guard

  • gconf.lua split up into config.lua (keys) and gconf.lua (mgmt code)

  • /bindtarget=/some/path sets a 'consume on use' path that allows interactive menu paths like key and button bindings to be automated

  • target/window/move_fx/fy added for display- size relative move

  • firstrun.lua added to setup custom defaults on first run/config reset

  • added color picker widget

  • dropped the vr-viewer tool in favor of an upcoming way of allowing lwa clients that use the vr-subsystem so that safespaces can be used nested at minimal cost.

  • display backlight controls changed into a submenu, added options for stepping

  • generalized/cleaned up the external-listener implementation. fixing reliability and rate-limit misses.

  • multiple changes to display hotplug behavior / detection, fallback when edid fail after power cycle

  • added visual indicators to window drag-reorder in tiling mode

  • added dynamic statusbar buttons to control / reach other displays

  • HC-palette color changes (global/settings/visual/colors/palette) persist

  • input devices can be forgotten (global/input/all-devices/dev/forget=yes

  • better error reporting for init-script errors

  • number of fixes to drag-resize

0.5.0

  • tools/advfloat: window-to-background will now receive input when no window is selected.

  • tools/advfloat: autolayout now recurses when one pass didn't position all windows autolayout also got a hide/reveal mode

tools/vrviewer added 'vrviewer', an integrated 3D/VR tool that acts as a 3D desktop-within-the-desktop.

  • distr/durden: launcher- script for reasonable defaults for linux/BSDs with arcan on egl-dri (native) platform.

  • widgets/input: new widget (target/input activated) that presents client provided input labels as clickable options

  • widgets/notification: new widget (activated on any path) that flushes the currently queued set of notifications on HUD activation

  • widgets/icon: new widget (for UI button to emoji- unicode-subset mapping)

  • custom-crop: support cropping [t l d r] px from the canvas area

  • impostors: crop t- px and bind to a toggle-able titlebar

  • browser: add controls for preview-launch delay, and allow video previews

  • decorations: added controls to hide dynamic workspace buttons added per-window controls to override titlebar pattern added per-window controls to modify titlebar buttons added paths for border/titlebar primary colors

  • cursortagging: added (target/window/cursortag) as an option, experimental

  • mass-actions: the root node /windows can now be used to address collections of windows based on some property, such as name or type

Breaking:

  • statusbar visual config area changed to [px] from % point and order changed to [t l r d] to match other similar functions

  • target titlebar controls moved to its own group

    • border settings moved to its own group (/global/settings/border)
  • control channel (ipc pipes) have switched to using a domain socket for both input and output

  • entire menu/browser system refactored to have a more shared codebase, this moves all paths to be explicit /global/path/to /target/path/to /browse/shared/

  • multiple menu functions moved around and regrouped, all toggle options have been merged into the YES/NO paths that have been extended with YES/NO/FLIP

  • mouse devices now get joined into one abstract label by default for binding, to revert back to the devid_subid setup, you can use /global/input/mouse/coalesce=false

Minor / Fixes:

  • activate GPU rescan on hotplug event

  • reworked multi-display state management / restoration / discovery

  • mouse should now work better with the HUD menu, particularly mouse-wheel, navigation button clicks and right-click to exit.

  • regression in hotplugging causing nil table member dereference on remove event with active listeners

  • input focus can be changed by explicit display path / name

  • reworked most sizing / positioning code to be less strict on client- driven resizing

  • per- target default decoration color overrides

    • split border controls into float and other modes
  • expose target menu binding in recovery binding handler

  • expose input caret manipulation as part of basic bindings

  • system shutdown gets a silent option that doesn't tell clients to shut down, but rather to reconnect or migrate

  • add menu options to join 'n' windows to the left or right in tile mode as children of the selected window

  • added global/config/commit to make sure the current setings get saved immediately

    • mouse/keyboard scripts are now switched to use the distribution default from arcan
  • more terminal controls exposed: blinkrate, cursor style

  • added controls for border color

  • display preset map now respects density and backlight

  • launch targets with the tag 'autorun' will be launched on startup

  • display orientation options are now explicit +- 90

    • added target/video/advanced/override_size for testing client behavior at explicit sizes (combine with _block_resize)

0.4.0

  • Display region sharing now supports force-pushing into clients that can handle input segments.

  • target/video/advance/migrate - send a migrate request to a client, which may prompt a client to jump to a different connection point or display server instance.

  • shader subsystem - added a multi-pass effect format along with some initial effects (gaussian blur, CRT-lottes).

  • tools/advfloat - extended float layout mode capabilities: spawn control (draw2spawn) hide-to-statusbar cursor-action-region (see tools/advfloat/cregion.lua for definition) automatic relayouter grid-cell align

  • tools/overview - added a HUD- like workspace switcher

  • tools/flair - added a visual effects layers and some initial effects, e.g. clothy windows, the natural successor to wobbly windows.

  • terminal-group spawn-mode added, allows a connection primitive to be generated per terminal and clients which connect via this group share the same logical window tree slot.

  • Tui/terminal clients are now allowed to spawn additional tui subsegments. This match the new support in afsrv_terminal that allows the window to be cloned into a copy-window.

  • File browser now expose wild-card matching (asterisk), Lua patterns (%%) and sort-order modification (typing % lists options).

  • retain some window and workspace properties across script errors crashes and resets

  • menu navigation can now shows a helper description of the currently selected item

  • mode-sensitive titlebar icons - window titlebar icons can now be set to be activated only in certain modes

Minor:

  • Destroying a window in fullscreen mode now returns the workspace to the last known mode instead of forcing to tile.

  • Double-tap input-lock automatically unlocks if the locked window is closed

  • Double-tap input-lock without a selected windows is now a no-op

  • Float mode border drag sizing, cursorhint and positioning fixes

  • Float mode drag now respects statusbar- imposed boundaries

  • Float mode canvas-drag/resize option for self-decorated clients

  • improved (less broken) handling for wayland popups and subsurfaces

  • Step-resize keybinding now aligns to window- cell size (terminals)

  • statusbar can now be sized/padded to percentage of display output (config/statusbar/borderpad)

  • statusbar specific configuration moved to (config/statusbar) from (config/visual/bars/...)

  • statusbar number prefix on known workspaces and statusbar mode button can now be toggled on/off

  • add support for window canvas overlays, intended for wayland- toplevel windows and senseye translators

0.3.0

  • Now requires arcan >= 0.5.3.

  • Documentation Moved to a separate webpage, http://durden.arcan-fe.com

  • Client- defined mouse-cursor support.

  • Window slicing: target/window/slice allows mouse-selected subregion to (active->input forward or passive) bind a subregion of one window to a new window.

  • External clipboard manager support: external clients can be permitted to read and/or inject entries unto the clipboard. See global/config/system/clipboard-bridge.

  • Gamma controls: external clients can be permitted to set custom color/ and gamma/ lookup tables, either per window or globally. See target/video/advanced/color-gamma synch and global/config/system/gamma-bridge.

  • Filesystem-like IPC: the iopipes IPC path has been extended to allow ls, read, write and exec like navigation of the menu subsystem. This can be bound to a FUSE-wrapper to fully control durden from a terminal.

  • LED devices: added support for profile driven LED device control see devmaps/led/README.md or global/config/led

  • Input multicast : added support for input multicast groups. Enable per window via target/input/multicast. Keyboard input received will be forwarded to all children.

  • Statusbar: can now be set to 'HUD' mode, where it is only visible on the global/ or target/ menu HUDs. (config/visual/bars/statusbar(HUD)/...)

  • Tools/Autolayout improvements: can now disable titlebars on side-columns, and allow a different shader on side-columns (see global/config/tools/autolayouting)

  • Tools/Overlay: [new], can now take the contents of a window and add to a vertical column stack at left or right edge as scaled-down previews.

  • Target/Video/Advanced: allow per-window output density overrides.

  • Atypes/wayland/x11: new scaling mode, 'client' to allow the client to know about the max dimensions, but let it chose its own actual size within those constraints.

  • Window- relayout/resize animations for float/tile: disable/enable via config/visual/window animation speed

  • Dynamically switchable visual/action schemes (devmaps/schemes/README.md) that can be used to set a global, per-display, per workspace or per window scheme of fonts and other configuration presets.

Minor:

  • (arcan > 0.5.2) allow GPU- authentication controls
  • Split mouse cursors into sets.
  • more consistent font/font-size switching when migrating across displays
  • default-off display profiles for vive/psvr
  • per window font override controls
  • defer window attachment to reduce resize operations
  • menu options for appl- switching (global/system/reset/...)
  • hidden bind path for suspend-state toggle (target/state/...)
  • menu path to reset workspace background (global/workspace/...)
  • menu path for global/workspace/switch/last
  • option to force bitmap font path for terminal
  • a shader for luma (monochrome) - only mode
  • atype- profile for wayland clients
  • option to disable/block mouse (global/input/mouse/block)
  • target menu path for set-x, set-y in float mode
  • mouse button debounce timer support (global/inpput/mouse/debounce)
  • expose backlight controls per display (global/display/displays/...)
  • path for setting workspace background to a solid color
  • Tools/pulldown: can now set a shadow/colored border

0.2.0 - New features

  • Tool: Added autolayouter

  • Tool: Added 3d-modelviewer, can remap contents of other windows unto a 3d-model.

  • Feature: OCR to Clipboard, access through global/display/region Requires tesseract- support in arcan encode frameserver

  • Cheatsheet Widget: Added path activation

  • Security/Safety: Added connection rate limiting

  • Performance: Added dedicated fullscreen mode

0.1.0 - Initial Release