path: root/inxi.changelog
diff options
authorLibravatarUnit 193 <unit193@unit193.net>2020-06-15 19:30:12 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2020-06-15 19:30:12 -0400
commit7d4117137fb8f1e59738497c9eb620b429087ced (patch)
tree5c1304868a10409c1c01bd39f774372821145b0b /inxi.changelog
parent4ac436fed8d224dc27d0650684298777ec0b9cb0 (diff)
New upstream version 3.1.03-1.upstream/3.1.03-1
Diffstat (limited to 'inxi.changelog')
1 files changed, 321 insertions, 0 deletions
diff --git a/inxi.changelog b/inxi.changelog
index 08e19f2..6ff8e0b 100644
--- a/inxi.changelog
+++ b/inxi.changelog
@@ -1,4 +1,325 @@
+Version: 3.1.03
+Patch: 00
+Date: 2020-06-12
+Big internal refactor!! Fully adjustable indentation logic, built in, native!
+NOTE: none of these changes have any impact on normal inxi -y -1, -y, or -y xx
+operation, everything will remain exactly the same, this only changes and
+makes robust -y 1 single key: value pair per line output.
+3.1.03 finishes the -y1 introduced in 3.1.02, but makes it a core part of the inxi
+logic for line printing, not a tacked on afterthought.
+Because the first draft of this in 3.1.02 was really a hack tacked onto the existing
+logic, which was not very flexible or robust, and required way too much literal test
+logic in the black box print_data() subroutine, which is supposed to be a 'dumb'
+logic, that just does what you give it automatically, I added in key changes that
+hard code the indentations per key, like so:
+Now: 34#0#3#key-name
+Before: 34#key-name
+Note that anyone using the json or XML output option may need to redo their code
+a bit to handle these extra 2 values that preface the actual key names.
+1. In order to make this work, changed a few small things internally, a few
+key names were slightly altered to make them more clear.
+1. Redo of all internal full key strings, added two new # separated items:
+ xx#x#y#key-name:
+ * xx remains the main 0 padded 2 digit sorter per row/block.
+ * x is a new 0/1 boolean, that shows if the value is a container or not. As
+ currently implemented probably not hugely useful since it won't say when
+ the following items it is a container of ends.
+ Note that the following y value will always be 1 for the item contained by
+ the container, so you can check that way if you want. the next item can
+ also be a container, but it would have either the same indentation level
+ as the previous container or be different.
+ Thus, if a key is a container, it can contain either non containers, or
+ other containers, but that primary container does not end until the indent
+ value equals or is less than the indent value of the first container.
+ If you are a programmer you should be able to figure this out.
+ * y is the indentation level, 0-xx is supported, but in practical terms, only
+ 4 levels are used. For single line output, these set the indentation for that
+ key.
+ * key-name remains the key string ID name.
+2. For -y 1 -G will show drivers then indented one more level unloaded, FAILED,
+and alternate: to make it clear those are a subset of drivers. driver: itself
+will contain the actual driver. In cases where no driver is loaded, a note
+will show indented after driver:
+3. For -y 1, driver v: versions will be indented 1, and driver will be a container
+that contains that version key: value pair.
+inxi -Razy1
+ Device-1: g23-home
+ type: zfs
+ status: ONLINE
+ size: 2.69 TiB
+ free: 1.26 TiB
+ allocated: 1.43 TiB
+ Array-1: mirror
+ status: ONLINE
+ size: 1.82 TiB
+ free: 602.00 GiB
+ Components:
+ online: sdb sdc
+ Array-2: mirror
+ status: ONLINE
+ size: 888.00 GiB
+ free: 688.00 GiB
+ Components:
+ online: sdd sde
+sudo inxi -dazy1
+ Local Storage:
+ total: 1.98 TiB
+ used: 1.43 TiB (72.2%)
+ ID-1: /dev/sda
+ vendor: Intel
+ model: SSDSC2BW180A4
+ family: 53x and Pro 1500/2500 Series SSDs
+ size: 167.68 GiB
+ block size:
+ physical: 512 B
+ logical: 512 B
+ sata: 3.0
+ speed: 6.0 Gb/s
+ serial: <filter>
+ rev: DC32
+ temp: 37 C
+ scheme: MBR
+ SMART: yes
+ state: enabled
+ health: PASSED
+ on: 291d 17h
+ cycles: 1346
+ read: 431.94 GiB
+ written: 666.16 GiB
+ Optical-1: /dev/sr0
+ vendor: HL-DT-ST
+ model: DVDRAM GH20LS10
+ rev: FL00
+ dev-links: cdrom,cdrw,dvd,dvdrw
+ Features:
+ speed: 48
+ multisession: yes
+ audio: yes
+ dvd: yes
+ rw: cd-r,cd-rw,dvd-r,dvd-ram
+ state: running
+inxi -Aazy1
+ Device-1: NVIDIA High Definition Audio
+ vendor: Gigabyte
+ driver: snd_hda_intel
+ v: kernel
+ bus ID: 09:00.1
+ chip ID: 10de:0be3
+ Device-2: AMD Family 17h HD Audio
+ vendor: Gigabyte
+ driver: snd_hda_intel
+ v: kernel
+ bus ID: 0b:00.3
+ chip ID: 1022:1457
+ Device-3: N/A
+ type: USB
+ driver: hid-generic,snd-usb-audio,usbhid
+ bus ID: 5-1.3.4:5
+ chip ID: 21b4:0083
+ serial: <filter>
+ Sound Server: ALSA
+ v: k5.4.0-11.2-liquorix-amd64
+-- Harald Hope - Fri, 12 Jun 2020 19:02:08 -0700
+Version: 3.1.02
+Patch: 00
+Date: 2020-06-12
+Big change, cleanup, small bug fixes. Hot, grab it now!!
+The new -y 1 feature exposed several small and larger glitches with how sets
+of data were constructed in inxi output. See Changes: for list of changes made
+to improve or fix these glitches.
+These errors and minor output inconsistencies became very obvious when I was
+doing heavy testing of -y 1, so I decided to just fix all of them at the same
+time, plus it was very hard to make the -y 1 indenter work as expected when the
+key values were not being treated consistently.
+Note that this completes the set of all possible -y results:
+Full -y Options:
+1. -y [no integer given] :: set width to a default of 80. this is what you usually
+want for forum posts, or for online issue reports, because it won't wrap and be
+hard to read. Help us help your users and others!! Teach them to use for example
+-Fxzy or -bay for their bug reports. Just add y to whatever collection of arguments
+you generally ask for in support forums or issue reports. Highly recommended,
+easy to type, and joins cleanly with other letters.
+2. -y -1 :: removes line width limits, this can lead to very long lines in some
+cases, and removes all auto-wrapping of line widths.
+3. -y 1 :: Switch to stacked key: value pairs, with primary data blocks separated
+by a blank line. Think dmidecode type output, or other command line sys info tools.
+By request, a forum support guy noted it was hard for newbies to understand the
+-G values, particularly -Ga when in lines, so this is another way to request
+data. WARNING: for lots of data, this gets really long!!! But if you are curious
+how inxi actually constructs its data internally, this sort of shows it.
+4. -y 80-xx :: set width to 80 or greater. Note you can also set these in
+your configurations if you want using the various options supported.
+1. Once again, no real bugs found beyond a few trivial things I can't remember.
+1. When out of X, dm: showed after Console: and often said dm: N/A particularly
+on headless servers, which was silly. Now DM: only shows after Console: if
+a DM: was actually found. If regular Desktop output, either in X, or via
+--display out of X, no changes.
+2. There was a pointless sudo test when sudo values are set initially, they
+were still running even if --no-sudo was used. Now they don't run in that case.
+1. The biggie, now inxi can output in a similar indented way as something like
+dmidecode if you use the -y 1 option. This feature was originally by request,
+though the initial request actually just wanted to see it stacked simply,
+but that was almost impossible to read for any output reasonably long, so
+I made the indentations very dynamic and deep, they go up to 4 levels in,
+which is roughly how deep in the inxi sub Categories go. This output format
+makes it very easy to see how inxi 'thinks' about its data, how it views
+sets, subsets, subsubsets, and subsubsubsets of data.
+Note that each data block, as with dmidecode data, is separated by a blank
+line. You know what this means!!! Yes, that's right!!! You can parse inxi
+output with awk!!, same way legacy bash+gawk inxi used to parse its data!!
+Or if your brain just does not like lines of data, you can make it appear in
+indented single key: value pairs.
+Here you can see for example that 1 Xorg Display has 1 or more Screens,
+and each Screen has one or more Monitors. Note that this -Ga data first
+appeared in inxi 3.1.00.
+Sample [with bug in OpenGL output!, and showing -Ga newer values as well
+for dual monitor setup, with one Xorg Screen]:
+inxi -aGy1
+ Device-1: NVIDIA GT218 [GeForce 210]
+ vendor: Gigabyte
+ driver: nouveau
+ v: kernel
+ bus ID: 09:00.0
+ chip ID: 10de:0a65
+ Display: x11
+ server: X.Org 1.20.8
+ driver: nouveau
+ unloaded: fbdev,modesetting,vesa
+ display ID: :0.0
+ screens: 1
+ Screen-1: 0
+ s-res: 2560x1024
+ s-dpi: 96
+ s-size: 677x271mm (26.7x10.7")
+ s-diag: 729mm (28.7")
+ Monitor-1: DVI-I-0
+ res: 1280x1024
+ hz: 60
+ dpi: 96
+ size: 338x270mm (13.3x10.6")
+ diag: 433mm (17")
+ Monitor-2: VGA-0
+ res: 1280x1024
+ hz: 60
+ dpi: 86
+ size: 376x301mm (14.8x11.9")
+ diag: 482mm (19")
+ OpenGL:
+ renderer: N/A
+ v: N/A
+ direct render: N/A
+2. Refactored and cleaned up print_data(), got rid of some early testing code,
+dumped some unnecessary tests, simplified old tests, and optimized the new
+indentation logic reasonably well. Hopefully the print_data() will not be
+quite as much of a black box now as it was.
+3. Even more drive vendors and ID matches!!! The list never ends!! An endless
+series of new vendors and IDs of existing vendors sprout up, then float away.
+And inxi follows them to the best of its ability. Thanks again to Linux-Lite
+hardware database, which help make this ever expanding list possible, since
+their users appear to use every disk known to humankind.
+1. When out of Display, and Console: shows, -S will not show dm: if no
+display manager is detected, and if it is detected, it shows DM: since it's
+not part of the Console: set of data. If out of X and --display is used to
+get Xorg data out of X, it will show Desktop: set of data as normal, at least
+it will show the stuff it can find. This resolves the issue where dm: appeared
+to be a member of the set of Console: data, instead of either its own thing,
+DM:, or a member of the set of Desktop: data.
+2. For RAID Devices with sub Array-x: values, Array-x: is capitalized, it used
+to be array-x: That was silly.
+3. In USB, now Device-x: resets inside each Hub: so that the Device-x: are
+numbered starting at 1 within each Hub:. This makes the counter behavior act
+the same as it does in for example RAM Array-x: / Device-y:, where each Array-x:
+resets Device-y: count to 1. This changes the old default of having Device-x:
+not reset, to let you see the total number of devices plugged in or attached
+no matter which hub they were plugged into, but the output actually gets
+sort of confusing in single key: value pair mode per line.
+4. The key: value syntax for weather was changed completely, now it works
+like the rest of the features, with Report:... [Forecast:...] Locale:...
+and Source:. Locale makes the source of the times and other date related
+features, and the location if shown or available, much more obvious. Before
+it was never clear if Current Time referred to your local or the remote
+time, now it's clearly from the Locale: you specified with -W, or
+the default -w local info. Also made Report 1 line if unwrapped, Forecast 1
+line if not wrapped, and Locale: 1 line if not wrapped, which makes the output
+easier to read.
+NOTE: automated weather queries are NOT allowed, if you do it, you will be
+banned!! inxi is NOT a desktop weather app!! Don't confuse it with one!!
+Weather is just a small service to users who might for example want to check
+the weather on a remote system, or something like that, and is not intended
+to be used on a routine basis.
+5. Cleaned up and re-ordered the --version output. It had some pretty old
+contexts in the language, which were removed or cleaned up and brought up to
+date. If you're wondering, I roughly use rsync and nano --version as guides
+for what to show or not show there.
+-- Harald Hope - Thu, 11 Jun 2020 23:53:30 -0700
Version: 3.1.01
Patch: 00
Date: 2020-05-31