better app name matching for GNOME resources on linux, better app name display in OSX, auto hide menu bar for new html windows

This commit is contained in:
Egor 2025-09-25 01:52:33 -07:00
parent f117c14869
commit a21857dfb6
4 changed files with 128 additions and 128 deletions

View file

@ -176,45 +176,50 @@ jobs:
- name: Generate PKGBUILD
run: |
cat > PKGBUILD << 'EOF'
# Maintainer: ${{ steps.release_info.outputs.author_name }} <${{ steps.release_info.outputs.author_email }}>
pkgname=gerbil
pkgver=${{ steps.release_info.outputs.version }}
pkgrel=${{ inputs.pkgrel || '1' }}
pkgdesc="Run Large Language Models locally"
arch=('x86_64')
url="https://github.com/lone-cloud/gerbil"
license=('AGPL-3.0-or-later')
depends=('gtk3' 'nss')
optdepends=('alsa-lib: Audio support for sound effects'
# Maintainer: ${{ steps.release_info.outputs.author_name }} <${{ steps.release_info.outputs.author_email }}>
pkgname=gerbil
pkgver=${{ steps.release_info.outputs.version }}
pkgrel=${{ inputs.pkgrel || '1' }}
pkgdesc="Run Large Language Models locally"
arch=('x86_64')
url="https://github.com/lone-cloud/gerbil"
license=('AGPL-3.0-or-later')
depends=('gtk3' 'nss')
optdepends=('alsa-lib: Audio support for sound effects'
'libxss: Screen saver detection support')
provides=('gerbil')
conflicts=('gerbil-git')
source=("gerbil-${pkgver}.AppImage::${{ steps.release_info.outputs.appimage_url }}"
provides=('gerbil')
conflicts=('gerbil-git')
source=("gerbil-${pkgver}.AppImage::${{ steps.release_info.outputs.appimage_url }}"
"gerbil.desktop::https://github.com/lone-cloud/gerbil/releases/download/${{ steps.release_info.outputs.tag }}/gerbil.desktop"
"LICENSE::https://github.com/lone-cloud/gerbil/releases/download/${{ steps.release_info.outputs.tag }}/LICENSE")
sha256sums=('${{ steps.sha_calc.outputs.sha256_appimage }}'
sha256sums=('${{ steps.sha_calc.outputs.sha256_appimage }}'
'${{ steps.sha_calc.outputs.sha256_desktop }}'
'${{ steps.sha_calc.outputs.sha256_license }}')
prepare() {
prepare() {
chmod +x "gerbil-${pkgver}.AppImage"
"./gerbil-${pkgver}.AppImage" --appimage-extract
}
}
package() {
package() {
# Install the application
install -dm755 "${pkgdir}/opt/gerbil"
cp -r squashfs-root/* "${pkgdir}/opt/gerbil/"
# Rename main binary to lowercase for consistency
if [ -f "${pkgdir}/opt/gerbil/Gerbil" ]; then
mv "${pkgdir}/opt/gerbil/Gerbil" "${pkgdir}/opt/gerbil/gerbil"
fi
# Fix permissions on extracted files
chmod -R 755 "${pkgdir}/opt/gerbil/"
# Create executable wrapper
install -dm755 "${pkgdir}/usr/bin"
cat > "${pkgdir}/usr/bin/gerbil" << 'WRAPPER'
#!/bin/bash
exec "/opt/gerbil/Gerbil" "$@"
WRAPPER
#!/bin/bash
exec "/opt/gerbil/gerbil" "$@"
WRAPPER
chmod +x "${pkgdir}/usr/bin/gerbil"
# Install desktop file and license
@ -247,7 +252,7 @@ jobs:
# Bash completion
cat > "${pkgdir}/usr/share/bash-completion/completions/gerbil" << 'BASH_COMP'
_gerbil() {
_gerbil() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
@ -264,15 +269,15 @@ jobs:
return 0
;;
esac
}
complete -F _gerbil gerbil
BASH_COMP
}
complete -F _gerbil gerbil
BASH_COMP
# Zsh completion
cat > "${pkgdir}/usr/share/zsh/site-functions/_gerbil" << 'ZSH_COMP'
#compdef gerbil
#compdef gerbil
_gerbil() {
_gerbil() {
local context state line
_arguments -C \
@ -295,12 +300,12 @@ jobs:
esac
;;
esac
}
}
_gerbil "$@"
ZSH_COMP
}
EOF
_gerbil "$@"
ZSH_COMP
}
EOF
- name: Create .SRCINFO
run: |

View file

@ -1,7 +1,7 @@
{
"name": "gerbil",
"productName": "Gerbil",
"version": "1.5.3",
"version": "1.5.4",
"description": "Run Large Language Models locally",
"main": "out/main/index.js",
"homepage": "./",
@ -165,14 +165,6 @@
"compression": "store",
"category": "Utility",
"icon": "src/assets/icon.png",
"desktop": {
"entry": {
"Name": "Gerbil",
"Comment": "Run Large Language Models locally",
"Categories": "Utility;",
"StartupWMClass": "Gerbil"
}
},
"extraFiles": [
{
"from": "assets/gerbil.desktop",

View file

@ -16,11 +16,13 @@ import { stopFrontend as stopOpenWebUI } from '@/main/modules/openwebui';
import { stopFrontend as stopComfyUI } from '@/main/modules/comfyui';
import { setupIPCHandlers } from '@/main/ipc';
import { ensureDir } from '@/utils/node/fs';
import { PRODUCT_NAME } from '@/constants';
export async function initializeApp() {
const installDir = getInstallDir();
await app.whenReady();
app.setName(PRODUCT_NAME);
await initializeConfig();
await ensureDir(installDir);

View file

@ -142,6 +142,7 @@ export function createMainWindow() {
: join(__dirname, '../../assets/icon.png'),
title: PRODUCT_NAME,
backgroundColor: getBackgroundColor(),
autoHideMenuBar: true,
},
}));