maomaowm/docs/installation.md
Ruixi-rebirth 406866d96a
docs(nix): add startup guide and clarify addLoginEntry
- Replace 'Extra options' with greetd and getty autologin examples
- Add bash/zsh and fish variants for getty autologin
- Add link to Nix Module Options reference
- Clarify addLoginEntry only has effect when a DM is configured
2026-05-13 06:09:00 +08:00

6.4 KiB

title description
Installation Install mangowm on AerynOS, 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.


AerynOS

mangowm is available in the AerynOS package repository.

You can install it using the moss package manager:

sudo moss install mangowm

Arch Linux

mangowm is available in the Arch User Repository (AUR).

You can install it using an AUR helper like yay or paru:

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.

dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release

Then, install the package:

dnf install mangowm

Gentoo

The package is hosted in the community-maintained GURU repository.

  1. Add the GURU repository

    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

    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:

    (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:

    guix install mangowm
    

    Or add it to your system configuration using the mangowm module:

    (use-modules (mangowm))
    
    (packages (cons*
                mangowm-git
                ... ;; Other packages
                %base-packages))
    

Tip: For more information, see the Guix System documentation.


NixOS

The repository provides a Flake with a NixOS module.

  1. Add flake input

    # 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:

    # configuration.nix (or any other file that you import)
    {inputs, ...}: {
      imports = [
        inputs.mangowm.nixosModules.mango
        # .. other imports ...
      ];
    
      # ...
    }
    

    Option B — Import directly in flake:

    # 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

    # configuration.nix (or any other file that you import)
    {
      programs.mango.enable = true;
    }
    
  4. Start mango on login

    The following are common examples. Refer to the official NixOS documentation for full configuration options.

    Option A — greetd: Autologin on first start; login screen after logout.

    services.greetd = {
      enable = true;
      settings = {
        initial_session = {
          command = "mango";
          user = "your-username"; # auto-login on first start, no password required
        };
        default_session = {
          command = "${pkgs.greetd.tuigreet}/bin/tuigreet --cmd mango";
          user = "greeter";
        };
      };
    };
    

    Option B — Display manager autologin: Autologin via an existing display manager (e.g. SDDM, GDM). addLoginEntry (default: true) automatically registers mango as a session.

    services.displayManager = {
      defaultSession = "mango"; # derived from mango.desktop filename
      autoLogin = {
        enable = true;
        user = "your-username";
      };
    };
    

    Option C — getty autologin: No login screen, boots directly into mango on TTY1.

    For bash/zsh:

    services.getty.autologinUser = "your-username";
    
    environment.loginShellInit = ''
      [ "$(tty)" = /dev/tty1 ] && exec mango
    '';
    

    For fish:

    services.getty.autologinUser = "your-username";
    
    programs.fish.loginShellInit = ''
      if test (tty) = /dev/tty1
          exec mango
      end
    '';
    
  5. All available options

    See Nix Module Options for the full list of NixOS and Home Manager options.


PikaOS

mangowm is available in the PikaOS package repository.

You can install it using the pikman package manager:

pikman install mangowm

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:

  • wayland
  • wayland-protocols
  • libinput
  • libdrm
  • libxkbcommon
  • pixman
  • 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).

    git clone -b 0.19.3 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.

    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.

    git clone https://github.com/mangowm/mango.git
    cd mango
    meson build -Dprefix=/usr
    sudo ninja -C build install