mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-01-11 07:19:44 -05:00
Snap: fix theming (#3057)
Use gtk3 file chooser dialogs, mouse coursor theme if available and force fallback icon theme, fixes issue #2966
This commit is contained in:
parent
d3a53a702e
commit
a2caa31eca
11
snap/local/launchers/README.md
Normal file
11
snap/local/launchers/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# /snap/local/launchers
|
||||||
|
Here are the launchers, or wrapper programs to deal with some runtime-fixable problems for the snapped applications, like setting proper environmental variables in snap.
|
||||||
|
|
||||||
|
In convention launchers are named _something_-launch, for dealing certain problem with _something_, and usually can be called in a stacked manner to consolidate their modifications.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apps:
|
||||||
|
_app_name_:
|
||||||
|
command: foo-launch bar-launch _app_command_
|
||||||
|
```
|
||||||
|
|
14
snap/local/launchers/gtk3-env-launch
Executable file
14
snap/local/launchers/gtk3-env-launch
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# This is the maintainence launcher for the snap, make necessary runtime environment changes to make the snap work here. You may also insert security confinement/deprecation/obsoletion notice of the snap here.
|
||||||
|
|
||||||
|
set \
|
||||||
|
-o errexit \
|
||||||
|
-o errtrace \
|
||||||
|
-o nounset \
|
||||||
|
-o pipefail
|
||||||
|
|
||||||
|
# gtk-common-themes support
|
||||||
|
export QT_QPA_PLATFORMTHEME=gtk3
|
||||||
|
|
||||||
|
# Finally run the next part of the command chain
|
||||||
|
exec "${@}"
|
@ -9,15 +9,27 @@ description: |
|
|||||||
confinement: strict
|
confinement: strict
|
||||||
base: core18
|
base: core18
|
||||||
|
|
||||||
plugs:
|
plugs: # plugs for theming, font settings, cursor and to use gtk3 file chooser
|
||||||
icon-themes: # fix mouse cursor theme
|
gtk-3-themes:
|
||||||
|
interface: content
|
||||||
|
target: $SNAP/data-dir/themes
|
||||||
|
default-provider: gtk-common-themes:gtk-3-themes
|
||||||
|
icon-themes:
|
||||||
interface: content
|
interface: content
|
||||||
target: $SNAP/data-dir/icons
|
target: $SNAP/data-dir/icons
|
||||||
default-provider: gtk-common-themes
|
default-provider: gtk-common-themes:icon-themes
|
||||||
|
sound-themes:
|
||||||
|
interface: content
|
||||||
|
target: $SNAP/data-dir/sounds
|
||||||
|
default-provider: gtk-common-themes:sounds-themes
|
||||||
|
|
||||||
apps:
|
apps:
|
||||||
keepassxc:
|
keepassxc:
|
||||||
command: desktop-launch keepassxc
|
adapter: full
|
||||||
|
command: usr/bin/keepassxc -style fusion
|
||||||
|
command-chain:
|
||||||
|
- bin/desktop-launch
|
||||||
|
- bin/gtk3-env-launch
|
||||||
plugs: [unity7, x11, opengl, gsettings, home, network, network-bind, removable-media, raw-usb, wayland, desktop-legacy, desktop]
|
plugs: [unity7, x11, opengl, gsettings, home, network, network-bind, removable-media, raw-usb, wayland, desktop-legacy, desktop]
|
||||||
desktop: usr/share/applications/org.keepassxc.KeePassXC.desktop
|
desktop: usr/share/applications/org.keepassxc.KeePassXC.desktop
|
||||||
environment:
|
environment:
|
||||||
@ -73,7 +85,7 @@ parts:
|
|||||||
- libquazip5-1
|
- libquazip5-1
|
||||||
- libusb-1.0-0
|
- libusb-1.0-0
|
||||||
- qtwayland5
|
- qtwayland5
|
||||||
- qt5-style-plugins # for mouse cursor theme fix
|
- qt5-gtk-platformtheme # for theming, font settings, cursor and to use gtk3 file chooser
|
||||||
override-build: |
|
override-build: |
|
||||||
snapcraftctl build
|
snapcraftctl build
|
||||||
sed -i 's|Icon=keepassxc|Icon=${SNAP}/usr/share/icons/hicolor/256x256/apps/keepassxc.png|g' $SNAPCRAFT_PART_INSTALL/usr/share/applications/org.keepassxc.KeePassXC.desktop
|
sed -i 's|Icon=keepassxc|Icon=${SNAP}/usr/share/icons/hicolor/256x256/apps/keepassxc.png|g' $SNAPCRAFT_PART_INSTALL/usr/share/applications/org.keepassxc.KeePassXC.desktop
|
||||||
@ -83,6 +95,14 @@ parts:
|
|||||||
- -opt
|
- -opt
|
||||||
after: [desktop-qt5]
|
after: [desktop-qt5]
|
||||||
|
|
||||||
|
launchers: # custom launcher to set QT_QPA_PLATFORMTHEME=gtk3 correctly
|
||||||
|
source: snap/local/launchers
|
||||||
|
plugin: dump
|
||||||
|
organize:
|
||||||
|
'*': bin/
|
||||||
|
stage:
|
||||||
|
- -bin/README.*
|
||||||
|
|
||||||
desktop-qt5:
|
desktop-qt5:
|
||||||
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
|
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
|
||||||
source-subdir: qt
|
source-subdir: qt
|
@ -85,6 +85,12 @@ namespace Bootstrap
|
|||||||
bootstrap();
|
bootstrap();
|
||||||
MessageBox::initializeButtonDefs();
|
MessageBox::initializeButtonDefs();
|
||||||
|
|
||||||
|
#ifdef KEEPASSXC_DIST_SNAP
|
||||||
|
// snap: force fallback theme to avoid using system theme (gtk integration)
|
||||||
|
// with missing actions just like on Windows and macOS
|
||||||
|
QIcon::setThemeSearchPaths(QStringList() << ":/icons");
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_MACOS
|
#ifdef Q_OS_MACOS
|
||||||
// Don't show menu icons on OSX
|
// Don't show menu icons on OSX
|
||||||
QApplication::setAttribute(Qt::AA_DontShowIconsInMenus);
|
QApplication::setAttribute(Qt::AA_DontShowIconsInMenus);
|
||||||
|
Loading…
Reference in New Issue
Block a user