Graphical user interface for managing your Linux applications. Supports AppImage, Debian and Arch packages (including AUR), Flatpak, Snap and native Web applica
Graphical user interface for managing your Linux applications. Supports AppImage, Debian and Arch packages (including AUR), Flatpak, Snap and native Web applica
## Index 1. [Installation](#installation) - [AppImage](#inst_appimage) - [Ubuntu 20.04 based distros (Linux Mint, PopOS, ...)](#inst_ubuntu) - [Arch-based distros](#inst_arch) 2. [Isolated installation](#inst_iso) 3. [Desktop entry / menu shortcut](#desk_entry) 4. [Autostart: tray mode](#autostart) 5. [Distribution](#dist) 6. [Supported types](#types) - [AppImage](#type_appimage) - [Arch packages/AUR](#type_arch) - [Debian](#type_deb) - [Flatpak](#type_flatpak) - [Snap](#type_snap) - [Native Web applications](#type_web) 7. [General settings](#settings) - [Forbidden packaging formats](#forbidden_gems) - [Custom suggestions / curated software](#suggestions) 8. [Directory structure, caching and logs](#dirs) 9. [Custom themes](#custom_themes) 10. [Tray icons](#tray_icons) 11. [CLI (Command Line Interface)](#cli) 12. [Improving performance](#performance) 13. [bauh-files](#bauh_files) 14. [Code structure](#code) 15. [Roadmap](#roadmap) 16. [Contributing](https://github.com/vinifmor/bauh/blob/master/CONTRIBUTING.md) 17. [Donations](#donations) ### Installation #### AppImage ##### Required dependencies - `fuse`: the package name may vary from distribution - `qt5dxcb-plugin` (or equivalent): the package name may vary from distribution ##### Steps - Download the .AppImage file attached with the latest release from https://github.com/vinifmor/bauh/releases - Generally the desktop environment allows you to double-click the downloaded file to execute it. If that's not your case, follow the steps below from a console: - `chmod a+x bauh-${version}-x86_64.AppImage` (replace `${version}` by the respective downloaded version) - `./bauh-${version}-x86_64.AppImage` - If you want to integrate bauh to your desktop: click on bauh's settings menu ("sandwich") and then `Install bauh`
#### Ubuntu 20.04 based distros (Linux Mint, PopOS, ...) ##### Required dependencies `sudo apt-get install python3 python3-pip python3-yaml python3-dateutil python3-pyqt5 python3-packaging python3-requests` ##### Installing bauh `sudo pip3 install bauh` ##### Optional dependencies (they should be installed with apt-get/apt) - `aptitude`: Debian package management - `timeshift`: system backup - `aria2`: multi-threaded downloads - `axel`: multi-threaded downloads alternative - `libappindicator3-1`: tray-mode - `sqlite3`, `fuse`: AppImage support - `flatpak`: Flatpaks support - `snapd`: Snaps support - `python3-lxml`, `python3-bs4`: Web apps support - `python3-venv`: [isolated installation](#inst_iso) - `xdg-utils`: to open URLs in the browsers (`xdg-open`) ##### Updating bauh Method 1 `sudo pip3 install bauh --upgrade` Method 2 ``` sudo pip3 uninstall bauh sudo pip3 install bauh ``` ##### Uninstalling bauh ``` bauh --reset # removes cache and configurations files from HOME sudo pip3 uninstall bauh ``` #### Arch-based distros ##### Using yay `yay -S bauh` ##### Using git ``` git clone https://aur.archlinux.org/bauh.git cd bauh makepkg -si ``` ##### Optional dependencies - `timeshift`: system backup - `aria2`: multi-threaded downloads - `axel`: multi-threaded downloads alternative - `libappindicator-gtk2`: tray-mode (GTK2 desktop environments) - `libappindicator-gtk3`: tray-mode (GTK3 desktop environments) - `xdg-utils`: to open URLs in the browser (`xdg-open`) - `sqlite`, `fuse2`, `fuse3`: AppImage support - `flatpak`: Flatpak support - `snapd`: Snap support - `pacman`: ArchLinux package management support - `python-lxml`, `python-beautifulsoup4`: Web apps support - `python-venv`: [isolated installation](#inst_iso) ##### Uninstalling bauh ``` bauh --reset # removes cache and configurations files from HOME pacman -R bauh ``` #### Isolated installation If you prefer an isolated installation from the system libraries, type the following commands: ``` python3 -m venv bauh_env # creates an isolated environment inside the directory called "bauh_env" bauh_env/bin/pip install bauh # installs bauh in the isolated environment bauh_env/bin/bauh # launches bauh. For the tray-mode: bauh_env/bin/bauh-tray ``` Updating bauh ``` bauh_env/bin/pip install bauh --upgrade ``` Uninstalling bauh ``` bauh_env/bin/bauh --reset # removes cache and configurations files from HOME rm -rf bauh_env` (just remove the directory) ``` #### Desktop entry / menu shortcut To create a shortcut for bauh on your desktop menu: - Copy the files from [bauh/desktop](https://raw.githubusercontent.com/vinifmor/bauh/master/bauh/desktop/bauh.desktop) to `~/.local/share/applications` (or `/usr/share/applications` for **root**) - Replace the `Exec` field on theses files by the bauh binary path. e.g: `Exec=/usr/bin/bauh` (or `bauh_env/bin/bauh`) - Copy [logo.svg](https://raw.githubusercontent.com/vinifmor/bauh-files/master/pictures/logo.svg) to `/usr/share/icons/hicolor/scalable/apps` as `bauh.svg` #### Autostart: tray mode In order to initialize bauh with the system, use your Desktop Environment settings to register it as a startup application / script (**bauh-tray**). Or create a file named **bauh.desktop** in **~/.config/autostart** with the content below: ``` [Desktop Entry] Type=Application Name=bauh (tray) Exec=/path/to/bauh-tray ``` #### Distribution bauh is officially distributed through [PyPi](https://pypi.org/project/bauh) and [AUR](https://aur.archlinux.org) ([bauh](https://aur.archlinux.org/packages/bauh) / [bauh-staging](https://aur.archlinux.org/packages/bauh-staging)) #### Supported types ##### AppImage - Supported sources: [AppImageHub](https://appimage.github.io) (applications with no releases published to GitHub are not available) - All available application names can be found at [apps.txt](https://github.com/vinifmor/bauh-files/blob/master/appimage/apps.txt) - **Only x86_64 AppImage files are available through the search mechanism at the moment** - Crashes may happen during an AppImage installation if [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) is installed. It is recommended to uninstall it and reboot your system before trying to install an application. - Extra actions - `Install AppImage file`: allows to install an external AppImage file - `Upgrade file`: allows to upgrade a manually installed AppImage file - `Update database`: manually synchronize the AppImage database - `Install bauh`: installs bauh if it is running as an AppImage - Installed applications are store at `~/.local/share/bauh/appimage/installed` (or `/usr/local/share/bauh/installed` for **root**) - Desktop entries (menu shortcuts) of the installed applications are stored at `~/.local/share/applications` (or `/usr/share/applications` for **root**). Name pattern: `bauh_appimage_appname.desktop` - Symlinks are created at `~/.local/bin` (or `/usr/local/bin` for **root**). They have the same name of the application (if the name already exists, it will be created as 'app_name-appimage'. e.g: `rpcs3-appimage`) - Downloaded database files are stored at `~/.cache/bauh/appimage` (or `/var/cache/bauh/appimage` for **root**) as **apps.db** and **releases.db** - Databases are updated during the initialization process if they are considered outdated - The configuration file is located at `~/.config/bauh/appimage.yml` (or `/etc/bauh/appimage.yml` for **root**) and it allows the following customizations: ``` database: expiration: 60 # defines the period (in minutes) in which the database will be considered up to date during the initialization process. Use 0 if you always want to update it. Default: 60. suggestions: expiration: 24 # defines the period (in hours) in which the suggestions stored in disc will be considered up to date. Use 0 if you always want to update them. Default: 24. ``` - Applications with ignored updates are defined at `~/.config/bauh/appimage/updates_ignored.txt` (or `/etc/bauh/appimage/updates_ignored.txt` for **root**) - Cached package suggestions: `~/.cache/bauh/web/suggestions.txt` (or `/var/cache/bauh/web/suggestions.yml` for **root**) ##### Arch packages/AUR - Only available for Arch-based systems - It handles conflicts, missing / optional packages installations, and several providers scenarios - [rebuild-detector](https://github.com/maximbaz/rebuild-detector) integration (**AUR only**) - Automatically makes simple package compilation improvements (for AUR packages): a) if `MAKEFLAGS` is not set in `/etc/makepkg.conf`, then a copy of `/etc/makepkg.conf` will be generated at `~/.config/bauh/arch/makepkg.conf` defining MAKEFLAGS to work with the number of your machine processors (`-j${nproc}`). b) same as previous, but related to `COMPRESSXZ` and `COMPRESSZST` definitions (if '--threads=0' is not defined) c) `ccache` will be added to `BUILDENV` if it is installed on the system and already not defined d) set the device CPUs to performance scaling governor Obs: For more information about them, have a look at [Makepkg](https://wiki.archlinux.org/index.php/Makepkg) - Extra actions - `Synchronize packages database`: synchronizes the database against the configured mirrors (`sudo pacman -Syy`) - `Refresh mirrors`: allows to define multiple mirrors locations and sort by the fastest (`sudo pacman-mirrors -c country1,country2 && sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syy`) - `Quick system upgrade`: it executes a default pacman upgrade (`pacman -Syyu --noconfirm`) - `Clean cache`: it cleans the pacman cache directory (default: `/var/cache/pacman/pkg`) - `Mark PKGBUILD as editable`: it marks a given PKGBUILD of a package as editable (a popup with the PKGBUILD will be displayed before upgrading/downgrading this package). Action only available when the configuration property `edit_aur_pkgbuild` is not `false`. - `Unmark PKGBUILD as editable`: reverts the action described above. Action only available when the configuration property `edit_aur_pkgbuild` is not `false`. - `Allow reinstallation check`: it allows to check if a given AUR packages requires to be rebuilt - `Ignore reinstallation check`: it does not to check if a given AUR packages requires to be rebuilt - `Check Snaps support`: checks if the Snapd services are properly enabled. - `Reinstall` (AUR only): rebuilds an installed package. - If you have AUR added as a repository on you pacman configuration, make sure to disable bauh's support (through the settings described below) - AUR package compilation may require additional installed packages to work properly. Some of them are defined on the field `optdepends` of the [PKGBUILD](https:
No open issues yet, or sync has not completed.