Coder Social home page Coder Social logo

vinifmor / bauh Goto Github PK

View Code? Open in Web Editor NEW
885.0 22.0 70.0 6.45 MB

Graphical user interface for managing your Linux applications. Supports AppImage, Debian and Arch packages (including AUR), Flatpak, Snap and native Web applications

License: zlib License

Python 99.91% Dockerfile 0.07% Shell 0.02%
appimage snap flatpak arch archlinux aur python nativefier webapplication debian

bauh's Introduction

GitHub release PyPI AUR AUR-staging License kofi

bauh (baoo), formerly known as fpakman, is a graphical interface for managing your Linux software (packages/applications). It currently supports the following formats: AppImage, Debian and Arch Linux packages (including AUR), Flatpak, Snap and Web applications.

Key features

  • A management panel where you can: search, install, uninstall, upgrade, downgrade and launch your applications
  • Tray mode: it launches attached to the system tray and publishes notifications when there are software updates available
  • System backup: it integrates with Timeshift to provide a simple and safe backup process before applying changes to your system
  • Custom themes: it's possible to customize the tool's style/appearance. More at Custom themes

Index

  1. Installation
  2. Isolated installation
  3. Desktop entry / menu shortcut
  4. Autostart: tray mode
  5. Distribution
  6. Supported types
  7. General settings
  8. Directory structure, caching and logs
  9. Custom themes
  10. Tray icons
  11. CLI (Command Line Interface)
  12. Improving performance
  13. bauh-files
  14. Code structure
  15. Roadmap
  16. Contributing
  17. Donations

Installation

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

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
  • 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
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
Uninstalling bauh
bauh --reset  # removes cache and configurations files from HOME
pacman -R bauh

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)

To create a shortcut for bauh on your desktop menu:

  • Copy the files from 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 to /usr/share/icons/hicolor/scalable/apps as bauh.svg

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

bauh is officially distributed through PyPi and AUR (bauh / bauh-staging)

  • Supported sources: AppImageHub (applications with no releases published to GitHub are not available)

  • All available application names can be found at 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 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)
  • Only available for Arch-based systems

  • It handles conflicts, missing / optional packages installations, and several providers scenarios

  • 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

  • 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

    • for a root user the following additional applications must be installed:
      • useradd: required to create a simple user named bauh-aur (since makepkg does not allow building packages as the root user)
      • runuser: required to run commands as another user
  • Repository packages currently do not support the following actions: Downgrade and History

  • If some of your installed packages are not categorized, open a PullRequest to the bauh-files repository changing categories.txt

  • During bauh initialization a full AUR normalized index is saved at ~/.cache/bauh/arch/aur/index.txt

  • Installed AUR packages have their PKGBUILD files cached at ~/.cache/bauh/arch/installed/$pkgname

  • Packages with ignored updates are defined at ~/.config/bauh/arch/updates_ignored.txt

  • The configuration file is located at ~/.config/bauh/arch.yml and it allows the following customizations:

aur:  true # allows to manage AUR packages. Default: true
repositories: true  # allows to manage packages from the configured repositories. Default: true
optimize: true  # if 'false': disables the auto-compilation improvements (AUR)
sync_databases: true # package databases synchronization once a day before the first package installation/upgrade/downgrade
sync_databases_startup: true  # package databases synchronization once a day during startup
clean_cached: true  # defines if old cached versions should be removed from the disk cache during a package uninstallation
refresh_mirrors_startup: false # if the package mirrors should be refreshed during startup
mirrors_sort_limit: 5  # defines the maximum number of mirrors that will be used for speed sorting. Use 0 for no limit or leave it blank to disable sorting. 
repositories_mthread_download: false  # enable multi-threaded download for repository packages if aria2/axel is installed (otherwise pacman will download the packages). Default: false
automatch_providers: true  # if a possible provider for a given package dependency exactly matches its name, it will be chosen instead of asking for the user to decide (false). Default: true.
edit_aur_pkgbuild: false  # if the AUR PKGBUILD file should be displayed for edition before the make process. true (PKGBUILD will always be displayed for edition), false (PKGBUILD never will be displayed), null (a popup will ask if the user want to edit the PKGBUILD). Default: false.
aur_build_dir: null  # defines a custom build directory for AUR packages (a null value will point to /tmp/bauh/arch (non-root user) or /tmp/bauh_root/arch (root user)). Default: null.
aur_remove_build_dir: true  # it defines if a package's generated build directory should be removed after the operation is finished (installation, upgrading, ...). Options: true, false (default: true).
aur_build_only_chosen : true  # some AUR packages have a common file definition declaring several packages to be built. When this property is 'true' only the package the user select to install will be built (unless its name is different from those declared in the PKGBUILD base). With a 'null' value a popup asking if the user wants to build all of them will be displayed. 'false' will build and install all packages. Default: true.
aur_idx_exp: 1  # It defines the period (in HOURS) for the AUR index stored in disc to be considered up to date during the initialization process. Use 0 so that it is always updated. Default: 1. (P.S: this index is always updated when a package is installed/upgraded)
check_dependency_breakage: true # if, during the verification of the update requirements, specific versions of dependencies must also be checked. Example: package A depends on version 1.0 of B. If A and B were selected to upgrade, and B would be upgrade to 2.0, then B would be excluded from the transaction. Default: true.
suggest_unneeded_uninstall: false  # if the dependencies apparently no longer necessary associated with the uninstalled packages should be suggested for uninstallation. When this property is enabled it automatically disables the property 'suggest_optdep_uninstall'. Default: false (to prevent new users from making mistakes)
suggest_optdep_uninstall: false  # if the optional dependencies associated with uninstalled packages should be suggested for uninstallation. Only the optional dependencies that are not dependencies of other packages will be suggested. Default: false (to prevent new users from making mistakes)
categories_exp: 24  # It defines the expiration time (in HOURS) of the packages categories mapping file stored in disc. Use 0 so that it is always updated during initialization.
aur_rebuild_detector: true # it checks if packages built with old library versions require to be rebuilt. If a package needs to be rebuilt, it will be marked for update ('rebuild-detector' must be installed). Default: true.
prefer_repository_provider: true  # when there is just one repository provider for a given a dependency and several from AUR, it will be automatically picked.
suggestions_exp: 24  # it 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.
  • Cached package suggestions: ~/.cache/bauh/arch/suggestions.txt (or /var/cache/bauh/arch/suggestions.yml for root)
  • Basic actions supported: search, install, uninstall, upgrade
  • Custom actions supported:
    • synchronize packages: synchronize the available packages on the repository (aptitude update)
    • index applications: maps runnable installed packages (automatically done during initialization)
    • software sources: launches the application responsible for managing software sources (at the moment only software-properties-gtk is supported)
  • Custom package actions supported:
    • purge: removes the packages and all related configuration files
  • Files:
    • runnable applications index: ~/.cache/bauh/debian/apps_idx.json (or /var/cache/bauh/debian/apps_idx.json for root)
    • cached package suggestions: ~/.cache/bauh/debian/suggestions.txt (or /var/cache/bauh/debian/suggestions.txt for root)
    • configuration: ~/.config/bauh/debian.yml or /etc/bauh/debian.yml
      • index_apps.exp: time period (in minutes) in which the installed applications cache is considered up-to-date during startup (default: 1440 -> 24 hours)
      • sync_pkgs.time: time period (in minutes) in which the packages synchronization must be done on startup (default: 1440 -> 24 hours)
      • suggestions.exp: it 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.
      • pkg_sources.app: it defines the application for managing the software sources. A null value detects one of the supported applications automatically.
      • remove.purge: if the package configurations should be removed during the uninstallation process (purge). Default: false.
  • Applications with ignored updates are defined at ~/.config/bauh/flatpak/updates_ignored.txt
  • The configuration file is located at ~/.config/bauh/flatpak.yml and it allows the following customizations:
