inxi :: script configuration

Page Updated: 2022-06-07
inxi version: 3.3.17

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.

top

Configuration Files

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:

/etc/inxi.conf

or specific user, including root, configuration files, located at the following possible locations (order listed is order of precedence):

  1. If you have a path set in $XDG_CONFIG_HOME, then this is where your user config file should go:
    $XDG_CONFIG_HOME/inxi.conf
  2. 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:
    $HOME/.config/inxi.conf
  3. The previous default was
    $HOME/.inxi/inxi.conf
    inxi 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:

/home/fred/.config/inxi.conf

If you wanted the root user to have some different defaults, you'd create/edit this file/directory:

/root/.config/inxi.conf

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.

top

Configuration Values: Output Formatting

The following are options to change the output formatting, line lengths, colors, default filter values, and indentations.

top

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

Example:

IRC_COLOR_SCHEME=27
IRC_CONS_COLOR_SCHEME=31
IRC_X_TERM_COLOR_SCHEME=12
CONSOLE_COLOR_SCHEME=19
VIRT_TERM_COLOR_SCHEME=21

top

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 '~'

SEP2_CONSOLE=:
SEP2_IRC=

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.

top

<Filter> String

This value is what is displayed when either the IRC filter or the -z triggered filter hides some of the user data.

FILTER_STRING=<filter>

top

Line Lengths

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.

Note that the max number dictates the maximum columns that will be used in the output. You can test these with the -y / --width option.

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.

Deprecated:

LINE_MAX_CONSOLE=115
LINE_MAX_IRC=105

The maximum width where the line starter (Info:, Graphics:, etc) wraps to its own line and data line indentation drops to 2 (or number set with INDENTS/--indents). Overrides default. If 80 or less, wrap will never happen. The default is 110 (90 prior to 3.3.10). Test with --wrap-max (or --max-wrap)

WRAP_MAX=85
# or
MAX_WRAP=95

Note that you can use WRAP_MAX/--wrap-max or MAX_WRAP/--max-wrap for this because different people think of this feature in different ways.

Legacy (3.2.01 or older): INDENT_MIN

top

Output Indentation

You can change the default inxi wide (non-wrapped) indentation of the single line items, but be aware that if it's less 11, 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. Test with --indent [number]

INDENT=12

To change -y 1 and second level indentation widths, use INDENTS. Test with --indents [number]

INDENTS=1

top

Output Height

Set inxi output line heights. Note that for -1 to xxx execution of inxi halts between blocks of output, which is not really desirable. Test with -Y [number] first! -1-xxx require [enter] key press to continue. Not recommended!! Possible values:

LINES_MAX=0

Override this configuraiton item with -Y -3.

Avoid using this feature in general unless the machine is a headless system and you want the output to be always controlled. Generally piping to less is preferred if you are working in console with no frame buffer scrollback option, otherwise use native console if not fbuffer.

In general, in console, the following are preferred:

  1. If non frame buffer console, or if frame buffer supports scroll back:
    inxi -v8 + shift pgup/pgdown
  2. If kernel has disabled framebuffer scrollback (inxi -Y -2 + less -R preserves piped colors):
    inxi -v8 -Y-2 | less -R
  3. Use inxi's internal height output controls:
    inxi -v8Y # full screen
    inxi -V8Y-1 # one primary block at a time
  4. top

    Configuration Values: Data Adjustments

    The following values adjust how inxi handles data internally, along with some on/off switches for various inxi features.

    Allow Update

    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:

    B_ALLOW_UPDATE=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.

    top

    CPU Spindown

    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.

    CPU_SLEEP=0.3

    top

    Limit IPs

    Change the default maximum number of IP addresses per interface showing for -i. Default is 10.

    LIMIT=20

    top

    Partition Sort Order

    Change Partition report sort order. Available sort options are:

    PARTITION_SORT=percent-used

    top

    Process Count

    Change the default count of processes inxi shows for -t/--processes option (default 5).

    PS_COUNT=6

    top

    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.

    NO_DIG=true

    top

    No Doas

    Skips the use of doas [clean easy to configure 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.

    NO_DOAS=true

    top

    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)

    SHOW_HOST=false

    top

    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.

    NO_HTML_WAN=true

    top

    No Sudo

    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.

    NO_SUDO=true

    top

    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.

    SENSORS_CPU_NO=1

    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.

    SENSORS_EXCLUDE=k10temp-pci-00c3

    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.

    SENSORS_USE=k10temp-pci-00c3

    top

    USB /sys

    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.

    USB_SYS=true

    top

    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.

    WAN_IP_URL=https://mysite.com/ip_tool.php

    top

    Weather Source

    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.

    WEATHER_SOURCE=2

    top

    Weather Units

    [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

    top

    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
    

    top

    hddtemp configurations

    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
    #
    

    top

    Developer Configs

    These are only for developers, to let you tweak your settings to fit your system:

    Fake Data Directory

    Use full, not relative, path. Do not end in a /. Directory should exist, of course. Default is: $HOME/bin/scripts/inxi/data

    This is where raw data used together with --fake [data type] flags go.

    FAKE_DATA_DIR=/my/system/path/to/inxi/fake/data

    top

    Have Fun!

    And that's about it for variables you'd have any reason to change, or that would be potentially useful.