rmenu mirror
Go to file
2024-07-10 22:05:43 -07:00
examples
nix chore: cargo update. rmenu 1.2.1 -> 1.2.2 2024-04-28 10:21:50 -07:00
other-plugins feat: powermenu support hyprland 2024-07-10 11:38:03 -07:00
plugin-desktop chore: improve cli descriptions 2024-07-10 01:32:56 -07:00
plugin-network fix: hide menu for network gui 2024-07-10 11:38:21 -07:00
plugin-run feat: use rayon for desktop/run plugins 2024-06-18 22:40:14 -07:00
plugin-window feat: upgrade deps, incomplete work on dioxus 5 rewrite 2024-06-18 22:41:33 -07:00
rmenu fix: debug window usage should be gated with macro 2024-07-10 22:05:43 -07:00
rmenu-plugin feat: implement custom right-click context menu 2024-07-10 21:47:22 -07:00
screenshots
themes fix: improper overflow due to css margin 2024-07-10 17:44:18 -07:00
.gitignore
Cargo.lock feat: additional debug, fixed decorations issue 2024-07-08 22:38:28 -07:00
Cargo.toml
flake.lock update flake lock 2024-04-28 11:17:49 +02:00
flake.nix
LICENSE
Makefile feat: minor default make-install restructure 2024-04-03 22:40:26 -07:00
README.md feat: now in nix unstable 2024-04-07 02:51:35 -07:00
rust-toolchain.toml

RMenu

Another customizable Application-Launcher written in Rust

Features

  • Blazingly Fast 🔥
  • Simple and Easy to Use
  • Customizable (Configuration and CSS-Styling)
  • Plugin Support
  • Dmenu-Like Stdin Menu Generation

Installation

Nix

RMenu now has Nix support thanks to @LordGrimmauld!

Try it on nix directly via

nix run github:imgurbot12/rmenu -- -r drun

Rmenu v1.2.0 is now in nix unstable! Install it via:

sudo nix-channel --add https://nixos.org/channels/nixpkgs-unstable unstable
sudo nix-channel --update
sudo nix-env -iA unstable.rmenu
Other Platforms:

Install Dependencies (Ubuntu)

sudo apt install pkg-config libglib2.0-dev libghc-gi-gdk-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev libnm-dev

Compile and Install Binaries/Config-Files

$ make install

Usage

View all available options with the built-in help:

$ rmenu --help
Plugins

RMenu Comes with a few default plugins.

Name Description
run Execute a program in $PATH
drun Run a Configured Free-Desktop Application
audio Select and Set-Default PulseAudio Sink using pactl
network Wi-Fi Login/Connection Tool using Network-Manager
window Simple Window Switcher (Currently Only Support Sway)
powermenu Simple Power/Logout Tool (Currently Only Supports Sway)

Run a plugin by passing the -r flag like one of the following:

$ rmenu -r run
$ rmenu -r drun
$ rmenu -r audio

Or even run plugins in combination if you'd like:

$ rmenu -r run -r drun
Direct Input

Custom Menus can also be passed via /dev/stdin or as an input file. The schema follows a standard as defined in rmenu-plugin

$ ./examples/rmenu-build.sh > input.json
$ rmenu -i input.json

When neither a plugin nor an input are specified, rmenu defaults to reading from stdin.

$ ./examples/rmenu-build.sh | rmenu
Supported Formats

RMenu has two supported input formats: dmenu-like and JSON. JSON is the default provided by rmenu and allows for rich configuration and controls for dynamically generated menus. You can switch between supported formats with -f:

$ printf 'foo\nbar\nbaz' | rmenu -f dmenu

Check the examples folder for more examples.

Configuration

Customize RMenu Behavior and Appearal in a single config

Customize the entire app's appearance with CSS. A few Example Themes are available as reference. To try them out use: rmenu --css <my-css-theme> or move the css file to $HOME/.config/rmenu/style.css

Scripting

RMenu plugins and imports communicate using JSON messages defined in rmenu-plugin. Writing JSON in shell is painful, so rmenu provides another cli-tool to help build messages quickly and easily while still retaining the flexibility of JSON.

After Installing. Use the following command, and look at other-plugins for example uses.

$ rmenu-build --help

Example Screenshots

Launchpad

launchpad

Nord

nord

Dark

dark

Solarized

solzarized

PowerMenu

powermenu