79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
On this page you will learn how you can use MatterLinux configuration manager.
|
|
|
|
# MatterLinux Configuration Manager
|
|
`mc` or the MatterLinux configuration manager, is a simple program that allows you to
|
|
easily install and package your configurations.
|
|
|
|
### Installing `mc`
|
|
`mc` can be installed with `mp` (MatterLinux package manager), it's located in the desktop
|
|
repo:
|
|
```
|
|
# mp-install mc
|
|
```
|
|
In order to run `mc` 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
|
|
`mc.cfg` 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, `mc` 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 `mc-gen` command, specifying the local path to the git repository
|
|
that contain the `mc.gen` file. `mc` 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 `mc-pull` command. After the command,
|
|
specify a directory, a HTTP(S) git URL, or just specify a name:
|
|
```
|
|
$ mc-pull messier87
|
|
```
|
|
If you just specify a name, `mc` will look for that configuration in the [config hub](/hub).
|
|
In this case, `mc` will pull down the `messier87` configuration, and walk you through the installation
|
|
by asking yes/no questions.
|
|
|
|
After the installation `mc` will install all the requirements using `mp`, and you will be ready to go!
|
|
|
|
> **Important**
|
|
>
|
|
> Please check the `mc.cfg` 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 repository](https://git.matterlinux.xyz/Matter/content/issues).
|