New features:
1. for a very few systems that have wmctrl installed, will shows -xxx wm if present
Enhancements:
1. made xorg display server and protocols show more consistently with other layout:
Display: x11 server: X.org 1.9.12 drivers: loaded: ...
if no display protocol found:
Display: server: X.org 1.9.12 drivers: loaded: ...
This brings the -G in line with the other lines, of not putting different data types
inside of parentheses as much as possible. -I still has two of these, but so far it's
not clear how to otherwise show SSH or su/sudo/login in their respective spaces.
Debugger data collector also has something I should have added ages ago, gz filename
now includes the basic 2 digit inxi version number, like 3.0 at end, so I can readily
determine the debugger inxi version, and thus avoid having to root through lots of
versions to find new stuff.
These are all largely cosmetic improvements, or debugger adjustments, except for -Sxxx
now offering wm: if present.
Also changed Desktop: name... (toolkit data) to: Desktop: name... tk: toolkit data
to be more consistent, while not adding great length to the output.
These two changes should also help export to json/xml since that puts unique key/values
back into key value pairs, not merging two together.
inxi 3.0 is now ready for prime time. No substantial issues have been found over
the past week. All outstanding issues and bugs have been corrected. The man page
and help page have been edited fairly heavily to improve usability and readablity.
All work and development and support for inxi 2.3.56 is ended. No issues for
2.3.56 will be accepted since there is no way to support that version, it
being in a different set of languages (Gawk/Bash) than inxi 2.9/3.0 (Perl 5).
So the sooner you move your distro package pool to new inxi, the sooner your
users can get support for any issues with current inxi.
Beta and 2.9 prerelease testing is completed, and has resulted in a much
better inxi than I could have hoped for.
There are so many new features and enhancements in the new inxi that it's hard
to list them all. See previous commits for a more in depth record.
1. New options: --slots (PCI Slots); --usb
2. Exports to json/xml with --output options
3. Every line has been enhanced, with tighter output control, better key / value
pairings, more accurate values.
4. Line wrapping is now fully dynamic, which means inxi works down to 80 columns
and should basically never wrap (except for very long repo lines, but that's not
really fixable).
5. More controls, more user configuration options (see man page).
6. So many small new features that it's hard to list them all. Shows SSH in -I
if SSH. Shows sudo/su/login in -I if relevant and detectable. Shows disk partioning
scheme in some cases (more coming). Removes color codes if piped or redirected to
file.
7. All sizes are now shown in standardized KiB/MiB/GiB/TiB/PiB format, to avoid
ambiguity about whether M or MB or MiB is meant. All internal size math is done
using KiB, which further avoids confusion and error. Note that many disk makers
like using MB or GB instead of MiB or GiB because it makes their disks seem
'bigger'.
8. Sensors -s now supports IPMI sensors, in tandem with lm-sensors.
Anyway, the changelog will show better all the new features etc, I can't remember
them all.
All current issues and glitches have been fixed, any remaining are simply new issues,
just as they would be in old inxi.
Note that in the second and third weeks of beta testing a significant number of bugs
that are in inxi 2.3.56 were fixed. 2.3.56 has been moth-balled into the inxi-legacy
branch as binxi, to avoid mixing it up with inxi. The development branch is now
permanently inxi-perl, aka, pinxi, since that worked so well for beta and pre-3.0
2.9 testing and development.
This ends the pinxi/inxi development stage. All future development will proceed
using the inxi-perl branch, and will be the same in terms of new features as pre
inxi 2.9 was, they will be added, enhanced, as seems appropriate.
Remember, inxi is a rolling release program, like Arch Linux, Gentoo, Debian
Testing/Sid, and has no frozen release points, so this is simply the beginning of the
3.0 line of Perl inxi.
Thanks to everyone who contributed time, energy, effort, ideas, testing, debugging,
patience - inxi would not work without you.
like --sleep and -t.
Edits to layout and language, removed some legacy options and language from man and
inxi.
Added partition table detections, rough initial stage. Only works on systems with
udev present currently, will be expanded as we find fast tools. Since the systemd
method is literally up to 25x slower than the udev method, it's not being considered
except maybe as a last, last resort, and probably will never be used.
Many small bugs fixed.
Enhancements:
1. in some cases, will detect partition table type (GTP,MBR) either
with or without root. Uses fast method, which is not available on all systems.
2. Added IPMI sensors tools ipmitool and ipmi-sensors to -s for systems that
use IPMI.
3. Finished man page edits and corrections. Thanks Pete.
4. Added doubled word filter for main -NGA lines, only for Card items.
5. Gave more granular uptime output: like: uptime: 23d 5h 34m
Bugs fixed:
1. RAID - both mdraid and zfs bugs corrected. Issue #135
2. EPYC cpu wrong die count corrected, and also added support for the EPYC type.
Issue #135
3. Possible ARM data glitch that made reader fail on a non-existent file.
Man:
Ongoing updates and edits and corrections and cleanup. Slowly but surely.
1. Bug: cause unknown, but crashes on null file sent to reader, but all those files
have been checked. For now added return if file null.
2. Features: with -Ixxx: show Shell: csh (sudo|su|login) status; show
running in: xfce-terminal (SSH)
ssh session active on remote system.
Various help and man cleanups and additions.
Bugs fixed:
1. stray undefined value corrected
2. fixed BSD no pkg server case, now shows correctly that no pkg server files
were found, not that the OS is not supported.
Features:
1. -t c and m headers cleaned up and simplified
2. man page edits.
3. more standarization of key names for fields, some spelling
and upper/lower case corrections.
Bugs fixed:
1. json/xml outputter had a bug in it that made it validate path wrong.
2. -G -xx option: compositor: for gnome-shell had a bug that would make it show
as running when it wasn't, other strings were tripping the match on systems with
gnome-shell installed but not running,
3. Finally fixed bug with manjaro full version distro string, and tweaked output
to show Manjaro Linux instead of given string.
Features added:
1. --no-man - this lets users turn off man installs. Only really useful for -U
from master, since default is off for pinxi and dev 3 branch.
Man page/help updated to add this option.
Man features new section, configuration options, which lists the main config options
users would be likely to use.
This should help users who will never check the actual documentation web page
realize that there are many internal configuration options available.
Many edits in man, more to come I suspect.
Bug fixes in inxi:
1. removed a few stray debuggers that were creating debugging output
2. fixed a usb driver bug that would create warning messages from Perl (thanks Manjaro
for finding that one)
New Option:
1. Added: --indent-min - goes with the user configuration option: INDENT_MIN
and allows users to experiment with different indent settings. This is what trips the
auto line wrap of line starters. This may be revisited, and this switch will make it
easier for users to see for themselves which they prefer, what trip point, etc.
This will help determine pre 3.0.0 what the default auto wrap trip point, if any,
will be.
Added more data to debugger tool, more lsblk, which is going to need a lot more data
to solve a new issue with dm/encrypt/lvm, initial $MANPAGE data, to see if anyone
actually ever uses that environmental variable.
Special thanks to Manjaro for being as far as I know the first to package Perl inxi.
To get rid of some non-intuitive options, I've changed some of the --alt values
to more obvious argument names; --dmidecode --no-ssl --no-host --host
This makes them easier to remember, hopefully.
Updated help, man pages to cover this change as well.
Added some more lsblk debugger output to try to start building enough information to
really figure out dm/encrypted/lvm and how those are actually handled internally in
the system in terms of partitions, filesystems, etc.
features.
So now inxi and pinxi will grab the inxi.1 or pinxi.1 man file and install it on
systems that do not have -U blocked. The -U block of course remains the same.
New features:
1. now does not require root or 'file' to get unmounted fs type. Also, for many
mounted partitions, rather than showing the meaningless fuseblock it will usually
get the filesystem right.
2. -U now works with optional --man option to download man page for pinxi
and -U 3 dev server updates. This gets around the fact I had to remove the gz files
from master to get the size small enough to make maintainers happy. Non branch
inxi master works as before, updates both from github or from dev server, depending
on your selection.
3. Thanks very much to the people who have been contributing in a positve way,
helping to make inxi better. The untold number of small and large new features,
small glitches, etc, that have been fixed this week are simply too many too list.
Many to most were inxi bugs or weaknesses, now corrected.
4. binxi branch has now been made fully operational, though I do not plan on doing
any work beyond the mothballing of that venerable program (gawk->bash inxi), it's
fully operational, it updates, it gets its man page, but all as binxi, so you can,
as with pinxi, run all of them separately. This officially terminates my support
for Gawk/Bash inxi, which can be found as binxi in the inxi-legacy branch.
5. pinxi has been promoted to permanent development branch, where bug fixes, new
features, etc, will be tested, along with man page updates etc. This will help
reduce the number of commits to master branch.
6. Audio / Network usb cards now show the true driver(s). There are often more
than one for audio, that's a nice enancement.
7. inxi outputs to json / xml, which will probably interest some developers
eventually, well it already did, that was going to wait, but someone wanted it.
8. Apt repo handler now supports DEB822 format, which is not an easy format to
parse.
==========================================================
MAINTAINERS:
Note the following: despite my strong dislike for tags, every commit that touches
either inxi or inxi.1 man page will be tagged if I think they would be something
relevant to distro packagers. While github insists on calling my tags releases,
I want to be crystal clear: inxi has one and only one 'release', the current master
branch version. The tagged commits that github calls releases are NOT releases,
they are just tagged commits. The version I release tomorrow will be the current
master, and all previous versions will be obsolete and will not be supported.
The .gz files have been removed from the master branch history, thus shrinking it
a lot. I have removed for this reason the master-plain branch, which mirrored
master and provided a gz free branch, but apparently this was simply ignored so
there's no reason to keep it going. If you insist on grabbing all the branches and
find more data in there, then please correct your practices, you are only getting
the data from the master branch.
inxi is rolling release software and has no releases, so the tags are supposed
to create some illusion that a tag actually means something. Since it doesn't,
I decided to take the path of least resistance and just add an auto tagging tool
to my commit scripts and use it when it seems appropriate, like on this commit.
All development work now will happen via the pinxi branch, so that makes the process
a lot cleaner, since I can now basically beta test all new commmits to master.
pinxi and binxi are both standalone versions of inxi, they have their own config
and data directories, config files, man pages, etc.
-----------------------------------------------------
New Perl inxi is already way ahead of Gawk/Bash inxi, more features, more accurate,
and most bugs being fixed now are because a lot of people are contributing eyes and
testing, and are finding stuff that was wrong, or simply missing, on old inxi as
well as on Perl inxi. Fixes to Perl inxi (>2.9) will not be rolled into to binxi
since the entire reason I spent over 4 months on this project was to never have to
touch Gawk/Bash inxi again.
Most imporant, however, is that the simple fact was, Gawk/Bash inxi has been
nearly impossible to work on despite my following rigorous practices in coding,
and I simply won't work with that type of stuff anymore. Perl 5.x is a true delight
in comparison, and makes adding new features, enhancing others, far easier, or
even possible, where it wasn't before.
On a technical level, I have tested Perl inxi heavily, and it will run on all
Perl 5.x versions back to 5.008, which is the cutoff point. This was not that
hard to do, which is why I picked Perl 5.x as the language. This means that
you can drop, just as with binxi, Perl inxi onto a 10 year old system, or
older, and it will run fine, albeit a touch slowly, but must faster than binxi.
-----------------------------------------------------
So far users are really liking the new one, it's usually faster in most cases,
the output is cleaner, there's more data, more options, and basically it's
gotten the thumbs up from all the testers, and there have been a LOT, who have
helped. I want to give a special thanks to the following distros for their
exceptional support and testing:
0. the people who hang out on irc.oftc.net #smxi. Very patient, will test things
with astounding patience, so thanks to them. Archerseven, iotaka and KittyKatt
have been been incredibly helpful when it comes to testing and debugging, and
finding corner cases that I would never have found.
1. AntiX: they were the first to beta test pinxi, and found massive numbers of
bugs, and stuck with the testing for a long time. They made testing possible for
the next wave of testers, my hats off to them, I've always liked them.
2. Manjaro also was very helpful, and found more issues and enhancements.
3. Ubuntu forums users found more, and helped enhance many faetures
4. Mint users have been very helpful, and were the impetus for some nifty
new features, ilke switching all color codes off when output is piped or sent
to file. They have reminded me of how valuable people's views can be who may not
share the same tech world view as you, but are still very talented and observant
individuals.
5. Slackware users provided some very thoughtful feedback, which was no surprise
but welcome nonetheless, thanks.
6. Same with Debian forums, again, some very useful and constructive ideas and
observations, and some very arcane and odd hardware that exposed even more corner
case bugs.
And several other distros were also helpful, each in their own way. Solus for
example now has their package manager added in repos.
1. added tool lsblk, recommends, for -p and -o, shows better partition data than
df does. First choice for -p and -o, -p fall back df, -o fallback file.
2. fixed a big bug with user configs, that would make the configs break every time
the color editor was used.
3. Some smaller bugs.
It's here! Perl inxi, first official release. So many changes, really too many
to list.
But here's a few:
1. of course, full rewrite to Perl 5.x. Supports as old as 5.008, as new as current.
2. Better line length nandlers. Fully dynamic, robust, shrinks and expands to fit
either taste or viewport.
3. Long options for all options now, plus of course the short options everyone
is used to.
4. New options: --usb; --slots (pci slot report); --sleep (change cpu sleep time);
and many more. Check --help or man page for details.
5. Vastly improved --recommends, now does per distro package recommends, and shows
only Linux data to Linux systems, and BSD data to BSD systems.
6. Hugely improved debugger as well.
7. Far more accurate output, most output is now in key/value pairs, because:
8. inxi now exports to json and xml! See --output/--output-file for info.
9. Enhancedd repo output, added deb822 type, solus
10. Radically enhanced network data, now shows all IP / IF devices connected to
each nic, not just one, both IP v4 and v6.
11. USB audio and network device actual drivers
12. better handling of compiler data.
13. Basic ARM machine data now, if present to inxi
14. Graphics: per card driver info alongside the original xorg drivers.
15. Better integration of partitions, RAID, unmounted partitions, and HDD data.
16. Better sensors handling of free video driver sensor data, well, not better,
it's now there, along with fan speeds for gpus.
17. RAID is enhanced, and now can show > 1 RAID type on a system, and the RAID
is improved.
18. Much improved disk/partition/memory sizing, inxi now always works internally
with KB units, and changes them on output to the appropriate units.
19. Fully redone man page for all the new options and the long options.
And so much more. Anyway, here it is, the first release.
cpu output issues. Now inxi handles > 8 cores in terms of output filters,
descriptions, correctly noting that it's multithreaded.
Because AMD has entered the Multithreading game, I've changed the trade term:
HT - HyperThreading to MT - MultiThreading to support both Intel and AMD variants.
Updated CPU output filters to also account for these very large core counts.
I believe this commit now adds full support for the new Ryzen series, but I'll have
to see when it comes to other variants that may appear. I've tried to future proof
the MT tests, but I won't know of those are fully functional and accurate until
inxi sees the real data.
issue a forum poster raised, which is the fact that despite the fact that GNU/Linux
has had reasonably ok zfs support for years now, inxi only tested for zfs on bsd
systems.
This has been corrected. Due to the complexity of handling software raid, inxi
will now test first for ZFS data, if none is found, it will then test for
/proc/mdstat.
In a perfect world I'd like to have full dynamic Raid support, but I'm missing
all the key ingredients required to add that:
1. systems to test on
2. software raid, I don't use it
3. data collection for non mdraid and zfs software raid, including the values
possible to gather from all non software raid.
Basically, the only way I'd extend -R raid option is if I get direct ssh access to
a machine that uses the alternate software raid type, otherwise it would take
forever to figure out the options.
Since the number of people who might be actually running zfs and mdraid and
using inxi probably numbers in the 10 globally, I figured this solution was a fine
way to handle adding zfs without messing up mdraid, which is more common on linux.
It also does not break BSDs, since bsds as far as I know don't use mdraid, and don't
have /proc/mdraid in the first place.
Also redid the man page to add -! 41, -! 42, -! 43, -! 44 options, which bypass
curl, fetch, wget, and all of them, respectively. Plus making the lines less wide.
That should make those people who actually use 80 column wide vi as an editor
happy, lol.
nvme disk capacity in full disk capacity listing. Adds nvme name/serial/firmware
revision number. The latter is a new -Dxx output option. Note that as far as I could
tell, so far, nvme is the only disk type that has firmware revision data.
Added support for nvme disk temperature as well, that requires the cli tool nvme.
Updated AMD microarchitecture list to be more granular and complete. Added Intel
microarch type. Note that they are releasing a few new microarchitectures soon but I
was not able to find any model numbers for those.
of the xiin.py tool, which is going to become obsolete when python 3 fully replaces python 2.
Since the odds of perl being around and stable are far higher than the odds of xiin.py
even working on python 3, I'm getting ahead of the race. Plus Perl is nicer to work with.
And Perl is a lot faster. I mean, a lot. Not slightly.
And it also works on much older systems, and does not have that Python version < 2.6
failure due to changing Python syntax even between sub versions. xiin.py never ran on
Python 2.5 even when it was relatively recent, which is one reason I'm removing all Python
from inxi.
Basically xiin.py worked only on Python 2.6 or 2.7, period.
Oh, and also handled issue #115 by not making -B show -M data.
-o, -p, -l, -u, -P, -S, -G, -N, -A
Now most output should tend to not wrap, though some strings are unpredictable and
will have to be trimmed by adding them to the min size trimmers one by one.
But it's much better than it was.
Note the following changes required to make the wraps more consistent:
-S - the gcc/bits have been made separate, like: bits: 32 gcc: 5.3
-C - the new microarchitecture -x option now is: arch: K7 [for example]
cache wraps to next line with arch. with -f, bmips now shows on same line as
arch/cache
as well so you can see which revision of the cpu microarchitecture your cpu has.
Also fixed a few random vm id issues, I found cases where systemd believes it's bochs
but it is actually kvm, so now the systemd data is not fully trusted, but is confirmed.
Will need some updates to bring the family/model ids to fully current, but should show data for most
cpus. Next release will hopefully include latest model/family ids and microarchitecture names.
Note that while /proc/cpuinfo has the family/model id in decimal, the values are actually generally
found as hexadecimal, so inxi translates that interally so we can store the data the way it is presented.
See issue #116 for ongoing additions to this feature.
long-standing issue where /dev/ram.. data shows in unmounted disks output. This is
now properly filtered out.
Note that the floppy disk output has no information beyond it's /dev id, eg: /dev/fd0
I could find no meaningful data in /sys related to the floppy disk, not the model, etc, so
I'm just showing presence of disk.
wget/fetch/curl. This allows systems with for example out of date certificate stores
to still download without error. Also a legacy system fix where tty size failed to show.
Also cleaned up man page, slightly changed output for compat version to: (compat-v: 3.0)
gfx variable name fixes to make more obvious the logic as well.
Also found a case with intel gpu where glxinfo -display :0 hangs endlessly when out of X.
I assume this is an Intel or glx bug, so I mentioned this in the man page for -! 40 option.
Default will get data from display :0, but if you append :[display-number] to -! 40, it will
use that display instead, for example: inxi -! 40:1 would get information from display 1. Note
that most multi-monitor setups use :0 for both monitors, depending on how it's setup.
This will also let users see any desktop information based on xrop -root output, but it will
depend how it works based on how environmental variables have been set. gnome and kde, which use XDG for
primary detection would not work, for example.
-xx option will show OpenGL compatibility version number as well, though that's largely useless
information for most users, thus the -xx. Note that this reverses the default, which previously
showed OpenGL version, which is actually the compatibility version.
This should resolve#105 pull request, though it does it differently, by switching the default
output to what is more relevant, and offering the compatibility version as an optional output item.
Note that much of the glx information will probably change to more neutral terms once wayland support
starts growing, and systems without xwayland etc libraries appear.
Further note that non free drivers showed the OpenGL core profile version numbers all along, so really
this simply corrects misleading output for free drivers.
and compositor support.
This finally implements a first try at mir/wayland detection, along with basic handling of actual
display server type output.
New output for Display Server: Display Server: x11 (X.Org 1.19.0) driver: nvidia
Note that since almost all current Wayland systems will have X.org also installed, for the time
being, the data in the parentheses will be from X.org regardless of what display server is detected running
the actual desktop. Out of the desktop, console, the only thing that will show is x data..
No other data is available to me yet until I get way more debugger data so I can see what information the various
implementations of wayland without x tools actually makes available, my guess is it won't be much.
Also experimental -xx option: -G shows compositor, but only for wayland/mir currently.
I have no idea if this will work at all, but it's worth giving it a try as a rough beginning to
start handling the wide range of wayland compositors being created.
This feature will probably take several versions to get stable.
Also added new debugger data collector data for wayland information, but the pickings are slim, to
put it mildly.
Now there is an -x option for -i that will show the additioanl IPv6 address data for scope global,
temporary, and site. Also a fallback for unhandled scope: unknown. If the tool 'ip' is used, it will
filter out the deprecated temp site/global addresses, ifconfig tool does not appear to offer this
option.
Also changed is that now ipv6 address always shows, it's not an -x option. Probably about time to
start rolling out ip v6 data to users now that ip v6 is starting, slowly, to be used more.
Another small change, the link address for ipv6 is changed from ip-v6: to ip-v6-link so that it's
more clear which IP v6 address it is.
The last commit had a significant logic error in it that did not distinguish between the link address,
which is what should have only shown, and the remaining possible addresses.
I've tried to get a basic bsd support, but it's difficult to know the variants of ifconfig output syntax
While default configs remain in /etc/inxi.conf, the user overrides now use the following order of tests:
1. XDG_CONFIG_HOME / XDG_DATA_HOME for the config and log/debugger data respectively.
2. Since those will often be blank, it then uses a second priority check:
$HOME/.config $HOME/.local/share to place the inxi data directory, which was previously here:
$HOME/.inxi
3. If neither of these cases are present, inxi will default to its legacy user data: $HOME/.inxi as before
In order to make this switch transparent to users, inxi will move the files from .inxi to the respective
.config/ .local/share/inxi directories, and remove the .inxi directory after to cleanup.
Also, since I was fixing some path stuff, I also did issue 77, manual inxi install not putting man pages in
/usr/local/share/man/man1, which had caused an issue with Arch linux inxi installer. Note that I can't help
users who had a manual inxi install with their man page in /usr/share/man/man1 already, because it's too risky
to guess about user or system intentions, this man location correction will only apply if users have never
installed inxi before manually, and have no distro version installed, unlike the config/data directory,
which does update neatly with output letting users know the data was moved.
Note that if users have man --path set up incorrectly, it's possible that the legacy man page would show up
instead, which isn't good, but there was no perfect fix for the man issue so I just picked the easiest way,
ignoring all man pages installed into /usr/share/man/man1 and treating them as final location, otherwise
using if present the /usr/local/share/man/man1 location for new manual install users.
Also, for users with existing man locations and an inxi manually installed, you have to update to inxi current,
then move your man file to /usr/local/share/man/man1, then update man with: mandb command (as root), after that
inxi will update to the new man location.
Also added some more XDG debugger data as well to cover this for future debugger data.
This closes previous issue #77 (man page for manual inxi install does not go into /usr/local/share/man/man1) and
issue 101, which I made today just to force the update.
Just as a side note, I find this absurd attempt at 'simplifying by making more complex and convoluted' re the XDG
and .config and standard nix . file to be sort of tragic, because really, they've just made it all way more complicated,
and since all 3 methods can be present, all the stuff has to be tested for anyway, so this doesn't make matters cleaner
at all, it's just pointless busywork that makes some people happy since now there's even more rules to follow, sigh.
Now -M shows device type, like desktop, laptop, notebook, server, blade, vm (and tries to get vm type).
vm detection will take more work, for now I'm just going for the main ones used, but it will certainly
miss some because it's hard to detect them in some cases unless you use root features. Also note, in
most cases a container I believe will display as a vm, which is fine for now.
For BSDs, and older linux, there is a dmidecode fallback detection as well.