Skip to content

Installation

mmaher88 edited this page Mar 13, 2026 · 3 revisions

Installation

Arch Linux / CachyOS / Manjaro / EndeavourOS

yay -S fcitx5-laren

That's it. The installer automatically:

  • Installs fcitx5 and fcitx5-configtool as dependencies
  • Configures your desktop environment (KDE, GNOME, Sway, Hyprland, etc.)
  • Sets up environment variables (GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS)
  • Starts fcitx5 immediately
  • Pre-configures Laren as the default input method

Toggle Arabic input with Ctrl+Space.

Fedora (41, 42, 43)

sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/mmaher88:/laren/Fedora_$(rpm -E %fedora)/home:mmaher88:laren.repo
sudo dnf install fcitx5-laren

Ubuntu (24.04 LTS, 25.10)

DISTRO="xUbuntu_$(lsb_release -rs)" && \
  sudo mkdir -p /etc/apt/keyrings && \
  curl -fsSL "https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/Release.key" \
    | sudo gpg --dearmor --yes -o /etc/apt/keyrings/laren.gpg && \
  echo "deb [signed-by=/etc/apt/keyrings/laren.gpg] https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/ /" \
    | sudo tee /etc/apt/sources.list.d/laren.list && \
  sudo apt update && sudo apt install -y fcitx5-laren

Linux Mint (22.x)

Mint 22.x is based on Ubuntu 24.04. Use xUbuntu_24.04 directly:

DISTRO="xUbuntu_24.04" && \
  sudo mkdir -p /etc/apt/keyrings && \
  curl -fsSL "https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/Release.key" \
    | sudo gpg --dearmor --yes -o /etc/apt/keyrings/laren.gpg && \
  echo "deb [signed-by=/etc/apt/keyrings/laren.gpg] https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/ /" \
    | sudo tee /etc/apt/sources.list.d/laren.list && \
  sudo apt update && sudo apt install -y fcitx5-laren

Debian 12

DISTRO="Debian_12" && \
  sudo mkdir -p /etc/apt/keyrings && \
  curl -fsSL "https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/Release.key" \
    | sudo gpg --dearmor --yes -o /etc/apt/keyrings/laren.gpg && \
  echo "deb [signed-by=/etc/apt/keyrings/laren.gpg] https://download.opensuse.org/repositories/home:/mmaher88:/laren/${DISTRO}/ /" \
    | sudo tee /etc/apt/sources.list.d/laren.list && \
  sudo apt update && sudo apt install -y fcitx5-laren

openSUSE Tumbleweed

sudo zypper ar https://download.opensuse.org/repositories/home:/mmaher88:/laren/openSUSE_Tumbleweed/home:mmaher88:laren.repo
sudo zypper refresh && sudo zypper install fcitx5-laren

Build from Source (any distro)

Dependencies

Distro Packages
Arch cmake fcitx5 extra-cmake-modules
Fedora cmake gcc-c++ fcitx5-devel
Ubuntu/Debian cmake g++ fcitx5-modules-dev libfcitx5core-dev

Build & Install

git clone https://github.com/mmaher88/laren.git
cd laren
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF
cmake --build build -j$(nproc)
sudo cmake --install build

Run Tests (optional)

cmake -B build -DBUILD_TESTS=ON
cmake --build build -j$(nproc)
cd build && ctest --output-on-failure

Desktop Setup

KDE Plasma (Wayland)

  1. System Settings > Virtual Keyboard > Fcitx 5
  2. Log out / log in (or run qdbus6 org.kde.KWin /KWin reconfigure)

KDE Plasma (X11) / GNOME / XFCE / Others

Add to ~/.config/environment.d/fcitx5.conf:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

Sway

Add to ~/.config/sway/config:

exec_always fcitx5 -d --replace

Hyprland

Add to ~/.config/hypr/hyprland.conf:

exec-once = fcitx5 -d

Post-Install

flowchart TD
    A["yay -S fcitx5-laren"] --> B["Install deps<br/>fcitx5 + configtool"]
    B --> C["Build from source"]
    C --> D["Run 143 unit tests"]
    D --> E["Install files"]
    E --> F{"Detect desktop"}

    F -->|KDE| G["Configure kwinrc<br/>Reconfigure KWin<br/>Toggle virtual keyboard"]
    F -->|Sway| H["Add exec to sway config"]
    F -->|Hyprland| I["Add exec-once to config"]
    F -->|Other| J["Create XDG autostart"]

    G --> K["Inject env vars<br/>into live session"]
    H --> K
    I --> K
    J --> K

    K --> L["Start fcitx5"]
    L --> M["🎉 Ready!<br/>Ctrl+Space to toggle"]

    style A fill:#e1f5fe
    style M fill:#c8e6c9
Loading

Clone this wiki locally