installation_level: null # defines a default installation level: "user" or "system". (null will display a popup asking the level)
  • Custom actions supported:
    • Full update: it completely updates the Flatpak apps and components. Useful if you are having issues with runtime updates.
  • Make sure snapd is properly installed and enabled on your system: https://snapcraft.io/docs/installing-snapd
  • Extra actions:
    • Refresh: tries to update the current Snap application revision
    • Change channel: allows to change the Snap application channel
  • The configuration file is located at ~/.config/bauh/snap.yml and it allows the following customizations:
install_channel: false  # it allows to select an available channel during the application installation. Default: false
categories_exp: 24  # It defines the expiration time (in HOURS) of the Snaps categories mapping file stored in disc. Use 0 so that it is always updated during initialization.
  • It allows the installation of Web applications by typing their addresses/URLs on the search bar

  • It offers the possibility to customize the generated app the way you want:

  • It provides some suggestions coming with predefined settings, and they also can be found by their names. They are defined at suggestions.yml, and downloaded during the application usage.

  • It relies on NodeJS, Electron and nativefier to do all the magic, but you do not need them installed on your system. An isolated installation environment will be generated at ~/.local/share/bauh/web/env (or /usr/local/share/bauh/web/env for root).
  • It supports DRM protected content through a custom Electron implementation provided by castLabs. nativefier handles the switch between the official Electron and the custom.
  • The isolated environment is created based on the settings defined in environment.yml (downloaded during runtime).
  • Some applications require Javascript fixes to properly work. If there is a known fix, bauh will download the file from fix and attach it to the generated app. The fix files are saved on the disk following the pattern ~/.local/share/bauh/web/fixes/electron_{branch}/{app_name}.js (or /usr/local/share/bauh/web/fixes/... for root)
  • The installed applications are located at ~/.local/share/bauh/installed (or /usr/local/share/bauh/web/installed for root).
  • A desktop entry / menu shortcut will be generated for the installed applications at ~/.local/share/applications (or /usr/share/applications for root)
  • If the Tray Mode Start Minimized is defined during the installation setup, a desktop entry will be also generated at ~/.config/autostart (or /etc/xdg/autostart for root) allowing the application to launch automatically after the system's boot attached to the tray.

  • Extra actions

    • Clean installation environment: removes all the installation environment folders (it does not remove installed apps)
  • The configuration file is located at ~/.config/bauh/web.yml (or /etc/bauh/web.yml for root) and it allows the following customizations:

environment:
  electron:
    version: null  # set a custom Electron version here (e.g: '6.1.4')
  system: false  # set it to 'true' if you want to use the nativefier version globally installed on your system 
  cache_exp: 24 # defines the period (in HOURS) in which the stored environment settings are considered valid. Use 0 so that they are always updated. Default: 24.

suggestions:
    cache_exp: 24  # defines the period (in HOURS) in which suggestions stored on the disk are considered up to date during the initialization process. Use 0 so that they are always updated. Default: 24.
  • Cached package suggestions: ~/.cache/bauh/web/suggestions.txt (or /var/cache/bauh/web/suggestions.yml for root)
Parameters

You can change some application settings via environment variables or arguments (type bauh --help to get more information).

  • --tray: if bauh should be launched attaching itself to the system tray.
  • --settings: it displays only the settings window.
  • --reset: it cleans all configurations and cached data stored in the HOME directory.
  • --logs: it enables logs (for debugging purposes).
  • --offline: it assumes the internet connection is off.
  • --suggestions: it forces loading software suggestions after the initialization process.
