mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
[api] refactoring: .desktop files are now installed at /usr/share/applications for the root user
This commit is contained in:
@@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- configuration: `/etc/bauh`
|
- configuration: `/etc/bauh`
|
||||||
- temp dir: `/tmp/bauh@root` (`/tmp/bauh@$USER` for non root users)
|
- temp dir: `/tmp/bauh@root` (`/tmp/bauh@$USER` for non root users)
|
||||||
- autostart: `/etc/xdg/autostart` (only used by the Web gem at the moment)
|
- autostart: `/etc/xdg/autostart` (only used by the Web gem at the moment)
|
||||||
|
- desktop entries: `/usr/share/applications`
|
||||||
- custom themes: `/usr/share/bauh/themes`
|
- custom themes: `/usr/share/bauh/themes`
|
||||||
|
|
||||||
- UI
|
- UI
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ rm -rf bauh_env` (just remove the directory)
|
|||||||
|
|
||||||
To create a shortcut for bauh on your desktop menu:
|
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`
|
- 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`)
|
- 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/master/bauh/view/resources/img/logo.svg) to `/usr/share/icons/hicolor/scalable/apps` as `bauh.svg`
|
- Copy [logo.svg](https://raw.githubusercontent.com/vinifmor/bauh/master/bauh/view/resources/img/logo.svg) to `/usr/share/icons/hicolor/scalable/apps` as `bauh.svg`
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ bauh is officially distributed through [PyPi](https://pypi.org/project/bauh) and
|
|||||||
- `Update database`: manually synchronize the AppImage database
|
- `Update database`: manually synchronize the AppImage database
|
||||||
|
|
||||||
- Installed applications are store at `~/.local/share/bauh/appimage/installed`
|
- Installed applications are store at `~/.local/share/bauh/appimage/installed`
|
||||||
- Desktop entries (menu shortcuts) of the installed applications are stored at **~/.local/share/applications** (name pattern: `bauh_appimage_appname.desktop`)
|
- 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**. 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`)
|
- Symlinks are created at **~/.local/bin**. 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** as **apps.db** and **releases.db**
|
- Downloaded database files are stored at **~/.cache/bauh/appimage** as **apps.db** and **releases.db**
|
||||||
- Databases are updated during the initialization process if they are considered outdated
|
- Databases are updated during the initialization process if they are considered outdated
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from bauh.api import user
|
|||||||
CACHE_DIR = f'/var/cache/{__app_name__}' if user.is_root() else f'{Path.home()}/.cache/{__app_name__}'
|
CACHE_DIR = f'/var/cache/{__app_name__}' if user.is_root() else f'{Path.home()}/.cache/{__app_name__}'
|
||||||
CONFIG_DIR = f'/etc/{__app_name__}' if user.is_root() else f'{Path.home()}/.config/{__app_name__}'
|
CONFIG_DIR = f'/etc/{__app_name__}' if user.is_root() else f'{Path.home()}/.config/{__app_name__}'
|
||||||
USER_THEMES_DIR = f'/usr/share/{__app_name__}/themes' if user.is_root() else f'{Path.home()}/.local/share/{__app_name__}/themes'
|
USER_THEMES_DIR = f'/usr/share/{__app_name__}/themes' if user.is_root() else f'{Path.home()}/.local/share/{__app_name__}/themes'
|
||||||
DESKTOP_ENTRIES_DIR = '{}/.local/share/applications'.format(str(Path.home()))
|
DESKTOP_ENTRIES_DIR = '/usr/share/applications' if user.is_root() else f'{Path.home()}/.local/share/applications'
|
||||||
TEMP_DIR = f'/tmp/{__app_name__}@{getuser()}'
|
TEMP_DIR = f'/tmp/{__app_name__}@{getuser()}'
|
||||||
LOGS_DIR = f'{TEMP_DIR}/logs'
|
LOGS_DIR = f'{TEMP_DIR}/logs'
|
||||||
AUTOSTART_DIR = f'/etc/xdg/autostart' if user.is_root() else f'{Path.home()}/.config/autostart'
|
AUTOSTART_DIR = f'/etc/xdg/autostart' if user.is_root() else f'{Path.home()}/.config/autostart'
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ APPIMAGE_CACHE_DIR = f'{CACHE_DIR}/appimage'
|
|||||||
DATABASE_APPS_FILE = f'{APPIMAGE_CACHE_DIR}/apps.db'
|
DATABASE_APPS_FILE = f'{APPIMAGE_CACHE_DIR}/apps.db'
|
||||||
DATABASE_RELEASES_FILE = f'{APPIMAGE_CACHE_DIR}/releases.db'
|
DATABASE_RELEASES_FILE = f'{APPIMAGE_CACHE_DIR}/releases.db'
|
||||||
DATABASES_TS_FILE = f'{APPIMAGE_CACHE_DIR}/dbs.ts'
|
DATABASES_TS_FILE = f'{APPIMAGE_CACHE_DIR}/dbs.ts'
|
||||||
DESKTOP_ENTRIES_PATH = '{}/.local/share/applications'.format(str(Path.home()))
|
|
||||||
SUGGESTIONS_CACHED_FILE = f'{APPIMAGE_CACHE_DIR}/suggestions.txt'
|
SUGGESTIONS_CACHED_FILE = f'{APPIMAGE_CACHE_DIR}/suggestions.txt'
|
||||||
SUGGESTIONS_CACHED_TS_FILE = f'{APPIMAGE_CACHE_DIR}/suggestions.ts'
|
SUGGESTIONS_CACHED_TS_FILE = f'{APPIMAGE_CACHE_DIR}/suggestions.ts'
|
||||||
DOWNLOAD_DIR = f'{TEMP_DIR}/appimage/download'
|
DOWNLOAD_DIR = f'{TEMP_DIR}/appimage/download'
|
||||||
|
|||||||
@@ -23,13 +23,14 @@ from bauh.api.abstract.model import SoftwarePackage, PackageHistory, PackageUpda
|
|||||||
SuggestionPriority, CustomSoftwareAction
|
SuggestionPriority, CustomSoftwareAction
|
||||||
from bauh.api.abstract.view import MessageType, ViewComponent, FormComponent, InputOption, SingleSelectComponent, \
|
from bauh.api.abstract.view import MessageType, ViewComponent, FormComponent, InputOption, SingleSelectComponent, \
|
||||||
SelectViewType, TextInputComponent, PanelComponent, FileChooserComponent, ViewObserver
|
SelectViewType, TextInputComponent, PanelComponent, FileChooserComponent, ViewObserver
|
||||||
|
from bauh.api.paths import DESKTOP_ENTRIES_DIR
|
||||||
from bauh.commons import resource
|
from bauh.commons import resource
|
||||||
from bauh.commons.boot import CreateConfigFile
|
from bauh.commons.boot import CreateConfigFile
|
||||||
from bauh.commons.html import bold
|
from bauh.commons.html import bold
|
||||||
from bauh.commons.system import SystemProcess, new_subprocess, ProcessHandler, run_cmd, SimpleProcess
|
from bauh.commons.system import SystemProcess, new_subprocess, ProcessHandler, run_cmd, SimpleProcess
|
||||||
from bauh.gems.appimage import query, INSTALLATION_PATH, LOCAL_PATH, ROOT_DIR, \
|
from bauh.gems.appimage import query, INSTALLATION_PATH, LOCAL_PATH, ROOT_DIR, \
|
||||||
APPIMAGE_CONFIG_DIR, UPDATES_IGNORED_FILE, util, get_default_manual_installation_file_dir, DATABASE_APPS_FILE, \
|
APPIMAGE_CONFIG_DIR, UPDATES_IGNORED_FILE, util, get_default_manual_installation_file_dir, DATABASE_APPS_FILE, \
|
||||||
DATABASE_RELEASES_FILE, DESKTOP_ENTRIES_PATH, APPIMAGE_CACHE_DIR, get_icon_path, DOWNLOAD_DIR
|
DATABASE_RELEASES_FILE, APPIMAGE_CACHE_DIR, get_icon_path, DOWNLOAD_DIR
|
||||||
from bauh.gems.appimage.config import AppImageConfigManager
|
from bauh.gems.appimage.config import AppImageConfigManager
|
||||||
from bauh.gems.appimage.model import AppImage
|
from bauh.gems.appimage.model import AppImage
|
||||||
from bauh.gems.appimage.util import replace_desktop_entry_exec_command
|
from bauh.gems.appimage.util import replace_desktop_entry_exec_command
|
||||||
@@ -657,7 +658,7 @@ class AppImageManager(SoftwareManager):
|
|||||||
if not de_content:
|
if not de_content:
|
||||||
de_content = pkg.to_desktop_entry()
|
de_content = pkg.to_desktop_entry()
|
||||||
|
|
||||||
Path(DESKTOP_ENTRIES_PATH).mkdir(parents=True, exist_ok=True)
|
Path(DESKTOP_ENTRIES_DIR).mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
with open(self._gen_desktop_entry_path(pkg), 'w+') as f:
|
with open(self._gen_desktop_entry_path(pkg), 'w+') as f:
|
||||||
f.write(de_content)
|
f.write(de_content)
|
||||||
@@ -678,9 +679,8 @@ class AppImageManager(SoftwareManager):
|
|||||||
handler.handle(SystemProcess(new_subprocess(['rm', '-rf', out_dir])))
|
handler.handle(SystemProcess(new_subprocess(['rm', '-rf', out_dir])))
|
||||||
return TransactionResult.fail()
|
return TransactionResult.fail()
|
||||||
|
|
||||||
|
|
||||||
def _gen_desktop_entry_path(self, app: AppImage) -> str:
|
def _gen_desktop_entry_path(self, app: AppImage) -> str:
|
||||||
return '{}/bauh_appimage_{}.desktop'.format(DESKTOP_ENTRIES_PATH, app.get_clean_name())
|
return f'{DESKTOP_ENTRIES_DIR}/bauh_appimage_{app.get_clean_name()}.desktop'
|
||||||
|
|
||||||
def is_enabled(self) -> bool:
|
def is_enabled(self) -> bool:
|
||||||
return self.enabled
|
return self.enabled
|
||||||
|
|||||||
Reference in New Issue
Block a user