Skip to content
/ Cake Public

A package for Ubuntu with many ASCII art samples and a customizable system info chart.

License

Notifications You must be signed in to change notification settings

SYOP200/Cake

Cake - Professional Terminal System Info Display

       ___     _        
      / __\__ | | _____ 
     / /  / _` | |/ / _ \
    / /__| (_| |   <  __/
    \____/\__,_|_|\_\___|

A beautiful, customizable terminal display with RGB colors and modular components

Version Python License

Features

Professional Display

  • Beautiful ASCII art displays
  • RGB gradient and solid color support
  • Multiple layout options (side-by-side, stacked, grid)

🎨 Fully Customizable

  • Interactive configuration interface (cake -c)
  • Create custom ASCII art in the terminal
  • Modular display system with resizable boxes
  • Custom text displays

📊 Rich System Information

  • OS, Kernel, Hostname
  • CPU, Memory, Disk usage
  • Desktop Environment
  • Uptime, Shell, and more

🔧 Extensible Architecture

  • Add custom display modules
  • Weather display support (API ready)
  • Import/export configurations
  • Command-line configuration options

Installation

Quick Install (Recommended)

# Install dependencies
sudo apt update
sudo apt install python3 python3-pip python3-psutil

# Clone or download the project
mkdir ~/cake-project && cd ~/cake-project

# Install using pip
pip3 install --user -e .

# Run Cake
cake

Build Debian Package

# Install build tools
sudo apt install debhelper dh-python python3-all python3-setuptools devscripts build-essential

# Build the package
dpkg-buildpackage -us -uc -b

# Install
sudo dpkg -i ../cake-sysinfo_2.0.0-1_all.deb

Usage

Basic Commands

# Display system information
cake

# Open interactive configuration
cake -c

# List available displays and ASCII art
cake -l

# Enable/disable displays
cake --enable weather
cake --disable custom_text

# Set ASCII art
cake --set-art ubuntu

# Set layout
cake --set-layout grid

Help Menu

cake -h

Output:

usage: cake [-h] [-c] [-l] [--enable DISPLAY] [--disable DISPLAY]
            [--set-art NAME] [--set-layout {side_by_side,stacked,grid}]
            [--export-config FILE] [--import-config FILE]

Cake - Professional customizable terminal system info display

optional arguments:
  -h, --help            show this help message and exit
  -c, --config          Open interactive configuration interface
  -l, --list            List available displays and ASCII art
  --enable DISPLAY      Enable a display module
  --disable DISPLAY     Disable a display module
  --set-art NAME        Set ASCII art (use -l to list available)
  --set-layout {side_by_side,stacked,grid}
                        Set display layout
  --export-config FILE  Export configuration to file
  --import-config FILE  Import configuration from file

Examples:
  cake              Display system information
  cake -c           Open configuration interface
  cake -l           List available displays
  cake --enable weather    Enable weather display
  cake --disable weather   Disable weather display

Configuration Interface

Access the interactive configuration menu with cake -c:

Main Menu Options

  1. Manage ASCII Art

    • Select from available ASCII art
    • Create new ASCII art (in-terminal editor)
    • Edit existing ASCII art
    • Preview with current colors
    • Delete custom ASCII art
  2. Configure Colors

    • Set RGB gradient colors
    • Set solid RGB colors
    • Use color presets
    • Live preview
  3. Configure Displays

    • Enable/disable display modules
    • Configure system info fields
    • Set custom text content
    • Configure weather location
  4. Layout Settings

    • Side by Side (ASCII + Display)
    • Stacked (ASCII on top)
    • Grid (2 columns)
  5. Import/Export Config

    • Export configuration to JSON
    • Import configuration from JSON
    • Share configs with others
  6. Reset to Defaults

    • Restore original settings

Creating Custom ASCII Art

Method 1: Interactive (Recommended)

cake -c
# Select: 1. Manage ASCII Art
# Select: 2. Create New ASCII Art
# Enter name and paste your ASCII art
# Type 'END' on a new line when done

Method 2: Manual File Creation

Create a .txt file in ~/.config/cake/ascii_art/:

nano ~/.config/cake/ascii_art/myart.txt

Paste your ASCII art, save, then:

cake --set-art myart

Custom Displays

System Info Display

Configure which fields to show:

cake -c
# Select: 3. Configure Displays
# Select: 2. Configure System Info Fields

Available fields:

  • user - Current username
  • hostname - System hostname
  • os - Operating system
  • kernel - Kernel version
  • uptime - System uptime
  • shell - Current shell
  • de - Desktop environment
  • cpu - CPU model
  • memory - Memory usage
  • disk - Disk usage

Custom Text Display

Add custom text/messages:

cake -c
# Select: 3. Configure Displays
# Select: 3. Configure Custom Text
# Enter your text (multi-line supported)
# Type 'END' when done

Weather Display (API Ready)

The weather display is ready for API integration:

cake --enable weather
cake -c
# Select: 3. Configure Displays
# Select: 4. Configure Weather
# Set your location

To implement weather API:

  1. Get API key from OpenWeatherMap
  2. Edit cake_display.py
  3. Add API call in create_weather_display() function

Color Schemes

Gradient Presets

# Red to Blue
cake -c -> 2. Configure Colors -> 3

# Gold to Purple
cake -c -> 2. Configure Colors -> 4

# Green to Cyan
cake -c -> 2. Configure Colors -> 5

Custom Gradient

cake -c
# Select: 2. Configure Colors
# Select: 1. Set Gradient Colors
# Enter RGB values for start and end colors

Custom Solid Color

cake -c
# Select: 2. Configure Colors
# Select: 2. Set Solid Color
# Enter RGB values

Configuration File

Configuration is stored at: ~/.config/cake/config.json

Example:

{
  "version": "2.0.0",
  "ascii_art": "default",
  "color_scheme": "gradient",
  "start_color": [255, 100, 150],
  "end_color": [100, 150, 255],
  "layout": "side_by_side",
  "displays": {
    "system_info": {
      "enabled": true,
      "position": {"row": 0, "col": 1},
      "width": 40,
      "fields": ["user", "hostname", "os", "kernel", "uptime", "shell", "cpu", "memory", "disk"]
    },
    "weather": {
      "enabled": false,
      "position": {"row": 1, "col": 0},
      "width": 40,
      "location": "auto"
    },
    "custom_text": {
      "enabled": false,
      "position": {"row": 1, "col": 1},
      "width": 40,
      "content": "Welcome to Cake!"
    }
  }
}

Project Structure

cake-project/
├── cake.py              # Main entry point
├── cake_display.py      # Display engine
├── cake_config.py       # Interactive config interface
├── setup.py             # Package setup
├── README.md            # Documentation
├── LICENSE              # MIT License
└── debian/              # Debian packaging
    ├── control
    ├── changelog
    ├── compat
    ├── rules
    └── copyright

Add to Shell Startup

To run Cake automatically when opening a terminal:

Bash:

echo "cake" >> ~/.bashrc

Zsh:

echo "cake" >> ~/.zshrc

Fish:

echo "cake" >> ~/.config/fish/config.fish

Extending Cake

Adding New Display Modules

  1. Edit cake_display.py
  2. Create a new create_*_display() function
  3. Add to config in cake.py
  4. Update display logic in display_cake()

Example:

def create_network_display(config):
    """Create network info display"""
    box = DisplayBox(width=40, title="Network", color_func=color_func)
    
    # Add your network info here
    box.add_line("IP", get_local_ip())
    box.add_line("Gateway", get_gateway())
    
    return box.render()

Troubleshooting

Command not found

# Add to PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Missing psutil

pip3 install --user psutil
# or
sudo apt install python3-psutil

Permission issues

# For pip install
pip3 install --user -e .

# For system install
sudo pip3 install -e .

Reset configuration

rm -rf ~/.config/cake
cake  # Will recreate defaults

Uninstall

Pip installation

pip3 uninstall cake-sysinfo
rm -rf ~/.config/cake

Debian package

sudo apt remove cake-sysinfo
rm -rf ~/.config/cake

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues.

Development Setup

git clone https://github.com/yourusername/cake
cd cake
pip3 install --user -e .

License

MIT License - see LICENSE file for details

Credits

Created with ❤️ for the Linux community

Changelog

Version 2.0.0

  • Interactive configuration interface
  • Custom ASCII art editor
  • Modular display system
  • Multiple layout options
  • RGB gradient support
  • Weather display framework
  • Import/export configurations

Version 1.0.0

  • Initial release
  • Basic system info display
  • ASCII art support
  • Color customization

About

A package for Ubuntu with many ASCII art samples and a customizable system info chart.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published