Iwmenu
Launcher-driven Wi-Fi manager for Linux
Install / Use
/learn @e-tho/IwmenuREADME
About
iwmenu (iNet Wireless Menu) manages Wi-Fi through your launcher of choice.
Dependencies
Build
Rust(includescargo)
Runtime
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.
dunstorfnott, included with DEs or can be installed manually)
Compatibility
| Launcher | Font Icons | XDG Icons | Notes | | ------------------------------------------- | :--------: | :-------: | ------------------------------------------------------------------------------------- | | Fuzzel | ✓ | ✓ | XDG icons supported since v1.13.0 | | Rofi | ✓ | ⧖ | XDG icon support pending via PR #2122 | | dmenu | ✓ | ✗ | No XDG icon support | | bemenu | ✓ | ✗ | No XDG icon support | | Custom (stdin) | ✓ | ? | Depends on launcher implementation |
[!TIP] If your preferred launcher isn't directly supported, use
custommode with appropriate command flags.
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
Install from nixpkgs:
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.iwmenu ];
}
<details>
<summary>Alternative: Install from flake</summary>
Add flake as an input:
inputs.iwmenu.url = "github:e-tho/iwmenu";
Install from flake:
{ inputs, ... }:
{
environment.systemPackages = [ inputs.iwmenu.packages.${pkgs.system}.default ];
}
</details>
Alpine Linux
Install from the testing repository:
apk add iwmenu
Arch Linux
Install from AUR with your favorite helper:
paru -S iwmenu # or iwmenu-git
Gentoo
Install from GURU overlay:
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge -a net-wireless/iwmenu
Usage
Supported launchers
Specify an application using -l or --launcher flag.
iwmenu -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.
iwmenu -l custom --launcher-command "my_custom_launcher --flag"
Prompt and Placeholder support
Use {hint} as the value for the relevant flag in your command; it will be substituted with the appropriate text as needed.
iwmenu -l custom --launcher-command "my_custom_launcher --placeholder-flag '{hint}'" # or --prompt-flag '{hint}:'
Password obfuscation support
To enable support for password obfuscation, set the appropriate flag via {password_flag:--my-password-flag}.
iwmenu -l custom --launcher-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 -l custom --launcher-command "fuzzel -d --placeholder '{hint}' {password_flag:--password}"
Available Options
| Flag | Description | Supported Values | Default Value |
| -------------------- | ------------------------------------------------------------------ | --------------------------------------------- | ------------- |
| -l, --launcher | Specify the launcher to use (required). | dmenu, rofi, fuzzel, bemenu, 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 |
| --interactive | Stay in menus after actions and return to previous menu on escape. | N/A | false |
Contributing
Please see CONTRIBUTING.md for contribution guidelines.
License
This project is licensed under the terms of the GNU General Public License version 3, or (at your option) any later version.
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.
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
