Auto-generated Conky configuration that adapts to any Ubuntu desktop. Detects hardware on each boot and produces a tailored system monitor panel.
- Auto-detection — CPU (model, cores, threads, CCD topology), disks, NICs, GPU (NVIDIA), display resolution, temperatures, proxy
- Dynamic hwmon — scans
/sys/class/hwmon/every run so sensor indices never go stale - Display scaling — all fonts, bars, graphs, and positions scale to the screen resolution (4K = 1.0x baseline)
- Color schemes — 7 built-in themes (orange, cyan, green, purple, blue, red, teal); one is picked at random on each restart, or you can pin one
- Device blacklist — skip specific disks or NICs via a simple config file
- CCD grouping — AMD Ryzen CCDs detected automatically via L3 cache topology; Intel CPUs fall back to a flat core list
- SMT-aware — dual-bar layout for Hyper-Threading / SMT; single-bar for non-SMT CPUs
# Clone the repo
git clone <repo-url> ~/conkyrc
cd ~/conkyrc
# Run once (random color scheme)
./start_conky.sh
# Run with a specific color scheme
./start_conky.sh --scheme cyanThe script generates ~/.config/conky/conky.conf and starts conky in the background.
Run the installation script to automatically set up autostart with the correct path for your system:
./install_autostart.shThe script will:
- Detect your current installation directory
- Create
~/.config/autostartif it doesn't exist - Install the properly configured desktop file
Conky will start automatically on your next boot.
Crontab (cron table) is a built-in Linux scheduler. Each user has their own crontab file listing commands to run automatically — on a schedule or at system startup. No extra software needed; it comes with every Ubuntu install.
crontab -e
# Add this line at the end of the file, then save and quit (:wq)
@reboot sleep 5 && /path/to/conkyrc/start_conky.sh
# Verify it was saved
crontab -lThe 5-second delay ensures the desktop environment is fully loaded before conky starts.
Edit blacklist.conf to hide devices you don't want displayed:
# Format: type:name
disk:nvme0n1 # skip Windows drive
nic:docker0 # skip docker bridge
nic:br-abcdef # skip bridge interfaces
nic:veth1234 # skip container veth
Supported types: disk, nic.
When sharing the repo across multiple PCs via git, use per-host override files
to avoid conflicts. The generator automatically loads blacklist-<hostname>.conf
and merges it with the base blacklist.conf:
blacklist.conf— common entries shared across all PCs (tracked in git)blacklist-<hostname>.conf— per-PC overrides (gitignored)
# Find your hostname
hostname
# Create a per-host override
cp blacklist.conf blacklist-$(hostname).conf
# Edit it with PC-specific entries (e.g. Windows drives, extra NICs)The per-host files are gitignored (blacklist-*.conf in .gitignore), so each
PC keeps its own blacklist without interfering with git sync.
| Name | Accent |
|---|---|
| orange | #ff8c00 |
| cyan | #00bcd4 |
| green | #4caf50 |
| purple | #bb86fc |
| blue | #42a5f5 |
| red | #ef5350 |
| teal | #26a69a |
Pass --scheme NAME to pin a scheme, or omit for random selection on each restart.
- conky (1.19+, built with Xft and optionally nvidia support)
- Python 3 (for
generate_conky.pyandlunar.py, no pip packages needed) - nvidia-smi (optional, for GPU section)
- curl (for public IP lookup)
- CJK font such as
Noto Sans CJK SC(optional, for Chinese lunar calendar)
The layout is designed at 3840x2160 (scale 1.0). Font sizes at reference:
| Role | Size |
|---|---|
| Body | 12 |
| Header | 15 |
| Subtitle | 10 |
| Clock | 31 |
On other resolutions, everything scales proportionally by screen_height / 2160.
