Thanks to visit codestin.com
Credit goes to github.com

Skip to content

️πŸ–₯️ System + "ma" (latin for "from") - getting info from system

License

alvaro17f/systema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Systema

Systema - System + "ma" (latin for "from") - getting info from system

Overview

Systema is a fast, lightweight system information tool written in Odin that provides detailed insights about your system's hardware and software configuration. It displays system information in a clean, colorful format with ASCII art logos.

Features

  • Fast & Lightweight: Written in Odin for optimal performance
  • Colorful Output: Rich terminal colors with customizable themes
  • ASCII Art: System-specific logos and branding
  • Comprehensive Info: CPU, memory, storage, kernel, desktop environment
  • Customizable: Configurable output and display options

Installation

Prerequisites

Quick Install

# Clone the repository
git clone https://github.com/alvaro17f/systema.git
cd systema

# Build and run
./taskfile build

# Move the generated binary to somewhere in your PATH

Nixos Flakes Installation

Add this in your nixos configuration:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    systema.url = "github:matheus-git/systemd-manager-tui";
  };

  outputs = { self, nixpkgs, systema, ... }: {
    nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
      modules = [
        {
          environment.systemPackages = [
            systema.packages.${pkgs.system}.default
          ];
        }
      ];
    };
  };
}

Usage

Basic Usage

# Run systema
./taskfile run

# Build optimized release
./taskfile build

# Run with debug info
./taskfile debug

# Run with debug info and address sanitizer
./taskfile debug:sanitize

Command Line Options

# Run systema directly
systema

# With custom options
systema help

*************************************************************
 SYSTEMA - Fetch system information with style
*************************************************************
-d:           Disable logo
-l <path>:    Set the logo path
-c <color>:   Set the logo color by ansi number [default: 36]
-g <gap>:     Set the gap between logo and info [default:  3]
-o <offset>:  Set the info offset vertically    [default:  0]
-h, help:     Display this help message
-v, version:  Display the current version

ANSI Color Table

In Systema, we use ANSI color codes to add color to the output. Here's a table of common ANSI color codes:

ansi_color_table

You can change the color of the logo with the -c option in the command line.

systema -c 36 # blue logo

Development

Project Structure

.
β”œβ”€β”€ app/                    # Application initialization
β”œβ”€β”€ assets/                 # ASCII art and assets
β”œβ”€β”€ colors/                 # Color definitions and themes
β”œβ”€β”€ models/                 # Data structures and configuration
β”œβ”€β”€ modules/                # System information modules
β”‚   β”œβ”€β”€ colors.odin        # Color system utilities
β”‚   β”œβ”€β”€ cpu.odin           # CPU information and usage
β”‚   β”œβ”€β”€ desktop.odin       # Desktop environment detection
β”‚   β”œβ”€β”€ hostname.odin      # Hostname utilities
β”‚   β”œβ”€β”€ kernel.odin        # Kernel version info
β”‚   β”œβ”€β”€ memory.odin        # Memory usage statistics
β”‚   β”œβ”€β”€ shell.odin         # Shell detection
β”‚   β”œβ”€β”€ storage.odin       # Storage information
β”‚   β”œβ”€β”€ system.odin        # System information
β”‚   β”œβ”€β”€ uptime.odin        # System uptime tracking
β”‚   └── username.odin      # User information
β”œβ”€β”€ utils/                  # Utility functions
β”‚   β”œβ”€β”€ flags.odin         # Command line argument parsing
β”‚   β”œβ”€β”€ get_logo.odin      # ASCII logo retrieval
β”‚   └── print_info.odin    # Information display utilities
β”œβ”€β”€ vhs/                    # Terminal recordings and demos
β”œβ”€β”€ main.odin              # Main application entry point
β”œβ”€β”€ taskfile              # Build and development scripts
β”œβ”€β”€ flake.nix             # Nix development environment
└── VERSION               # Version tracking

Development Commands

The taskfile script provides convenient development commands:

# Development
./taskfile run          # Run the application
./taskfile debug        # Run with debug symbols
./taskfile debug:sanitize  # Run with address sanitizer

# Building
./taskfile build        # Build optimized release
./taskfile clean        # Clean build artifacts

# Utilities
./taskfile help         # Show all available commands

Building from Source

# Standard build
./taskfile build

# Manual build with Odin
odin build . -out:systema -o:speed

# Debug build with Odin
odin build . -debug -out:systema

Configuration

Systema uses a simple configuration system located in models/config.odin. Currently supports:

  • Color theme selection
  • ASCII art display options
  • Information display preferences

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Test your changes: ./taskfile run
  5. Commit your changes: git commit -am 'feat: add something' (conventional commits)
  6. Push to the branch: git push origin feature-name
  7. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • microfetch - Inspiration for system information display
  • odin-color - Color utilities
  • vhs - Terminal recordings
  • odin - The Odin programming language

Version

Current version: See VERSION file

About

️πŸ–₯️ System + "ma" (latin for "from") - getting info from system

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published