# Clapper A GNOME media player build using [GJS](https://gitlab.gnome.org/GNOME/gjs) with [GTK4](https://www.gtk.org) toolkit. The media player is using GStreamer [GstPlayer API](https://gstreamer.freedesktop.org/documentation/player/gstplayer) as a media backend and renders everything via [OpenGL](https://www.opengl.org). Can also be used as a pre-made widget for [GTK](https://www.gtk.org) apps.


Windowed Mode


Fullscreen Mode


Floating Mode

### WORK IN PROGRESS This is still early WIP. Many features are not implemented yet and quite a few are still unstable. ### Features: * [Playlists](https://github.com/Rafostar/clapper/wiki/Playlists) * [Hardware acceleration](https://github.com/Rafostar/clapper/wiki/Hardware-acceleration) * [Floating mode](https://github.com/Rafostar/clapper/wiki/Floating-mode) ## Installation from Flatpak (recommended) The flatpak package includes all required dependencies and codecs. Additionally it also has a few patches, thus some functionalities work better (or are only available) in flatpak version (until my changes are accepted upstream). ```sh flatpak install https://rafostar.github.io/flatpak/com.github.rafostar.Clapper.flatpakref ``` ## Packages The [pkgs folder](https://github.com/Rafostar/clapper/tree/master/pkgs) in this repository contains build scripts for various package formats. You can use them to build package yourself or download one of pre-built packages: #### Debian, Fedora, openSUSE & Ubuntu Pre-built packages are available in [my repo](https://software.opensuse.org//download.html?project=home%3ARafostar&package=clapper) ([see status](https://build.opensuse.org/package/show/home:Rafostar/clapper)). #### Arch Linux You can get Clapper from the AUR: [clapper-git](https://aur.archlinux.org/packages/clapper-git) ## Installation from source code The requirements and how to build from git source code are described in the [wiki](https://github.com/Rafostar/clapper/wiki#installation-from-source-code). ## Q&A **Q:** Does using `GJS` negatively impact video performance?
**A:** Absolutely not. `GJS` here is used to put together the GUI during startup. It has nothing to do with video rendering. All used `GTK4` and `GStreamer` libraries are in C. Even the custom video widget that I prepared for this player (based on original `GTK3` implementation) is in C. ## Special Thanks Many thanks to [sp1ritCS](https://github.com/sp1ritCS) for creating and maintaining package build files.