This document is a study on how the FreeCAD user.cfg
is constructed.
The intention is to create customizable .cfg files that Power Users can utilize and share with each other.
Possibly even an automation feature that allows the user to install FreeCAD with pre-installed addons, but
lets not get ahead of ourselves.
This is a list of various preferences/configurations that can be tweaked via user.cfg
.
Expand this section to see the various configurations
Linux and MacOS
<FCParamGroup Name="Preferences">
<FCParamGroup Name="General">
<FCText Name="FileOpenSavePath">/home/foo/Desktop/FreeCAD/</FCText>
</FCParamGroup>
Windows
<FCParamGroup Name="Preferences">
<FCParamGroup Name="General">
<FCText Name="FileOpenSavePath">TBD</FCText>
</FCParamGroup>
Expand this section to see the available configurations for the Addon Manager
The first time a user runs the Addon Manager a dialog pops up letting them
know that the addons are downloaded at their own risk etc...
Set to Value="1"
this turn that off
TODO: this should actually be moved into <FCParamGroup Name="Addons">
PR
<FCParamGroup Name="Plugins">
<FCParamGroup Name="addonsRepository">
<FCBool Name="readWarning" Value="1"/>
</FCParamGroup>
</FCParamGroup>
This snippet of code can customize the AddonManager's dimensionality
<FCParamGroup Name="Addons">
<FCInt Name="WindowWidth" Value="600"/>
<FCInt Name="WindowHeight" Value="480"/>
<FCInt Name="SplitterLeft" Value="299"/>
<FCInt Name="SplitterRight" Value="275"/>
</FCParamGroup>
This is the option accessible from the Configure button within the Addon Manager dialog.
"Automatically check for updates at start (requires GitPython)"
TBD: Does this mean that FC will check all addons or just the custom ones?
<FCParamGroup Name="Addons">
<FCBool Name="AutoCheck" Value="1"/>
<FCText Name="CustomRepositories"></FCText>
</FCParamGroup>
In the Configure dialog there's a field where it's possible to specify custom repositories by address. We see it in the previous xml but without the actual addresses. Here's how it looks like populated:
<FCParamGroup Name="Addons">
<FCText Name="CustomRepositories">https://github.com/foo/bar
https://github.com/lorem/ipsum
https://github.com/Leeroy/Jenkins</FCText>
</FCParamGroup>
Note: The odd spacing is exactly the way the snippet looks within the xml.
Expand this section to see the available configurations for Stylesheets
You can easily set stylesheets by just supplying the path to your preferred stylesheet.
If you don't want to, just leave the path empty.
<FCParamGroup Name="Preferences">
<FCParamGroup Name="MainWindow">
<FCText Name="StyleSheet">/tmp/.mount_FreeCAPFss7X/usr/share/Gui/Stylesheets/Darker-blue.qss</FCText>
</FCParamGroup>
<FCParamGroup Name="Preferences">
<FCParamGroup Name="MainWindow">
<FCBool Name="TiledBackground" Value="0"/>
</FCParamGroup>
TabBar is an addon that provides access to workbenches via tabs in the toolbar.
Expand this section to see the available configurations for the TabBar addon
There are 3 Style options:
<FCParamGroup Name="MainWindow">
<FCParamGroup Name="TabBar">
<FCText Name="Style">Text</FCText>
</FCParamGroup>
</FCParamGroup>
<FCParamGroup Name="MainWindow">
<FCParamGroup Name="TabBar">
<FCText Name="Style">Icon</FCText>
</FCParamGroup>
</FCParamGroup>
<FCParamGroup Name="MainWindow">
<FCParamGroup Name="TabBar">
<FCText Name="Style">IconText</FCText>
</FCParamGroup>
</FCParamGroup>
It also adds:
<FCParamGroup Name="Toolbars">
<FCBool Name="Tabs" Value="1"/>
Sidenote: when opening preferences and saving them, these tags show up under the above snippet
<FCText Name="Name">Tabs</FCText>
<FCBool Name="Active" Value="1"/>
and
<FCParamGroup Name="Workbench">
<FCParamGroup Name="Global">
<FCParamGroup Name="Toolbar"/>
</FCParamGroup>
This value changes the orientation of toolbar contents.
Options include: Auto
, Top
, Bottom
, Left
, Right
<FCParamGroup Name="MainWindow">
<FCParamGroup Name="TabBar">
<FCText Name="Orientation">Auto</FCText>
</FCParamGroup>
</FCParamGroup>
This configuration makes it so no preference button the toolbar (not sure what this means)
<FCParamGroup Name="MainWindow">
<FCParamGroup Name="TabBar">
<FCText Name="PrefButton">Off</FCText>
</FCParamGroup>
</FCParamGroup>
<FCParamGroup Name="TabBar">
<FCText Name="Enabled">ArchWorkbench,BIMWorkbench,DraftWorkbench,FemWorkbench,ImageWorkbench,InspectionWorkbench,MeshWorkbench,NoneWorkbench,OpenSCADWorkbench,PartDesignWorkbench,PartWorkbench,PathWorkbench,PointsWorkbench,RaytracingWorkbench,RobotWorkbench,SketcherWorkbench,SpreadsheetWorkbench,StartWorkbench,SurfaceWorkbench,TechDrawWorkbench,TestWorkbench</FCText>
<FCText Name="Partially"></FCText>
<FCText Name="Unchecked">CompleteWorkbench,DrawingWorkbench,ReverseEngineeringWorkbench,WebWorkbench</FCText>
</FCParamGroup>
IconThemes is an addon that provides the ability to use different icon sets in FreeCAD.
Expand this section to see the available configurations for the IconThemes addon
Related to https://github.com/triplus/IconThemes/
We can see the structure requires a 'Registered' .rcc
file which points to a corresponding theme 'Theme'
<FCParamGroup Name="IconThemes">
<FCText Name="Registered">FC_COIL_LAS_RCC.rcc</FCText>
<FCText Name="Theme">FC_COIL_LAS_demo</FCText>
</FCParamGroup>
<FCParamGroup Name="Preferences">
<FCParamGroup Name="Document">
<FCBool Name="CreateNewDoc" Value="0"/>
<FCInt Name="CompressionLevel" Value="3"/>
<FCBool Name="UsingUndo" Value="1"/>
<FCInt Name="MaxUndoSize" Value="20"/>
<FCBool Name="SaveTransactions" Value="0"/>
<FCBool Name="TransactionsDiscard" Value="0"/>
<FCBool Name="SaveThumbnail" Value="0"/>
<FCBool Name="AddThumbnailLogo" Value="1"/>
<FCBool Name="CreateBackupFiles" Value="1"/>
<FCInt Name="CountBackupFiles" Value="1"/>
<FCBool Name="DuplicateLabels" Value="0"/>
<FCBool Name="NoPartialLoading" Value="0"/>
<FCInt Name="prefLicenseType" Value="0"/>
<FCText Name="prefLicenseUrl">http://en.wikipedia.org/wiki/All_rights_reserved</FCText>
<FCText Name="prefAuthor"></FCText>
<FCBool Name="prefSetAuthorOnSave" Value="0"/>
<FCText Name="prefCompany"></FCText>
<FCBool Name="RecoveryEnabled" Value="1"/>
<FCBool Name="AutoSaveEnabled" Value="1"/>
<FCInt Name="AutoSaveTimeout" Value="15"/>
<FCBool Name="CanAbortRecompute" Value="0"/>
</FCParamGroup>
<FCParamGroup Name="Preferences">
<FCParamGroup Name="OutputWindow">
<FCUInt Name="colorText" Value="255"/>
<FCBool Name="checkLogging" Value="0"/>
<FCBool Name="checkWarning" Value="1"/>
<FCBool Name="checkError" Value="1"/>
<FCBool Name="checkShowReportViewOnWarningOrError" Value="1"/>
<FCUInt Name="colorLogging" Value="65535"/>
<FCUInt Name="colorWarning" Value="4289331455"/>
<FCUInt Name="colorError" Value="4278190335"/>
<FCBool Name="RedirectPythonOutput" Value="1"/>
<FCBool Name="RedirectPythonErrors" Value="1"/>
</FCParamGroup>
<FCParamGroup Name="Preferences">
<FCParamGroup Name="View">
<FCText Name="GestureRollFwdCommand">Std_SelForward</FCText>
<FCText Name="GestureRollBackCommand">Std_SelBack</FCText>
<FCText Name="NavigationStyle">Gui::CADNavigationStyle</FCText>
<FCInt Name="OrbitStyle" Value="1"/>
<FCInt Name="AntiAliasing" Value="0"/>
<FCInt Name="CornerNaviCube" Value="1"/>
<FCInt Name="RenderCache" Value="0"/>
<FCInt Name="MarkerSize" Value="9"/>
<FCBool Name="ZoomAtCursor" Value="1"/>
<FCBool Name="InvertZoom" Value="1"/>
<FCBool Name="DisableTouchTilt" Value="1"/>
<FCFloat Name="ZoomStep" Value="0.200000000000"/>
<FCBool Name="DragAtCursor" Value="0"/>
<FCBool Name="CornerCoordSystem" Value="1"/>
<FCBool Name="ShowFPS" Value="0"/>
<FCBool Name="UseVBO" Value="0"/>
<FCBool Name="ShowNaviCube" Value="1"/>
<FCBool Name="UseAutoRotation" Value="0"/>
<FCFloat Name="EyeDistance" Value="5.000000000000"/>
<FCBool Name="EnableBacklight" Value="0"/>
<FCUInt Name="BacklightColor" Value="4294967295"/>
<FCInt Name="BacklightIntensity" Value="100"/>
<FCBool Name="Perspective" Value="0"/>
<FCBool Name="Orthographic" Value="1"/>
<FCFloat Name="NewDocumentCameraScale" Value="100.000000000000"/>
<FCText Name="NewDocumentCameraOrientation">Trimetric</FCText>
<FCUInt Name="BackgroundColor" Value="336897023"/>
<FCUInt Name="BackgroundColor2" Value="859006463"/>
<FCUInt Name="BackgroundColor3" Value="2543299327"/>
<FCUInt Name="BackgroundColor4" Value="1869583359"/>
<FCBool Name="Simple" Value="0"/>
<FCBool Name="Gradient" Value="1"/>
<FCBool Name="UseBackgroundColorMid" Value="0"/>
<FCBool Name="EnablePreselection" Value="1"/>
<FCBool Name="EnableSelection" Value="1"/>
<FCUInt Name="HighlightColor" Value="3789624575"/>
<FCUInt Name="SelectionColor" Value="481107199"/>
<FCFloat Name="PickRadius" Value="5.000000000000"/>
</FCParamGroup>