Skip to content

tiwut/Tiwut-Launcher-Linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiwut Launcher (Linux Edition)

A premium, frosted Glass native Linux launcher designed exclusively for compiling, installing, running, and managing Tiwut applications in a non-root, user-space environment. Built with a 100% native CPP backend integrated with a responsive WebKit user interface.

image

Features

  • frosted Glass Modern UI: Transparent window overlay with smooth hover effects, micro-animations, full CSS glassmorphism, dynamic console logs, and built-in tabbed navigation.
  • Subprocess Downloader with Fail-safes: Downloads remote files asynchronously. If the native Qt network manager encounters a problem, it automatically drops through robust fallbacks:
    1. Native Qt network download
    2. curl subprocess download
    3. wget subprocess download
  • Non-Root Extractor Pipeline: Installs a wide variety of Linux application packages locally without needing sudo/root access:
    • AppImages: Configures execution permissions and performs automatic squashing/extraction if FUSE (libfuse2) is unavailable on the host machine.
    • Debian Packages (.deb): Automatically extracts data archives using dpkg-deb or falls back to standard ar + tar pipelines.
    • RedHat Packages (.rpm): Extracts packages using rpm2cpio + cpio or falls back to 7z.
    • Flatpak Bundles: Installs .flatpak bundles silently in the user-registry context (flatpak install --user).
    • Compressed Archives (.zip, .tar.gz, .tar.xz, .tgz): Dynamically extracts archives using standard system utilities or custom Python-based zip/tarball extractors.
  • Asynchronous Compiler State Machine: Clones repositories from GitHub (or fetches branch ZIP files if git cloning fails) and automatically determines the best compile path:
    • CMake: Automatically configures and compiles targets (cmake -B build followed by cmake --build).
    • Shell Scripts: Detects and runs executable build/install scripts (e.g., build.sh, install.sh, compile.sh).
    • Makefiles: Resolves parallel building dynamically based on system thread count (make -jN).
  • Detached Launch & Deep Clean Uninstaller: Launches applications fully detached from the main launcher process, terminates running instances gracefully via system signals (pkill/pgrep/kill/killall), and completely purges local files and binary caches.

Architecture & Tech Stack

Tiwut Launcher utilizes a dual-engine architecture:

  1. Core Engine (C++ / Qt6): Handles OS interaction, network management, asynchronous process control (QProcess), dynamic file system scanning, extraction, and local compilation.
  2. Frontend UI (HTML5 / Vanilla CSS / JavaScript): A modern reactive visual layer rendered inside QWebEngineView with a bridge that triggers system RPC methods seamlessly.

Building & Running

Prerequisites

Ensure you have a modern C++17 compiler and Qt6 development libraries installed on your Linux distribution.

On Debian/Ubuntu:

sudo apt install build-essential cmake qt6-base-dev qt6-webengine-dev

On Fedora:

sudo dnf install cmake gcc-c++ qt6-qtbase-devel qt6-qtwebengine-devel

On Arch Linux:

sudo pacman -S cmake gcc qt6-base qt6-webengine

Installation & Build

  1. Clone this repository to your local machine:

    git clone https://github.com/tiwut/Tiwut-Launcher-Linux.git
    cd Tiwut-Launcher-Linux
  2. Configure the build directory:

    cmake -B build -S .
  3. Compile the application:

    cmake --build build
  4. Launch the binary:

    ./build/TiwutLauncher

Project Directory Structure

├── CMakeLists.txt         # Port-ready CMake configuration
├── src
│   ├── main.cpp           # App initialization and WebEngine configuration
│   ├── mainwindow.h       # Controller definitions and async states
│   ├── mainwindow.cpp     # System RPC layer, subprocess pipelines, and resolvers
│   └── index.html         # Rich Liquid-Glass UI & frontend application logic
└── build/                 # Created build outputs

License

This project is open-source and available under the MIT License.

About

A premium, frosted Glass native Linux launcher designed exclusively for compiling, installing, running, and managing Tiwut applications in a non-root, user-space environment. Built with a 100% native CPP backend integrated with a responsive WebKit user interface.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors