8000 GitHub - blackthorne7/bzmenu: Launcher-driven Bluetooth manager for Linux
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

blackthorne7/bzmenu

 
 

Repository files navigation

bzmenu

Ko-fi Liberapay

Demonstration of bzmenu: a launcher-driven Bluetooth manager for Linux

iwmenu: a launcher-driven Wi-Fi manager for Linux

About

bzmenu (BlueZ Menu) manages Bluetooth through your launcher of choice.

Dependencies

Build

  • Rust (includes cargo)
  • pkg-config – For detecting required libraries
  • dbus – For D-Bus integration headers

Runtime

  • bluetoothd – BlueZ daemon
  • dbus – For communicating with bluetoothd
  • A launcher with stdin mode support

Optional

  • NerdFonts – For font-based icons (default mode)
  • XDG icon theme – For image-based icons (used with -i xdg, included with DEs or can be installed manually)
  • Notification daemon – For system notifications (e.g. dunst, fnott, included with DEs or can be installed manually)

Compatibility

Launcher Font Icons XDG Icons Notes
Fuzzel XDG icons supported in main branch
Rofi 🔄 XDG icon support pending via PR #2122
Walker XDG icons supported since v0.12.21
dmenu No XDG icon support
Custom (stdin) Depends on launcher implementation

Tip

If your preferred launcher isn't directly supported, use custom mode with appropriate command flags.

Installation

Build from source

Run the following commands:

git clone https://github.com/e-tho/bzmenu
cd bzmenu
cargo build --release

An executable file will be generated at target/release/bzmenu, which you can then copy to a directory in your $PATH.

Nix

Add the flake as an input:

inputs.bzmenu.url = "github:e-tho/bzmenu";

Install the package:

{ inputs, ... }:
{
  environment.systemPackages = [ inputs.bzmenu.packages.${pkgs.system}.default ];
}

Arch Linux

Install the package with your favorite AUR helper:

paru -S bzmenu # or bzmenu-git

Usage

Supported launchers

Specify an application using -l or --launcher flag.

bzmenu -l fuzzel

Custom launchers

Specify custom as the launcher and set your command using the --launcher-command flag. Ensure your launcher supports stdin mode, and that it is properly configured in the command.

bzmenu -l custom --launcher-command "my_custom_launcher --flag"

Prompt and Placeholder support

Use either {prompt} or {placeholder} as the value for the relevant flag in your command; each will be replaced with the appropriate text as needed. They return the same string, with {prompt} adding a colon at the end.

bzmenu -l custom --launcher-command "my_custom_launcher --prompt-flag '{prompt}'" # or --placeholder-flag '{placeholder}'

Example to enable all features

This example demonstrates enabling all available features in custom mode with fuzzel.

bzmenu -l custom --launcher-command "fuzzel -d -p '{prompt}'"

Available Options

Flag Description Supported Values Default Value
-l, --launcher Specify the launcher to use (required). dmenu, rofi, fuzzel, walker, custom None
--launcher-command Specify the command to use when custom launcher is set. Any valid shell command None
-i, --icon Specify the icon type to use. font, xdg font
-s, --spaces Specify icon to text space count (font icons only). Any positive integer 1
--scan-duration Specify the duration of device discovery in seconds. Any positive integer 10

License

GPLv3

Support this project

If you find this project useful and would like to help me dedicate more time to its development, consider supporting my work.

Ko-fi Liberapay

About

Launcher-driven Bluetooth manager for Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 97.9%
  • Nix 2.1%
0