https://github.com/patrik-fredon/updates-module-fredon
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.
https://github.com/patrik-fredon/updates-module-fredon
archlinux archlinux-dotfiles customization hyprland hyprland-dotfiles modules python updatescript waybar waybar-module
Last synced: 6 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/patrik-fredon/updates-module-fredon
- Owner: patrik-fredon
- License: other
- Created: 2025-08-11T23:22:31.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-08-12T00:59:50.000Z (7 months ago)
- Last Synced: 2025-08-12T01:23:20.161Z (7 months ago)
- Topics: archlinux, archlinux-dotfiles, customization, hyprland, hyprland-dotfiles, modules, python, updatescript, waybar, waybar-module
- Language: Shell
- Homepage:
- Size: 38.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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
```bash
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**:
```bash
git clone https://github.com/patrik-fredon/updates-module-fredon.git
cd updates-module-fredon
```
2. **Copy files to Waybar config directory**:
```bash
cp -r src/* ~/.config/waybar/scripts/
cp -r config/waybar/* ~/.config/waybar/
cp scripts/update_config.json ~/.config/waybar/scripts/
```
3. **Make scripts executable**:
```bash
chmod +x ~/.config/waybar/scripts/arch_updates*.py
```
4. **Restart Waybar**:
```bash
killall waybar && waybar &
```
## Configuration
### Update Settings
Configuration is stored in `~/.config/waybar/scripts/update_config.json`:
```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:
- [`config.jsonc`](config/waybar/config.jsonc): Main Waybar configuration
- [`modules.json`](config/waybar/modules.json): Module definitions with click handlers
- [`style.css`](config/waybar/style.css): Visual styling with animations
## Usage
### Basic Commands
```bash
# 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](docs/TROUBLESHOOTING.md).
### Quick Fixes
1. **Permission Denied**: Ensure scripts are executable
```bash
chmod +x ~/.config/waybar/scripts/arch_updates*.py
```
2. **Module Not Appearing**: Check Waybar config syntax
```bash
waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css --log-level debug
```
3. **Force Update Check**: Send signal to Waybar
```bash
pkill -SIGRTMIN+8 waybar
```
## Documentation
- [Installation Guide](docs/INSTALLATION.md) - Detailed installation instructions
- [Implementation Guide](docs/IMPLEMENTATION.md) - Configuration and customization
- [Troubleshooting](docs/TROUBLESHOOTING.md) - Common issues and solutions
## 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](CODE_OF_CONDUCT.md) before contributing.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Changelog
See [CHANGELOG.md](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