Devian

Devian

3.2k Downloads

Devian is a workspace management tool for capturing output and keeping your interface sane. It does two things:

  1. AddOn management. Snapshot your working and gameplay Addon lists and quickly toggle between loadouts. You can run a minimal number of addons while debugging, and then switch back to your full interface setup when action calls.
  2. Output control. Spawn draggable sizable "consoles" that capture and organize the contents of print() based on assigned prefixes. You can send one output to multiple windows as well for seeing how your addon methods coalesce.

Interface

Dock

Every active console is represented by an icon at the top of the screen. The corresponding icons will light up whenever a message is received, and take many of the same mouse inputs as the console frames.

  • Left click - Show and Raise frame if hidden or in background. Hide if it's on top and visible.
  • Shift-Left click - Show/Hide
  • Right-Click - Minimize/Unminimize

Chat Commands:

  • /dvn save <n> to snapshot your current addon list to that profile. Profile 1 is considered your gameplay list, under which output handling is turned off.
  • /dvn <n> to loads a particular addon list
  • /dvn toggles between your gameplay profile (#1) and the last workspace (# > 2) you loaded with /dvn <n>
  • /dvn tag <source> <dest> directs all output with prefix <source> to a channel matching <dest>, creating a new one if none is found.
  • /dvc [<channel>, ...] toggles console windows on and off. Whitespace-separated channel keys can be given to select windows.
  • /resetdvn - resets config values to their defaults, but leaves addon profiles intact
  • /cleandvn - nils out SavedVariables, turning it back into a new install
  • /dvn stack arranges consoles into a vertical stack
  • /dvn grid arranges the consoles into the most convenient grid that can be calculated by simple quadratic math

Coding Usages

-- @debug@
if Devian and Devian.InWorkspace() then
  local print = function(...) print('MyPrefix', ...) end
end

print('Another Prefix', 'Message for another window from a script where local print is defined')

oldprint('Message sent to default print()')

AceConsole:Print('Still comes out through the chat window because AceConsole localizes `print' before Devian takes effect.')

Devian.LoadMessage("This message will appear after the next UI reload.")
-- @end-debug@