Configuration file (~/.config/bauh/config.yml)
download:
  icons: true # allows bauh to download the applications icons when they are not saved on the disk
  multithreaded: true  # allows bauh to use a multithreaded download client installed on the system to download applications source files faster
  multithreaded_client: null  # defines the multi-threaded download tool to be used. If null, the default installed tool will be used (priority: aria2 > axel). Possible tools/values: aria2, axel
  check_ssl: true  # if the security certificate (SSL) should be checked before downloading files.
gems: null  # defines the enabled applications types managed by bauh (a null value means "all available")
locale: null  # defines a different translation for bauh (a null value will retrieve the system's default locale)
store_root_password: true  # if the root password should be asked only once
memory_cache:
  data_expiration: 3600 # the interval in SECONDS that data cached in memory will live
  icon_expiration: 300  # the interval in SECONDS that icons cached in memory will live
suggestions:
  by_type: 20  # the maximum number of application suggestions that must be retrieved per type
  enabled: true  # if suggestions must be displayed when no application is installed
system:
  notifications: true  # if system popup should be displayed for some events. e.g: when there are updates, bauh will display a system popup
  single_dependency_checking: false  # if bauh should check only once if for the available technologies on the system.
ui:
  qt_style: fusion  # defines the Qt style. A null value will map to 'fusion' as well.
  table:
    max_displayed: 50  # defines the maximum number of displayed applications on the table. Use 0 for no limit.
  tray:  # system tray settings
    default_icon: null  # defines a path to a custom icon
    updates_icon: null  # defines a path to a custom icon indicating updates
  hdpi: true  # enables HDPI rendering improvements. Use 'false' to disable them if you think the interface looks strange
  auto_scale: false # activates Qt auto screen scale factor (QT_AUTO_SCREEN_SCALE_FACTOR). It fixes scaling issues for some desktop environments (like Gnome)
  scale_factor: 1.0  # defines the interface display scaling factor (Qt). Raise the value to raise the interface size. The settings window display this value as a percentage (e.g: 1.0 -> 100%).
  theme: defines the path to the theme/stylesheet file with a .qss extension (e.g: /path/to/my/theme.qss). For themes provided by bauh, only a string key is needed (e.g: light). Default: light
  system_theme: merges the system's theme/stylesheet with bauh's. Default: false.
updates:
  check_interval: 5  # the updates checking interval in minutes
  ask_for_reboot: true  # if a dialog asking for a system reboot should be displayed after a successful upgrade
disk:
    trim:
        after_upgrade: false # it trims the disk after a successful packages upgrade (`fstrim -a -v`). 'true' will automatically perform the trim and 'null' will display a confirmation dialog
backup:
    enabled: true  # generate timeshift snapshots before an action (if timeshift is installed on the system)
    mode: 'incremental' # incremental=generates a new snapshot based on another pre-exising one. 'only_one'=deletes all pre-existing self created snapshots and generates a fresh one.
    install: null  # defines if the backup should be performed before installing a package. Allowed values: null (a dialog will be displayed asking if a snapshot should be generated), true: generates the backup without asking. false: disables the backup for this operation
    uninstall: null  # defines if the backup should be performed before uninstalling a package. Allowed values: null (a dialog will be displayed asking if a snapshot should be generated), true: generates the backup without asking. false: disables the backup for this operation
    upgrade: null  # defines if the backup should be performed before upgrading a package. Allowed values: null (a dialog will be displayed asking if a snapshot should be generated), true: generates the backup without asking. false: disables the backup for this operation
    downgrade: null  # defines if the backup should be performed before downgrading a package. Allowed values: null (a dialog will be displayed asking if a snapshot should be generated), true: generates the backup without asking. false: disables the backup for this operation
    type: rsync  # defines the Timeshift backup mode -> 'rsync' (default) or 'btrfs'
    remove_method: self  # define which backups should be removed in the 'only_one' mode. 'self': only self generated copies. 'all': all existing backups on the disc.
boot:
    load_apps: true  # if the installed applications or suggestions should be loaded on the management panel after the initialization process. Default: true.
  • System administrators and package managers of Linux distributions can disable the usage/management of supported packaging formats by adding their ids to the file /etc/bauh/gems.forbidden. This will prevent their management code to be loaded.
  • Example (one id per line):
arch
appimage
# flatpak  # 'sharps' can be used to ignore a given line (comment)
  • The software suggestions are download from bauh-files by default

  • Most of the files follow the pattern: {priority_number}=${id or name}

    • Priority numbers: 0 (LOW), 1 (MEDIUM), 2 (HIGH), 3 (TOP)
    • The priority number is used to sort the retrieved suggestions
  • If Linux distributions want to provide their custom suggestions files:

    • Create the file /etc/bauh/suggestions.conf
    • The content is basically a mapping for each gem to a url or local file (absolute path).
      • Example:
         arch=https://mydomain.com/arch/suggestions.txt  # remote file
         appimage=/etc/bauh/appimage/suggestions.txt  # local file (absolute path)
         # snap = my mapping  # comments with a '#' are allowed
      
    • If a given gem name is omitted, its suggestions will be downloaded from the default location.
  • ~/.config/bauh (or /etc/bauh for root): stores configuration files
  • ~/.cache/bauh (or /var/cache/bauh for root): stores data about your installed applications, databases, indexes, etc. Files are stored here to provide a faster initialization and data recovery.
  • /tmp/bauh@$USER (e.g: /tmp/bauh@root): stores logging and temporary files (e.g: build dependencies)
  • Custom themes can be provided by adding their files at ~/.local/share/bauh/themes (or /usr/share/bauh/themes for root). Sub-folders are allowed.
  • Themes are composed by 2 required and 1 optional files sharing the same name:
    • my_theme.qss: file with the qss rules. Full example: light.qss
    • my_theme.meta: file defining the theme's data. Full example: light.meta
      • available fields:
        • name: name that will be displayed on the interface. It supports translations by adding additional name fields with brackets and the language code (e.g: name[es]=Mi tema)
        • description: theme's description that will be displayed on the interface. It supports translations like name (e.g: description[es] = Mi tema).
        • version: theme's version. It just works as information at the moment. (e.g: 1.0)
        • root_theme: optional attribute that points to a theme that must be loaded before the theme. It supports the bauh's default theme keys (e.g: default, light, ...) or a file path (e.g: /path/to/root/file.qss).
        • abstract: optional boolean attribute (true/false) that should only be used by themes that are not complete on their own and just work as a base (root) for other themes. Abstract themes are not displayed on the interface. Full example: default.qss
    • my_theme.vars: optional file defining key=value pairs of variables that will be available for the .qss file (can be referenced through the symbol @. e.g @my_var). Full example: light.vars
      • common theme variables available:
        • style_dir: path to the .qss file directory. Example: @style_dir/my_icon.svg
        • images: path to bauh's icons directory (gem icons are not available through this variable). Example: @images/logo.svg

