Coder Social home page Coder Social logo

thegreatyellow67 / macchina Goto Github PK

View Code? Open in Web Editor NEW

This project forked from macchina-cli/macchina

0.0 0.0 0.0 6.56 MB

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

Home Page: https://crates.io/crates/macchina

License: MIT License

Rust 97.10% Shell 2.90%

macchina's Introduction

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)

macchina's People

Contributors

grtcdr avatar 123marvin123 avatar uttarayan21 avatar fantasyteddy avatar codelongandprosper90 avatar varlad avatar curiouslycurious avatar laurentlbm avatar 414owen avatar rashil2000 avatar liushuyu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.