Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/e-tho/iwmenu
A menu-driven interface for managing Wi-Fi on Linux.
https://github.com/e-tho/iwmenu
Last synced: about 2 months ago
JSON representation
A menu-driven interface for managing Wi-Fi on Linux.
- Host: GitHub
- URL: https://github.com/e-tho/iwmenu
- Owner: e-tho
- License: gpl-3.0
- Created: 2024-08-01T20:36:17.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-29T17:07:52.000Z (about 2 months ago)
- Last Synced: 2024-10-29T18:36:49.564Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 270 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/e-tho/iwmenu - Network management menu (Jump To / Linux)
README
iwmenu
## Demo
![Demonstration of iwmenu: a menu-driven Wi-Fi management interface](assets/demo.gif)
## About
`iwmenu` (**i**Net **W**ireless **Menu**) allows using your menu of choice to manage the wireless network.
> [!IMPORTANT]
> This project is under active development; features may change.## Prerequisites
[iwd](https://iwd.wiki.kernel.org/) 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](https://www.nerdfonts.com/) for font-based icons (usage is optional) or use the `--icon xdg` flag for image-based icons from your XDG theme.### Compatibility
- [Fuzzel](https://codeberg.org/dnkl/fuzzel/)
- [Rofi](https://github.com/davatorium/rofi/)
- [Wofi](https://hg.sr.ht/~scoopta/wofi/)
- [dmenu](https://tools.suckless.org/dmenu/)Use `custom` mode if your launcher is not supported.
## Installation
### Build from source
Run the following commands:
```shell
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:
```nix
inputs.iwmenu.url = "github:e-tho/iwmenu";
```Install the package:
```nix
{ inputs, ... }:
{
environment.systemPackages = [ inputs.iwmenu.packages.${pkgs.system}.default ];
}
```### Arch Linux
Install the package with your favorite AUR helper:
```shell
paru -S iwmenu-git
```## Usage
### Supported menus
Specify an application using `-m` or `--menu` flag.
```shell
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.
```shell
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.
```shell
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}`.
```shell
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`.
```shell
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