158 lines
4.2 KiB
Markdown
158 lines
4.2 KiB
Markdown
# Sherlock Confetti
|
|
|
|
Sherlock Confetti is a lightweight program that displays a confetti animation
|
|
as a top-level overlay on Wayland compositors. It provides a fun and colorful
|
|
visual effect without interfering with your workflow.
|
|
|
|
<https://github.com/user-attachments/assets/d4e63a6b-ce41-4faa-8a1e-898570056e84>
|
|
|
|
## Features
|
|
|
|
- **Wayland-native:** Built specifically for Wayland environments.
|
|
- **Tiling Window Manager Friendly:** Displays on top without disrupting your
|
|
window layout.
|
|
- **High-performance rendering with WGPU:** Utilizes GPU acceleration for
|
|
smooth animation.
|
|
- **Shader-driven confetti:** Custom shaders deliver rich, dynamic visual
|
|
effects.
|
|
- **Multiple Color Palettes:** Choose from a variety of predefined vibrant and
|
|
pastel palettes.
|
|
- **Standalone or Integrated:** Originally created for the custom launcher
|
|
[Sherlock](https://github.com/Skxxtz/sherlock), but fully functional as a
|
|
standalone program.
|
|
|
|
## Usage
|
|
|
|
Simply run the program to enjoy confetti animations on your Wayland session. It
|
|
can be integrated or triggered by other applications such as launchers or
|
|
window managers.
|
|
|
|
```bash
|
|
confetti
|
|
```
|
|
|
|
## Installation
|
|
|
|
### Build Dependencies
|
|
- `libxkbcommon`
|
|
|
|
### Runtime Dependencies
|
|
- `vulkan-icd-loader`
|
|
- `mesa`
|
|
- `wayland`
|
|
- `wayland-protocols`
|
|
|
|
### <ins>From Source</ins>
|
|
|
|
To build Confetti from source, follow these steps.<br>
|
|
Make sure you have the necessary dependencies installed:
|
|
|
|
- `rust` - [How to install rust](https://www.rust-lang.org/tools/install)
|
|
- `git` - [How to install git](https://github.com/git-guides/install-git)
|
|
|
|
1. **Clone the repository**:
|
|
|
|
```bash
|
|
git clone https://github.com/skxxtz/sherlock-confetti.git
|
|
cd sherlock-confetti
|
|
```
|
|
|
|
2. **Build the project**:
|
|
|
|
```bash
|
|
cargo build --release
|
|
```
|
|
|
|
3. **Install the binary**:
|
|
|
|
After the build completes, install the binary to your system:
|
|
|
|
```bash
|
|
sudo cp target/release/confetti /usr/local/bin/
|
|
```
|
|
|
|
### <ins>From Binary</ins>
|
|
|
|
Make sure you have the following dependency installed:
|
|
|
|
- `tar` - [Tar](https://www.gnu.org/software/tar/)
|
|
|
|
1. **Download the archive containing the latest release**:
|
|
|
|
The archive can be found [here](https://github.com/Skxxtz/sherlock-confetti/releases/latest).
|
|
|
|
2. **Extract the files from the archive**:
|
|
|
|
```bash
|
|
cd ~/Downloads/
|
|
tar -xzf sherlock-confetti*.tar.gz
|
|
```
|
|
|
|
You can use tab-completion or run `ls` to verify the name of the archive.
|
|
|
|
3. **Install the binary**:
|
|
|
|
Now move the binary to a location on your `$PATH` environment variable:
|
|
|
|
```bash
|
|
sudo mv confetti /usr/local/bin/
|
|
```
|
|
|
|
Optionally also move the LICENSE file or delete it:
|
|
|
|
```bash
|
|
sudo mkdir -p /usr/share/doc/confetti
|
|
sudo mv LICENSE /usr/share/doc/confetti/
|
|
|
|
# or, to remove it:
|
|
rm LICENSE
|
|
```
|
|
|
|
### <ins>Build Debian Package</ins>
|
|
|
|
To build a `.deb` package directly from the source, follow these steps:<br>
|
|
Make sure you have the following dependencies installed:
|
|
|
|
- `rust` - [How to install rust](https://www.rust-lang.org/tools/install)
|
|
- `git` - [How to install git](https://github.com/git-guides/install-git)
|
|
|
|
1. **Install the `cargo-deb` tool**:
|
|
|
|
First, you need to install the `cargo-deb` tool, which simplifies packaging Rust projects as Debian packages:
|
|
|
|
```bash
|
|
cargo install cargo-deb
|
|
```
|
|
|
|
2. **Build the Debian package**:
|
|
|
|
After installing `cargo-deb`, run the following command to build the `.deb` package:
|
|
|
|
```bash
|
|
cargo deb
|
|
```
|
|
|
|
This will create a `.deb` package in the `target/debian` directory.
|
|
|
|
3. **Install the generated `.deb` package**:
|
|
|
|
Once the package is built, you can install it using:
|
|
|
|
```bash
|
|
sudo dpkg -i target/debian/confetti_*.deb
|
|
```
|
|
|
|
You can use tab-completion or `ls target/debian/` to confirm the file name.
|
|
|
|
(Make sure to replace the filename if the version number is different.)
|
|
|
|
## Palettes
|
|
|
|
Palettes can be selected by running `confetti` with the `--palette <name>`
|
|
flag. The names for available palettes are listed in the graphic below:
|
|
|
|
<div align="center" style="text-align:center; border-radius:10px;">
|
|
<picture>
|
|
<img alt="color palettes" width="100%" style="border-radius: 10px;" src="assets/palettes.png">
|
|
</picture>
|
|
</div>
|