On this page you will learn how you can use MatterLinux configuration manager. # MatterLinux configuration manager `confer` is a simple program that allows you to easily install and package your configurations, also known as "dotfiles". ### Installation `confer` can be installed with the [package manager](/wiki/matt), it's located in the [`desktop pool](/wiki/pools): ``` # matt install --yes confer ``` In order to run `confer` as a non-root user, you will need to [install and configure `doas` or `sudo`](/wiki/post_install). ### Packaging your configuration First of all you should create and empty git repository: ``` $ mkdir my-config && cd my-config $ git init ``` After adding a readme and a license (or any other files you might like), create an `confer.ini` file. This file should follow the simple `INI` syntax. First section you should create in this file, is the details section: ``` [details] name = my-config desc = My very cool configuration author = me keywords = cool,bright,rofi ``` - `name`: Name of your configuration - `desc`: A short description (less then 200 chars) - `author`: Author of the configuration - `keywords`: A comma-separated list of keywords for your configuration The next sections you will add should contain individual configuration files different programs. These sections are called "targets": ``` [rofi] require = rofi desc = rofi launcher configuration dst = .config/rofi/config.rasi src = src/rofi/config.rasi ``` - **Section name**: is the name of the target, it should explain what the target is for (in this case the target is for `rofi` configuration, so its named `rofi`) - `require`: A comma-separated list of packages that this configuration requires - `desc`: A simple description explaining what the target is for - `dst`: Where should the configuration should be copied during the installation, `confer` will append the current user's home directory to this path - `src`: Where should the configuration should be copied during the packaging, this path is relative to the repository's path After adding all the targets, run the `gen` command, specifying the local path to the git repository that contain the `confer.ini` file: ``` $ confer gen /path/to/your/repository ``` `confer` will copy all the target files/directories from the `dst` to the `src`. When you are done, feel free to publish the git repository and share it. ### Installing configurations To install a configuration you need to use the `pull` command. After the command, specify a directory, a HTTP(S) git URL, or just specify a name: ``` $ confer pull messier87 ``` If you just specify a name, `confer` will look for that configuration in the [config hub](/hub). In this case, `confer` will pull down the `messier87` configuration, and walk you through the installation by asking yes/no questions. After the installation `confer` will install all the requirements using `matt`, and you will be ready to go! > **Important** > > Please check the `confer.ini` file before installing third party configuration packages > (packages that are not in the config hub), as they may include malicious configuration files > that may harm your system. ### Config Hub MatterLinux offers a simple [configuration hub](/hub), that you can use to find official configuration packages. You can also add your own configuration to the config hub, just create a issue or a pull request in the [website content git repository](https://git.matterlinux.xyz/Matter/content/issues).