{"id":18581329,"url":"https://github.com/e-tho/iwmenu","last_synced_at":"2026-02-19T23:01:31.819Z","repository":{"id":251984908,"uuid":"836916241","full_name":"e-tho/iwmenu","owner":"e-tho","description":"Launcher-driven Wi-Fi manager for Linux","archived":false,"fork":false,"pushed_at":"2026-02-15T23:11:49.000Z","size":2518,"stargazers_count":411,"open_issues_count":8,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-02-16T04:40:01.108Z","etag":null,"topics":["cli","dmenu","fuzzel","iwd","launcher","linux","rofi","walker","wifi"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e-tho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"e_tho","liberapay":"e-tho"}},"created_at":"2024-08-01T20:36:17.000Z","updated_at":"2026-02-15T23:11:53.000Z","dependencies_parsed_at":"2024-11-07T00:03:37.193Z","dependency_job_id":"c58b2cd9-d5f9-4756-9e77-c595c75881a7","html_url":"https://github.com/e-tho/iwmenu","commit_stats":null,"previous_names":["e-tho/iwmenu"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/e-tho/iwmenu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-tho%2Fiwmenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-tho%2Fiwmenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-tho%2Fiwmenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-tho%2Fiwmenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e-tho","download_url":"https://codeload.github.com/e-tho/iwmenu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-tho%2Fiwmenu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29636038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","dmenu","fuzzel","iwd","launcher","linux","rofi","walker","wifi"],"created_at":"2024-11-07T00:01:48.509Z","updated_at":"2026-02-19T23:01:31.812Z","avatar_url":"https://github.com/e-tho.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eiwmenu\u003c/h1\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://ko-fi.com/e_tho\"\u003e\u003cimg src=\"https://img.shields.io/badge/Ko--fi-F16061?style=flat\u0026logo=ko-fi\u0026logoColor=white\" alt=\"Ko-fi\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://liberapay.com/e-tho\"\u003e\u003cimg src=\"https://img.shields.io/badge/Liberapay-F6C915?style=flat\u0026logo=liberapay\u0026logoColor=333333\" alt=\"Liberapay\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cimg src=\"./assets/demo.gif\" alt=\"Demonstration of iwmenu: a launcher-driven Wi-Fi manager for Linux\" width=\"800\"\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/e-tho/bzmenu\" title=\"Try bzmenu: a launcher-driven Bluetooth manager for Linux\"\u003e\u003cimg src=\"https://custom-icon-badges.demolab.com/badge/bzmenu-1565C0?style=for-the-badge\u0026logo=bluetooth\u0026logoSource=feather\u0026logoColor=white\" alt=\"bzmenu: a launcher-driver Bluetooth manager for Linux\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/e-tho/pwmenu\" title=\"Try pwmenu: a launcher-driven audio manager for Linux\"\u003e\u003cimg src=\"https://custom-icon-badges.demolab.com/badge/pwmenu-DC6338?style=for-the-badge\u0026logo=volume-2\u0026logoSource=feather\u0026logoColor=white\" alt=\"pwmenu: a launcher-driven audio manager for Linux\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## About\n\n`iwmenu` (**i**Net **W**ireless **Menu**) manages Wi-Fi through your launcher of choice.\n\n## Dependencies\n\n### Build\n\n- [`Rust`](https://www.rust-lang.org/) (includes `cargo`)\n\n### Runtime\n\n- [`iwd`](https://iwd.wiki.kernel.org) – iNet Wireless Daemon\n- [`dbus`](https://www.freedesktop.org/wiki/Software/dbus) – For communicating with `iwd`\n- A launcher with `stdin` mode support\n\n#### Optional\n\n- [NerdFonts](https://www.nerdfonts.com/) – For font-based icons (default mode)\n- [XDG icon theme](https://specifications.freedesktop.org/icon-theme-spec/latest) – For image-based icons (used with `-i xdg`, included with DEs or can be installed manually)\n- [Notification daemon](https://specifications.freedesktop.org/notification-spec/latest/) – For system notifications (e.g. `dunst` or `fnott`, included with DEs or can be installed manually)\n\n## Compatibility\n\n| Launcher                                   | Font Icons | XDG Icons | Notes                                                                                 |\n| ------------------------------------------ | :--------: | :-------: | ------------------------------------------------------------------------------------- |\n| [Fuzzel](https://codeberg.org/dnkl/fuzzel) |     ✅     |    ✅     | XDG icons supported since v1.13.0                                                     |\n| [Rofi](https://github.com/davatorium/rofi) |     ✅     |    🔄     | XDG icon support pending via [PR #2122](https://github.com/davatorium/rofi/pull/2122) |\n| [dmenu](https://tools.suckless.org/dmenu)  |     ✅     |    ❌     | No XDG icon support                                                                   |\n| Custom (stdin)                             |     ✅     |    ❔     | Depends on launcher implementation                                                    |\n\n\u003e [!TIP]\n\u003e If your preferred launcher isn't directly supported, use `custom` mode with appropriate command flags.\n\n## Installation\n\n### Build from source\n\nRun the following commands:\n\n```shell\ngit clone https://github.com/e-tho/iwmenu\ncd iwmenu\ncargo build --release\n```\n\nAn executable file will be generated at `target/release/iwmenu`, which you can then copy to a directory in your `$PATH`.\n\n### Nix\n\nInstall from nixpkgs:\n\n```nix\n{ pkgs, ... }:\n{\n  environment.systemPackages = [ pkgs.iwmenu ];\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eAlternative: Install from flake\u003c/summary\u003e\n\nAdd flake as an input:\n\n```nix\ninputs.iwmenu.url = \"github:e-tho/iwmenu\";\n```\n\nInstall from flake:\n\n```nix\n{ inputs, ... }:\n{\n  environment.systemPackages = [ inputs.iwmenu.packages.${pkgs.system}.default ];\n}\n```\n\n\u003c/details\u003e\n\n### Alpine Linux\n\nInstall from the testing repository:\n\n```shell\napk add iwmenu\n```\n\n### Arch Linux\n\nInstall from AUR with your favorite helper:\n\n```shell\nparu -S iwmenu # or iwmenu-git\n```\n\n### Gentoo\n\nInstall from GURU overlay:\n\n```shell\nsudo eselect repository enable guru\nsudo emaint sync -r guru\nsudo emerge -a net-wireless/iwmenu\n```\n\n## Usage\n\n### Supported launchers\n\nSpecify an application using `-l` or `--launcher` flag.\n\n```shell\niwmenu -l fuzzel\n```\n\n### Custom launchers\n\nSpecify `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.\n\n```shell\niwmenu -l custom --launcher-command \"my_custom_launcher --flag\"\n```\n\n#### Prompt and Placeholder support\n\nUse `{hint}` as the value for the relevant flag in your command; it will be substituted with the appropriate text as needed.\n\n```shell\niwmenu -l custom --launcher-command \"my_custom_launcher --placeholder-flag '{hint}'\" # or --prompt-flag '{hint}:'\n```\n\n#### Password obfuscation support\n\nTo enable support for password obfuscation, set the appropriate flag via `{password_flag:--my-password-flag}`.\n\n```shell\niwmenu -l custom --launcher-command \"my_custom_launcher {password_flag:--my-password-flag}\"\n```\n\n#### Example to enable all features\n\nThis example demonstrates enabling all available features in custom mode with `fuzzel`.\n\n```shell\niwmenu -l custom --launcher-command \"fuzzel -d --placeholder '{hint}' {password_flag:--password}\"\n```\n\n### Available Options\n\n| Flag                 | Description                                               | Supported Values                    | Default Value |\n| -------------------- | --------------------------------------------------------- | ----------------------------------- | ------------- |\n| `-l`, `--launcher`   | Specify the launcher to use (**required**).               | `dmenu`, `rofi`, `fuzzel`, `custom` | `None`        |\n| `--launcher-command` | Specify the command to use when `custom` launcher is set. | Any valid shell command             | `None`        |\n| `-i`, `--icon`       | Specify the icon type to use.                             | `font`, `xdg`                       | `font`        |\n| `-s`, `--spaces`     | Specify icon to text space count (font icons only).       | Any positive integer                | `1`           |\n| `--back-on-escape`   | Return to previous menu on escape.                        | N/A                                 | `false`       |\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.\n\n## License\n\nThis project is licensed under the terms of the GNU General Public License version 3, or (at your option) any later version.\n\n## Support this project\n\nIf you find this project useful and would like to help me dedicate more time to its development, consider supporting my work.\n\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white)](https://ko-fi.com/e_tho)\n[![Liberapay](https://img.shields.io/badge/Liberapay-F6C915?style=for-the-badge\u0026logo=liberapay\u0026logoColor=black)](https://liberapay.com/e-tho)\n","funding_links":["https://ko-fi.com/e_tho","https://liberapay.com/e-tho"],"categories":["Rust","Linux","cli"],"sub_categories":["Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-tho%2Fiwmenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe-tho%2Fiwmenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-tho%2Fiwmenu/lists"}