╔═══════════════════════════════════════════════════════════════════════╗
║ ║
║ ███████╗██████╗ ███████╗██████╗ ██████╗ ███╗ ██╗ ║
║ ██╔════╝██╔══██╗██╔════╝██╔══██╗██╔═══██╗████╗ ██║ ║
║ █████╗ ██████╔╝█████╗ ██║ ██║██║ ██║██╔██╗ ██║ ║
║ ██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██║ ██║██║╚██╗██║ ║
║ ██║ ██║ ██║███████╗██████╔╝╚██████╔╝██║ ╚████║ ║
║ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ║
║ ║
║ 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.
- 🔄 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
- 🟢 Green: System up to date
- 🟡 Yellow: Updates available (animated pulse)
- 🔵 Blue: Currently updating (rotating animation)
- 🔴 Red: Error occurred (shake animation)
git clone https://github.com/patrik-fredon/updates-module-fredon.git
cd updates-module-fredon
chmod +x install.sh
./install.sh- Arch Linux with Waybar and Hyprland
- Python 3.8+
- Package Managers: At least
pacman, optionallyyayand/orparu - Terminal: Default configured (kitty recommended)
-
Clone the repository:
git clone https://github.com/patrik-fredon/updates-module-fredon.git cd updates-module-fredon -
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/
-
Make scripts executable:
chmod +x ~/.config/waybar/scripts/arch_updates*.py
-
Restart Waybar:
killall waybar && waybar &
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"
}
}
}The module integrates with Waybar through:
config.jsonc: Main Waybar configurationmodules.json: Module definitions with click handlersstyle.css: Visual styling with animations
# 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 --menuOnce 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
For common issues and solutions, see our Troubleshooting Guide.
-
Permission Denied: Ensure scripts are executable
chmod +x ~/.config/waybar/scripts/arch_updates*.py
-
Module Not Appearing: Check Waybar config syntax
waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css --log-level debug
-
Force Update Check: Send signal to Waybar
pkill -SIGRTMIN+8 waybar
- Installation Guide - Detailed installation instructions
- Implementation Guide - Configuration and customization
- Troubleshooting - Common issues and solutions
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
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.
This project is licensed under the MIT License - see the LICENSE file for details.
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