Skip to content

Installation

Installation

This guide covers installation methods for sysc-greet across different Linux distributions.

Quick Install Script

One-line install for most systems:

curl -fsSL https://raw.githubusercontent.com/Nomadcxx/sysc-greet/master/install.sh | sudo bash

The interactive installer will prompt you to: 1. Choose your compositor (niri, hyprland, or sway) 2. Configure compositor settings 3. Install dependencies automatically

Manual Build

Prerequisites

  • Go 1.25+
  • greetd
  • Wayland compositor (niri, hyprland, or sway)
  • kitty (terminal emulator)
  • gSlapper (wallpaper daemon)
  • swww (legacy wallpaper daemon, optional fallback)

Build Steps

git clone https://github.com/Nomadcxx/sysc-greet
cd sysc-greet
go build -o sysc-greet ./cmd/sysc-greet/
sudo install -Dm755 sysc-greet /usr/local/bin/sysc-greet

Run Installer

The installer handles compositor configuration automatically:

go run ./cmd/installer/

Arch Linux (AUR)

sysc-greet provides three AUR packages for different compositors:

# Recommended (niri)
yay -S sysc-greet

# Hyprland variant
yay -S sysc-greet-hyprland

# Sway variant
yay -S sysc-greet-sway

Pre-built Packages

Download pre-built packages from GitHub Releases:

Debian/Ubuntu (.deb)

wget https://github.com/Nomadcxx/sysc-greet/releases/download/vX.X.X/sysc-greet_vX.X.X_amd64.deb
sudo apt install ./sysc-greet_vX.X.X_amd64.deb

The package will: 1. Install sysc-greet to /usr/local/bin/ 2. Install configs to /usr/share/sysc-greet/ 3. Detect your compositor and configure greetd 4. Enable the greetd service

Note: Package configs use conservative syntax compatible with stable distribution versions. For bleeding-edge compositor features, use the Go installer or AUR instead.

Fedora (.rpm)

wget https://github.com/Nomadcxx/sysc-greet/releases/download/vX.X.X/sysc-greet-X.X.X-1.x86_64.rpm
sudo dnf install ./sysc-greet-X.X.X-1.x86_64.rpm

Post-Installation

After installation, reboot your system to see sysc-greet.

Uninstall

Debian/Ubuntu: sudo apt remove sysc-greet

Fedora: sudo dnf remove sysc-greet

NixOS (Flake)

Add to flake.nix

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    sysc-greet = {
      url = "github:Nomadcxx/sysc-greet";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, sysc-greet, ... }: {
    nixosConfigurations.your-hostname = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        sysc-greet.nixosModules.default
      ];
    };
  };
}

Add to configuration.nix

{
  services.sysc-greet = {
    enable = true;
    compositor = "niri";  # or "hyprland" or "sway"
  };

  # Optional: Set initial session for auto-login
  services.sysc-greet.settings.initial_session = {
    command = "Hyprland";
    user = "your-username";
  };
}

Rebuild System

sudo nixos-rebuild switch --flake .#your-hostname

Post-Installation Setup

Configure greetd

Edit /etc/greetd/config.toml:

[terminal]
vt = 1

[default_session]
# Choose your compositor:
command = "niri -c /etc/greetd/niri-greeter-config.kdl"
# command = "start-hyprland -- -c /etc/greetd/hyprland-greeter-config.conf"
# command = "sway --unsupported-gpu -c /etc/greetd/sway-greeter-config"
user = "greeter"

Install Compositor Config

Copy the appropriate config to /etc/greetd/:

# niri
sudo cp config/niri-greeter-config.kdl /etc/greetd/

# hyprland
sudo cp config/hyprland-greeter-config.conf /etc/greetd/

# sway
sudo cp config/sway-greeter-config /etc/greetd/

Create Greeter User

sudo useradd -M -G video -s /usr/bin/nologin greeter
sudo mkdir -p /var/cache/sysc-greet /var/lib/greeter/Pictures/wallpapers
sudo chown -R greeter:greeter /var/cache/sysc-greet /var/lib/greeter
sudo chmod 755 /var/lib/greeter

Enable Service

sudo systemctl enable greetd.service

Verification

After installation, test the greeter:

sysc-greet --test

For fullscreen testing:

kitty --start-as=fullscreen sysc-greet --test

Troubleshooting

IPC Client Error

If you see FATAL: Failed to create IPC client, check that: 1. You are not setting GREETD_SOCK environment variable manually 2. greetd is actually running and has created the socket 3. You are running sysc-greet through greetd (not directly in terminal)

Compositor Not Starting

Check compositor logs:

journalctl -u greetd -n 50

Greeter Not Appearing

Verify: 1. greetd service is enabled and running: systemctl status greetd 2. compositor config exists in /etc/greetd/ 3. greeter user has proper permissions

For more help, see Troubleshooting Guide.