Priority:

  1. Icon paths defined in ~/.config/bauh/config.yml
  2. Icons from the system with the following names: bauh_tray_default and bauh_tray_updates
  3. Own packaged icons
  • For now it only allows checking for software updates (bauh-cli updates).
  • To verify the available commands: bauh-cli --help.
  • To list the command parameters: bauh-cli [command] --help. (e.g: bauh-cli updates --help)
  • Disable the application types you do not want to deal with
  • If you don't care about restarting the app every time a new supported package technology is installed, enable single_dependency_checking. This can reduce the application response time, since it won't need to recheck if the required technologies are available on your system every time a given action is executed.
  • If you don't mind to see the applications icons, you can disable them via download: icons: false. The application may have a slight response improvement, since it will reduce the IO and parallelism within it.
  • For a faster initialization process, consider raising the values of the settings properties associated with disk caching and the property boot.load_apps to false.

It is a separate repository with some files downloaded during runtime.

  • view: code associated with the graphical interface
  • gems: code responsible to work with the different packaging technologies (every submodule deals with one or more types)
  • api: code abstractions representing the main actions that a user can do with Linux packages (search, install, ...). These abstractions are implemented by the gems, and the view code is only attached to them (it does not know how the gems handle these actions)
  • commons: common code used by gems and view
  • Support for other packaging technologies
  • Separate modules for each packaging technology
  • Memory and performance improvements
  • Improve user experience
  • The current development changes can be checked here
  • You can support this project through ko-fi.

bauh's People

Contributors

agahemir avatar albanobattistella avatar almereyda avatar boria138 avatar brccabral avatar dn-debug avatar eduarddopler avatar egyt5453 avatar fitojb avatar freddii avatar jonasloos avatar kinfoo avatar koromelodev avatar labaman avatar leoneii avatar mape6 avatar mountain-biker85 avatar octopussd avatar tulliana avatar vinifmor avatar w568w avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bauh's Issues

bauh.desktop content

Can you change the line to your icon?

Put the logo in /usr/share/icons/hicolor and let linux do the rest.
Give it the name bauh like this

[Desktop Entry]
Type=Application
Name=bauh
Categories=System;
Comment=Manage your Flatpak / Snap / AppImage / AUR applications
Comment[pt]=Gerencie seus aplicativos Flatpak / Snap / AppImage / AUR
Comment[es]=Administre sus aplicaciones Flatpak / Snap / AppImage / AUR
Exec = /usr/bin/bauh
Icon = bauh

No need for png or svg extension.

Icon themes will take care of that.

Same applies to bauh_tray.desktop.

Info window UI

The app info window feels like it needs some loving.
Each row has a Show button, which uses a large chunk of the window width.
The Show button appear even when the entire text is visible, so there is nothing more to show.
The user can scroll through the textboxes, so maybe the Show button should be dropped.

The value of each row is shown in a UI element which looks like an editable textbox.
It seems like the window would be work better with text areas with UI matching the background, i.e. labels.

AppImage on Debian Stretch

I'm unable to get AppImage support on Debian

I get this error and the appimage does not download even if it exists on the given adress:
Traceback (most recent call last):

  File "/usr/local/lib/python3.5/dist-packages/bauh/view/core/downloader.py", line 85, in download
    process = self._get_aria2c_process(file_url, output_path, final_cwd)
  File "/usr/local/lib/python3.5/dist-packages/bauh/view/core/downloader.py", line 46, in _get_aria2c_process
    return SystemProcess(new_subprocess(cmd=cmd, cwd=cwd),
  File "/usr/local/lib/python3.5/dist-packages/bauh/commons/system.py", line 210, in new_subprocess
    return subprocess.Popen(cmd, **args)
  File "/usr/lib/python3.5/subprocess.py", line 676, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.5/subprocess.py", line 1221, in _execute_child
    restore_signals, start_new_session, preexec_fn)
TypeError: Can't convert 'PosixPath' object to str implicitly

no exit code - finish info for upgrades

Running bauh in the GUI updating an AUR-App with "show details" there is no exit code anywhere or any other info if updating/upgrading has finished with success/fail.

Please add.

snapd seems not to be installed or enabled

When I have installed snapd, but not enabled it, I see warning

snapd seems not to be installed or enabled. Snap packages will not be available

It would be helpful to distinguish between installed vs enabled, which is trivial in the common case of looking for snapd or the systemctl .service. Also 'started' is probably a better term than 'enabled', as enabled in systemctl means the service is part of the service list, but it can be stopped while enabled, and it will be started again on the next restart.

If found but not started, it would be helpful to remind the user to run systemctl start snapd, as many users forget systemctl syntax.

RPM package

