Skip to content

Instantly share code, notes, and snippets.

@luzpaz
Last active October 17, 2019 03:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luzpaz/1f1ad4b78c20465c43d6721f11966acc to your computer and use it in GitHub Desktop.
Save luzpaz/1f1ad4b78c20465c43d6721f11966acc to your computer and use it in GitHub Desktop.
Exploring the FreeCAD user.cfg file

FreeCAD Power User Mode

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.

Misc. Preferences

This is a list of various preferences/configurations that can be tweaked via user.cfg.

Expand this section to see the various configurations

Choosing your default 'Save to' Path

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>

Addon Manager

Expand this section to see the available configurations for the Addon Manager

Addon Manager Warning

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>

Addom Manager

Dimensions

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>

Auto Check

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>

Custom Repositories

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.

Themeing

Stylesheets

Expand this section to see the available configurations for Stylesheets

Setting 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>

Setting Tiled Background

      <FCParamGroup Name="Preferences">
        <FCParamGroup Name="MainWindow">
          <FCBool Name="TiledBackground" Value="0"/>
        </FCParamGroup>

TabBar Addon

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

TabBar Style

There are 3 Style options:

TabBar Text-only
    <FCParamGroup Name="MainWindow">  
      <FCParamGroup Name="TabBar">
        <FCText Name="Style">Text</FCText>
      </FCParamGroup>
    </FCParamGroup>
TabBar Icon-only
    <FCParamGroup Name="MainWindow">  
      <FCParamGroup Name="TabBar">
        <FCText Name="Style">Icon</FCText>
      </FCParamGroup>
    </FCParamGroup>
TabBar Text and Icon
    <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>

TabBar Orientation

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>

TabBar Preferences

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>

TabBar Workbenches

      <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 Addon

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>

Document Related Settings

      <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>

Output Window Settings

      <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>

View Settings

      <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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment