6.1.4
Fixes
- We hope this release addresses the build issues that have been occurring
lately.
Features
- libmacchina has been bumped to v6.3.0 which includes a new feature:
- Implement backlight readout for macOS
6.1.3
- Yanked.
Bump libmacchina to v6.1.0:
-Fixes a bug that causes the package readout to display "0 (cargo)" if
$CARGO_HOME/bin is empty. (Macchina-CLI/libmacchina@22a7df0)
-Fixes a bug that causes the network readout to return an IPv6 address in
some cases. (Macchina-CLI/libmacchina@608a1dd)
v6.0.3
-Bugfix: don't whine about a missing configuration.
v6.0.2
This version mainly includes changes, bugfixes and improvements that come
directly from libmacchina (our backend), these changes include:
- general: Several API/structural changes, including unexposing certain
modules, as well as optimizations to heavily used functions and our own
directory finders.
- general: Your solid state/hard drive will be relieved to know that we no
longer make overabundant calls to our built-in implementation of which[1],
performance has not regressed nor improved.
- general: Explicity mark unimplemented methods, this has no effect on
macchina.
- macOS: Fail fast when retrieving ShellKind::Current.
- Windows: Scoop support for the package readout.
- build: Improved CI which should help us only deploy better, cleaner and
optimal code.
Other changes
- Refactored theme handling.
This release is brought to you the following magnificent contributors:
- [FantasyTeddy](https://github.com/FantasyTeddy)
[1]: which: a common unix tool that traverses your PATH to look for a given
program.
v6.0.1
- Use the correct section numbering for our manpages.
v6.0.0
macchina v6.0, codename "Gallium"
We hope you'll enjoy this release as much as we did preparing it ❤️
If you want to give back to macchina, tell your friends about it :)
BREAKING CHANGES
- `MACCHINA_CONF` has been deprecated. The reason being that it accomplishes
the same thing as `--config`. (#200)
- In themes, the `hide_bar_delimiters` option has been deprecated. We've
renamed it to `hide_delimiters` and moved it to the [bar] section. (#200)
- In themes, the `palette` option has been deprecated. There's now an entire
section dedicated to the palette component named [palette]. (#200)
Bugfixes
- The command-line flag named `--short-uptime` has been renamed to
`--long-uptime`, the option in your configuration remains the same. (#200)
- libmacchina: The desktop environment readout now prefers
`XDG_CURRENT_DESKTOP`, with `DESKTOP_SESSION` as a fallback. (#199)
- A spacing bug that results in uneven space between the left and right side of
the separator in certain situations has been fixed. (#200)
- A spacing bug that results in more space being used than specified when the
separator is invisible has been fixed. (#200)
- Every option in theme files is now entirely optional, you will no longer get
into trouble with cryptic error messages when forgetting to set some options.
(#200)
- macchina should hopefully be able to locate macOS users' themes now. (#200)
Features
- We've added back the option to display your physical or logical core count.
(#200)
- There's two new manpages! One for configuration and another for
customization. (#200)
- macchina now searches through more locations for its themes, like
`/usr/share`. (#200)
- There's now a much nicer error reporting for themes. (#208)
You can now:
- use indexed and hexadecimal colors for any option that accepts a color.
(#193)
- tell macchina what pool of colors to use in the randomization process. (#200)
- specify the kind of border you want the box to use. (#200)
- specify the glyph used by the palette (#200).
Other nice things
- `--list-themes` gets a new look, and it tells which theme is active now as
well.
- Some under-the-hood changes and refactoring work that very slightly improve
performance and make the codebase nicer to navigate.
- macchina and libmacchina's dependencies have been bumped, so we're mostly
up-to-date.
- libmacchina: Gentoo users no longer need `portage-utils` for the package
readout to report their package count.
Big thanks to
- [uttarayan21](https://github.com/uttarayan21) for introducing 10x better
error reporting, and bringing a whole set of new colors to macchina.
- [0323pin](https://github.com/0323pin) for contributing a sexy-looking theme
and testing out this version on NetBSD.
- [FantasyTeddy](https://github.com/FantasyTeddy) for helping us resolve linter
warnings for various platforms.
v5.0.5
-NetBSD: Don't check the output of `session()`, addressing #217.
-Wayland: Sway and Qtile users don't need `wmctrl` to see their window manager
information.
-Unix: Fixed failing "Host" and "Shell" readouts.
v5.0.4
-Fixed a compilation error upon cargo installation.
-Windows' dependencies have been bumped. (libmacchina#93)
-Windows' Local IP readout is a lot more user-friendly now. (libmacchina#94)
v5.0.2
-libmacchina/netbsd: fixed failing brightness readout.
-libmacchina/netbsd: (somehow) fixed failing package count readout.
-themes: the custom_ascii.color field is now optional, omitting it uses the
colors provided in the text file.
-themes: color values (e.g. "Red", "Green", "Blue") are now case-insensitive.
-general: introduce a new readout, "Session" that is appended to your Window
Manager readout output. If the latter fails, so does the former.
v5.0.1
-The default theme's bars should not be visible.
macchina v5.0.0, codename "Zinc"
-Deprecated multiple command-line options: --no-ascii, --custom-ascii,
--palette, --hide-delimiters. (#181)
-Deprecated built-in themes. (#181)
-NetBSD: count packages without the use of pkg_info. (by upgrading to the
latest libmacchina version)
v4.0.1
Bugfix
-Fix --long-shell doing the opposite of its intended behavior.
Other
-We've added a new command-line flag, --ascii-artists to credit the ASCII
artists whose ASCII art we use throughout macchina.
v4.0.0
macchina v4.0, codename "Copper"
-macchina now looks for themes in $XDG_CONFIG_HOME/macchina/themes, the previous
data path is deprecated. (#172)
-Many command-line flags have been deprecated in favor of being moved to/present
in theme files. (#172)
-Themes are now written in TOML rather than JSON. (#172)
macchina v3.0, codename "Nickel"
-You can now customize the text of every readout's key (#165).
see the new Carbon.json, if installing using pkgsrc you can find it inside
${PREFIX}/share/examples/macchina/
-Added initial FreeBSD support libmacchina#77
-Provide an option to shorten kernel output using the --long-kernel flag or
long_kernel configuration option (#168)
-Use if-addrs as our IP crate (#163)
You now have to specify your network interface through the --interface
flag or interface configuration option.
-Bump our dependencies to their latest versions.
Breaking change:
-The palette option, previously taking a boolean value, now accepts the
following:
-Dark: Display darker color variants.
-Light: Display lighter color variants.
-Full: Display all color variants.
v1.1.6
-Update libmacchina dependency to v2.1.4, finally fixing the brightness readout.
v1.1.5
-Update to latest libmacchina, libc, serde_json and dirs versions
-Import libmacchina's backlight method (#102)
-netbsd/terminal: Traverse /proc to which terminal the user is operating in,
ignoring the shell.
-netbsd/resolution: Remove this method for the time being
On my previous commit I wrote the following, "As of version 1.0.0 macchina uses
google-speech to support text-to-speech. I've disabled this feature, please let
me know if you think this should be on."
This was a mistake from my side, the feature was available but, disabled by
default in versions 1.0.0 to 1.1.5.
The relevant code is only compiled into the binary if, and only if, the feature
is enabled at compile time.
This feature and the code have been removed on version 1.1.6
As of version 1.0.0 macchina uses google-speech to support text-to-speech.
I've disabled this feature, please let me know if you think this should be on.
v1.1.4
-Fix NetBSD build.
v1.1.3
-macOS: manually look for config in $HOME/.config/ (#138)
v1.1.2
-readme: Fix Linux benchmark table formatting
v1.1.1
-misc: Remove X11 feature from codebase after having replaced it with a built-in
resolution parser (#135)
-misc: Bump all dependencies' versions
-config: Fallback to original naming for some ReadoutKeys
-readme: Remove saythanks badge
-readme: benchmarks: disclose the environment/processor
-readme: Nix's installation section now mentions all channels
-actions: Bring back netbsd workflow after having removed all X11 code
-libmacchina: Bump from v0.8.1 to v1.0.1
-[*nix only] Implement a new readout, disk_space() which for now returns the
used bytes of the root partition
-Add macOS resolution (#56)
-Address a panic caused by too much output in the resolution readout (#132)
-src/macos/mach_ffi.rs: Remove useless CGError typedef
-src/macos/mod.rs: Search for "brew" rather than "homebrew" before getting
package count
-src/data/mods.rs: Significantly improve shell readout logic
-macchina.toml: Be more specific in small_ascii description
-src/cli.rs: Be more specific in small_ascii description
v1.1.0
Bug fixes:
-Address an issue that causes text to overflow when the terminal
is reduced beyond its original size
-Address an issue that causes terminal information to be incorrect
when in a nested shell situation
Features:
-Added the commit hash to --version
-Added an option to toggle between displaying the current or default shell
Misc:
-Added macOS Monterey to list of macOS versions
-Removed many build dependencies (breaking shell auto-completion)
-Removed many annoying conflict checks in the configuration file
-No longer capitalize shell output
-Bumped most dependencies' versions
-NetBSD: Finally fixed resolution readout failing, due to linkage mistakes.
-NetBSD: Set a fallback, that tries to fetch resolution through the ACPIVGA
driver.
-Merged a PR by @uttarayan21 that adds support for reading the configuration
file by specifying a path to the config file using --config, or using
MACCHINA_CONF environment variable.
-Merged a PR by @uttarayan21 that displays a warning when one or more of the
custom themes is conflicting with a built-in theme.
-Merged a PR by @FantasyTeddy that allows the processor readout to be printed
even if processor count fails to fetch.
0.8.1
=====
-Added the ability to list available and custom themes through --list-themes
flag
-Merged a PR by @uttarayan21 that adds more targets for our CI checks and
releases
0.8.0
=====
-Merged a PR by @uttarayan21 that adds support for configuring macchina
through a dotfile.
-The same PR also adds support for using custom themes that allow you
to customize macchina the way you like instead of using the built-in themes
we provide.
New features:
Macchina's custom ASCII art implementation is now much smarter than before,
thanks to the amazing work of @uttarayan21, and his brilliant parser
ansi-to-tui, go on, give it a star!
How smart is it? Well, it can now parse ANSI characters to determine how to
color the specified ascii.
Want to give it a go? You'll find a directory named "ascii" in the source code,
that contains some ascii files generated by jp2a which you can show alongside
your beautiful system information. You can use your own too, of course!
You'll also notice there's a new "contrib" directory too, which has a neat bash
script that can download a video from any site that is supported by youtube-dl,
and display it alongside your machine information, this is another one of
@uttarayan21's contributions :)
Bug fixes:
-Fixed a build error occurring on macOS.
- CPU Usage is allowed to exceed a 100% when bars are disabled, and appears
capped at 100% when they are enabled.
- Merged a PR by @CuriouslyCurious that adds the ability to use custom ASCII
art: --custom-ascii lets you import your own ASCII art, overriding the
default one. --custom-ascii-color lets you change your custom ASCII art color.
- libmacchina: (Android) Performance improvements.
- libmacchina: (Distribution Readout) try to fetch VERSION before attempting
to fetch VERSION_ID.
- libmacchina: (NetBSD) Performance improvements thanks to a super fast
custom terminal fetching implementation.
- libmacchina: (macOS) Fixed an issue where the program might panic if the
battery doesn't get detected.
- libmacchina: A check has been added to ensure that in case of a failure
during the terminal fetching process,
- libmacchina: Is now able to properly fetch snaps and dpkg packages.
- libmacchina: Added more checks to ensure package managers don't return '0'.
the program should not return any unexpected value: terminal_name() will
only continue if it receives a PID that is not -1.
- Changes to the README as well as an update to the benchmarks.
Release v0.7.0, Codename "Cobalt".
Okay, before I tell you all about the new features and bug fixes, I'd like to
thank everybody that is actively using Macchina, and especially our
contributors.
I'm very grateful that people find Macchina as interesting as I do. Our
codebase has grown from a small, glued-together set of instructions, to two
independent packages, providing users and developers the opportunity to inspect
the code and actually enjoy doing so :)
Let's take a look at the new changes:
-ASCII art now adapts to how many readouts are displayed, as suggested by
@Ramiferous.
-Updated Linux big ASCII art variant.
-The title of "Emoji" theme, now named "Boron", can now be changed, and its
separator has been modified too.
-Removed jemallocator from the dependency list, this is due to build errors
primarily with libc, we started using this a while back, because its
performance improvements were promising, but I have just come to the conclusion
that the headaches it causes aren't worth it for the most part.
-A "Beryllium" theme has appeared!
-Themes now print their own name in the box title.
-Benchmarking with hyperfine has finally been fixed.
-Update Linux and NetBSD benchmarks.
-libmacchina: Optimizations for Linux, Android and OpenWrt by implementing an
interface for sysinfo struct and using that when possible.
-libmacchina (Linux): Optimize terminal fetching by utilizing a custom
implementation instead of calling ps.
-libmacchina (Linux): Distribution should now return NAME and VERSION whenever
possible, previously it was NAME and VERSION_ID.
@123marvin123:
-Fixed an issue where the palette doesn't respect the user-provided padding
value.
@uttarayan21:
-Added command autocompletion for bash and fish.
-libmacchina: Refactored many functions, fixing a lot of clippy's warnings.
-libmacchina: Added Android support.
-Fixed a bug that caused bars to seem 100% full when using --no-color
-Slight modifications to the wording used in the help text
-No longer generate a random number when picking which ASCII art to display
-Reorder the readouts
-libmacchina can now fetch CPU usage, and Macchina can now display it
-Fixed a bug where LocalIP will be marked as failed when username or hostname
fails to fetch
-Updated some of the example images in README files
v0.6.2
-Fix a bug where --hide behaves the same as --show-only
v0.6.1
-Move macchina-read to its own repository, named libmacchina
-Add a TUI, and provide all the customizations options one might need
-Add ASCII art
-Fix several bugs
-Use jemalloc for improved performance
-Add --doctor, a more verbose and helpful debugger
-Added local IP address entry
-More miscellaneous improvements and changes
v0.6.0
-Rework the theming system
-Rework the long theme
-Declutter Elements and display.rs
-Remove objc runtime and use sysctl to get os version to improve performance on
macOS
-Add documentation for theme.rs
-Add macOS and NetBSD benchmarks to README
-Add more Windows metrics and fix its compilations errors
-Add support for APK (Alpine Linux) package manager
-Fix an issue where a bar's unused glyphs (when using --no-color flag) are not
hidden for some terminals, e.g. Kitty.
-Remove "To be filled by O.E.M." from machine information on certain computers
-ripgrep should no longer print any error messages to the terminal on NetBSD
-Use type-safe command line parsing with StructOpt and Clap
-Move dependencies section of README files to the bottom
-Other miscellaneous changes and improvements
-Added macOS support
-Execution time on macOS is ~3ms!
-Major overhaul and structural changes to the majority of the codebase,
enhancing the execution time significantly across all platforms, and allowing
for easier OS support in the future.
-Added extensive and comprehensive documentation.
-Added GitHub Actions.
-Made distribution fetching more robust
-Fix a bug that results in the program crashing when theme is set to def
.Remove def
-Fix package count incorrect value for Gentoo systems
-Macchina now reads battery information from /sys/class/power_supply/BAT1
if /sys/class/power_supply/BAT0 doesn't exist
-Add --show-only argument to help text
-Previously, extra::which looked through hardcoded paths to confirm the
existence of a program, now it searches through all directories in your PATH.
-Fixed a bug that resulted in package count failing to fetch and printing an
error message on Gentoo.
Tweaks and changes:
-Small under the hood tweaks
-Update documentation
-Changes to default and alt theme
-Capitalize first letter of shell (shorthand:ON)
Basic system information fetcher, with a focus on performance and minimalism.
Macchina lets you view basic system information, like your hostname, kernel
version, uptime, memory usage, and much more.
No one wants a slow fetcher, and Macchina's selling point is providing you with
convenient features while keeping performance a priority and minimalism a goal.
Macchina has native full support for NetBSD. Thanks grtcdr!