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.
The issue was not so much with xiin.py as with some new values in /sys that would
hang tree traverse, however, in order to remove the python dependency (except for
uploading -xx@ debugger data, until I can figure out how to do it with Perl), I
rewrote the tree traverse tool into Perl, which also makes it a lot faster and
easier to work with.
This issue appeared on kernel 4.11 as far as I can tell, some new values in /sys make
the traverse hang if it tries to read the values, **/parameters/** and **/debug/** seem
to be the main culprits, but inxi doesn't need that data anyway for debugging purposes
so it's just excluded.
in issue #118
The data seems to suggest that using POWER_SUPPLY_VOLTAGE_MIN_DESIGN as the factor will
be right more often than using POWER_SUPPLY_VOLTAGE_NOW.
Also optimized a bit more on the desktop id logic.
the conversion from mA hours to Wh, and had a math glitch too for charge (ma).
Not sure how this went undetected during testing, oh well. I assume that mA h is not
as common internally as Wh or something.
Anyway, it should be fixed.
-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
would have caused failure on older systems. Also added Bash version checker.
Most ps aux data is now searched using bash parameter expansion, and several functions
that were in subshells are now printing to globals instead.
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.
but Xorg has not started, which means inxi can't get the video driver from Xorg.0.log as with X.
Added in extra data collection from lspci -v to include the driver for graphics card. this is
only used, for now, if the initial Xorg based driver test works.
Note that this may also work for systems that have not yet started X out of X, in console, I'm
not sure about that, but the graphics driver reporting should be improved.
Note that I'm not yet linking the driver to the specific card/device, it's just going to show
in a comma separated list, I couldn't find multi card systems where the card types are different,
like amd gpu with nvidia card, for example.
But this should correct an issue, at least to start, with expanding wayland support for systems
that don't use or have not started the desktop with Xorg/X11 etc.
core profile data being null, which in turn triggered a bash oddity, where if the IFS is
\n for an array, and if the value of one element is '', then bash ignores that and does
not simply set an empty array key as you'd expect. The correction was to change the IFS
to ^, which worked fine for empty array values.
However, since this bug will impact anyone with empty opengl core profile data, I recommend
updating inxi.
Also, added support for two smaller wm, Sawfish and Afterstep.
This is a good source for lists of wm: http://www.xwinman.org/http://www.xwinman.org/others.php
However, that does not show how to ID it, so i have to do it on a case by case, but I'll
add an issue for showing how to get your wm of choice if it's missing to inxi.
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.
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.
used to not work as root in X, but they do now. So I've removed the root tests for graphics
output, and now only rely on the returned data to determine the output when in X. Out of X
behavior remains the same.
Note that at some point I'll have to see if wayland systems have usable reporting tools to get
screen resolution, opengl info, and so on, but that will have to come one step at a time.
-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
Note that this bug is not universal, but I believe this will make inxi more right than wrong
as a general rule. Further note that altitude is NOT actually the altitude of the city/location
requested, in most cases, but rather the altitude of the weather station data assigned to that
location request.
from BIOSTAR. Also fixed a few other sloppy gsub, and fixed a few gensub errors as well.
Since BIOSTAR is a fairly common mobo, I'm surprised I haven't gotten this bug report
before.
This closes issue #102.
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.
graphics driver, so it would not show in output, which causes support issues for users of that specific
driver, like some cases of Intel. Also inxi would always have failed to show it unloaded in cases where
radeon/nouveau were used but it had been loaded by xorg to begin with. So probably worth updating packages
I'd say.
each disk is on its own line always, this makes it easier to read and/or parse.
Also, the lines now wrap nicely for extra data > console width, or -y 80 for example if
you're trying to force most of the data to fit into 80 columns.
handling, and legacy linux. VM id will remain a work in progress, and will probably
require a few fixes for fringe cases. Nice to have would be things like OpenBSD's
vm which is difficult to detect. However, I believe this should handle roughly 99% of
realworld vm id cases, except for some commercial stuff that will require more data.
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.
Basic support added for Budgie desktop detection. This is waiting more data, so the support will be
missing the version information. Go Budgie!!
Added /var/tmp and /var/log and /opt to basic partition data: -P
This will probably not impact more than a handful of people in the world, but that's fine.
Modified the static BIOS in -M to now show UEFI for actually UEFI booted systems, and, ideally,
UEFI [Legacy] for UEFI booting in bios legacy mode, and BIOS for all others. Hopefully this will
work ok, we'll see.
-B option now shows, if available, battery data. Quite good data for systems
with /sys battery data, only rudimentary for systems using dmidecode (BSDs).
dmidecode has no current voltage/charge/current supported capacity.
Main row shows charge and condition. Condition shows you have much capacity the
battery currently has vs its design capacity. Charge shows the Wh/percent of
current capacity of battery (NOT the rated design capacity).
-x adds battery vendor/model info, and battery status (like, charging, discharging,
full).
-xx adds battery serial number and voltage information. Note that voltage information
is presented as Current Voltage / Designed minimum voltage.
-xxx adds battery chemistry (like Li-ion), cycles (note: there's a bug somewhere in
that makes the cycle count always be 0, I don't know if that's in the batteries,
the linux kernel, but it's not inxi, just FYI, the data is simply 0 always in all
my datasets so far.
For dmidecode output, the location of the batter is also shown in -xxx
A sloppy unescaped / triggered a failure I didn't notice in partition info.
Please update your inxi packages immediately if your version is 2016-03-21 or newer.
on /etc/issue step to first test for os release and not mint, then lsb verison and
not mint, then /etc/issue. This should keep the mint detection working well, as long
as they keep mint string in the /etc/issue file, that is, but that's out of our control.