Deploy LibreOffice Enterprise Configuration Files
Deploying custom enterprise configuration files in LibreOffice allows
system administrators to centrally manage, standardize, and lock user
settings across an entire organization. By leveraging XML-based
configuration files referencing the org.openoffice.Office
registry schema, administrators can enforce default save formats,
disable unwanted features, configure macro security, and set application
defaults across Windows, macOS, and Linux environments.
Understanding LibreOffice Configuration Architecture
LibreOffice relies on a layered XML configuration registry using the
OpenOffice Registry (oor) schema. The application evaluates
settings in a specific hierarchy:
- Default Settings: Built-in application schemas
found in the core installation (
main.xcd). - Enterprise Layer: Custom
.xcufiles placed in the shared application directory, applied globally to all users. - User Layer: User-specific changes stored locally in
the profile’s
registrymodifications.xcu.
Enterprise configurations take precedence over defaults. When marked
with the finalized attribute, these settings become
read-only in the user interface, preventing individual users from
overriding them.
Step 1: Create
the Custom .xcu Configuration File
Create a standard XML file (e.g.,
enterprise-policy.xcu). Specify the target node under the
org.openoffice.Office component and define the desired
properties.
Below is an example configuration that sets default document formats to Microsoft OpenXML formats (DOCX, XLSX, PPTX) and locks the settings:
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
oor:name="Common"
oor:package="org.openoffice.Office">
<!-- Enforce default save formats -->
<node oor:name="Save">
<node oor:name="DefaultFormat">
<prop oor:name="Writer" oor:type="xs:string" oor:finalized="true">
<value>MS Word 2007 XML</value>
</prop>
<prop oor:name="Calc" oor:type="xs:string" oor:finalized="true">
<value>Calc MS Excel 2007 XML</value>
</prop>
<prop oor:name="Impress" oor:type="xs:string" oor:finalized="true">
<value>Impress MS PowerPoint 2007 XML</value>
</prop>
</node>
</node>
<!-- Disable Telemetry / Crash Reporting -->
<node oor:name="Misc">
<prop oor:name="Telemetry" oor:type="xs:boolean" oor:finalized="true">
<value>false</value>
</prop>
</node>
</oor:component-data>Key Attributes:
oor:package="org.openoffice.Office": Specifies the base schema component (e.g.,Common,Writer,Calc,Security).oor:name="ComponentSubgroup": Targets the functional group inside the package.oor:finalized="true": Locks the setting. The corresponding GUI option will be grayed out for standard users.
Step 2: Identify the Deployment Paths
To apply the configuration system-wide, place the .xcu
file directly into the shared configuration directory corresponding to
the operating system:
Windows:
C:\Program Files\LibreOffice\share\registry\
(For 32-bit on 64-bit OS:C:\Program Files (x86)\LibreOffice\share\registry\)Linux (System Packages):
/usr/lib/libreoffice/share/registry/or/etc/libreoffice/registry/macOS:
/Applications/LibreOffice.app/Contents/Resources/registry/
Step 3: Deploy via Management Tools
Distribute the .xcu file across client machines using
your organization’s deployment tool:
- Group Policy (GPO) / Microsoft Intune: Use file
copy preferences or deployment scripts to copy
enterprise-policy.xcuto the targetshare\registry\path on Windows endpoints. - Ansible / Puppet / Chef: Include a file management
task in your playbooks to place the configuration file on Linux/macOS
systems with root read permissions (
chmod 644). - Custom MSI Wrapper: Repackage the official
LibreOffice MSI installer to include the
.xcufile in the installation layout directly.
Step 4: Verify Deployment
- Launch LibreOffice on a managed client machine.
- Navigate to Tools > Options (or LibreOffice > Preferences on macOS).
- Confirm that the configured values reflect the changes specified in
the
.xcufile. - Verify that properties with
oor:finalized="true"appear locked and cannot be edited by the user.