Skip to content

Repository files navigation

🚀 SmileMenu 🚀

A fast and lightweight application launcher and utility menu

SmileMenu is a lightweight app launcher and utility menu for Wayland desktops. It's highly themable, supports custom scripting, and much more.



Screenshot



Note

This project was meant to be a personal project, but I'm feeling happy to share it with others. Therefore, I am not accepting contributions. Thank you. Hope you like this simple utility :)



✨ Features

  • Native Qt/QML interface
  • Fully customizable/themable via custom QML(s)
  • Application category searching
  • Shows recently used apps by score
  • Fuzzy searching
  • Provider scripting system (list / run)
  • And much more...
  • See Wiki for more help

See CHANGELOG.md for latest update information.



🔗 Dependencies

Arch Linux

  • qt6-base
  • qt6-declarative
  • layer-shell-qt

Debian

  • qt6-base-dev
  • qt6-declarative-dev
  • layer-shell-qt

Fedora

  • qt6-qtbase
  • qt6-qtdeclarative
  • layer-shell-qt



📥 Install

Automatic installation

This will install the latest release on any Arch/Debain/Fedora based systems.

Install:

curl -fsSL https://raw.githubusercontent.com/SmileLulz/SmileMenu/main/install.sh | bash

Or, if you want to inspect the installation script first:

# Download the script
curl -fsSL https://raw.githubusercontent.com/SmileLulz/SmileMenu/main/install.sh -o install.sh

# Inspect
less install.sh

# Then you can install with the downloaded script
bash install.sh

Manual installation

Arch Linux:

  1. Download the latest .tar.zst file from the Releases page
  2. Install it with sudo pacman -U /path/to/smilemenu-*.pkg.tar.zst

Debian:

  1. Download the latest .deb file from the Releases page
  2. Install it with sudo apt install /path/to/smilemenu-*.deb

Fedora:

  1. Download the latest .rpm file from the Releases page
  2. Install it with sudo dnf install /path/to/smilemenu-*.rpm



📦 Build by yourself

Clone the repository

git clone https://github.com/SmileLulz/SmileMPlayer.git && cd SmileMPlayer

Running for testing/debugging

For test and debugging purposes.

  1. Build:
# Build
./build.sh

# Or rebuild
./rebuild.sh
  1. Run directly:
# Start the daemon
./build/smilemenu --daemon

# Run
./build/smilemenu

Build for Arch Linux

  1. Install build dependencies:
sudo pacman -S --needed cmake gcc
  1. Build:
# Build & install
makepkg -si

# Or build first, then install manually/optionally
makepkg -s
sudo pacman -U smilemenu-*.pkg.tar.zst

Build for Debian

Warning

Debian build is unstable due to older version of LayerShellQt it ships.

If you want to build anyway, then comment out the LayerShellQt.Window.wantsToBeOnActiveScreen: true line in qml/Main.qml. But keep in mind that it would exclude a feature from SmileMenu.

  1. Install build dependencies:
sudo apt install \
    build-essential \
    cmake \
    g++ \
    qt6-base-dev \
    qt6-declarative-dev \
    liblayershellqtinterface-dev \
    layer-shell-qt \
    qml6-module-org-kde-layershell
  1. Build:
dpkg-buildpackage -b -us -uc
  1. Install:
sudo apt install ../smilemenu_*.deb

Build for Fedora

Install build dependencies:

sudo dnf install \
    cmake \
    gcc-c++ \
    qt6-qtbase-devel \
    qt6-qtdeclarative-devel \
    layer-shell-qt-devel

Create required directories:

mkdir -p rpm/{BUILD,BUILDROOT,RPMS,SOURCES,SRPMS}

Note

Now, you have two options to build:

Option 1: Use the release source archive.

Option 2: Use a specific commit source archive.

Option 1:

This is for most users who just want to build the release version.

Make sure to git checkout to that commit tag first (i.e. git checkout v4.4).

  1. Download the release source archive:
spectool --define "_topdir $PWD/rpm" rpm/SPECS/smilemenu.spec
  1. Build:
rpmbuild --define "_topdir $PWD/rpm" -ba rpm/SPECS/smilemenu.spec
  1. Install:
sudo dnf install rpm/RPMS/x86_64/smilemenu-*.rpm

Option 2:

This is mostly for local testing or building from a specific commit.

Make sure to git checkout to that commit first (e.g. git checkout <commit_hash_or_tag>).

  1. Create the source archive from current commit (replace X.Y with the actual version):
git archive --format=tar.gz --prefix=SmileMenu-X.Y/ HEAD > rpm/SOURCES/vX.Y.tar.gz
  1. Build:
rpmbuild --define "_topdir $PWD/rpm" -ba rpm/SPECS/smilemenu.spec
  1. Install:
sudo dnf install rpm/RPMS/x86_64/smilemenu-*.rpm

Releases

Contributors

Languages