LinuxCommandLibrary

macchina

Display system information

TLDR

List out system information, with either default settings or those specified in your configuration file

$ macchina
copy

Specify a custom configuration file path
$ macchina --config [path/to/configuration_file]
copy

List system information, but lengthen uptime, shell and kernel output
$ macchina --long-uptime --long-shell --long-kernel
copy

Check for any errors/system failures encountered when trying to fetch system information
$ macchina --doctor
copy

List original artists of all the ASCII art
$ macchina --ascii-artists
copy

SYNOPSIS

macchina [OPTIONS]

PARAMETERS

--config
    Specify a custom configuration file path.

--theme
    Apply a predefined or custom theme by name.

--output
    Set the output format (e.g., 'plain', 'json', 'csv').

--metrics
    Selectively display specific system metrics, comma-separated.

--no-color
    Disable all colored output.

--no-ascii
    Suppress the display of ASCII art.

--short-ascii
    Use a compact version of the ASCII art.

--long-ascii
    Use a larger, more detailed ASCII art.

--stats-only
    Display only system statistics, without ASCII art.

--header
    Define a custom header text to be shown above the output.

--export-config
    Print the default configuration to standard output.

--export-theme
    Print the default theme configuration to standard output.

--list-themes
    List all available themes built into macchina.

--list-metrics
    List all detectable system metrics by macchina.

--clean
    Remove cached data and log files.

--version
    Display the current version of macchina.

--help
    Show the help message and exit.

DESCRIPTION

macchina is a modern, fast, and highly customizable system information fetching tool written in Rust. Designed as a lightweight alternative to traditional shell-script based fetchers like neofetch or screenfetch, it aims to provide comprehensive system details with minimal resource usage. It can display a wide array of information including the operating system, kernel version, uptime, package count, shell, CPU, GPU, memory usage, disk space, and more. A key feature of macchina is its extensive configurability, allowing users to define exactly what information is displayed, how it's formatted, and which ASCII art or theme is used via a simple TOML configuration file. It also supports various output formats like plain text, JSON, and CSV, making it versatile for both interactive use and integration into scripts or automated tasks.

CAVEATS

Dependency on system tools: While macchina itself is written in Rust, it often relies on underlying system commands and files (like /proc, lscpu, lsusb, ip) to gather information. If these are missing or permissions are restricted, some metrics might not be available or accurate.
Configuration Complexity: Extensive customization, while powerful, can initially be overwhelming for new users due to the many options available in its TOML configuration file.

CONFIGURATION FILES

macchina's behavior is primarily controlled by a TOML configuration file, typically located at ~/.config/macchina/macchina.toml. This file allows users to specify which metrics to display, their order, formatting, colors, and much more, offering unparalleled customization.

THEMES

Beyond basic configuration, macchina supports themes, which are separate TOML files (e.g., ~/.config/macchina/themes/*.toml) that define the visual styling, including ASCII art and color schemes. Users can create, share, and apply different themes to personalize their output.

HISTORY

macchina emerged as a modern alternative to existing system information fetchers, leveraging the performance and memory safety benefits of the Rust programming language. Its development began with a focus on speed, minimal resource usage, and deep customizability. It quickly gained popularity in the Linux community for its elegant output and modular design, allowing users to precisely control displayed metrics and visual appearance. While neofetch and screenfetch set the precedent for such tools, macchina pushed the boundaries by offering native compilation and a more structured configuration system, appealing to users looking for a more performant and maintainable solution.

SEE ALSO

Copied to clipboard