Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/06/2023, à 13:13

guigui_86

[Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Bonjour à tous,

Ayant un libre office particulièrement lent, j'ai trouvé la solution de forcer son exécution avec un autre VCL (je ne sais pas ce que c'est) que le défaut.
Cf ce fil en anglais libre office lent résolu par VCL

Ainsi lorsque je lance libre office à partir d'un terminal avec la commande suivante, tout va bien :

SAL_USE_VCLPLUGIN=gen libreoffice

J'essaie maintenant de créer un lanceur dans mon tableau de bord pour automatiser cela ; dans le champ "commande" j'entre la commande ci-dessus.
Lorsque j'active le lanceur je reçois le message d'erreur :

Impossible d'exécuter la commande  "SAL_USE_VCLPLUGIN=gen libreoffice". 
L'exécution du processus fils "SAL_USE_VCLPLUGIN=gen" a échoué (aucun fichier ou dossier de ce type)

Pas sûr du tout mais je suspecte un problème de chemin vers l'application libreoffice ?

Toute aide sera la bienvenue.

Dernière modification par guigui_86 (Le 29/06/2023, à 01:01)

Hors ligne

#2 Le 27/06/2023, à 18:00

f.x0

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Bonjour guigui_86,

essaies ceci :

sh -c 'SAL_USE_VCLPLUGIN=gen libreoffice'

SOPI

Hors ligne

#3 Le 27/06/2023, à 23:03

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Ça fonctionne, dans un terminal ET dans un lanceur. Merci beaucoup.