Hello !
I am huge fun of your project. It will be very nice to see RPM packages for redhat base system and also opensuse.

Internet connection needed

Hi!

I'm running bauh (german version) on Manjaro and it worked well until today when it tells me on every search "Internet connection needed". I have a connection and I can ask buah to refresh the mirrors or synchronise the database without any problem. But I can't search for any new software...

If I use pacman through command line it runs without any problem!

Nix support

Nix is a awesome package manager who works on many linux distributions ! Bring a GUI like bauh would be a nice experience.

Resolution scalling

Hi Vinicius,

Firstly congratulations for fpakman / Bauh ! It's a great and very important tool. I just want to report that the interface isn't scalling very well on 4K screens. The image speaks for it self.

(Screenshot attached )

Captura de tela de 2019-08-13 23-29-27

[arch] Option to remove unnecessary dependencies

New 0.9.0 version is great, expecially arch repository support!

Is it possible to add pacman option for remove unnecessary dependencies when removing packages?

pacman -R [-s, --recursive]

This is currently only thing that keeps me from replacing pamac with bauh.

Thanks in advance

How To Remove

I installed bauh following the manual instructions and all seemed to work, it opened and ran.
After I closed it, it won't open again "no such file or directory".
I would just like to remove it, however that too seems to have a major issue.
$ pip3 uninstall bauh
Gives me several lines of exception errors
bauh-error.txt

No flatpak.yml

I have this issue on two systems, both Debian Unstable based. I am using bauh 0.8.1. Flatpak works fine, I see my installed flatpaks and can handle them in any way supported. The issue is that I don't have a flatpak.yml under ~/.config/bauh. There is config.yml, appimage.yml and web.yml.

Installed version of Flatpak is 1.6.0-1, Python is installed as ย 2.7.17 and 3.7.6. Bauh was installed per sudo pip3 install bauh. I rebooted both systems, but the file is still not there. What am I missing here?

FileNotFoundError: [Errno 2] No such file or directory: 'snap': 'snap' Aborted (core dumped)

If snap is not available, the error is not very user-friendly.

> bauh
which: no snap in (/usr/lib/python3.7:/home/jayvdb/perl5/bin:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/bin:/home/jayvdb/.avn/bin:/home/jayvdb/perl5/bin:/home/jayvdb/.sdkman/candidates/gradle/current/bin:/home/jayvdb/bin:/usr/local/bin:/usr/bin:/bin:/home/jayvdb/.local/bin:/home/jayvdb/.local/bin)
which: no snap in (/usr/lib/python3.7:/home/jayvdb/perl5/bin:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/bin:/home/jayvdb/.avn/bin:/home/jayvdb/perl5/bin:/home/jayvdb/.sdkman/candidates/gradle/current/bin:/home/jayvdb/bin:/usr/local/bin:/usr/bin:/bin:/home/jayvdb/.local/bin:/home/jayvdb/.local/bin)
which: no snap in (/usr/lib/python3.7:/home/jayvdb/perl5/bin:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/shims:/home/jayvdb/.asdf/bin:/home/jayvdb/.avn/bin:/home/jayvdb/perl5/bin:/home/jayvdb/.sdkman/candidates/gradle/current/bin:/home/jayvdb/bin:/usr/local/bin:/usr/bin:/bin:/home/jayvdb/.local/bin:/home/jayvdb/.local/bin)
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/bauh/view/qt/thread.py", line 412, in run
    warnings = self.man.list_warnings()
  File "/usr/lib/python3.7/site-packages/bauh/view/core/controller.py", line 318, in list_warnings
    man_warnings = man.list_warnings(internet_available=int_available)
  File "/usr/lib/python3.7/site-packages/bauh/gems/snap/controller.py", line 206, in list_warnings
    available, output = snap.is_api_available()
  File "/usr/lib/python3.7/site-packages/bauh/gems/snap/snap.py", line 235, in is_api_available
    for o in SimpleProcess(['snap', 'search']).instance.stdout:
  File "/usr/lib/python3.7/site-packages/bauh/commons/system.py", line 71, in __init__
    self.instance = self._new(final_cmd, cwd, global_interpreter, lang, stdin=pwdin)
  File "/usr/lib/python3.7/site-packages/bauh/commons/system.py", line 87, in _new
    return subprocess.Popen(cmd, **args)
  File "/usr/lib64/python3.7/subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.7/subprocess.py", line 1522, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'snap': 'snap'
Aborted (core dumped)

Tray Icon Choose and Official Repo Searching And Updater

I use Kalu (I dumped Pamac), but it seems like it's abandoned. It has a nice Arch tray icon. Now I'm testing Bauh and it's great! Could you add an option of we to choose the tray icon? Or maybe have more options of them?

Kalu watch for official repo and AUR updates. Could official repo searching and updating be added in the future? That way I would switch to Bauh definitely.

Anyway, thanks for your great app! :)

Windows resizing issues.

Posted to the Manjaro forums.
https://forum.manjaro.org/t/bauh-formerly-known-as-fpakman-a-gui-for-flatpak-and-snap-management/96180/105?u=sinister

It's very resize happy. When you select or deselect updates or Apps or whatever. It's constantly resizing itself which bothers me. I resized it to a size I wanted but selecting any of those makes it shrink to a tiny little window (Monitor is 2560x1440).

Perhaps it should respect the users resize?

Also, this might be harder to guess but I think the default size is quite small. Especially for the info it's presenting. Perhaps some a bit wider?

Thank you for your work and patience. :)

stuck at initialization

my bauh on Manjaro is stuck at 10% on refresing mirrors and 0% on syncing packages databases. Is there a way to fix this issue? I really like the new arch packages features so I don't want to disable it.

Error when installing Web app

Hey, when you try to install any Web app error in the console:

`Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/bauh/view/util/translation.py", line 19, in __getitem__
    return self.current.__getitem__(item)
KeyError: 'development'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/bauh/view/core/controller.py", line 238, in install
    return man.install(app, root_password, handler)
  File "/usr/lib/python3.8/site-packages/bauh/gems/web/controller.py", line 553, in install
    continue_install, install_options = self._ask_install_options(pkg, watcher)
  File "/usr/lib/python3.8/site-packages/bauh/gems/web/controller.py", line 383, in _ask_install_options
    cat_ops.extend([InputOption(label=self.i18n[c.lower()].capitalize(), value=c) for c in self.context.default_categories])
  File "/usr/lib/python3.8/site-packages/bauh/gems/web/controller.py", line 383, in <listcomp>
    cat_ops.extend([InputOption(label=self.i18n[c.lower()].capitalize(), value=c) for c in self.context.default_categories])
  File "/usr/lib/python3.8/site-packages/bauh/view/util/translation.py", line 22, in __getitem__
    return self.default.__getitem__(item)
KeyError: 'development'
`

I tried both vesiyu of AUR, and set via pik install.
System - Archlinux

Thanks! For the rest, a splendid and necessary tool, do not throw its development!

Install local appimage [Feature]

Sometimes we may run across cases that we need a certain app that is not in the AppImagehub repository for download (https://appimage.github.io/apps/), but just lists there.

Several examples like the app "TRuDI" ( i dont even know the use of the said app, but is a good example), that will not be shown in a search in Bauh, of course.

So i find the app there, and go to the git page of said app, download the appimage... now i dont really want to manage the appimage by myself, creating folders and stuff, so why not let Bauh manage it?

A "install local package" option would be great for such use-case.

Thanks for the attention.

No Flatpak remotes set. It will not be possible to search for Flatpak apps.

The snapd warning tells the user that they can disable snap in the Application types configuration. The warning for flatpak doesnt say that flatpak can also be disabled in the Application types config.

One possible way to streamline this user experience is to show the Application types window if any type isnt working correctly, and include the warning text on that window.

impossible install bauh error

`damien@damien-X756UV:~$ bauh_env/bin/pip install bauh
Collecting bauh
Using cached https://files.pythonhosted.org/packages/fc/f1/c85b9f78503f0653bb6d887cbf0eae8e6ea9c21f62cb72a7081e989472f5/bauh-0.8.5-py3-none-any.whl
Collecting requests>=2.18 (from bauh)
Using cached https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl
Collecting pyyaml>=3.13 (from bauh)
Using cached https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz
Collecting colorama>=0.3.8 (from bauh)
Using cached https://files.pythonhosted.org/packages/c9/dc/45cdef1b4d119eb96316b3117e6d5708a08029992b2fee2c143c7a0a5cc5/colorama-0.4.3-py2.py3-none-any.whl
Collecting pyqt5>=5.12 (from bauh)
Using cached https://files.pythonhosted.org/packages/4d/81/b9a66a28fb9a7bbeb60e266f06ebc4703e7e42b99e3609bf1b58ddd232b9/PyQt5-5.14.2.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.6/tokenize.py", line 452, in open
buffer = builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-5uqsiuq
/pyqt5/setup.py'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-5uqsiuq_/pyqt5/
`
Anybody have a solution?

slack has License: unset

The slack snap app shows "License: unset", which may mean it is literally text "unset" (not likely), but probably means there is no stated license, and the lack of a license probably means Proprietary. A blank value is probably better.

Install, manage & run Flatpak applications on standard user accounts

The best way to run bauh with AppImage is without sudo from a standard user account.
This way you install your AppImage applications locally and you can run them from bauh as a standard user (recommended).
Everything for Appimage runs now in bauh OK - there is no problem.

I wish that Flatpak in bauh would behave the same way.
At this moment you need sudo to install Flatpak (maybe you could run bauh as a standard user by tweaking policykit...).
Flatpak applications are therefore installed globally and launched from the bauh GUI under the root user.

It would be nice to have the option to install Flatpak locally under the standard user.
It is done by appending the option --user in the CLI.
For example:
flatpak install flathub org.mozilla.Thunderbird --user
At the same time running bauh as a standard user would launch Flatpak applications as a standard user (recommended :-).

app list for install isn't updating? (0.5.2-1)

or does it require manual intervention from dev?

for example: Skype, in the startup says version 8.51.0.72 is available.
when I try to install, it fails cause it can't find version 8.50.0.38.
And in the AUR there is available already skyforlinux-stable-bin version 8.53.0.85-1.

anyway the install failed with this:

flatpak install flathub com.skype.Client -y

Looking for matches?
com.skype.Client permissions:
ipc	network	pulseaudio	x11
devices	file access [1]	dbus access [2]	system dbus access [3]
[1] home:ro, xdg-download
[2] org.freedesktop.Notifications, org.freedesktop.secrets, org.gnome.GConf,
org.gtk.Notifications, org.kde.StatusNotifierWatcher
[3] org.bluez, org.freedesktop.NetworkManager, org.freedesktop.login1
1.	   	com.skype.Client	x86_64	stable	flathub	< 74.6?MB
Installing?                                                                   
Installing? ??                     8%
Installing? ??                     8%
Error: While downloading https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_8.50.0.38_amd64.deb: Server returned status 404: Not Found
error: Failed to install com.skype.Client: While downloading https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_8.50.0.38_amd64.deb: Server returned status 404: Not Found

Feature suggestion: Manually install AppImages

bauh does a great job managing non-builtin distribution packages, but an option to manually install them would be great. For example, AppImageLauncher conflicts with bauh regarding appimages, so it must be uninstalled for bauh to work properly, but then there is no way to easily integrate an appimage that isn't available in one of the bauh sources, or maybe install a different version.

An solution would be adding a menu option to manually install downloaded packages. Drag & drop support, both for the main window and icon, as well as support to open such files from the file manager (via mime-types, I guess), would be great.

Thanks again for the great work. Regards

Bauh closes when settings button is clicked

Wanted to try giving the web apps a go so I went to open the settings and when I click it bauh closes. This has happened on this release and the previous. I thought I'd wait for an update to see if that solved it but it did not.

I'm on 0.8.3-1.
Linux T450 5.4.18-1-MANJARO #1 SMP PREEMPT Thu Feb 6 11:41:30 UTC 2020 x86_64 GNU/Linux

Happy to run/do any debugging needed, but you'll have to explain how :-)

Invalid script entry point

Got this error for pip3 install bauh on Ubuntu 19.04, any ideas?

Successfully built bauh
Installing collected packages: colorama, PyQt5-sip, pyqt5, requests, bauh
Invalid script entry point: <ExportEntry bauh = bauh.app:None []> for req: bauh - A callable suffix is required. Cf https://packaging.python.org/en/latest/distributing.html#console-scripts for more information.
$ apt show python3-pip
Version: 18.1-5
Maintainer: Ubuntu Developers <[email protected]>
$ snap version
kernel  5.0.0-27-generic

Bauh python 3.8

I have an issue with bauh after an update of Manjaro, that has updated Python from 3.7 to 3.8.
When I do an upgrade in bauh to update an AUR package, I have this message

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/bauh/view/util/translation.py", line 17, in __getitem__
    return self.current.__getitem__(item)
KeyError: 'arch.downloading.package'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/bauh/view/qt/thread.py", line 97, in run
    success = bool(self.manager.update(app.model, self.root_password, self))
  File "/usr/lib/python3.8/site-packages/bauh/view/core/controller.py", line 220, in update
    return man.update(app, root_password, handler)
  File "/usr/lib/python3.8/site-packages/bauh/gems/arch/controller.py", line 243, in update
    return self.install(pkg=pkg, root_password=root_password, watcher=watcher, skip_optdeps=True)
  File "/usr/lib/python3.8/site-packages/bauh/gems/arch/controller.py", line 663, in install
    res = self._install_from_aur(pkg.name, pkg.maintainer, root_password, ProcessHandler(watcher), dependency=False, skip_optdeps=skip_optdeps)
  File "/usr/lib/python3.8/site-packages/bauh/gems/arch/controller.py", line 636, in _install_from_aur
    handler.watcher.change_substatus('{} {}'.format(self.i18n['arch.downloading.package'], bold(file_name)))
  File "/usr/lib/python3.8/site-packages/bauh/view/util/translation.py", line 20, in __getitem__
    return self.default.__getitem__(item)
KeyError: 'arch.downloading.package'
Abandon (core dumped)

I don't know what to doโ€ฆ

WhatsApp web app (bauh) only works after fresh installation

First of all, thanks a lot for this incredible tool. I was able to install it on Pop!_OS 19.10 after some trials (it was missing some deb packages, as well as some other for Python that needed to be installed using pip3 instead of pip), and it is great! I didn't want to use flatpacks on Pop because they would not be integrated properly with the user interface (automatic .desktop file creation, GUI management, etc) and bauh handled these very nicely!

After adding sqlt3 packaged for AppImages and the other dependencies for web apps using pip3, I could install the web app for WhatsApp, both by using the search and typing the URL, but it worked only after the fresh installation. If I quit the app completely then it will not load any more and it will show a message that it requires Chrome 49+. Is this a known limitation? Can it be fixed?

Thanks again, it is a great utility for Manjaro and other distros!
Regards

Bauh not starting

When I try to start bauh I get this error:
Traceback (most recent call last): File "/usr/bin/bauh", line 11, in <module> load_entry_point('bauh==0.8.5', 'console_scripts', 'bauh')() File "/usr/lib/python3.8/site-packages/bauh/app.py", line 46, in main i18n_key, current_i18n = translation.get_locale_keys(local_config['locale']) File "/usr/lib/python3.8/site-packages/bauh/view/util/translation.py", line 64, in get_locale_keys if current_locale == name or current_locale.startswith(name + '_'): AttributeError: 'NoneType' object has no attribute 'startswith'
I installed bauh from the AUR and it didn't work. I then tried to install using pip with the same result

ModuleNotFoundError: No module named 'pip'

this error occured while trying to upgrade Bauh 0.90

bauh_env/bin/pip install bauh --upgrade
Traceback (most recent call last):
File "bauh_env/bin/pip", line 6, in
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'

Problems when installing WebApps.

Hello.
When installing a Web-based application I'm encountering some issues.
I have tried to install two WebApps: Telegram & GMail.

Here are the logs:
Telegram:
https://pastebin.com/WdetT67P & https://pastebin.com/G7mf1R1X
GMail:
https://pastebin.com/0m2Tw4eY & https://pastebin.com/0FG62HBg

The OS is openSUSE Tumbleweed. I have followed the installation guide & turned it into a script for future reference, maybe I forgot about something?
Here it is: https://pastebin.com/cLzMYnWC

Should I provide anything else?
Thank You.

Snap apps disappear when changing styles

When I switch from Style: Fusion to Style: gtk2 or Windows, the snaps would disappear after the restart.
Switching again to Style: Fusion and the snap apps appear again.

It feels like something is wrong with the restart logic.

My process tree would look like

31479 pts/0    Sl     0:03 /usr/bin/python3 /usr/bin/bauh
31515 pts/0    S      0:00  \_ /usr/bin/python3 /usr/bin/bauh
31552 pts/0    Z      0:00  \_ [snap] <defunct>

Sometimes only two of the snaps would appear in the list.

When the snaps disappear, the gtk2 and Windows style windows did not include the Type: selector, probably because I then only had one type remaining: AppImage.

Support Protected Content in Web Apps (Widevine)

If I create a standalone web app for netflix.com or primevideo.com, for example, video does not play due to the lack of widevine. In my system (Arch) the package chromium-widevine is installed from the AUR and works fine with qutebrowser. Is there a posibility of doing the same for web apps created by bauh ?

Application types window Exit button

Throughout the app there are no Close or Exit window buttons, except on the Application types window, and it uses "Exit" instead of the more usual "Close". The button doesnt exit the app, which is what "Exit" buttons usually do.

fre:ac AppImage installs aarch64 instead of x86_64

I'm attempting to install the fre:ac application using the GUI of bauh.

fre:ac is listed as an AppImage, but when I try to install, it retrieves the aarch64 version of the AppImage from GitHub instead of the x86_64. Of course this fails to execute on my system before the installation finishes.

Relevant log which I retrieved from /tmp/bauh/web/install/fre:ac/:

wget https://github.com/enzo1982/freac/releases/download/continuous/freac-continuous-linux-aarch64.AppImage --continue --retry-connrefused --tries=10 --no-config -O /home/user/.local/share/bauh/appimage/installed/fre:ac/freac-continuous-linux-aarch64.AppImage

--2020-02-16 17:39:29--  https://github.com/enzo1982/freac/releases/download/continuous/freac-continuous-linux-aarch64.AppImage
{snipped for brevity}
14650K .......... .........                                  100%  186M=1.2s
2020-02-16 17:39:31 (11.7 MB/s) - '/home/user/.local/share/bauh/appimage/installed/fre:ac/freac-continuous-linux-aarch64.AppImage' saved [15021232/15021232]

chmod a+x /home/user/.local/share/bauh/appimage/installed/fre:ac/freac-continuous-linux-aarch64.AppImage

rm -rf /home/user/.local/share/bauh/appimage/installed/fre:ac

The error that pops up in the GUI is as follows:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/bauh/gems/appimage/controller.py", line 314, in install
    res, output = handler.handle_simple(SimpleProcess([file_path, '--appimage-extract'], cwd=out_dir))
  File "/usr/lib/python3.8/site-packages/bauh/commons/system.py", line 77, in __init__
    self.instance = self._new(final_cmd, cwd, global_interpreter, lang, stdin=pwdin, extra_paths=extra_paths)
  File "/usr/lib/python3.8/site-packages/bauh/commons/system.py", line 93, in _new
    return subprocess.Popen(cmd, **args)
  File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1702, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/home/user/.local/share/bauh/appimage/installed/fre:ac/freac-continuous-linux-aarch64.AppImage'

If I manually download the x86_64 it works of course, but then it's not registered by bauh :(

Lastly I want to say I love this application :) Makes my life a ton easier ๐Ÿ‘

