How a-shygun/dripfetch works
Dripfetch is a configurable terminal dashboard: users select or edit YAML settings, then the CLI starts a curses app that renders movable information boxes alongside animated rain. The map includes box layout and rendering, dashboard content sources, and rain simulation. README-documented features include presets, logo selection, weather and network displays, and keyboard/mouse movement. Several box implementations and CLI branches were not excerpted, so their internal call links are omitted rather than inferred.
Main entry points: box/manager.py Box manager · app.py Dashboard loop · rain/manager.py Rain manager · cli.py CLI and presets
Components 28
Application entry
- CLI and presets
src/dripfetch/app/cli.py - YAML configuration
src/dripfetch/app/config.py - Dashboard loop
src/dripfetch/app/app.py - Terminal renderer
src/dripfetch/app/terminal.py
Dashboard and boxes
- Box manager
src/dripfetch/box/manager.py - Box layout
src/dripfetch/box/layout.py - Box placement
src/dripfetch/box/placement.py - Borders
src/dripfetch/box/border.py - Box colors
src/dripfetch/box/colors.py - Box registry
src/dripfetch/box/registry.py - Box base
src/dripfetch/box/base.py
Box content
- Logo box
src/dripfetch/box/types/logo.py - System information
src/dripfetch/box/types/sysinfo.py - Clock box
src/dripfetch/box/types/clock.py - Calendar box
src/dripfetch/box/types/calendar.py - Weather box
src/dripfetch/box/types/weather.py - Network graph
src/dripfetch/box/types/net.py - Text box
src/dripfetch/box/types/text.py - System commands
src/dripfetch/box/types/helper/commands.py - Value parsing
src/dripfetch/box/types/helper/parsing.py - Rate units
src/dripfetch/box/types/helper/units.py - Box validation
src/dripfetch/box/types/helper/validation.py - Web requests
src/dripfetch/box/types/helper/web.py
Rain animation
- Rain manager
src/dripfetch/rain/manager.py - Drop physics
src/dripfetch/rain/physics.py - Drop spawning
src/dripfetch/rain/spawning.py - Rain rendering
src/dripfetch/rain/rendering.py
Other components
- Terminal user
Connections 29
- Terminal user → CLI and presets: runs commands
README.md - CLI and presets → YAML configuration: selects config
src/dripfetch/app/cli.py - CLI and presets → Dashboard loop: starts app
src/dripfetch/app/cli.py - Dashboard loop → YAML configuration: loads and saves
src/dripfetch/app/app.py - Dashboard loop → Terminal renderer: sets up renderer
src/dripfetch/app/app.py - Dashboard loop → Box manager: updates boxes
src/dripfetch/app/app.py - Dashboard loop → Rain manager: updates rain
src/dripfetch/app/app.py - Box manager → Box layout: positions boxes
src/dripfetch/box/manager.py - Box manager → Box placement: moves boxes
src/dripfetch/box/manager.py - Box manager → Box colors: creates colors
src/dripfetch/box/manager.py - Box manager → Box registry: selects type
src/dripfetch/box/manager.py - Box layout → Borders: sizes borders
src/dripfetch/box/layout.py - Box manager → Terminal renderer: draws boxes
- Box registry → Box base: registers base
src/dripfetch/box/registry.py - Box manager → System information: creates box
- System information → System commands: queries system
- Network graph → Value parsing: parses values
src/dripfetch/box/types/net.py - Network graph → Rate units: formats rates
src/dripfetch/box/types/net.py - Weather box → Web requests: fetches forecasts
- Box manager → Logo box: creates box
- Box manager → Clock box: creates box
- Box manager → Calendar box: creates box
- Box manager → Weather box: creates box
- Box manager → Network graph: creates box
- Box manager → Text box: creates box
- Rain manager → Drop physics: updates drops
src/dripfetch/rain/manager.py - Rain manager → Drop spawning: spawns drops
src/dripfetch/rain/manager.py - Rain manager → Rain rendering: draws drops
src/dripfetch/rain/manager.py - Rain manager → Box manager: checks collisions