mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-03-14 05:34:21 -04:00
232 lines
4.9 KiB
Markdown
232 lines
4.9 KiB
Markdown
|
|
---
|
||
|
|
title: Installation
|
||
|
|
description: Install mangowm on Arch, Fedora, Gentoo, Guix System, NixOS, PikaOS, or build from source.
|
||
|
|
---
|
||
|
|
|
||
|
|
## Package Installation
|
||
|
|
|
||
|
|
mangowm is available as a pre-built package on several distributions. Choose your distribution below.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Arch Linux
|
||
|
|
|
||
|
|
mangowm is available in the **Arch User Repository (AUR)**.
|
||
|
|
|
||
|
|
You can install it using an AUR helper like `yay` or `paru`:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
yay -S mangowm-git
|
||
|
|
```
|
||
|
|
|
||
|
|
> **Tip:** This package pulls the latest git version, ensuring you have the newest features and fixes.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Fedora
|
||
|
|
|
||
|
|
The package is in the third-party **Terra repository**. First, add the Terra Repository.
|
||
|
|
|
||
|
|
> **Warning:** Both commands require root privileges. Use `sudo` if needed.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
|
||
|
|
```
|
||
|
|
|
||
|
|
Then, install the package:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
dnf install mangowm
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Gentoo
|
||
|
|
|
||
|
|
The package is hosted in the community-maintained **GURU** repository.
|
||
|
|
|
||
|
|
1. **Add the GURU repository**
|
||
|
|
```bash
|
||
|
|
emerge --ask --verbose eselect-repository
|
||
|
|
eselect repository enable guru
|
||
|
|
emerge --sync guru
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Unmask packages**
|
||
|
|
Add the required packages to your `package.accept_keywords` file:
|
||
|
|
- `gui-libs/scenefx`
|
||
|
|
- `gui-wm/mangowm`
|
||
|
|
|
||
|
|
3. **Install mango**
|
||
|
|
```bash
|
||
|
|
emerge --ask --verbose gui-wm/mangowm
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Guix System
|
||
|
|
|
||
|
|
The package definition is described in the source repository.
|
||
|
|
|
||
|
|
1. **Add mango channel**
|
||
|
|
Add to `$HOME/.config/guix/channels.scm`:
|
||
|
|
```scheme
|
||
|
|
(cons (channel
|
||
|
|
(name 'mangowm)
|
||
|
|
(url "https://github.com/mangowm/mango.git")
|
||
|
|
(branch "main"))
|
||
|
|
%default-channels)
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Install**
|
||
|
|
After running `guix pull`, you can install mangowm:
|
||
|
|
```bash
|
||
|
|
guix install mangowm
|
||
|
|
```
|
||
|
|
|
||
|
|
Or add it to your system configuration using the mangowm module:
|
||
|
|
```scheme
|
||
|
|
(use-modules (mangowm))
|
||
|
|
|
||
|
|
(packages (cons*
|
||
|
|
mangowm-git
|
||
|
|
... ;; Other packages
|
||
|
|
%base-packages))
|
||
|
|
```
|
||
|
|
|
||
|
|
> **Tip:** For more information, see the [Guix System documentation](https://guix.gnu.org/manual/devel/en/html_node/Channels.html).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### NixOS
|
||
|
|
|
||
|
|
The repository provides a Flake with a NixOS module.
|
||
|
|
|
||
|
|
1. **Add flake input**
|
||
|
|
```nix
|
||
|
|
# flake.nix
|
||
|
|
{
|
||
|
|
inputs = {
|
||
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||
|
|
mangowm = {
|
||
|
|
url = "github:mangowm/mango";
|
||
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
||
|
|
};
|
||
|
|
# other inputs ...
|
||
|
|
};
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Import the NixOS module**
|
||
|
|
|
||
|
|
**Option A — Import in `configuration.nix`:**
|
||
|
|
```nix
|
||
|
|
# configuration.nix (or any other file that you import)
|
||
|
|
{inputs, ...}: {
|
||
|
|
imports = [
|
||
|
|
inputs.mangowm.nixosModules.mango
|
||
|
|
# .. other imports ...
|
||
|
|
];
|
||
|
|
|
||
|
|
# ...
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Option B — Import directly in flake:**
|
||
|
|
```nix
|
||
|
|
# flake.nix
|
||
|
|
{
|
||
|
|
# ...
|
||
|
|
|
||
|
|
outputs = { self, nixpkgs, mangowm, ...}@inputs: let
|
||
|
|
inherit (nixpkgs) lib;
|
||
|
|
# ...
|
||
|
|
in {
|
||
|
|
nixosConfigurations.YourHostName = lib.nixosSystem {
|
||
|
|
modules = [
|
||
|
|
mangowm.nixosModules.mango # or inputs.mangowm.nixosModules.mango
|
||
|
|
# other imports ...
|
||
|
|
];
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Enable the module**
|
||
|
|
```nix
|
||
|
|
# configuration.nix (or any other file that you import)
|
||
|
|
{
|
||
|
|
programs.mango.enable = true;
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **Extra options**
|
||
|
|
- `programs.mango.package` — the mango package to use, allows usage of custom mango drvs
|
||
|
|
- `programs.mango.addLoginEntry` (default: `true`) — adds login entry to the display manager
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### PikaOS
|
||
|
|
|
||
|
|
mangowm is available in the **PikaOS package repository**.
|
||
|
|
|
||
|
|
You can install it using the `pikman` package manager:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
pikman install mangowc
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Building from Source
|
||
|
|
|
||
|
|
If your distribution isn't listed above, or you want the latest unreleased changes, you can build mangowm from source.
|
||
|
|
|
||
|
|
> **Info:** Ensure the following dependencies are installed before proceeding:
|
||
|
|
> - `glibc`
|
||
|
|
> - `wayland`
|
||
|
|
> - `wayland-protocols`
|
||
|
|
> - `libinput`
|
||
|
|
> - `libdrm`
|
||
|
|
> - `libxkbcommon`
|
||
|
|
> - `pixman`
|
||
|
|
> - `git`
|
||
|
|
> - `meson`
|
||
|
|
> - `ninja`
|
||
|
|
> - `libdisplay-info`
|
||
|
|
> - `libliftoff`
|
||
|
|
> - `hwdata`
|
||
|
|
> - `seatd`
|
||
|
|
> - `pcre2`
|
||
|
|
> - `xorg-xwayland`
|
||
|
|
> - `libxcb`
|
||
|
|
|
||
|
|
You will need to build `wlroots` and `scenefx` manually as well.
|
||
|
|
|
||
|
|
1. **Build wlroots**
|
||
|
|
Clone and install the specific version required (check README for latest version).
|
||
|
|
```bash
|
||
|
|
git clone -b 0.19.2 https://gitlab.freedesktop.org/wlroots/wlroots.git
|
||
|
|
cd wlroots
|
||
|
|
meson build -Dprefix=/usr
|
||
|
|
sudo ninja -C build install
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Build scenefx**
|
||
|
|
This library handles the visual effects.
|
||
|
|
```bash
|
||
|
|
git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git
|
||
|
|
cd scenefx
|
||
|
|
meson build -Dprefix=/usr
|
||
|
|
sudo ninja -C build install
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Build mangowm**
|
||
|
|
Finally, compile the compositor itself.
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/mangowm/mango.git
|
||
|
|
cd mango
|
||
|
|
meson build -Dprefix=/usr
|
||
|
|
sudo ninja -C build install
|
||
|
|
```
|