content/wiki/pkg/confer.md

83 lines
3.4 KiB
Markdown
Raw Normal View History

2024-05-05 18:21:10 +00:00
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 "dot files".
2024-05-05 18:21:10 +00:00
### Installation
`confer` can be installed with `matt` (MatterLinux package manager), it's located in the desktop
pool:
2024-05-05 18:21:10 +00:00
```
# matt install --yes mc
2024-05-05 18:21:10 +00:00
```
In order to run `confer` as a non-root user, you will need to [install and configure `doas` or `sudo`](/wiki/post_install).
2024-05-05 18:21:10 +00:00
### 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
2024-05-05 18:21:10 +00:00
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
2024-05-05 18:21:10 +00:00
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/repo
```
`confer` will copy all the target files/directories from the `dst` to the
2024-05-05 18:21:10 +00:00
`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,
2024-05-05 18:21:10 +00:00
specify a directory, a HTTP(S) git URL, or just specify a name:
```
$ confer pull messier87
2024-05-05 18:21:10 +00:00
```
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
2024-05-05 18:21:10 +00:00
by asking yes/no questions.
After the installation `confer` will install all the requirements using `matt`, and you will be ready to go!
2024-05-05 18:21:10 +00:00
> **Important**
>
> Please check the `confer.ini` file before installing third party configuration packages
2024-05-05 18:21:10 +00:00
> (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.
2024-05-06 17:52:05 +00:00
You can also add your own configuration to the config hub, just create a issue or a pull request in the [website content repository](https://git.matterlinux.xyz/Matter/content/issues).