Skip to content

Skxxtz/sherlock-confetti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

showcase.mp4

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, 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.

confetti

Installation

Build Dependencies

  • libxkbcommon

Runtime Dependencies

  • vulkan-icd-loader
  • mesa
  • wayland
  • wayland-protocols

From Source

To build Confetti from source, follow these steps.
Make sure you have the necessary dependencies installed:

  1. Clone the repository:

    git clone https://github.com/skxxtz/sherlock-confetti.git
    cd sherlock-confetti
  2. Build the project:

    cargo build --release
  3. Install the binary:

    After the build completes, install the binary to your system:

    sudo cp target/release/confetti /usr/local/bin/

From Binary

Make sure you have the following dependency installed:

  1. Download the archive containing the latest release:

    The archive can be found here.

  2. Extract the files from the archive:

    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:

    sudo mv confetti /usr/local/bin/

    Optionally also move the LICENSE file or delete it:

    sudo mkdir -p /usr/share/doc/confetti
    sudo mv LICENSE /usr/share/doc/confetti/
    
    # or, to remove it:
    rm LICENSE

Build Debian Package

To build a .deb package directly from the source, follow these steps:
Make sure you have the following dependencies installed:

  1. Install the cargo-deb tool:

    First, you need to install the cargo-deb tool, which simplifies packaging Rust projects as Debian packages:

    cargo install cargo-deb
  2. Build the Debian package:

    After installing cargo-deb, run the following command to build the .deb package:

    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:

    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.)

Using Nix

If you have Nix with flakes enabled, you can use the provided flake.nix without installing Rust or other build tools yourself.

  • Run directly from the flake (no install):

    nix run github:Skxxtz/sherlock-confetti
  • Install into your profile:

    nix profile install github:Skxxtz/sherlock-confetti#confetti
  • Build locally from a checkout and use the dev shell:

    # build the flake output
    nix build .#confetti
    ./result/bin/confetti
    
    # enter a shell with Rust/tooling set up
    nix develop

Palettes

Palettes can be selected by running confetti with the --palette <name> flag. The names for available palettes are listed in the graphic below:

color palettes