Skip to content

e-tho/iwmenu

Repository files navigation

iwmenu

Demo

Demonstration of iwmenu: a menu-driven Wi-Fi management interface

About

iwmenu (iNet Wireless Menu) allows using your menu of choice to manage the wireless network.

Important

This project is under active development; features may change.

Prerequisites

iwd must be installed, along with either a supported launcher or any stdin mode launcher.

Note

To ensure proper icon display, you can either install nerdfonts for font-based icons (usage is optional) or use the --icon xdg flag for image-based icons from your XDG theme.

Compatibility

Use custom mode if your launcher is not supported.

Installation

Build from source

Run the following commands:

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

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

Nix

Add the flake as an input:

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

Install the package:

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

Arch Linux

Install the package with your favorite AUR helper:

paru -S iwmenu-git

Gentoo

Install the package from GURU overlay:

sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge -a net-wireless/iwmenu

Usage

Supported menus

Specify an application using -m or --menu flag.

iwmenu -m fuzzel

Custom menus

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

iwmenu -m custom --menu-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.

iwmenu -m custom --menu-command "my_custom_launcher --prompt-flag '{prompt}'" # or --placeholder-flag '{placeholder}'

Password obfuscation support

To enable support for password obfuscation, set the appropriate flag via {password_flag:--my-password-flag}.

iwmenu -m custom --menu-command "my_custom_launcher {password_flag:--my-password-flag}"

Example to enable all features

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

iwmenu -m custom --menu-command "fuzzel -d -p '{prompt}' {password_flag:--password}"

Available Options

Flag Description Supported Values Default Value
-m, --menu Specify the menu application to use. dmenu, rofi, wofi, fuzzel, custom dmenu
--menu-command Specify the command to use when custom menu 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

License

GPLv3