Text too tiny

I'm on manjaro x64 cinnamon and bauh doesn't load the system defaults or least doesn't honor them, everything else in my system loads fine so I think it's just bauh that's misbehaving, there is a ~/.cinnamon folder so there should also be docs relating to that to help you quick fix it

Problems with running snaps

Via CLI:
With sudo snap install snaps are being installed properly & are working fine.
Via Bauh:
I can install & remove snaps, but the button to open them is grayed out for both NORMAL & ROOT users. It's grayed out for all snaps.

Honestly, I have no idea what kind of logs would be useful here.
Zrzut ekranu z 2020-02-14 22-47-20

Web Apps separate Icons for Launcher and Instance in Gnome

As you can see in the screenshot, web apps make, unlike all other apps, two separate icons. One for the launcher, and one for the instance. They don't use the same Icon too. The launcher uses the customized icon, the instance that one which is grabbed from the website.

Bildschirmfoto von 2020-03-05 09-26-35

Use native authentication dialog

Instead of showing a simple qt dialog asking for the password, consider using the command pkexec to run the installation command as root. pkexec will show a native window asking the user password and will then execute the command passed as the argument. For example pkexec bash should open a window asking for the password and then should run bash.

By native i mean in gnome it will show a different dialog than in kde.

Thank you for your work in any case.

