{"id":13575693,"url":"https://github.com/ColumPaget/term_wifi","last_synced_at":"2025-04-04T22:31:52.975Z","repository":{"id":77681122,"uuid":"225027015","full_name":"ColumPaget/term_wifi","owner":"ColumPaget","description":"command-line or terminal-menu wifi setup application targetting linux machines without X11 (servers etc)","archived":false,"fork":false,"pushed_at":"2024-12-25T14:21:58.000Z","size":4573,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-25T15:21:13.291Z","etag":null,"topics":["iw","iwconfig","terminal","wifi"],"latest_commit_sha":null,"homepage":null,"language":"C","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/ColumPaget.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-11-30T14:50:21.000Z","updated_at":"2024-12-25T14:21:48.000Z","dependencies_parsed_at":"2024-11-05T11:51:31.358Z","dependency_job_id":null,"html_url":"https://github.com/ColumPaget/term_wifi","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fterm_wifi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fterm_wifi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fterm_wifi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColumPaget%2Fterm_wifi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ColumPaget","download_url":"https://codeload.github.com/ColumPaget/term_wifi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247260802,"owners_count":20910078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["iw","iwconfig","terminal","wifi"],"created_at":"2024-08-01T15:01:03.352Z","updated_at":"2025-04-04T22:31:47.966Z","avatar_url":"https://github.com/ColumPaget.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# SYNOPSIS\n\nterm_wifi is a command-line or terminal-menu based wifi setup tool intended for machines that lack a graphical environment. Initially only IP4 is supported. This program is a front-end to the iw, iwconfig and wpa_supplicant tools, and should automatically find them if they're in /bin, /usr/bin, /sbin or /usr/sbin.\n\nMost operations that involve wifi will have to be performed as the root user. Either run this program as root or, when running as another user, the program will prompt you for your root password. This is not stored in any config file.\n\nThe program can be used in command-line mode, or in the default 'interactive' mode that displays a simple terminal user interface.\n\n# INSTALL\n\n```\n./configure\nmake\n```\n\nThis should produce an executable called 'term_wifi' that you can copy to a bin directory.\n\n\n# REQUIRED 'HELPER' PROGRAMS\n\nterm_wifi requires iwconfig or iw to be installed for wifi scanning/setup, wpa_supplicant for WPA networks, dhcpcd for dhcp support and ifconfig and route for network setup.\n\nif term_wifi is not run as root, then it will try to use sudo, or if that's not installed, su, to run network commands with root permissions.\n\nqr-code export requires qrencode utility to be installed, and also an image viewer. term_wifi searches for a default list of image viewers, but this can be overridden with the `-viewer` option.\n\n\n\n# INTERACTIVE (USER INTERFACE) MODE\n\nif term_wifi is run without any arguments the user will be presented with a simple terminal user interface. You can use the '-i' option to show the tui for a given wifi device like so:\n\n```\n\tterm_wifi -i wlan1\n```\n\n\n# USAGE: Command line mode\n\nTo view available wifi networks:\n\n```\n\tterm_wifi scan \u003cinterface\u003e\n```\n\nTo configure a wifi network for use:\n\n```\n\tterm_wifi add \u003cessid\u003e dhcp\n\tterm_wifi add \u003cessid\u003e \u003cip4 address\u003e \u003cnetmask\u003e \u003cgateway\u003e \u003cdns server\u003e\n```\n\nYou can add a network to the stored config with either of these commands. These two commands also accept `-k \u003ckey\u003e` and `-ap \u003caccess point\u003e` options. the `-k` option allows specifying the wifi key/password. If it's not specified with this option then the user will be prompted for it. The `-ap` option allows specifiying an access-point mac address, in order to distinguish different networks with the same essid.\n\nOnce a setup is added to known networks you can join to it with:\n\n```\n\tterm_wifi join \u003cinterface\u003e \u003cessid\u003e\n```\n\n'connect' does the same thing as 'join' but uses the default interface:\n\n```\n\tterm_wifi connect \u003cessid\u003e\n```\n\nIf a wifi password is not known at this stage, you will be prompted for one. If the current user is not root you will likely be prompted for the system root password too.\n\nTo leave a wifi network that you're currently connected to use:\n\n```\n\tterm_wifi leave \u003cinterface\u003e\n```\n\nTo view available wifi interfaces:\n\n```\n\tterm_wifi interfaces\n```\n\nTo view currently configured wifi networks:\n\n```\n\tterm_wifi list\n```\n\nTo 'forget' (delete) a configured network\n\n```\n\tterm_wifi forget \u003cessid\u003e\n```\n\n\n\n# COMMAND LINE REFERENCE\n\n```\n  term_wifi interfaces                                                list interfaces\n  term_wifi scan \u003cinterface\u003e                                          scan networks and output details\n  term_wifi add \u003cessid\u003e \u003caddress\u003e \u003cnetmask\u003e \u003cgateway\u003e  \u003cdns server\u003e   add a config for a network\n  term_wifi add \u003cessid\u003e dhcp                                          add a config for a network using dhcp\n  term_wifi forget \u003cessid\u003e                                            delete (forget) network\n  term_wifi list                                                      list configured networks\n  term_wifi join \u003cinterface\u003e \u003cessid\u003e                                  join a configured network\n  term_wifi leave \u003cinterface\u003e                                         leave current network\n  term_wifi connect \u003cessid\u003e                                           join configured network with default interface\n  term_wifi qrcode \u003cessid\u003e                                            display qr code for saved network with essid '\u003cessid\u003e'\n  term_wifi qrcode \u003cessid\u003e -viewer \u003clist\u003e                             display qr code for saved network with essid '\u003cessid\u003e' using first viewer program found in comma-separated list '\u003clist\u003e'\n  term_wifi qrcode \u003cessid\u003e -viewer \"sixel\"                            display qr code using terminal's sixel support\n  term_wifi qrcode \u003cessid\u003e -o \u003cpath\u003e                                  write qr code for network '\u003cessid\u003e' to PNG file at \u003cpath\u003e\n  term_wifi -?                                                        this help\n  term_wifi -h                                                        this help\n  term_wifi -help                                                     this help\n  term_wifi --help                                                    this help\n\noptions that apply to connect/interactive mode\n  -i \u003cinterface\u003e                                                      interface to use\n  -ap \u003caccess point mac address\u003e                                      access point to join (if many for same essid)\n  -k \u003ckey\u003e                                                            authentication key for given essid/network)\n  -w \u003cpath\u003e                                                           path to control sock of existing/running wpa_supplicant\n```\n\nyou can use `-i \u003cinterface\u003e` to specify and interface to use for the 'connect', 'scan' and tui commands.\n\n\nQR CODES\n========\n\nthe command-line 'qrcode' action will produce a qrcode PNG and attempt to find an image-viewer to display it. You can specify an image-viewer command using the '-viewer' option. Failing that, term_wifi has an internal list of image-viewer programs to try. Currently this default list is:\n\n```\n    imlib2_view, fim, feh, display, xv, phototonic, qimageviewer, pix, sxiv, qimgv, qview, nomacs, geeqie, ristretto, mirage, fotowall, links -g, convert, img2sixel -e\n```\nThe '-viewer' option can be used to alter this list, like so:\n\n```\n   term_wifi -qrcode mynet -viewer \"imgview,fim,xv\"\n```\n\nIf no image viewers are found, there are two options at the end of this list that output sixel images to the terminal, provided your terminal supports sixel image display. To force use of sixel images use '-viewer sixel'.\n\nFinally, if nothing matching is found, the ultimate fallback is to use qrencodes 'ANSI256' display message to create a giant QR code with ANSI graphics.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fterm_wifi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FColumPaget%2Fterm_wifi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColumPaget%2Fterm_wifi/lists"}