macchina
Display system information
TLDR
List out system information, with either default settings or those specified in your configuration file
Specify a custom configuration file path
List system information, but lengthen uptime, shell and kernel output
Check for any errors/system failures encountered when trying to fetch system information
List original artists of all the ASCII art
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
neofetch(1), screenfetch(1), htop(1), uname(1), lsb_release(1)