Skip to content

VAXPAPPS/vsystemd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vSystemd - Vaxp OS Systemd Manager

vSystemd is a professional, high-performance Linux systemd service manager built with Flutter for Vaxp OS. It provides a beautiful, glassmorphic GUI to monitor, control, and manage systemd services directly via D-Bus, without relying on unstable terminal command execution.

🌟 Features

  • Direct Systemd Integration: Uses Dart FFI (Foreign Function Interface) to communicate directly with libsystemd via sd-bus. Zero Process.run overhead.
  • Real-time Monitoring: View the live Load State, Active State, and Sub State of all system services.
  • Interactive Dashboard: Features a dynamic pie chart (fl_chart) visualizing the total, active, inactive, and failed services at a glance.
  • Full Control: Start, Stop, Restart, Enable, and Disable any systemd service with a single click.
  • Custom Service Creation: Built-in modal to quickly create and bootstrap new custom systemd .service files directly into /etc/systemd/system/.
  • Clean Architecture: Strictly adheres to Domain-Driven Design (Domain, Data, and Presentation layers) with BLoC for predictable state management and GetIt for Dependency Injection.
  • Vaxp OS Aesthetics: Beautiful dark mode, glassmorphism design language using VenomScaffold.

🛠️ Prerequisites & Dependencies

To build and develop vSystemd from source on Linux, you need to install the following system dependencies:

1. Flutter SDK

Ensure you have the Flutter SDK installed and Linux desktop support enabled:

flutter config --enable-linux-desktop

2. System Dependencies

You must install the C/C++ build tools, GTK, and most importantly, the libsystemd development headers for compiling the FFI wrapper.

On Debian/Ubuntu/Vaxp OS (Debian-based):

sudo apt update
sudo apt install clang cmake git ninja-build pkg-config libgtk-3-dev libsystemd-dev

On Fedora:

sudo dnf install clang cmake git ninja-build pkgconf-pkg-config gtk3-devel systemd-devel

On Arch Linux:

sudo pacman -S clang cmake git ninja pkgconf gtk3 systemd

🚀 Building & Running

  1. Clone the repository (or navigate to the project directory).
  2. Fetch Flutter dependencies:
    flutter pub get
  3. Run the application:
    flutter run -d linux
  4. Build the release bundle:
    flutter build linux --release
    The compiled executable will be located at build/linux/x64/release/bundle/vsystemd.

⚠️ Note on Permissions: While reading service states does not require root privileges, actions like Starting, Stopping, Enabling, Disabling, or Creating services require elevated permissions. Depending on your system's polkit configuration, you may be prompted for a password by your desktop environment, or you may need to run the application as root (sudo ./vsystemd).

🏗️ Architecture Overview

  • linux/systemd_wrapper/: Contains the C code (systemd_wrapper.c) that interfaces with sd-bus.
  • lib/infrastructure/ffi/: Contains the Dart definitions bridging the C wrapper functions to Dart.
  • lib/domain/: Contains the ServiceEntity, UseCases, and Repository Interfaces.
  • lib/data/: Contains the repository implementation connecting FFI to the Domain layer.
  • lib/presentation/: Contains the BLoC state managers, UI pages, and components.

About

vSystemd is a professional, high-performance Linux systemd service manager built with Flutter for Vaxp OS. It provides a beautiful, glassmorphic GUI to monitor, control, and manage systemd services directly via D-Bus, without relying on unstable terminal command execution.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors