inxi :: script configuration
Page Updated: 2021-03-15 inxi version: 3.3.02
Inxi features a very wide range of user configurable options. For clarity, let us assume your user name is fred for the rest of this page when it comes to system paths and so on.
Please note, for distributions or packagers that include inxi, they might want to take a look at creating global configurations that more accurately suite their defaults, for example the range of colors that can be used for each purpose. See the options page for more information about colors. In general I suggest running the -c color selector to see what the colors really look like before setting them, and it's easy to use that tool to set the config file data per user.
- Configuration Files – how to create and edit inxi config files
- Configuration Values – the following are basic variables you might want to change default values of:
- Output Formatting:
- Data Adjustments:
- Allow Update – Change configuration to enable -U self-updater if disabled.
- CPU Spindown – set the time to allow cpu spindown
- Limit IPs – Raise or lower maximum default number of IP addresses that show per interface
- No Dig – Don't use dig for WAN IP
- No doas – Don't use doas [BSDs] internally.
- No HTML WAN – Don't use HTML downloaders for WAN IP
- No Host – Remove Host: From System Line
- No Sudo – Don't use sudo internally.
- Partition Sort Order – Change Partition Sort Order
- Process Count – Change minimum number of processes that show in -t/--processes.
- Sensors Output Adjustment – change which sensors system shows
- USB /sys – forces USB data to be taken from /sys
- WAN IP URL – Disable dig, and use your own IP url.
- Weather Source – change weather source inxi uses
- Weather Units – change weather units (imperial/metric)
- Setting Up Sudo Permissions
- Adding SSD/NVME Devices to hddtemp db
You can create inxi configuration files, or let inxi create them for you if you use the -c 94 through 99 color selector.
You can use comments in your config files. Comments use a # mark before the commented text.
As usual, inxi, allows for either a global configuration file, located at:
or specific user, including root, configuration files, located at the following possible locations (order listed is order of precedence):
- If you have a path set in $XDG_CONFIG_HOME, then this is where your user config file should go:
- This is usually going to be the path in $XDG_CONFIG_HOME, so if that is empty, but you have the .config directory, use that:
- The previous default was
$HOME/.inxi/inxi.confinxi will continue to use this if no $XDG_CONFIG_HOME or $HOME/.config/ exists.
NOTE: this path change was made 2016-12-18, and inxi will automatically move the files in $HOME/.inxi to $HOME/.config/inxi.conf and $HOME/.local/share/inxi if anything was in your .inxi directory. New inxi users will see their data in $HOME/.local/share/inxi and the config local user file in $HOME/.config/inxi.conf unless $XDG_CONFIG_HOME / $XDG_DATA_HOME are different, then it will use those paths.
So let's say you, fred, are logged in as fred, this would put your inxi configuration directory/file here:
If you wanted the root user to have some different defaults, you'd create/edit this file/directory:
Please note the . in the config directory, that's a hidden file type, also as usual. Config files inxi needs will be found in there, and other data files in .local/share/inxi, including debugging or log files if you run inxi with those options activated.
Note that file is always checked for, first the /etc, then the specific logged in user's config file, and anything in those will override the script defaults, but will in turn be overridden if you start inxi with an overriding option.
Configuration Values: Output Formatting
The following are options to change the output formatting, line lengths, colors, default filter values, and indentations.
Colors, Colors, and More Colors!
These can all be adjusted on a per user basis using the inxi -c 94 through 99 options.
In general I think it's easier to see the colors using the color selector tool, but if you already know what color scheme you want, or if it's for a distribution or package, of course you can create any color defaults you want.
It's very important NOT to use any other than the basic set of color schemes offered by inxi irc color selectors because the other ones are often not visible to other users on IRC even if you can see it fine on your system. This applies to the default and the IRC colors.
See inxi's help menu (-h or --help) for full explanation of the various colors and schemes, and please run it yourself to see what the colors really look like. These are the active color options. Only add the one(s) you are going to use, and add = plus number after the option item.
DEFAULT_COLOR_SCHEME GLOBAL_COLOR_SCHEME IRC_COLOR_SCHEME IRC_CONS_COLOR_SCHEME IRC_X_TERM_COLOR_SCHEME CONSOLE_COLOR_SCHEME VIRT_TERM_COLOR_SCHEME
IRC_COLOR_SCHEME=27 IRC_CONS_COLOR_SCHEME=31 IRC_X_TERM_COLOR_SCHEME=12 CONSOLE_COLOR_SCHEME=19 VIRT_TERM_COLOR_SCHEME=21
Data Field Separators
This value adds separators to output, for example:
System: Host: moxie Kernel: 2.6.37-2.dmz.1-liquorix-686 i686 (32 bit, gcc: 4.4.5)
Only sub fields, not line/item starters will be affected. That is, Host: would not be changed, but Kernel: would become Kernel~ if you changed the separator from ':' to '~'
Please be aware that many IRC clients add emoticons, so it's generally a BAD idea to add any IRC separator since it may trigger a happy face for other users, or whatever emoticon it is.
This value is what is displayed when either the IRC filter or the -z triggered filter hides some of the user data.
These can be used to alter how long the lines are, in characters, before they wrap. Most of the lines will wrap when they have enough data to form a new line. Usually you want to leave IRC as is, or even shorter, because you have no control over how wide other IRC user's displays are. However, for your own systems, you might find it useful to alter the COLS_MAX_CONSOLE and COLS_MAX_NO_DISPLAY to suite your taste.
COLS_MAX_CONSOLE will also set the default max width for the help/version output.
However, for help/version, that width is set dynamically to fit into your terminal/console width, as will more of the inxi line widths in the main output (improved line wraps based on dynamic sizing in console/terminal started 2014-03-13, should be done by 2014-04). Note that the max number dictates the maximum columns that will be used in the output.
2014-03-14: Changed variable names to be more sensible.
COLS_MAX_CONSOLE=115 # in display, terminal client max width COLS_MAX_IRC=105 COLS_MAX_NO_DISPLAY=130 # not in display, no X/Wayland running.
NOTE: the following variables are deprecated, but they will keep working if you have already created a conf option for default widths. inxi translates those internally to the new COLS ones.
The maximum width where the line starter (Info:, Graphics:, etc) wraps to its own line and dataline indentation drops to 2. Overrides default. If 80 or less, wrap will never happen. The default is 90.
Legacy (3.2.01 or older): INDENT_MIN
You can change the default inxi indentation of the single line items, but be aware that if it's less than the given 10, the line starter will be on its own line, and the data for that item will have an indent of 2. If you want a bigger indentation you can do that. Not recommended to change it though.
Configuration Values: Data Adjustments
The following values adjust how inxi handles data internally, along with some on/off switches for various inxi features.
Many distribution inxi packages have disabled the -U self-updater option. If you would like to get an up-to-date inxi, open as root or with sudo the file: /etc/inxi.conf then change the false value to true:
and then save the file. When you next run:
sudo inxi -U
inxi will now update itself and the man page. Note that as long as inxi is managed by the distribution package system, your updated inxi and inxi man page will be overwritten in the next update of inxi in your repos.
This lets the CPU 'spin down' as it were to avoid the CPU speed spike that inxi itself running can cause. 0.3 seconds seems to be enough for most systems. The main function here is to see the CPU speed as it would be if inxi were not running.
Change the default maximum number of IP addresses per interface showing for -i. Default is 10.
Partition Sort Order
Change Partition report sort order. Available sort options are:
- dev-base - /dev partition identifier, like /dev/sda1. Note that it's an alphabetic sort, so sda12 is before sda2.
- fs - Partition filesystem. Note that sorts will be somewhat random if all filesystems are the same.
- id - Mount point of partition (default).
- label - Label of partition. If partitions have no labels, sort will be random.
- percent-used - Percentage of partition size used.
- size - KiB size of partition.
- uuid - UUID of the partition.
- used - KiB used of partition.
Change the default count of processes inxi shows for -t/--processes option (default 5).
Disable dig for WAN IP
Disable use of default dig for WAN IP detection, use regular downloaders instead. Not recommended unless that particular system is firewalled or for some other reason dig is failing. Dig is much faster, better in every way, more long term reliable, so never use this unless you have to. Default value is false, so only true makes any sense as an option. Same as --no-dig. Override with --dig.
Skips the use of doas [BSD tool like sudo] to run certain internal features (like hddtemp, file) with sudo. Not related to running inxi itself with doas or super user. Some systems will register errors which will then trigger admin emails in such cases, so if you want to disable regular user use of doas (which requires configuration to setup anyway for these options) just use this option, or NO_DOAS configuration item. Note: only accepts true/false value, false is default.
Remove Host: From System Line
If you don't want to show people your hostname in the -S line, you can set this to false, and it won't show that information. If you want to temporarily override this, use: inxi --host (inxi 2.9 and newer) / inxi -! 32 (inxi 2.3.56 and older)
Disable HTML Downloaders for WAN IP
Disable use of HTML downloaders for WAN IP detection, use only dig instead. Since HTML downloaders are a fallback for failed dig, there is little reason to use this feature, but here it is.
Skips the use of sudo to run certain internal features (like hddtemp, file) with sudo. Not related to running inxi itself with sudo or super user. Some systems will register errors which will then trigger admin emails in such cases, so if you want to disable regular user use of sudo (which requires configuration to setup anyway for these options) just use this option, or NO_SUDO configuration item. Note: only accepts true/false value, false is default.
Sensors Output Adjustments - Expert Only
Match temp1/2 to CPU
For specific cases where you aren't getting consistent sensors output, that usually happens when cpu / fan speed in sensors output aren't labeled clearly, just with say, temp1 and fan1, inxi has to guess which is which, this lets you hard code that data in, so it will always use the right sensors for cpu.
Only use this if the output of sensors shows no specific cpu for fan or temp, and if it does show for example, temp1/temp2, fan1 fan2.
Exclude sensor array IDs
If you do not want the data from one or more of the sensors used, set this to exclude that sensor array ID. Sensor ID must be the value listed on top of each sensor block in lm-sensors 'sensors' tool. Takes a lit of one or more comma separated sesnor IDs. You can override this setting with --sensors-default.
Use sensor array IDs
If you want to exclude data from one or more of the sensors used, set this to exclude those sensor array IDs. Sensor ID must be the value listed on top of each sensor block in lm-sensors 'sensors' tool. Takes a lit of one or more comma separated sesnor IDs. You can override this setting with --sensors-default.
Set to true if you want inxi to use /sys for your USB information. While this is much faster than default lsusb, it's sometimes not very accurate, and tends to be missing various bits of data.
inxi will default to using /sys on Linux kernel systems without lsusb installed as a fallback.
WAN IP URL
Use an alternate source for the WAN IP. Disables dig, and uses a downloader to grab the IP from the URL you give.
The URL must start with http or ftp. The IP address from the URL must be the last item on the last (non-empty) line of the URL's page content source code.
Active as of inxi 3.0.31. Accepts values 0-9. 0 switches inxi to use a legacy and deprecated source which will probably fail, as does 1. Corresponds with --weather-source option so you can test which works best for you before using this configuration option. 4-9 are not currently active but may be in the future.
[inxi 3.0.09 and newer] Change the weather units. Units are (metric::imperial): C::F, m/s,km/h::mph, mb::in, m::ft
Metric (imperial) - default value. Shows: 16 C (61 F); 4.0 m/s (14 km/h, 9 mph); 519.1 m (1703 ft); 1019 mb (30.09 in):
Imperial (metric). Shows: 61 F (16 C); 9 mph (4.0 m/s, 14 km/h); 30.09 in (1019 mb); 1703 ft (519.1 m):
Metric. Shows: 16 C; 4.0 m/s (14 km/h); 1019 mb; 519.1 m:
Imperial. Shows: 61 F; 9 mph; 30.09 in; 1703 ft:
Setting Sudoers Permissions
If you are setting up multiple permissions and want to allow users to be able to use certain tools without being root for full inxi output, try this simple addition to /etc/sudoers:
User_Alias INXI = user1, user2, user3 Cmnd_Alias INXI_CMD = tool1, tool2, tool3 INXI ALL = NOPASSWD: INXI_CMD ## example: User_Alias INXI = fredg,boba Cmnd_Alias INXI_CMD = hddtemp,dmidecode,file INXI ALL = NOPASSWD: INXI_CMD
This may be useful to you if you are trying to get temperatures from SSD or NVME drives.
From a LinuxQuestions.org thread:
Note: I following this thread, I installed hddtemp from SBo and then added two entries to /etc/hddtemp/hddtemp.db (alternate: /etc/hddtemp.db) for my Samsung SSD and NVME Drives:
# # kjh was here # "Samsung SSD 850 PRO" 190 C "Samsung SSD 850 PRO" "SAMSUNG MZHPV512HDGL" 194 C "Samsung SM951 512gb" # # kjh was there #
And that's about it for variables you'd have any reason to change, or that would be potentially useful.