Maintenant le VCLPLUGIN (je ne sais toujours pas ce que c'est) ne se charge que si je lance libre office via ce lanceur. Par exemple si j'ouvre un fichier .ods via l'explorateur de fichier par double clic, c'est le libre office sans plugin qui se lance.

Un moyen de faire en sorte que toutes les instances de libre office s'ouvrent de cette façon ?

Hors ligne

#4 Le 28/06/2023, à 01:03

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Hello !

Le VCLplugin c'est plus ou moins ce qui est responsable de dessiner « l'interface » de LibreOffice ( les boutons, bordures, menus, etc ). C'est un « moteur » propre à LO qui utilise les toolkit présents dans le système ( gtk, qt ou autres… )
Bref ce qui est surprenant ici, c'est que tu aies besoin de forcer un choix spécifique de VCLplugin pour obtenir un LibreOffice fonctionnel.
Apparemment ce problème est souvent lié à l'installation au format snap de LO donc vérifions s'il est installé dans ce format chez toi :

snap list --all

Dans la discussion que tu cites en lien, c'est de désinstaller LO en snap et de le réinstaller au format classique apt/.deb qui a résolu le problème.

Si tu es dans ce cas mais que tu tiens absolument à garder LO en snap, il faudra alors s'assurer que ton fichier .desktop ( le lanceur ) est enregistré dans un emplacement opportun :
~/.local/share/applications ou peut-être bien dans ~/snap/libreoffice/quelque/part
et qu'il porte exactement le même nom que le lanceur « initial » de LO en snap, lanceur enregistré côté système, quelque part dans /var ou /snap ( et non classiquement dans /usr/share/applications ).
Souvent les noms des lanceurs de snap ont la forme nom_nom.desktop pour justement les distinguer des lanceur « habituels » nom.desktop.

Dans les diverses infos contenues par un lanceur il y a l'association des types de fichier pour cette application, à la ligne MimeType=
Dans ~/local/share/applications/mimeinfo.cache et /usr/share/applications/mimeinfo.cache il y l'association entre type de fichiers et applications à lancer pour eux.
Faudrait vérifier que tout ça correspond bien…

Dernière modification par Coeur Noir (Le 28/06/2023, à 01:20)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#5 Le 28/06/2023, à 01:14

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Pas grand chose en snap chez moi, et pas de libre office

coq@GC:~$ snap list --all
Nom                Version          Révision  Suivi            Éditeur        Notes
bare               1.0              5         latest/stable    canonical✓     base
core20             20230503         1891      latest/stable    canonical✓     base,désactivé
core20             20230613         1950      latest/stable    canonical✓     base
core22             20230612         766       latest/stable    canonical✓     base
cups               2.4.6-1          962       latest/stable    openprinting✓  -
firefox            114.0.2-1        2800      latest/stable/…  mozilla✓       -
firefox            99.0.1-1         1232      latest/stable/…  mozilla✓       désactivé
gnome-3-38-2004    0+git.1f9014a    99        latest/stable/…  canonical✓     désactivé
gnome-3-38-2004    0+git.6f39565    140       latest/stable/…  canonical✓     -
gnome-42-2204      0+git.ff35a85    111       latest/stable    canonical✓     -
gtk-common-themes  0.1-81-g442e511  1535      latest/stable/…  canonical✓     -
gtk-common-themes  0.1-79-ga83e90c  1534      latest/stable/…  canonical✓     désactivé
snapd              2.59.5           19457     latest/stable    canonical✓     snapd
snapd              2.59.4           19361     latest/stable    canonical✓     snapd,désactivé
coq@GC:~$ 

Il me semble que j'avais désinstallé le snap pour le réinstaller via sudo apt install, en suivant le fil donné en lien. Mais cela n'avait pas réglé le problème de lenteur, donc j'ai tenté le VCLPLUGIN=gen et ça a fonctionné.
Peu m'importe qu'il soit en snap ou pas au final, ça me va très bien comme ça.

En revanche j'aimerais qu'il se lance toujours avec le VCLPLUGIN=gen, et pas seulement avec mon lanceur fait maison dans mon tableau de bord.
Pour cela j'ai rapatrié le .desktop de /usr/share/applications dans ~/.local/share/applications, et remplacé la ligne "Exec= libreoffice" par "Exec=SAL_USE_VCLPLUGIN=gen libreoffice", mais j'ai la même erreur qu'indiquée en début de fil.

Hors ligne

#6 Le 28/06/2023, à 01:43

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Ok, pas de snap.

Comparons les noms des lanceurs, entre système et utilisateur :

ls /usr/share/applications | grep libreoffice
ls ~/.local/share/applications | grep libreoffice

Ton fichier lanceur dans ~/.local/share/applications doit absolument avoir le même nom que celui dans /usr/share/applications ( dans ce cas le lanceur perso se substitue / remplace le lanceur système, dans la session de l'utilisateur. )
Dans ce lanceur perso modifié, change les lignes Name= et GenericName[fr]= histoire de reconnaître dans l'interface qu'il s'agit bien de ton lanceur modifié.
Selon les env's de bureau, quitter-relancer la session peut s'avérer nécessaire pour que les modif's de lanceurs soient prises en compte. Ou :

update-desktop-database ~/.local/share/applications

Ensuite on regardera les histoires d'association :

grep libreoffice ~/.local/share/applications/mimeinfo.cache
grep libreoffice /usr/share/applications/mimeinfo.cache

et si ton lanceur perso est « complet » :

cat ~/.local/share/applications/ton_lanceur_perso_de_LO.desktop

et remplacé la ligne "Exec= libreoffice" par "Exec=SAL_USE_VCLPLUGIN=gen libreoffice", mais j'ai la même erreur qu'indiquée en début de fil

comme au #2 ?

Exec=sh -c 'SAL_USE_VCLPLUGIN=gen libreoffice'

ou peut-être aussi :

Exec=libreoffice -env:SAL_USE_VCLPLUGIN=gen

Dernière modification par Coeur Noir (Le 28/06/2023, à 02:03)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#7 Le 28/06/2023, à 02:06

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Ça m'a l'air correct pour le nom du lanceur .desktop, je ne l'ai fait que pour calc :

coq@GC:~$ ls /usr/share/applications | grep libreoffice
libreoffice-base.desktop
libreoffice-calc.desktop
libreoffice-draw.desktop
libreoffice-impress.desktop
libreoffice-math.desktop
libreoffice-startcenter.desktop
libreoffice-writer.desktop
libreoffice-xsltfilter.desktop
coq@GC:~$ ls ~/.local/share/applications | grep libreoffice
libreoffice-calc.desktop
coq@GC:~$ 

Ensuite j'ai changé Name= et Generic_Name=, les modifications sont prises en compte dès la fermeture du .desktop sur xubuntu : l'application calc a bien mon nouveau nom dans les menus de lancement. À noter que ces menus lancent la version lente sans le plugin VCL, ce que je voudrais modifier.

Enfin pour les associations, il ne passe rien en local, mais plein de choses en usr

coq@GC:~$ grep libreoffice ~/.local/share/applications/mimeinfo.cache
coq@GC:~$ grep libreoffice /usr/share/applications/mimeinfo.cache
application/clarisworks=libreoffice-calc.desktop;libreoffice-draw.desktop;libreoffice-writer.desktop;
application/csv=libreoffice-calc.desktop;
application/excel=libreoffice-calc.desktop;
application/macwriteii=libreoffice-writer.desktop;
application/mathml+xml=libreoffice-math.desktop;
application/msexcel=libreoffice-calc.desktop;
application/mspowerpoint=libreoffice-impress.desktop;
application/msword=libreoffice-writer.desktop;
application/pdf=atril.desktop;com.github.xournalpp.xournalpp.desktop;gimp.desktop;google-chrome.desktop;libreoffice-draw.desktop;org.gnome.Evince.desktop;
application/prs.plucker=libreoffice-writer.desktop;
application/rtf=libreoffice-writer.desktop;
application/tab-separated-values=libreoffice-calc.desktop;
application/vnd.corel-draw=libreoffice-draw.desktop;
application/vnd.lotus-1-2-3=libreoffice-calc.desktop;
application/vnd.lotus-wordpro=libreoffice-writer.desktop;
application/vnd.ms-excel=libreoffice-calc.desktop;
application/vnd.ms-excel.sheet.binary.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-excel.sheet.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-excel.template.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-powerpoint=libreoffice-impress.desktop;
application/vnd.ms-powerpoint.presentation.macroEnabled.12=libreoffice-impress.desktop;
application/vnd.ms-powerpoint.slideshow.macroEnabled.12=libreoffice-impress.desktop;
application/vnd.ms-powerpoint.template.macroEnabled.12=libreoffice-impress.desktop;
application/vnd.ms-publisher=libreoffice-draw.desktop;
application/vnd.ms-word=libreoffice-writer.desktop;
application/vnd.ms-word.document.macroEnabled.12=libreoffice-writer.desktop;
application/vnd.ms-word.template.macroEnabled.12=libreoffice-writer.desktop;
application/vnd.ms-works=libreoffice-calc.desktop;libreoffice-writer.desktop;
application/vnd.oasis.opendocument.chart=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.chart-template=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.database=libreoffice-base.desktop;
application/vnd.oasis.opendocument.formula=libreoffice-math.desktop;
application/vnd.oasis.opendocument.formula-template=libreoffice-math.desktop;
application/vnd.oasis.opendocument.graphics=libreoffice-draw.desktop;
application/vnd.oasis.opendocument.graphics-flat-xml=libreoffice-draw.desktop;libreoffice-xsltfilter.desktop;
application/vnd.oasis.opendocument.graphics-template=libreoffice-draw.desktop;
application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop;
application/vnd.oasis.opendocument.presentation-flat-xml=libreoffice-impress.desktop;libreoffice-xsltfilter.desktop;
application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop;
application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.spreadsheet-flat-xml=libreoffice-calc.desktop;libreoffice-xsltfilter.desktop;
application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.text=libreoffice-writer.desktop;
application/vnd.oasis.opendocument.text-flat-xml=libreoffice-writer.desktop;libreoffice-xsltfilter.desktop;
application/vnd.oasis.opendocument.text-master=libreoffice-writer.desktop;
application/vnd.oasis.opendocument.text-master-template=libreoffice-writer.desktop;
application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop;
application/vnd.oasis.opendocument.text-web=libreoffice-writer.desktop;
application/vnd.openofficeorg.extension=libreoffice-startcenter.desktop;
application/vnd.openxmlformats-officedocument.presentationml.presentation=libreoffice-impress.desktop;
application/vnd.openxmlformats-officedocument.presentationml.slide=libreoffice-impress.desktop;
application/vnd.openxmlformats-officedocument.presentationml.slideshow=libreoffice-impress.desktop;
application/vnd.openxmlformats-officedocument.presentationml.template=libreoffice-impress.desktop;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop;
application/vnd.openxmlformats-officedocument.spreadsheetml.template=libreoffice-calc.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.template=libreoffice-writer.desktop;
application/vnd.palm=libreoffice-writer.desktop;
application/vnd.stardivision.writer-global=libreoffice-writer.desktop;
application/vnd.sun.xml.base=libreoffice-base.desktop;
application/vnd.sun.xml.calc=libreoffice-calc.desktop;
application/vnd.sun.xml.calc.template=libreoffice-calc.desktop;
application/vnd.sun.xml.draw=libreoffice-draw.desktop;
application/vnd.sun.xml.draw.template=libreoffice-draw.desktop;
application/vnd.sun.xml.impress=libreoffice-impress.desktop;
application/vnd.sun.xml.impress.template=libreoffice-impress.desktop;
application/vnd.sun.xml.math=libreoffice-math.desktop;
application/vnd.sun.xml.writer=libreoffice-writer.desktop;
application/vnd.sun.xml.writer.global=libreoffice-writer.desktop;
application/vnd.sun.xml.writer.template=libreoffice-writer.desktop;
application/vnd.visio=libreoffice-draw.desktop;
application/vnd.wordperfect=libreoffice-writer.desktop;
application/wordperfect=libreoffice-writer.desktop;
application/x-123=libreoffice-calc.desktop;
application/x-abiword=libreoffice-writer.desktop;
application/x-aportisdoc=libreoffice-writer.desktop;
application/x-dbase=libreoffice-calc.desktop;
application/x-dbf=libreoffice-calc.desktop;
application/x-doc=libreoffice-writer.desktop;
application/x-dos_ms_excel=libreoffice-calc.desktop;
application/x-excel=libreoffice-calc.desktop;
application/x-extension-txt=libreoffice-writer.desktop;
application/x-fictionbook+xml=libreoffice-writer.desktop;
application/x-hwp=libreoffice-writer.desktop;
application/x-iwork-keynote-sffkey=libreoffice-impress.desktop;
application/x-iwork-numbers-sffnumbers=libreoffice-calc.desktop;
application/x-iwork-pages-sffpages=libreoffice-writer.desktop;
application/x-ms-excel=libreoffice-calc.desktop;
application/x-msexcel=libreoffice-calc.desktop;
application/x-mswrite=libreoffice-writer.desktop;
application/x-pagemaker=libreoffice-draw.desktop;
application/x-quattropro=libreoffice-calc.desktop;
application/x-sony-bbeb=libreoffice-writer.desktop;
application/x-starcalc=libreoffice-calc.desktop;
application/x-stardraw=libreoffice-draw.desktop;
application/x-starwriter=libreoffice-writer.desktop;
application/x-t602=libreoffice-writer.desktop;
application/x-wpg=libreoffice-draw.desktop;
image/x-emf=libreoffice-draw.desktop;
image/x-freehand=libreoffice-draw.desktop;
image/x-wmf=gimp.desktop;libreoffice-draw.desktop;
text/comma-separated-values=libreoffice-calc.desktop;
text/csv=libreoffice-calc.desktop;
text/mathml=libreoffice-math.desktop;
text/plain=libreoffice-writer.desktop;org.gnome.gedit.desktop;org.xfce.mousepad.desktop;vim.desktop;
text/rtf=libreoffice-writer.desktop;
text/spreadsheet=libreoffice-calc.desktop;
text/tab-separated-values=libreoffice-calc.desktop;
text/x-comma-separated-values=libreoffice-calc.desktop;
text/x-csv=libreoffice-calc.desktop;
x-scheme-handler/ms-access=libreoffice-startcenter.desktop;
x-scheme-handler/ms-excel=libreoffice-startcenter.desktop;
x-scheme-handler/ms-powerpoint=libreoffice-startcenter.desktop;
x-scheme-handler/ms-visio=libreoffice-startcenter.desktop;
x-scheme-handler/ms-word=libreoffice-startcenter.desktop;
x-scheme-handler/vnd.libreoffice.cmis=libreoffice-startcenter.desktop;
x-scheme-handler/vnd.libreoffice.command=libreoffice-startcenter.desktop;
x-scheme-handler/vnd.sun.star.webdav=libreoffice-startcenter.desktop;
x-scheme-handler/vnd.sun.star.webdavs=libreoffice-startcenter.desktop;
coq@GC:~$ 

Hors ligne

#8 Le 28/06/2023, à 15:28

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

OK.

Voyons ce que raconte ton lanceur perso' :

cat ~/.local/share/applications/libreoffice-calc.desktop

et ajoutons « localement » l'association type / appli, en modifiant le fichier mimeinfo.cache :

xdg-open  ~/.local/share/applications/mimeinfo.cache

qui ouvrira le fichier dans l’éditeur de texte par défaut ( mousepad il me semble sous xubuntu ).
Là, tu ajoutes ces lignes :

application/clarisworks=libreoffice-calc.desktop;
application/csv=libreoffice-calc.desktop;
application/excel=libreoffice-calc.desktop;
application/msexcel=libreoffice-calc.desktop;
application/tab-separated-values=libreoffice-calc.desktop;
application/vnd.lotus-1-2-3=libreoffice-calc.desktop;
application/vnd.ms-excel=libreoffice-calc.desktop;
application/vnd.ms-excel.sheet.binary.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-excel.sheet.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-excel.template.macroEnabled.12=libreoffice-calc.desktop;
application/vnd.ms-works=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.chart=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.chart-template=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.spreadsheet-flat-xml=libreoffice-calc.desktop;
application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop;
application/vnd.openxmlformats-officedocument.spreadsheetml.template=libreoffice-calc.desktop;
application/vnd.sun.xml.calc=libreoffice-calc.desktop;
application/vnd.sun.xml.calc.template=libreoffice-calc.desktop;
application/x-123=libreoffice-calc.desktop;
application/x-dbase=libreoffice-calc.desktop;
application/x-dbf=libreoffice-calc.desktop;
application/x-dos_ms_excel=libreoffice-calc.desktop;
application/x-excel=libreoffice-calc.desktop;
application/x-iwork-numbers-sffnumbers=libreoffice-calc.desktop;
application/x-ms-excel=libreoffice-calc.desktop;
application/x-msexcel=libreoffice-calc.desktop;
application/x-quattropro=libreoffice-calc.desktop;
application/x-starcalc=libreoffice-calc.desktop;
text/comma-separated-values=libreoffice-calc.desktop;
text/csv=libreoffice-calc.desktop;
text/spreadsheet=libreoffice-calc.desktop;
text/tab-separated-values=libreoffice-calc.desktop;
text/x-comma-separated-values=libreoffice-calc.desktop;
text/x-csv=libreoffice-calc.desktop;

tu enregistres et quittes ; éventuellement quitter-relancer la session.


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#9 Le 28/06/2023, à 15:46

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Cela dit, je reste persuadé que tu ne devrais pas avoir à spécifier le VCLplugin, il manque peut-être des éléments dans ton installation de LO.
Donne aussi le retour de :

dpkg -l | grep libreoffice

je m'attends à trouver dans le tas un ou des libreoffice-gtk - s'il n'y en a pas il faudrait les installer.


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#10 Le 28/06/2023, à 17:30

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

C'est bon pour les associations, merci.

Effectivement sur la présence des gtk :

coq@GC:~$ dpkg -l | grep libreoffice
ii  liblibreoffice-java                   1:7.3.7-0ubuntu0.22.04.3                   all          LibreOffice UNO runtime environment -- Java library
ii  libreoffice                           1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite (metapackage)
ii  libreoffice-base                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- database
ii  libreoffice-base-core                 1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- shared library
ii  libreoffice-base-drivers              1:7.3.7-0ubuntu0.22.04.3                   amd64        Database connectivity drivers for LibreOffice
ii  libreoffice-calc                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- spreadsheet
ii  libreoffice-common                    1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- arch-independent files
ii  libreoffice-core                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- arch-dependent files
ii  libreoffice-draw                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- drawing
ii  libreoffice-gnome                     1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- GNOME integration
ii  libreoffice-gtk3                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- GTK+ 3 integration
rc  libreoffice-help-common               1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- common files for LibreOffice help
ii  libreoffice-impress                   1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- presentation
ii  libreoffice-java-common               1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- arch-independent Java support files
ii  libreoffice-math                      1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- equation editor
ii  libreoffice-nlpsolver                 0.9+LibO7.3.7-0ubuntu0.22.04.3             all          "Solver for Nonlinear Programming" extension for LibreOffice
ii  libreoffice-report-builder            1:7.3.7-0ubuntu0.22.04.3                   all          LibreOffice component for building database reports
ii  libreoffice-report-builder-bin        1:7.3.7-0ubuntu0.22.04.3                   amd64        LibreOffice component for building database reports -- libraries
ii  libreoffice-script-provider-bsh       1:7.3.7-0ubuntu0.22.04.3                   all          BeanShell script support provider for LibreOffice scripting framework
ii  libreoffice-script-provider-js        1:7.3.7-0ubuntu0.22.04.3                   all          JavaScript script support provider for LibreOffice scripting framework
ii  libreoffice-script-provider-python    1:7.3.7-0ubuntu0.22.04.3                   all          Python script support provider for LibreOffice scripting framework
ii  libreoffice-sdbc-firebird             1:7.3.7-0ubuntu0.22.04.3                   amd64        Firebird SDBC driver for LibreOffice
ii  libreoffice-sdbc-hsqldb               1:7.3.7-0ubuntu0.22.04.3                   amd64        HSQLDB SDBC driver for LibreOffice
ii  libreoffice-sdbc-mysql                1:7.3.7-0ubuntu0.22.04.3                   amd64        MariaDB/MySQL SDBC driver for LibreOffice
ii  libreoffice-sdbc-postgresql           1:7.3.7-0ubuntu0.22.04.3                   amd64        PostgreSQL SDBC driver for LibreOffice
ii  libreoffice-style-colibre             1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- colibre symbol style
ii  libreoffice-style-elementary          1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- Elementary symbol style
ii  libreoffice-style-yaru                1:7.3.7-0ubuntu0.22.04.3                   all          office productivity suite -- Yaru symbol style
ii  libreoffice-wiki-publisher            1.2.0+LibO7.3.7-0ubuntu0.22.04.3           all          LibreOffice extension for working with MediaWiki articles
ii  libreoffice-writer                    1:7.3.7-0ubuntu0.22.04.3                   amd64        office productivity suite -- word processor
coq@GC:~$ 

J'ai pourtant installé libreoffice via apt install comme préconisé.

Hors ligne

#11 Le 28/06/2023, à 18:04

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Voyons si l'ajout des paquets gtk et gtk2 permet de se passer de modifier VCLplugin dans le lanceur.

sudo apt install libreoffice-gtk libreoffice-gtk2

Au pire ça ne change rien et ça ne gêne rien non plus.

Sinon c'est peut-être la présence de

libreoffice-gnome

qui n'est pas opportune, vu que t'es sous xfce et non gnome, à priori.

Et teste avec un lanceur calc non modifié / ou avec writer, draw ou impress ( puisque tu n'as pas modifié ceux-là. )

Dernière modification par Coeur Noir (Le 28/06/2023, à 18:16)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#12 Le 29/06/2023, à 01:00

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Ajout de gtk et gtk2, suppression de gnome, le libreoffice sans modifier le VCLplugin est un poil moins lent qu'avant, mais toujours à la traîne.

Bon il faut dire que je teste sur un tableau qui a un formatage conditionnel un peu compliqué. Le VCLplugin=gen permet de l'accélérer à une vitesse tout à fait satisfaisante, donc on va conserver cette solution.

En tous merci pour ton aide précieuse.

Hors ligne

#13 Le 12/07/2023, à 00:50

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Coeur Noir a écrit :
Exec=sh -c 'SAL_USE_VCLPLUGIN=gen libreoffice'

Suite au message de Coeur Noir, j'ai donc modifié mon fichier .desktop libreoffice pour qu'il utilise la commande ci-dessus de façon à lancer le VCLPLUGIN qu'il me faut. Précisément, le fichier .desktop contient la commande suivante qui lance le --calc de libreoffice lorsque je clique sur un fichier tableur :

Exec=sh -c 'SAL_USE_VCLPLUGIN=gen libreoffice --calc %U'

Problème apparu récemment avec cette commande : les noms de répertoires avec des espaces ne sont pas gérés correctement. Par exemple :

* un fichier tableur sauvegardé dans /home/mon_repertoire s'ouvre correctement.

* un fichier tableur sauvegardé dans /home/mon repertoire ne s'ouvre pas correctement. L'erreur suivante s'affiche : '/home/mon n'existe pas'.

J'ai essayé de remplacer %U par %F, sans succès. Une idée ?

Hors ligne

#14 Le 12/07/2023, à 01:47

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

As-tu essayé

Exec=libreoffice -env:SAL_USE_VCLPLUGIN=gen %u

?

…j'avoue : je ne sais pas comment on échappe le caractère espace dans une commande sh -c 'quelquechose %u'


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#15 Le 12/07/2023, à 14:52

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Ça fonctionne avec cette commande, nous avons réussi à échapper aux espaces sans trop savoir comment. Merci.

Hors ligne

#16 Le 12/07/2023, à 21:41

kamaris

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

La commande donnée par Coeur Noir est le mieux quand on peut : utiliser les options du programme principal (ici libreoffice) plutôt que passer par un shell.
Cela dit ça n'est pas toujours possible et le sh -c '…' est pratique, donc voici comment faire pour ne pas avoir de problème avec les guillemets dans ce genre de cas :

Exec=sh -c 'SAL_USE_VCLPLUGIN=gen libreoffice --calc "$@"' _ %U

Les %f, %F, %u et %U ne doivent pas se trouver dans des guillemets (simples ou doubles) sous peine d'avoir des problèmes d'échappement de caractères.

Hors ligne

#17 Le 13/07/2023, à 00:08

guigui_86

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Merci pour la précision kamaris. Tu peux expliquer la syntaxe ? Ici il s'agit d'échapper les espaces dans le nom des chemins.

Hors ligne

#18 Le 13/07/2023, à 10:07

kamaris

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

En fait il s'agirait plutôt de ne pas les échapper smile
C'est-à-dire qu'il ne faut pas interférer avec l'échappement de caractères que réalise le programme qui parse le fichier desktop.
Pour cette raison, les « codes de champ » (nom technique des %U, %u, etc.) ne doivent pas être mis dans des guillemets:

https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html#exec-variables a écrit :

Field codes must not be used inside a quoted argument, the result of field code expansion inside a quoted argument is undefined.

C'est ce que la syntaxe ci-dessus permet :
* le code de champ %U est passé en argument au mini-script sh -c '…' en dehors de tous guillemets ;
* le '_' passé avant sert de nom au mini-script (i.e. son $0) pour que le $@ corresponde bien au %U ;
* le parseur du fichier desktop va développer %U avant de le passer au mini-script, en échappant correctement les caractères (sinon c'est un bug de son côté) ;
* le "$@" (avec guillemets doubles) assure que le mini-script préservera bien l'échappement de caractères réalisé par le parseur.

Hors ligne

#19 Le 14/07/2023, à 04:13

Coeur Noir

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

HS

Merci Kamaris pour ces explications ! Mais je comprends pas tout…

Donc un "$@" dans un script encadré par des guillemets simples ' ' ça passe ; un "%×" ça casse. Parce qu'un truc introduit par % est un field code.

Est-ce que le @ dans $@ signifie chemin ou url ? Qui prendra donc la valeur déduite de %U ?

Je ne saisis pas l'histoire du « _ sert de nom au mini-script (i.e. son $0) ». C'est quoi $0 ? Le mini-script c'est quoi dans ce cas ? Ce qui se trouve entre les guillemets simples ?

J'y connais rien en script - ça se voit - et à vue de mon pif béotien, je me serais dit que le _ indique une substitution ou une équivalence ( entre la variable $ partiellement définie par @ et le chemin contenu dans %U ) ?

Fin HS


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#20 Le 14/07/2023, à 09:07

kamaris

Re : [Résolu] Commande OK dans un terminal, mais pas dans un lanceur ?

Eh bien oui il faut un minimum de connaissance en syntaxe shell, en particulier ce que signifie $0 et $@ dans un script shell:
* $0 est le nom du script shell (celui par lequel il a été invoqué) ;
* $@ sont les paramètres d'entrée du script.

Donc oui le mini-script est ce qui se trouve entre les guillemets simples (plutôt que sh -c '…' comme je l'ai dit par abus de langage), sh est l'interpréteur de ce mini-script et -c l'option qui permet d'utiliser l'interpréteur de cette manière:

man bash a écrit :

If the -c option is present, then commands are read from the first non‐option argument command_string.  If there are arguments after the command_string, the first argument is  assigned  to $0 and any remaining arguments are assigned to the positional parameters.  The assignment to $0 sets the name of the shell, which is used in warning and error messages.

Ensuite il faut bien comprendre l'ordre dans lequel se passent les choses :
* le parseur du fichier desktop développe les codes de champ (sans toucher au reste) ;
* la commande résultante est exécutée directement (sans la passer à un quelconque interpréteur, raison pour laquelle on doit ajouter sh -c si besoin).
Donc ici la commande principale est sh, et le reste (-c, le mini-script, le underscore et le %U développé) sont ses arguments d'entrée.

Hors ligne