diff --git a/README.md b/README.md index 65efaf02..58153899 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ ## bauh -Non-official graphical user interface for Flatpak / Snap application management (old **fpakman**). It is a tray icon that let the user known when new updates are available and -an application management panel where you can search, update, install and uninstall applications. +Graphical user interface to manage your Linux applications (packages) (old **fpakman**). It currently only supports Flatpak and Snaps packaging types. When you launch **bauh** you will see +a management panel where you can search, update, install and uninstall applications. You can also downgrade some apps depending on the package type. + +It has a **tray mode** (see **Settings** below) that attaches the application icon to the system tray providing a quick way to launch it. Also the icon will get red when updates are available. + ### Developed with: - Python3 and Qt5. @@ -20,7 +23,7 @@ an application management panel where you can search, update, install and uninst ### Distribution **PyPi** ``` -sudo pip3 install bauh +pip3 install bauh ``` **AUR** @@ -54,6 +57,7 @@ You can change some application settings via environment variables or arguments - **BAUH_CHECK_PACKAGING_ONCE**: If the available supported packaging types should be checked ONLY once. It improves the application speed if enabled, but can generate errors if you uninstall any packaging technology while using it, and every time a supported packaging type is installed it will only be available after a restart. Use **0** (disable, default) or **1** (enable). - **BAUH_TRAY**: If the tray icon and update-check daemon should be created. Use **0** (disable, default) or **1** (enable). - **BAUH_SUGGESTIONS**: If application suggestions should be displayed if no app is installed (runtimes do not count as apps). Use **0** (disable) or **1** (enable, default). +- **BAUH_THEME**: ### How to improve the application performance - If you don't care about a specific packaging technology and don't want the app to deal with it, just disable it via the specific argument or environment variable. For instance, if I don't care diff --git a/bauh/__init__.py b/bauh/__init__.py index cc332ec7..a8ad29c4 100644 --- a/bauh/__init__.py +++ b/bauh/__init__.py @@ -1,4 +1,4 @@ -__version__ = '0.5.1' +__version__ = '0.5.2' __app_name__ = 'bauh' import os diff --git a/bauh/app.py b/bauh/app.py index b0359e23..287ee18a 100755 --- a/bauh/app.py +++ b/bauh/app.py @@ -47,6 +47,7 @@ parser.add_argument('--snap', action="store", default=os.getenv('BAUH_SNAP', 1), parser.add_argument('-co', '--check-packaging-once', action="store", default=os.getenv('BAUH_CHECK_PACKAGING_ONCE', 0), choices=[0, 1], type=int, help='If the available supported packaging types should be checked ONLY once. It improves the application speed if enabled, but can generate errors if you uninstall any packaging technology while using it, and every time a supported packaging type is installed it will only be available after a restart. Default: %(default)s') parser.add_argument('--tray', action="store", default=os.getenv('BAUH_TRAY', 0), choices=[0, 1], type=int, help='If the tray icon and update-check daemon should be created. Default: %(default)s') parser.add_argument('--sugs', action="store", default=os.getenv('BAUH_SUGGESTIONS', 1), choices=[0, 1], type=int, help='If app suggestions should be displayed if no app is installed (runtimes do not count as apps). Default: %(default)s') +parser.add_argument('--theme', action="store", default=os.getenv('BAUH_THEME'), type=str, help='Define a custom QT theme (style) for the application. If not defined, it will be using breeze or fusion depending on your desktop environment') args = parser.parse_args() if args.cache_exp < 0: @@ -118,6 +119,12 @@ app.setApplicationName(__app_name__) app.setApplicationVersion(__version__) app.setWindowIcon(QIcon(resource.get_path('img/logo.svg'))) + +if args.theme: + app.setStyle(args.theme) +elif not app.style().objectName().lower() not in {'fusion', 'breeze'}: + app.setStyle('fusion') + screen_size = app.primaryScreen().size() manage_window = ManageWindow(locale_keys=locale_keys, diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index 1ce4d484..6c9c623a 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -517,11 +517,20 @@ class ManageWindow(QWidget): filters_layout.addWidget(checkbox_app_type) def resize_and_center(self, accept_lower_width: bool = True): - new_width = reduce(operator.add, [self.table_apps.columnWidth(i) for i in range(len(self.table_apps.column_names))]) * 1.05 + if self.apps: + new_width = reduce(operator.add, [self.table_apps.columnWidth(i) for i in range(self.table_apps.columnCount())]) + + if self.ref_bt_upgrade.isVisible(): + new_width *= 1.07 + else: + new_width = self.toolbar_top.width() if accept_lower_width or new_width > self.width(): self.resize(new_width, self.height()) + if self.ref_bt_upgrade.isVisible() and self.bt_upgrade.visibleRegion().isEmpty(): + self.adjustSize() + self.centralize() def update_selected(self):