___ _
/ __\__ | | _____
/ / / _` | |/ / _ \
/ /__| (_| | < __/
\____/\__,_|_|\_\___|
A beautiful, customizable terminal display with RGB colors and modular components
✨ 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
# 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# 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# 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 gridcake -hOutput:
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
Access the interactive configuration menu with cake -c:
-
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
-
Configure Colors
- Set RGB gradient colors
- Set solid RGB colors
- Use color presets
- Live preview
-
Configure Displays
- Enable/disable display modules
- Configure system info fields
- Set custom text content
- Configure weather location
-
Layout Settings
- Side by Side (ASCII + Display)
- Stacked (ASCII on top)
- Grid (2 columns)
-
Import/Export Config
- Export configuration to JSON
- Import configuration from JSON
- Share configs with others
-
Reset to Defaults
- Restore original settings
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 doneCreate a .txt file in ~/.config/cake/ascii_art/:
nano ~/.config/cake/ascii_art/myart.txtPaste your ASCII art, save, then:
cake --set-art myartConfigure which fields to show:
cake -c
# Select: 3. Configure Displays
# Select: 2. Configure System Info FieldsAvailable fields:
user- Current usernamehostname- System hostnameos- Operating systemkernel- Kernel versionuptime- System uptimeshell- Current shellde- Desktop environmentcpu- CPU modelmemory- Memory usagedisk- Disk usage
Add custom text/messages:
cake -c
# Select: 3. Configure Displays
# Select: 3. Configure Custom Text
# Enter your text (multi-line supported)
# Type 'END' when doneThe weather display is ready for API integration:
cake --enable weather
cake -c
# Select: 3. Configure Displays
# Select: 4. Configure Weather
# Set your locationTo implement weather API:
- Get API key from OpenWeatherMap
- Edit
cake_display.py - Add API call in
create_weather_display()function
# 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 -> 5cake -c
# Select: 2. Configure Colors
# Select: 1. Set Gradient Colors
# Enter RGB values for start and end colorscake -c
# Select: 2. Configure Colors
# Select: 2. Set Solid Color
# Enter RGB valuesConfiguration 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!"
}
}
}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
To run Cake automatically when opening a terminal:
Bash:
echo "cake" >> ~/.bashrcZsh:
echo "cake" >> ~/.zshrcFish:
echo "cake" >> ~/.config/fish/config.fish- Edit
cake_display.py - Create a new
create_*_display()function - Add to config in
cake.py - 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()# Add to PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcpip3 install --user psutil
# or
sudo apt install python3-psutil# For pip install
pip3 install --user -e .
# For system install
sudo pip3 install -e .rm -rf ~/.config/cake
cake # Will recreate defaultspip3 uninstall cake-sysinfo
rm -rf ~/.config/cakesudo apt remove cake-sysinfo
rm -rf ~/.config/cakeContributions are welcome! Please feel free to submit pull requests or open issues.
git clone https://github.com/yourusername/cake
cd cake
pip3 install --user -e .MIT License - see LICENSE file for details
Created with ❤️ for the Linux community
- Interactive configuration interface
- Custom ASCII art editor
- Modular display system
- Multiple layout options
- RGB gradient support
- Weather display framework
- Import/export configurations
- Initial release
- Basic system info display
- ASCII art support
- Color customization