Skip to content

A system information frontend, with an (unhealthy) emphasis on performance.

License

Notifications You must be signed in to change notification settings

thegreatyellow67/macchina

 
 

Repository files navigation

Macchina

Fast, minimal and customizable system information frontend.

Linux • macOS • Windows • NetBSD • FreeBSD • OpenWrt • Android

Preview Version Downloads

Table of Contents


About

macchina lets you view system information, like your kernel version, uptime, memory usage, processor load and much more.

If you're interested in the library macchina uses to fetch system information, have a look at libmacchina; fetching-related issues should be filed on that repository.


✨ What's new in v5.0

Command-line flags

The following flags have been deprecated and can only be specified in your theme:

  • --no-ascii
  • --custom-ascii
  • --palette
  • --hide-delimiters

Note that the values they accept hasn't changed.

Why?

  • They do not define the behavior of macchina, rather the look of it. So we moved them to their new home.

Where can I see an updated list of the current command-line flags?

In our wiki, follow this link.

Themes

As previously mentioned, themes have gotten two new additions. Also, the color option has been renamed to key_color to avoid ambiguity. Have a look at at the provided example theme.


Performance

macchina is lightning fast, see for yourself:

Execution time is measured using hyperfine

Linux

This benchmark was performed using an Intel® Core™ i5-3350P CPU @ 3.10GHz

Command Mean [ms] Min [ms] Max [ms]
macchina 4.8 ± 0.4 4.5 8.1

macOS

Command Mean [ms] Min [ms] Max [ms]
macchina 5.0 ± 0.2 4.7 5.9

NetBSD

This benchmark was performed inside a virtual machine using an Intel® Core™ i5-8265U CPU @ 1.60GHz

Command Mean [ms] Min [ms] Max [ms]
macchina 17.7 ± 1.6 16.8 27.2

Windows

Command Mean [ms] Min [ms] Max [ms]
macchina 9.0 ± 0.4 8.2 11.7

Features

Themes

macchina has a theming system which you can use to customize pretty much any visual aspect of the program. Themes live outside the configuration file, so you can create a bunch of them and switch between them at any time.

Learn how to make your own; themes are documented in case something isn't clear.

Doctor

libmacchina can sometimes fail to fetch certain readouts, and macchina has a feature in place that describes why they failed. You don't have to guess what went wrong, --doctor has your back!


Configuration

The configuration file define the behavior of macchina, it does not allow for much customization. See macchina.toml for an example configuration file.

In order for macchina to be able to read the configuration file, you need to place macchina.toml in:

  • $XDG_CONFIG_HOME/macchina on Linux and the BSDs.
  • $HOME/Library/Application Support/macchina on macOS.
  • {FOLDERID_RoamingAppData}/macchina on Windows.

Customization

Themes define the look, layout and styling of macchina. See Hydrogen.toml for an example theme.

In order for macchina to be able to find your themes, you need to place them in:

  • $XDG_CONFIG_HOME/macchina/themes on Linux and the BSDs.
  • $HOME/Library/Application Support/macchina/themes on macOS.
  • {FOLDERID_RoamingAppData}/macchina/themes on Windows.

To start using your theme:

  1. Run macchina --list-themes to verify that macchina has listed your theme.
  2. Add that same name you see in your terminal to the theme option in macchina.toml
  3. You're good to go! macchina will start using your theme.

Dependencies

Build dependencies

The following are required dependencies if you're building from source or installing through cargo:

  • libgit2

Runtime dependencies

The following are optional dependencies, they only extend what macchina can fetch:

Linux:

  • wmctrl
    • Gentoo: portage-utils

NetBSD:

  • wmctrl

Installation

Cargo

cargo install macchina

Pkgsrc

pkgin install macchina

Homebrew

brew install macchina

Termux

pkg install macchina

Windows

scoop install macchina

Arch Linux

  • Use the AUR package that pulls and installs the latest release:
git clone https://aur.archlinux.org/macchina.git
cd macchina
makepkg -si
  • Or use the AUR package that pulls and builds from upstream:
git clone https://aur.archlinux.org/macchina-git.git
cd macchina
makepkg -si

Nix

  • Where <channel> is nixpkgs or nixos:
nix-env -iA <channel>.macchina

The installation wiki page lists some other ways you can install the program or the steps to compile from source.

You might prefer running the prebuilt binary that corresponds with your operating system.


Contributors

Crates.io

macchina, like many other open-source projects, would not be where it is right now without the help of its contributors, thank you all so much!

  • Support for NetBSD would not have been possible without the help and testing of NetBSD/pkgsrc package maintainer pin
  • Support for macOS and Windows would not have been possible without the help, testing and major contributions of 123marvin123
  • Support for OpenWrt and Android was made possible through the many contributions of uttarayan21

ASCII Art

Some of the ASCII art displayed in macchina is not our own.

If you (the artist) are not okay with us using your ASCII art, please contact me.

  • FreeBSD ASCII art (small variant) was taken from Dylan Araps' pfetch
  • macOS ASCII art (big variant) was taken from Dylan Araps' Neofetch
  • macOS ASCII art (small variant) was made by Joan Stark (jgs)
  • Linux ASCII art (big variant) was made by Joan Stark (jgs)
  • Linux ASCII art (small variant) was taken from Christopher Johnson's ASCII art collection (unknown artist)

About

A system information frontend, with an (unhealthy) emphasis on performance.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 97.1%
  • Shell 2.9%