update: small wiki fixes and minor tweaks

This commit is contained in:
ngn
2024-08-21 03:53:10 +03:00
parent 0ff4366363
commit 2269f448ed
34 changed files with 168 additions and 103 deletions

6
wiki/tools/confer.json Normal file
View File

@ -0,0 +1,6 @@
{
"id": "confer",
"title": "Working with confer",
"author": "ngn",
"date": "14/08/24"
}

83
wiki/tools/confer.md Normal file
View File

@ -0,0 +1,83 @@
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).

6
wiki/tools/libmp.json Normal file
View File

@ -0,0 +1,6 @@
{
"id": "libmp",
"title": "Working with libmp",
"author": "ngn",
"date": "14/08/24"
}

1
wiki/tools/libmp.md Normal file
View File

@ -0,0 +1 @@
This page is currently under development.

6
wiki/tools/matt.json Normal file
View File

@ -0,0 +1,6 @@
{
"id": "matt",
"title": "Working with matt",
"author": "ngn",
"date": "14/08/24"
}

143
wiki/tools/matt.md Normal file
View File

@ -0,0 +1,143 @@
Package management is the process of installing, updating and removing software, tools and libraries.
On GNU/Linux systems, package management is usually done with a package manager.
# MatterLinux Package Manager
In a Matter system, package management is generally done with the MatterLinux Package Manager (`matt`).
`matt` lets you install, remove, update and search different MatterLinux packages across different [pools](/wiki/pools).
### Installation
`matt` should be already installed on a MatterLinux system. However if you want to install `matt` from
the source, then you should follow [this section](https://git.matterlinux.xyz/matter/matt#installation)
from the README.
> **Note**
>
> You should run all the `matt` and related commands as the root user.
### Configuration
Configuration file for `matt` can be found at `/etc/matt/config.ini`. This file is used specify pools and
configure general settings.
Here is the configuration shipped with the MatterLinux 24 releases:
```
# configuration file for matt, please see the wiki page for more information
# https://matterlinux.xyz/wiki/matt
tmpdir = /var/lib/matt/temp
datadir = /var/lib/matt/data
[base]
url = mptp://stable.matterlinux.xyz/base
# url = mptp://next.matterlinux.xyz/base
[desktop]
url = mptp://stable.matterlinux.xyz/desktop
# url = mptp://next.matterlinux.xyz/base
# [server]
# url = mptp://stable.matterlinux.xyz/server
# url = mptp://next.matterlinux.xyz/server
```
Lets start by breaking down the first section:
- `tmpdir (path)`: Temporary storage directory. Used for extracting temporary files and usually
this directory will be cleaned after an operation.
- `datadir (path)`: Persistent storage directory. Used for storing package databases and pool
information.
Next sections specify the pools. Section name is the pool name, and it **should match with the
actual pool name**. Pool options are:
- `url (URL)`: Pool URL, only `mptp` protocol is supported.
- `signing (yes/no)`: Enable/disable PGP signature verification for the pool, by default it's enabled.
> **Important**
>
> Do NOT disable signature verification if you don't know what are you doing! There is no
> way to confirm the legitimacy of the packages without signature verification!
### Options
`matt` also has a few other options that you specify as an arguments/parameters. You can list these
options using the `--help` option:
```
# matt --help
```
You can also list options for specific commands, for example:
```
# matt info --help
# matt list --help
```
### Syncing pools
To sync remote pool information and package lists, you can use the `sync` command:
```
# matt sync
```
After syncing remote pools, `matt` will provide public keys for the available pools.
You can add these keys to your keyring with `gpg`:
```
# gpg --receive-keys [fingerprint]
```
### Installing packages
To install a package, you can use the `install` command:
```
# matt install which
```
After running this command `matt` will attempt to find, download and verify the `which`
package, and then install it.
You can also install packages from local archives:
```
# matt install which_2.21.mpf
```
And you can install multiple packages at once:
```
# matt install grub systemd linux
```
### Removing/Uninstalling packages
To remove an installed package, you can use the `remove` command:
```
# matt remove which
```
You can also remove multiple packages:
```
# mp-remove git curl
```
### Updating packages
You can update all of the installed packages using the `update` command:
```
# matt update
```
### Querying packages
You can get more information about a package by querying it. For example to get
more information about the `which` package:
```
# matt info which
```
This will provide the following information about the package:
- Name of the package
- Version
- Description
- Size
- Dependencies
- If the package is installed
- If the package is up-to-date
### List packages
You can list all the installed packages with the `list` command:
```
# matt list
```
# Other package managers
It's a really bad idea to use multiple package managers as they may conflict and may result in an
unstable system. However package managers such as `flatpak` and `snap` offer containerized packages,
making them possible to use with other package managers. However currently none of these package
managers are available in the official pools. If you want to use them, you will need to install them
from the source.