diff options
Diffstat (limited to 'inxi.changelog')
| -rw-r--r-- | inxi.changelog | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/inxi.changelog b/inxi.changelog index fd0ff52..57e3763 100644 --- a/inxi.changelog +++ b/inxi.changelog @@ -1,4 +1,368 @@ ================================================================================ +Version: 3.3.13 +Patch: 00 +Date: 2022-02-22 +-------------------------------------------------------------------------------- +RELEASE NOTES: +-------------------------------------------------------------------------------- + +Just as 3.3.10 > 3.3.11 were a huge set of CPU upgrades, including significant +internal refactors, so too is 3.3.13 a significant Graphics upgrade, featuring +significant upgrades to Wayland (and Xvesa/TinyX!) support, and allowing for +much more granular output controls. The legacy -Ga showing +Display/Screen/Monitors is now split apart, and can now work for some features +in and out of display. + +This upgrade should be of significant interest to any Wayland using distro, as +well as the tiny Xvesa based distros like TinyCore, Slitaz, and Puppy. + +-------------------------------------------------------------------------------- +NOTE TO MAINTAINERS AND PACKAGERS: + +If you had Cpanel::JSON::XS or JSON::XS Perl modules as dependencies, you can +remove those, inxi now can use JSON::PP, which is in Core Modules since Perl +5.14 (unless for some reason your distro removed that module from Core Modules). + +Basically inxi will simply look for whichever of the 3 is installed, and use +that one. + +-------------------------------------------------------------------------------- +KNOWN ISSUES: + +1. The free drivers for xorg like amdgpu, modesetting, alter the the internal +kernel IDs for monitors/gfx device ports, which is somewhat bizarre since the +ideal role of any ID is to be an identifier that always works. Due to this +situation, inxi has to map the kernel ids to the x driver monitor IDs in order +to show the advanced monitor data, like model: mapped: and modes:. This may not +always work as expected since if the mapping fails, the data will fail to match +to the monitors. While not enough data is in to make any conclusions, hoping +that this issue does not exist on Wayland compositors. + +-------------------------------------------------------------------------------- +BUGS: + +1. Not sure if this was a bug, but I believe RAM vendor ID matches would never +have generated results, and might have generated errors. That's corrected as +part of Code fix 1. + +-------------------------------------------------------------------------------- +FIXES: + +1. Tiny indentation level issue, for -Ga, Monitor was not set to be a container +for its data. This would only impact -y 1 or json and xml output cases, and would +be subtle, but it was an oversight. + +2. Small fix for monitor dimensions, failed to switch the mm dimensions for +monitors placed in a vertical, portait mode, instead of standard landscape mode. +Now switches mm x and y if that is detected, which corrects dpi as well. + +3. For Xvesa: + +* Show vesa as display driver, Xvesa == vesa, dugh,lol. + +* Show better Interface and Screen resolution data missing messages. + +* See FIX 5 for adding in display-ID:. + +* Show TinX Xvesa string for server data, not just Xvesa. + +4. For Wayland, which currently has no EGL support in inxi, if no glxinfo +present, show EGL Wayland specific Messsage: for advanced EGL data, not the +generic glxinfo that were shown previously. + +5. Display was relying on xdpyinfo or a Wayland environmental variable to set +display-ID:, now falls back always to $ENV{DISPLAY} if nothing else was found +and that exists. I hadn't realized how much was depending on those x tools, +which many people never had installed in the first place. This also supplies +that for Xvesa as well, which has features that need the Display-ID to use. + +6. Intel family 6, model 17h, supposed to be yorkfield, was penryn, fixed. + +7. Small fix for remove_duplicates, it was not case insensitive so missed things +like DELL Dell in strings. + +8. Failed to detect or get Xfree86 X server version number. + +-------------------------------------------------------------------------------- +ENHANCEMENTS: + +1. Extensive Graphics Upgrades: + +* -Gxx Devices: For some gpus / drivers, show vram total and used for -Gxx. +amdgpu supports this, I believe it's the only one, but don't know for sure. + +* -Gxx Devices: (Linux only): Show active, off (connected but disabled, like a +closed laptop screen with attached moniitor), and empty ports on devices. Not +tested for USB yet. + +* -Gxx Devices: Show device ports (like VGA-1, DVI-I-1, HDMI-A-1), active, off +(off is connected but disabled) and empty (linux only). + +* -G Display/Screen: Removed strict dependency on xdpyinfo to show advanced xorg +screen and display data. Now it will show most of the data if xrandr is +available, and all if xrandr and xdpyinfo are installed. More granular error +messages as well. + +* -G Wayland Display: new type, d-rect: for > 1 monitor Wayland display layouts. +Works roughly the same as Screen: s-res: does, except since Wayland has no +'Screen' concept, that goes into Display. This is sort of a rough algo, +basically it takes either the dimensions of the total of x and y resolutions, or +the greatest x or y resolution found for any monitor, whichever is greater, and +uses that to create the display rectangle resolution composite value. + +* -G Display, Monitors: Extended display tool options from just xrandr to +swaymsg, wlr-xrandr, weston-info, wayland-info. Still nothing on kwin_wayland or +gnome-shell and mutter data. + +*. -S, -G: compositors, full redo of list, now supported: + +asc awc cage cagebreak cardboard chameleonwm clayland comfc dwc dwl epd-wm +fireplace feathers fenestra glass gamescope greenfield grefson hikari hopalong +inaban japokwm kiwmi kwinft labwc laikawm lipstick liri mahogany marina maze +motorcar newm nucleus orbital perceptia phoc pywm qtile river rustland simulavr +skylight sommelier sway swc swvkc tabby taiwins tinybox tinywl trinkster velox +vimway vivarium wavy waybox way-cooler wayfire wayhouse waymonad westeros +westford weston wio+ wio wxrc wxrd xuake + +* -G Enhanced Interfaces/GL item, previously only type OpenGL forX, now has: + + * X - OpenGL, requires glxinfo , same as before. + + * Wayland - EGL, currently no tool available, stub in place. Allegedly this + data can be found but have no idea how or if a tool does that yet + + * Xvesa - Interface: interface type (VBE/GOP). GOP not confirmed, no data + samples; v:, source:, dac: (no idea what it is, show it though), controller:, + and ram: items. + + This is based on TinyX/Xvesa as found in TinyCore, but should work in Slitaz + and Puppy TinyX as well if those projects are still around. + +* -G Display/Screen/Monitor data: Created structures and abstractions that allow +for Wayland/Xorg/Xvesa data, most new features will work with any of these. Or +Arcan, if that actually makes it, and we get data for it. We'll wait on Arcan, +heh. + +* -G Display server: For Xvesa, added type TinyX to server if detected. Added +Xwayland, which was not handled previously. For Xwayland, if wayland running, +and if Xorg also installed, shows: + + server: X.org + v: 1.20.14 + with: Xwayland + v: 21.01 + +Otherwise shows: + + server: Xwayland + v: 21.01 + +* -G Compositors: fixed a long standing weak spot, if > 1 compositor detected +running, not common, but could happen, shows all detected compositors. + + Display: x11 + server: X.Org + v: 1.20.13 + compositors: + 1: Mutter + v: 41.1 + 2: xfwm + v: 4.16.1 + driver: + X: + loaded: modesetting + gpu: radeon + +* -G drivers: now shows if X or gpu driver, in each its own section. This makes +it more obvious what is going on: + + Display: x11 + server: X.Org + v: 1.20.13 + driver: + X: + loaded: modesetting + gpu: radeon + resolution: + +* -Gxx Monitors: Show primary monitor with pos: primary,right. Uses either +xrandr 'primary' value, or if no 'primary' found in an Xorg Screen, uses +0+0 +positioned monitor. Position is based on the row and column number in the +rectangular grid of monitors when monitors per Xorg Screen are > 1. + +For most common multi-monitor layouts, text positions are used, which are in +general more clear and easy to understand than their internal numeric +counterparts, that is, unless the layout is too complicated, it will show left, +or top-left, instead of 1-1, and so on. + +Text mode positions are available for the following grid styles currently: 1x2, +1x3, 1x4, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3. 'top' means the top row if > 1 row, +'bottom' means the bottom row, 'middle' is the middle row if 3 rows, 'left' is +the first column, 'right' the last, 'center' if 3 columns, and 'center-l' (1-2), +'center-r' (1-3) are the 2 center columns if 4 columns. 'bottom-l', 'bottom-c', +'bottom-r'; 'middle-l', 'middle-c', 'middle-r'; 'top-left', 'top-center', +'top-right' complete the possible values. + +If the grid of monitors is greater than the supported rows or columns, it will +switch to numeric row-column mode, with column-row numbering starting at 1-1, +top left. + +* -Gxx Monitors: show (if detected, Linux only) monitor model, and if the +display ID (from Xorg or Wayland) is different from the /sys monitor ID, show +mapped: to show the /sys id. + +* -Gxxx Monitors: show modes: max: XxY min: XxY, or mode: XxY (if only 1 mode +found). Shows hz: + +* -Ga Monitors: shows serial, built year, gamma, ratio, if detected. + +2. Added impish 21-10 and jammy 22-04 to ubuntu id. That's for Mint base ID. Not +huge point in updating if Mint doesn't update inxi, but there it is. + +3. For -Axx, -Exx, -Gxx, -Nxx, shows PCIe speed and lanes. With -a, shows max +speed / lanes if different than current speeds/lanes. Note that for unknown +reasons not all devices in a PCIe slot show this data. + +4. -Ixx: terminals added: foot, ate + +5. -Sxx: login/display managers added: emptty, greetd, qingy, tbsm. See CODE 5 +for more info on how this change was done. + +6. -Sxxx: status/dock/panel bars added: i3-status-rs, luastatus, nwg-bar, +nwg-dock, nwg-panel, rootbar, sfwbar, wapanel, waybar, yambar + +7. Added a Tyan board IPMI sensor data set. + +8. Added support for fruid_print for Elbrus -M Machine data. Those boards don't +have dmi tables, but do ship with Elbrus OS which has fruid_print. + +9. More disk vendors! Yes, you know the drill, the world turns, and with every +turn, a flock of new vendors appears, like baby rabbits emerging from their +warren, endlessly, a stream that is the life essence itself... or something. + +-------------------------------------------------------------------------------- +CHANGES: + +1. When xdpyinfo is not installed, user will still see advanced -Ga Monitor and +Screen data as long as xrandr at least is installed. Better error messages as +well now to explain which tool or tools missing caused the missing data. + +2. -Gxx will show basic Screen and Monitors, id, mapped, pos:, model, res, dpi, +diag; -Gxxx adds Monitor modes; --Ga adds screen/monitor size, Screen diag. + +3. -ba/-v2 no longer show the full screens/monitor report, now it remains basic +mode output, which it should have always done, unless -G is also explicitly +added. + +4. Split apart x-server version to v:, which should always have been the case. + +5. Xvesa and Wayland no longer show glxinfo messages for no glxinfo for GL data. +Now they show their own custom messages, appropriate to the case. + +6. json features now test for JSON::PP, JSON::XS, or Cpanel::JSON::XS modules, +and use whichever is found. Note I did not realize JSON::PP was in core modules +as of 5.14 so that makes sense to use, and will allow inxi to start using json +data sources, which are a lot easier to parse. + +7. Changed -G drivers to show subsections for X and gpu drivers, and updated +missing driver messages to account for this change. X drivers now show the sub +sets of loaded/unloaded/failed/alternate, and gpu shows active gpu drivers, +assuming such are detected. + +-------------------------------------------------------------------------------- +DOCUMENTATION: + +1. Help and man page updates for -G Display/Screen/Monitor changes. Redid -G, +-Gx, -Gxx, -Gxxx, -Ga. Added monitor layout position feature. + +2. Updated -Ga for xrandr/xdpyinfo changes. + +3. Updated --recommends to more accurately show function of xdpyinfo and xrandr +for -G and -Ga. + +4. Reorganized and added complete table of contents to docs/inxi-data.txt + +-------------------------------------------------------------------------------- +CODE: + +1. Slightly optimized use of array loads on disk_vendor() and ram_vendor() based +on how it's now done for monitor layouts, which is more efficient, use a scalar +to hold a reference to the array, that avoids having the array ever exist in +more than 1 place. Part of the ongoing process of avoiding extra hash and array +copies globally. + +2. Moved to consistent undef behaviors. + * For lists of variables use () to undefine, changed all of the the following: + 1. (@a,$b,$c,%d) = (undef,undef,undef,undef); + 2. (@a,$b,$c,%d) = (undef); + 3. (@a,$b,$c,%d) = undef; + to use: (@a,$b,$c,%d) = (); This undefines all the variables in the list. + Note that assigning undef to @a in the first example creates an array of 1 + key, with the value undef, and (@a,@b) = (undef,undef) creates arrays of 2 + indexes, or something like that. Not what was wanted. + Examples 2 and 3 assign undef to @a: an array of 1 index, value undef, and + undefine the others variables in the list. This was not the desired behavior! + * For most scalars, arrays, and hashes, use: undef @a; undef $s; undef %h. + * For some hash and array index values, use $h{a} = undef. These cases may want + the key itself to exist, with the value of undef, though I believe: + undef $h{a}; + is synonymous, but still have to verify that. + +I did some testing, and realized that some of the undef I had used in the +various previous ways of using undef were not actually resulting in the expected +behaviors. + +3. Refactored display_data_x into 3 functions, added display_data_xdpyinfo and +display_data_xrandr, which allows for more granular handling of those +dependencies, now inxi can show most advanced display data with only xrandr +installed. + +4. Significantly improved all error handling and missing data for Wayland/Xorg. + +5. Refactored get_display_manager() to better handle corner case dm file or +directory names, and to avoid endless loops. Much cleaner now. Required because +greetd had varying file names, greetd.run, or just greet-546.sock. With some +other dm's that use similar, or unreadable directories in /run, now just doing +a glob of /run/ /var/run, /var/run/rc.d as detected and checking for the dms +in the names, then just using the dms that were found. Simpler. + +6. Massively simplified and integrated compositor logic in Graphics, now using +program_values() and program_data() as appropriate, and simple matching list +to ps_gui data to get detected compositor[s], much simpler, far more efficient +code, less to maintain. Also fixed long-standing weak spot of exiting on first +detected compositor, now shows all detected, with version etc for each if +available. + +7. With 6. also significantly simplified and optimized get_ps_de_data() for +desktop data, that's the ps aux fallback case for wm desktop detections. + +8. Made $wl compositors list global to avoid having to update each section, +that's now used in -G compositor, -S desktop/wm, and wm sections. It is set +in ps_gui() on initial load. + +7. Settled on one and only way to do multiline conditionals, now use no space, +use same indent level as starting if/elsif etc. I've been debating this one, but +can't find any real way to handle that elegantly so I think best to just not +try, and leave it up the code flow to show when it's wrapped condition tests. + +8. Refactored previous gl_output, expanded it to handle all interface types, +OpenGL, EGL (not currently active due to no known tool to get EGL data for +Wayland, and Interface: VBE type data for Xvesa. This roughly completed the +breaking apart of the X.org centric logic for Display, Monitors, and GL data, +and make all sections now fully agnostic to display server or protocol type. + +Should new display servers appear, it will now be far more simple to add support +for them, since they would just plug into the existing abstraction layers. + +9. Added --debug-arg to allow for passing specific custom args to the debugger. + +10. Refactored display_server version, now works much better, creates lists of +server/version, and xwayland as well if found. + +-------------------------------------------------------------------------------- +-- Harald Hope - Tue, 22 Feb 2022 15:30:24 -0800 + +================================================================================ Version: 3.3.12 Patch: 00 Date: 2022-01-18 |
