# ukui-screensaver

[中文](README_zh.md)

Lock screen and screen saver for the UKUI desktop environment, built with Qt6.

## Features

- Lock screen: password and biometric authentication
- Screen saver: multiple saver modes, wallpaper slideshow with custom directory support
- Power management: suspend, hibernate, reboot, shutdown
- Multi-monitor support
- Audio visualization screen saver
- Virtual keyboard
- Network status display

## Dependencies

### Build Dependencies

- cmake (>= 3.5)
- Qt6: qt6-base-dev, qt6-tools-dev, qt6-svg-dev, qt6-multimedia-dev, qt6-base-private-dev, qt6-webengine-dev
- KF6: libkf6windowsystem-dev, libkf6networkmanagerqt-dev
- libpam0g-dev, libglib2.0-dev, libx11-dev, libxtst-dev
- libgsettings-qt6-dev, libmatemixer-dev, libimlib2-dev
- kwayland-dev, libkscreen-dev, libxrandr-dev, libxkbcommon-dev
- libnm-dev, libkylin-nm-base, kylin-nm-plugin-dev
- liblightdm-gobject-dev, libsystemd-dev, libssl-dev
- libavcodec-dev, libavformat-dev, libmpv-dev
- libukui-log4qt-dev, libkysdk-system-dev, libkysdk-applications-dev, libkysdk-base-dev
- libukcc-dev, libcharls-dev, libsqlite3-dev, libtag1-dev, libqrencode-dev, libpwquality-dev

### Runtime Dependencies

- ukui-session-manager (>= 4.0.0.0)
- libpam-biometric (>= 3.20.0.10)
- mate-desktop-common
- gstreamer1.0-libav
- libqt6sql6-sqlite

## Build & Install

```bash
cd ukui-screensaver
mkdir build && cd build
cmake ..
make
sudo make install
```

## Project Structure

```
src/
├── lock-dialog/        # Lock screen UI
├── lock-backend/       # Lock screen backend (auth, user info)
├── screensaver/        # Screen saver implementation
├── widgets/            # Shared UI components
├── common/             # Utilities and configuration
├── dbusifs/            # D-Bus interfaces
├── liblightdm-qt/      # LightDM Qt bindings
├── VirtualKeyboard/    # Virtual keyboard
├── QtSingleApplication/# Single-instance application support
└── ukccplugins/        # Control center plugins
```

## License

This project is licensed under [GPL-3.0 or later](https://www.gnu.org/licenses/gpl-3.0.html). See `debian/copyright` for details.
