Indstillinger i LibreOffice med udvidelse
-
Baggrund
Af og til kan det være praktisk at kunne dele ressourcer mellem brugere, fx hvis en organisation gerne vil ensrette visse detaljer. Jeg vil her beskrive hvordan det er muligt at dele og distribuere indstillinger mellem brugere.
Det er omkring 12 år siden jeg har arbejdet professionelt med LibreOffice, så min viden er lidt rusten, og skal lige pudses lidt af. Af samme årsag vil jeg forsøge at beskrive nogle detaljer som for nogen vil synes meget tekniske og andre vil betragte som selvfølgeligheder.
Indstillinger i LibreOffice
Når du ændrer indstillingerne i LibreOffice, vil ændringerne i de fleste tilfælde blive skrevet til en fil i dit brugerkatalog, med navnet registrymodifications.xcu. Hos mig ligger filen i /home/leif/.config/libreoffice/4/user. Hvis du bruger et andet operativsystem, så ligger filen et andet sted, men navnet er det samme. Filen oprettes så snart du begynder at bruge LibreOffice, også selvom du ikke har ændret i indstillingerne. Filen indeholder nemlig mange andre ting end dine indstillinger, fx en liste over dine senest åbnede dokumenter. En "tom" fil fylder omkring 500 Kb, men den kan hurtigt snige sig op på adskillige Mb. Filen indeholder bl.a. base64 indkodede thumbnails, som du ser på Startskærmen.
Du kan uden videre kopiere filen registrymodifications.xcu fra en bruger til en anden, men vær opmærksom på, at du i så fald overskriver den eksisterende fil og dermed overskriver brugerens egne indstillinger og historik.
Indstillingernes struktur
Indstillingerne i LibreOffice følger en ret stringent struktur, som blev fastlagt tilbage under Open Office. Du kan lære lidt om strukturen ved at åbne din egen registrymodifications.xcu hvor en linje fx. ser sådan ud:
<item oor:path="/org.openoffice.Office.Common/Misc"><prop oor:name="ShowTipOfTheDay" oor:op="fuse"><value>false</value></prop></item>eller
<item oor:path="/org.openoffice.Office.Impress/Misc"><prop oor:name="ShowComments" oor:op="fuse"><value>true</value></prop></item>En anden måde at få sig et overblik over indstillingerne, er ved at åbne LibreOffice og derefter vælge Funktioner - Indstillinger, og der vælge fanen Avanceret for til sidst at trykke på Åbn ekspertkonfiguration. Nu åbnes en dialog, hvor ALLE indstillingerne vises sammen med deres tekniske navn. Fx kan du søge efter ShowTipOfTheDay og se at den indstilling ligger under org.openoffice.Office.Common underkategorien Misc og navnet ShowTipOfTheDay.
Navngivningen er afhængig af store/små bogstaver, så du skal være omhyggelig når du skriver XML'en.
Når du bygger din egen udvidelse, skal du også lige huske at XML altid skal indkodes med UTF+8.
Udvidelser
Udvidelser er en fællesbetegnelse over filer, som kan indeholde enhver form for ressourcer, som kan distribueres og deles. En udvidelse kan fx indeholde funktionalitet i form af makroer og scripts, skabeloner, ordbøger, autotekster, gallerier og altså også indstillinger.
Udvidelser pakkes efter nogle bestemte regler, og det er faktisk ikke særlig svært. Du kan finde mange eksempler på udvidelser på extensions.libreoffice.org .
Udfordringerr
Udfordringerne med udvidelser er, at meget af dokumentationen er temmelig gammel, og skal findes ovre hos Apache Open Office. Det der så er spørgsmålet, er hvad der fortsat er gældende og hvad der ikke er. En del dokumentation er i øvrigt gået tabt, idet der oprindeligt lå en del materiale hos Sun Microsystems, som jo ikke eksisterer mere.
Der er udarbejdet nogen dokumentation i regi af LibreOffice og The Document Foundation, men dokumentationen er ikke komplet. Samtidig er der med tiden sket en del i kildekoden, og der er indstillinger som er forsvundet, nyt er kommet til, og der er også indstillinger som er ændret efter overgangen fra Open Office til LibreOffice.
Udvidelsens struktur
Inde i udvidelsen ligger en styrefil, META-INF/manifest.xml, hvor alle andre filer skal være registreret. Hver enkelt kategori vil typisk ligge i hver sin fil, fx alle indstillinger vedr. Common ligger i filen Common.xcu. Filen definerer sig selv med linjen her:
<oor:component-data oor:name="Common" oor:package="org.openoffice.Office" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" >Altså kategorien Common under Office.
Herunder defineres afsnittet Misc:
<node oor:name="Misc">Inde i afsnittet finder vi til sidst en indstilling:
<prop oor:name="ShowTipOfTheDay" oor:type="xs:boolean" oor:finalized="false" > <prop oor:name="ShowTipOfTheDay" oor:type="xs:boolean" oor:finalized="false" > <value>false</value> </prop> </prop>Det vigtigste her er <value>false</value> som definerer at indstillingen ShowTipOfTheDay er false (nej).
Egenskaben oor:type="xs:boolean" definerer at datatypen er boolean. Det er uklart om det er nødvendigt at definere datatypen i udvidelsen.
Egenskaben oor:finalized="false" fortæller at indstillingen sættes, men uden at være låst. Ændrer du til "true" vil den satte indstilling ikke kunne ændres af brugeren igennem brugergrænsefladen.
Eksempel
Jeg har lavet et lille eksempel, som du kan hente her:
kontor.lodahl.dk/index.php/s/4…
I eksemplet er lidt mere end nødvendigt, for du behøver ikke andet end en x.xcu og META-INF/manifest.xml.
-
F folfdk@helvede.net shared this topic