# falcond-gui

A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon.

## Overview

`falcond-gui` provides a user-friendly graphical interface for managing `falcond`. It allows users to view the status of the daemon and customize its behavior.

## Features

- Monitor Falcond status
- Control gaming optimization settings
- Built with GTK4 and LibAdwaita for a modern GNOME-styled interface

## Dependencies

### Runtime Dependencies
- `falcond`
- `libgtk-4-1`
- `libadwaita-1-0`

### Build Dependencies
- `rustc`
- `cargo`
- `libgtk-4-dev`
- `libadwaita-1-dev`

## Installation

### Building from Source

1. Ensure you have the build dependencies installed.
2. Navigate to the project directory:

```bash
cd falcond-gui
```

3. Build the project:

```bash
cargo build --release
```

4. Run the application:

```bash
cargo run --release
```

### Packaging Guidelines

Ensure the package installation script (`postinst`) performs the following operations to correctly set up permissions and user groups:

1. **Icon & Desktop File**: Install the application icon and `.desktop` file to their standard locations.
2. **User Profiles Directory**: Ensure `/usr/share/falcond/profiles/user` exists.
3. **Group Management**:
    - Create a system group named `falcond` if it does not already exist.
    - Add the `root` user to the `falcond` group.
    - If possible, add the user installing the package to the `falcond` group.
4. **Permissions**:
    - Set ownership of `/usr/share/falcond/profiles/user` to `root:falcond`.
    - Set directory permissions to `2775` (`drwxrwsr-x`). This ensures:
        - Group members (users in `falcond`) can read, write, and execute (enter).
        - The setgid bit (`s`) ensures new files created in this directory inherit the `falcond` group ownership.

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.

Copyright (c) 2026 PikaOS
