Skip to content

Updates Module for Waybar/Hyprland/ArchLinux is an all-in-one, highly customizable Python module collection designed for next-gen Linux status bars, window managers, and system maintenance.

License

Notifications You must be signed in to change notification settings

patrik-fredon/updates-module-fredon

Repository files navigation

Updates Module Fredon

╔═══════════════════════════════════════════════════════════════════════╗
║                                                                       ║
║           ███████╗██████╗ ███████╗██████╗  ██████╗ ███╗   ██╗         ║
║           ██╔════╝██╔══██╗██╔════╝██╔══██╗██╔═══██╗████╗  ██║         ║
║           █████╗  ██████╔╝█████╗  ██║  ██║██║   ██║██╔██╗ ██║         ║
║           ██╔══╝  ██╔══██╗██╔══╝  ██║  ██║██║   ██║██║╚██╗██║         ║
║           ██║     ██║  ██║███████╗██████╔╝╚██████╔╝██║ ╚████║         ║
║           ╚═╝     ╚═╝  ╚═╝╚══════╝╚═════╝  ╚═════╝ ╚═╝  ╚═══╝         ║
║                                                                       ║
║                    D O T F I L E S   M A N A G E R                    ║
║                 “Et in tenebris codicem inveni lucem.”                ║
╚═══════════════════════════════════════════════════════════════════════╝

Patrik Fredon - FredonBytes - Where code meets innovation

A system update manager and maintenance tool designed for Waybar on Hyprland/Arch Linux systems.

Features

  • 🔄 Real-time Update Monitoring: Automatically checks for system and AUR updates
  • 🎨 Beautiful Waybar Integration: Seamless integration with animated visual states
  • 🖱️ Interactive Interface: Left-click for terminal updates, right-click for GUI menu
  • 📦 Multi Package Manager Support: Works with pacman, yay, and paru
  • Performance Optimized: Smart caching system to minimize resource usage
  • 🎯 Customizable: Fully configurable icons, colors, and update intervals
  • 🛠️ Easy Installation: One-command setup with automated configuration

Visual States

  • 🟢 Green: System up to date
  • 🟡 Yellow: Updates available (animated pulse)
  • 🔵 Blue: Currently updating (rotating animation)
  • 🔴 Red: Error occurred (shake animation)

Quick Installation

git clone https://github.com/patrik-fredon/updates-module-fredon.git
cd updates-module-fredon
chmod +x install.sh
./install.sh

Prerequisites

  • Arch Linux with Waybar and Hyprland
  • Python 3.8+
  • Package Managers: At least pacman, optionally yay and/or paru
  • Terminal: Default configured (kitty recommended)

Manual Installation

  1. Clone the repository:

    git clone https://github.com/patrik-fredon/updates-module-fredon.git
    cd updates-module-fredon
  2. Copy files to Waybar config directory:

    cp -r src/* ~/.config/waybar/scripts/
    cp -r config/waybar/* ~/.config/waybar/
    cp scripts/update_config.json ~/.config/waybar/scripts/
  3. Make scripts executable:

    chmod +x ~/.config/waybar/scripts/arch_updates*.py
  4. Restart Waybar:

    killall waybar && waybar &

Configuration

Update Settings

Configuration is stored in ~/.config/waybar/scripts/update_config.json:

{
  "update_settings": {
    "check_interval": 600,
    "package_managers": ["pacman", "yay", "paru"],
    "icons": {
      "no_updates": "",
      "updates_available": "📦",
      "updating": "🔄",
      "error": "⚠️"
    },
    "colors": {
      "no_updates": "#4CAF50",
      "updates_available": "#FF9800",
      "updating": "#2196F3",
      "error": "#F44336"
    }
  }
}

Waybar Integration

The module integrates with Waybar through:

Usage

Basic Commands

# Check for updates (JSON output for Waybar)
~/.config/waybar/scripts/arch_updates_simple.py --check

# Run interactive update
~/.config/waybar/scripts/arch_updates_simple.py --update

# Show GUI menu (requires GUI dependencies)
~/.config/waybar/scripts/arch_updates.py --menu

Waybar Integration

Once configured, the module appears in Waybar with:

  • Icon: Shows current update status
  • Counter: Number of available updates
  • Left Click: Opens interactive terminal update
  • Right Click: Opens popup menu (with GUI installed)
  • Tooltip: Detailed breakdown of update counts

Troubleshooting

For common issues and solutions, see our Troubleshooting Guide.

Quick Fixes

  1. Permission Denied: Ensure scripts are executable

    chmod +x ~/.config/waybar/scripts/arch_updates*.py
  2. Module Not Appearing: Check Waybar config syntax

    waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css --log-level debug
  3. Force Update Check: Send signal to Waybar

    pkill -SIGRTMIN+8 waybar

Documentation

File Structure

updates-module-fredon/
├── src/                         # Core functionality
│   ├── arch_updates.py          # Full-featured script with GUI
│   └── arch_updates_simple.py   # Core functionality, no dependencies
├── config/waybar/               # Waybar integration
│   ├── config.jsonc            # Main configuration
│   ├── modules.json            # Module definitions
│   └── style.css               # Styling with animations
├── scripts/                     # Supporting scripts
│   ├── update_config.json      # Module configuration
│   └── package-manager-setup.sh # Package manager installation
├── docs/                        # Documentation
└── install.sh                  # Installation script

Contributing

Contributions are welcome! Feel free to submit improvements, especially for:

  • Additional package manager support
  • Enhanced visual effects
  • Performance optimizations
  • Error handling improvements

Please read our Code of Conduct before contributing.

License

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

Changelog

See CHANGELOG.md for a list of changes in each version.


Et in tenebris codicem inveni lucem "In the darkness, I found the light of code"


© 2025 Fredon - FredonBytes

About

Updates Module for Waybar/Hyprland/ArchLinux is an all-in-one, highly customizable Python module collection designed for next-gen Linux status bars, window managers, and system maintenance.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published