Suggestion: add support for OBS, COPR and maybe PPAs?

Hello.

Since You have already started supporting AUR, then maybe it would be nice to also include OBS, COPR and maybe PPAs?

Open Build Service (OBS - https://en.opensuse.org/Portal:Build_Service) is an openSUSE thing to build and manage software. It's main site is here: (https://build.opensuse.org/), but there is also a web-based frontend for users here: (https://software.opensuse.org/explore) - would be nice to have it as an installable WebApp.
They also have a few CLI-based tools:
osc for developers & opi and zyp for users.
osc: https://en.opensuse.org/openSUSE:OSC
opi: https://github.com/openSUSE-zh/opi
zyp: https://build.opensuse.org/package/show/home:simonizor:zyp/zyp

Cool Other Projects Repository (COPR) is from Fedora. I don't know much about it, but I will give You a link to the wiki page: https://fedoraproject.org/wiki/Category:Copr

Personal Private Archive (PPA) is from Ubuntu and honestly this one would be the hardest to implement, because PPAs are basically scattered around the internet. I know there is Launchpad (https://launchpad.net/), so maybe this could help.

Thank You for Your work!
Have a good day/night! ๐Ÿ˜€

/snap/bin was not found in your $PATH

After installing a snap app, I get the following warning in the console.

Warning: /snap/bin was not found in your $PATH. If you've not restarted your session since you installed snapd, try doing that. Please see https://forum.snapcraft.io/t/9469 for more details.

That probably should have been done by some part of the snap install, however it is something that maybe bauh can help users do. https://pypi.org/project/userpath/ is a nice tool for adding items to the user scripts to add entries to PATH.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.