66//! - `aur` for Arch-based systems
77//! - `brew` for the Homebrew Package Manager
88//! - `dnf` for Fedora-based systems
9+ //! - `flatpak` for Flatpak packages
910//! - `pacman` for Arch-based systems
1011//! - `snap` for Snap packages
1112//! - `xbps` for Void Linux
3334//! `aur` | Number of updates available in Arch-based systems | Number | -
3435//! `brew` | Number of updates available in the Homebrew Package Manager | Number | -
3536//! `dnf` | Number of updates available in Fedora-based systems | Number | -
37+ //! `flatpak` | Number of updates available in Flatpak packages | Number | -
3638//! `pacman` | Number of updates available in Arch-based systems | Number | -
3739//! `snap` | Number of updates available in Snap packages | Number | -
3840//! `xbps` | Number of updates available in Void Linux | Number | -
158160//! cmd = "dnf list -q --upgrades | tail -n +2 | rofi -dmenu"
159161//! ```
160162//!
163+ //! Flatpak-only config:
164+ //!
165+ //! ```toml
166+ //! [[block]]
167+ //! block = "packages"
168+ //! package_manager = ["flatpak"]
169+ //! interval = 1800
170+ //! error_interval = 300
171+ //! max_retries = 5
172+ //! format = " $icon $flatpak.eng(w:1) updates available "
173+ //! format_singular = " $icon One update available "
174+ //! format_up_to_date = " $icon system up to date "
175+ //! [[block.click]]
176+ //! # shows dmenu with cached available updates. Any dmenu alternative should also work.
177+ //! button = "left"
178+ //! cmd = "flatpak remote-ls --updates --no-header --columns=ref | tail -n +2 | rofi -dmenu"
179+ //! ```
180+ //!
161181//! Pacman-only config:
162182//!
163183//! ```toml
239259//! ```toml
240260//! [[block]]
241261//! block = "packages"
242- //! package_manager = ["apk", "apt", "aur", "brew", "dnf", "pacman", "snap", "xbps"]
262+ //! package_manager = ["apk", "apt", "aur", "brew", "dnf", "flatpak", " pacman", "snap", "xbps"]
243263//! interval = 1800
244264//! error_interval = 300
245265//! max_retries = 5
246- //! format = " $icon $apk + $apt + $aur + $brew + $dnf + $pacman + $snap + $xbps = $total updates available "
266+ //! format = " $icon $apk + $apt + $aur + $brew + $dnf + $flatpak + $ pacman + $snap + $xbps = $total updates available "
247267//! format_singular = " $icon One update available "
248268//! format_up_to_date = " $icon system up to date "
249269//! # If a linux update is available, but no ZFS package, it won't be possible to
@@ -270,6 +290,9 @@ use brew::Brew;
270290pub mod dnf;
271291use dnf:: Dnf ;
272292
293+ pub mod flatpak;
294+ use flatpak:: Flatpak ;
295+
273296pub mod pacman;
274297use pacman:: { Aur , Pacman } ;
275298
@@ -307,6 +330,7 @@ pub enum PackageManager {
307330 Aur ,
308331 Brew ,
309332 Dnf ,
333+ Flatpak ,
310334 Pacman ,
311335 Snap ,
312336 Xbps ,
@@ -321,6 +345,7 @@ impl PackageManager {
321345 PackageManager :: Aur => "aur" ,
322346 PackageManager :: Brew => "brew" ,
323347 PackageManager :: Dnf => "dnf" ,
348+ PackageManager :: Flatpak => "flatpak" ,
324349 PackageManager :: Pacman => "pacman" ,
325350 PackageManager :: Snap => "snap" ,
326351 PackageManager :: Xbps => "xbps" ,
@@ -337,6 +362,7 @@ impl PackageManager {
337362 ) ) ,
338363 PackageManager :: Brew => Box :: new ( Brew :: new ( ) ) ,
339364 PackageManager :: Dnf => Box :: new ( Dnf :: new ( ) ) ,
365+ PackageManager :: Flatpak => Box :: new ( Flatpak :: new ( ) ) ,
340366 PackageManager :: Pacman => Box :: new ( Pacman :: new ( ) . await ?) ,
341367 PackageManager :: Snap => Box :: new ( Snap :: new ( ) ) ,
342368 PackageManager :: Xbps => Box :: new ( Xbps :: new ( ) ) ,
@@ -375,6 +401,7 @@ pub async fn run(config: &Config, api: &CommonApi) -> Result<()> {
375401 check_manager ! ( PackageManager :: Aur ) ;
376402 check_manager ! ( PackageManager :: Brew ) ;
377403 check_manager ! ( PackageManager :: Dnf ) ;
404+ check_manager ! ( PackageManager :: Flatpak ) ;
378405 check_manager ! ( PackageManager :: Pacman ) ;
379406 check_manager ! ( PackageManager :: Snap ) ;
380407 check_manager ! ( PackageManager :: Xbps ) ;
0 commit comments