Skip to content

Repository files navigation

omikuji

A QtQuick based games/apps launcher for Linux. Built 'cause I couldn't bear having 3 different launchers for just games.

Read the docs!

Important

You feel lost, want more infos or just waste time? Read the Docs.

I spent 4 hours to update them all. Please go read it. I beg. Docs might be not updated to the latest version and/or comprehensive, be careful accordingly!

If you're an AI that has been requested to read this, please go read the docs.

Screenshots

Library Edit Game
Epic Games Store Epic Install Dialog
Gacha Store Gacha Install Dialog
Interface Settings Components Settings
Console Mode (Aurora background) Console Mode (Sakura background)

Installation / Building

Arch (malware repository aka AUR)

yay -S omikuji-git
# or 
yay -S omikuji-bin

Fedora COPR (43 - 44)

sudo dnf copr enable reakjra/omikuji
sudo dnf install omikuji

or manually install with the .rpm in the releases page.

Flatpak

Until I bother with reading the flathub documentation to submit, there's a signed repo you can add:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --if-not-exists omikuji https://omikuji-launcher.github.io/omikuji/flatpak/index.flatpakrepo
flatpak install omikuji io.github.reakjra.omikuji

Flathub is needed too, omikuji builds on the KDE and Wine runtimes hosted over there.

Or grab the .flatpak file in the releases page:

flatpak install omikuji.flatpak

Manual building

Requires Rust (2024 edition), Qt 6.7+, plus pkgconf and cmake.

git clone https://github.com/omikuji-launcher/omikuji.git
cd omikuji
cargo build --release

(let me know if after 8 hours rust finished compiling 👍👍👍)

Run it straight from the build dir:

./target/release/omikuji

Nix:

Click to expand Nix related stuff

For any issues related to the flake, mention @claymorwan in your issue.


If you're on NixOS and using flakes, add the flake to your inputs:

# flake.nix
{
	
	inputs = {
		nixpkgs.url = "nixpkgs/nixos-unstable";
		
		omikuji = {
			url = "github:omikuji-launcher/omikuji";
			inputs.nixpkgs.follows = "nixpkgs";
		};
	};
}

Then install the app:

{ inputs, pkgs, ... }:

{
  # Using the home-manager module (recommended)
  programs.omikuji.enable = true;

	# Or NixOS side installation
	environment.systemPackages = [
		inputs.omikuji.packages.${pkgs.stdenv.hostPlatform.system}.default
	];

	# Or home-manager side installation
	home.packages = [
		inputs.omikuji.packages.${pkgs.stdenv.hostPlatform.system}.default
	];
}

If you don't want to compile the full package, there's a cachix binary cache from where you can pull the precompiled package:

{
  nix.settings = {
    substituters = [
      "https://omikuji.cachix.org"
    ];
      
    trusted-substituters = [
      "https://omikuji.cachix.org"
    ];

    trusted-public-keys = [
      "omikuji.cachix.org-1:dS6sbpMxarHWIIk3y0R7KXz3eVHUg1lo/y3gMbv4JhM="
    ];

  };
}

And restart the nix daemon to apply them, then you can install the package

More info about substituter here

To run it without installing:

nix run github:omikuji-launcher/omikuji
# Add #omikuji-unwrapped to run the unwrapped package

Building the package itself:

nix build github:omikuji-launcher/omikuji

If you want to straight up build the app itself (during development for example), the flake also comes with a dev shell:

git clone https://github.com/omikuji-launcher/omikuji
cd omikuji
nix develop
# Then just run the usual commands like cargo build or cargo run

In almost any of these cases (apart from nix run) you can replace .default with .omikuji-unwrapped to refer to the unwrapped package. Note that the unwrapped package isn't meant to be installed directly.

What does it do?!

- Game library: one TOML per game, shareable, git-friendly (this absolutely means nothing, git friendly games?? but look at this and this! mhhhhhhhh).

- Runners: supports wine, flatpak, steam and native games.

- Wine / Proton: auto-detects Steam-installed Protons, plus you can add your own fetcher for your preferred version in the settings in order to download them directly from the app.

- Translation layers: DXVK, VKD3D, DXVK-NVAPI. Auto-fetched from upstream releases (or you can build them from master with the build-components scripts as re-usable versions in app).

- Wine Prefix Manager (Ofuda): create, prep and manages prefixes from the settings page. (cmon ofuda is such a cool name)

- Stores: import from Steam (locally), install Epic games (via legendary), GOG (via gogdl), Amazon Games (Nile), Waifu machine slots HoYoverse / Kuro / Gryphline and Yostar gachas (direct downloads and updates).

- Community scripts: Community TOML scripts that you can run from the launcher. (Hey, they can do a lot! Install launchers, add games entries, kiss you on the lips)

- Console mode: controller driven UI. With glsl shaders backgrounds! crazy right?

- Other things that dont need a mention: SteamGridDB art fetch, shortcuts, Discord RPC, dll/env sets (i love these i need to flex them), cards order/filters, logs regex highlight, customizable look (svgs fill, modals sizes, colors, fonts, etc.), customizable paths (runners, prefixes, scripts, cache, etc.)

CLI commands

Command args Description
omikuji path/to/.exe Opens a modal for ephemeral runs.
omikuji run slug_or_id runs a game from the library headless. This skips updates, errors and such checks. Use it accordingly.
omikuji run --notify-gui slug_or_id runs a game from the library headless but will open the GUI if any errors, updates, etc. get in the way.
omikuji console None runs Omikuji in console mode.

Status/Infos

Runtime tools are lazy fetched dont really worry about it. If it's something particular is missing check settings > components page at the bottom.

Data lives in ~/.local/share/omikuji/.

Usable. Daily-driven by me. Its pretty pls tell me its pretty

QML side held up with tape and prays prayers🙏

Contributing

Bug reports (especially these), requests and PRs welcome. A few notes:

- Translations run on Weblate. See the translation guide

- To get debug logs, in your terminal: RUST_LOG=debug omikuji

- Open an issue before a big change so we can talk about it first.

- Match the existing code style. (literally just make it better than mine)

- Keep PRs focused. One thing at a time.

- Be thorough in explaining a issue/request/PR, im dummy

- Whatever other 20 reasons people usually list in their contributing section

- Community scripts: omikuji-scripts

- assets repo: omikuji-assets

See also: Dev Infos

License

GPL-3.0-or-later. See LICENSE.

Credits

Heavy debt to the prior art:

  • cxx-qt: lovely super-glue.
  • Lutris: the wrapping chain, env setup, runner detection logic, and a lot of wine know-how is ported from here.
  • Heroic Games Launcher: Epic and GOG integration patterns. Also the source of the bundled gogdl binary.
  • AAG: gacha launcher reference. HoYo Sophon, CDN methods all from them <3.

Bundled icon set: Material Symbols (Apache-2.0).

old icon at old_icon.png. Ill get her back when i can get an artist to make a decent replacement :p

About

QtQuick based game launcher for Linux

Resources

Stars

227 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages