imupdate is a graphical utility for managing system updates on Arch Linux. Built with C++23 and Dear ImGui, it provides a user-friendly interface to check for available updates using checkupdates and paru, visualize the list of packages, and execute the update process securely.
- Update Checking: Automatically checks for updates from both official repositories (via
checkupdates) and the AUR (viaparu). - Visual Interface: Displays a clean list of available updates.
- Secure Updating: Handles password input securely via a temporary helper script and
SUDO_ASKPASSto authorizesudo. - Live Progress: Shows real-time output from the update command (
paru -Syu). - Ansi Stripping: Automatically cleans ANSI color codes from terminal output for proper display in the GUI.
Before building and running ArchUpdater, ensure you have the following installed:
- Arch Linux
- C++ Compiler: A compiler checking C++23 support (Clang is configured in
CMakeLists.txt). - CMake: Version 3.16 or higher.
- Make/Ninja: Build system.
- GLFW3: Windowing library.
- OpenGL: Graphics library.
- checkupdates: Part of the
pacman-contribpackage. - paru: AUR helper (required for the update command logic).
sudo pacman -S clang cmake make glfw-x11 pacman-contrib
# Install paru from AUR if not already installedNote: This tool specifically invokes
paru. If you use another AUR helper or justpacman, you will need to modifysrc/UI.cppandsrc/Updates.cpp.
-
Clone the repository:
git clone https://github.com/BillGR17/imupdate.git cd imupdate -
Create a build directory:
mkdir build && cd build
-
Configure with CMake:
cmake ..
-
Build the project:
make
Run the executable from the build directory:
./imupdateYou can run the tool in CLI-only mode (though the main feature is the GUI) by passing the -cli flag, which skips opening the window but currently just runs the check:
./imupdate -cliYou can run the application minimized in the system tray using the -tray flag:
./imupdate -trayWhen running in tray mode:
- The UI window is initially hidden.
- The tray icon displays a red/green circle indicating the number of pending updates.
- Left-Click the tray icon to toggle the UI window visibility.
- Right-Click the tray icon to open a menu with "Refresh" and "Close" options.
- Launch the application.
- Review the list of updates in the "Output" section.
- Enter your
sudopassword in the password field. - Click Update to start the process.
- Wait for the process to complete (Success/Fail message will appear).
- Click Close to exit.