Skip to main content

A modern TUI for Wireless@SGx setup on Linux

Project description

Wireless@SGx Linux TUI

A modern, user-friendly TUI (Text User Interface) application for setting up Wireless@SGx on Linux systems. No more manual configuration or command-line hassles!

Python Version License

Features

  • 🎨 Beautiful TUI - Modern terminal interface using Textual framework
  • 🔐 Secure Storage - Credentials stored securely in system keyring
  • 🔧 Auto Configuration - Automatically configures NetworkManager
  • 🌐 Multi-ISP Support - Works with Singtel and Starhub
  • 📱 Easy OTP Entry - User-friendly OTP input with timer
  • 🚀 One-Line Install - Simple installation process

Quick Start

Option 1: Install from PyPI (Recommended)

pip install wirelesssgx
wirelesssgx

Option 2: One-Line Installer

curl -sSL https://raw.githubusercontent.com/siva-sub/wireless-sgx-linux-tui/master/install.sh | bash

Option 3: Install from Source

git clone https://github.com/siva-sub/wireless-sgx-linux-tui.git
cd wireless-sgx-linux-tui
pip install -e .
wirelesssgx

Updating

To update to the latest version:

curl -sSL https://raw.githubusercontent.com/siva-sub/wireless-sgx-linux-tui/master/update.sh | bash

Uninstalling

To completely remove Wireless@SGx:

curl -sSL https://raw.githubusercontent.com/siva-sub/wireless-sgx-linux-tui/master/uninstall.sh | bash

Usage

  1. Launch the application:

    wirelesssgx
    

    Or if you prefer:

    python -m wirelesssgx
    
  2. Choose your action:

    • New Registration: For first-time users
    • Retrieve Existing: If you already have an account
    • Auto-Connect: If you have saved credentials
  3. Enter your details:

    • Phone number (8-digit Singapore mobile, e.g., 9XXXXXXX)
    • Date of birth (DDMMYYYY format)
    • Select your ISP (Singtel/Starhub)
  4. Enter OTP:

    • Check your SMS for the OTP
    • Enter it in the application
  5. Done! Your credentials are saved and network is configured automatically.

CLI Commands

After setting up, you can use these commands to manage your connection:

View Saved Credentials

wirelesssgx show

Shows your saved username, ISP, and auto-connect status.

Connect Manually

wirelesssgx connect

Connect to Wireless@SGx using your saved credentials.

Enable Auto-Connect

wirelesssgx autoconnect

Configure your system to automatically connect to Wireless@SGx when in range.

Check Connection Status

wirelesssgx status

Check if you're currently connected to Wireless@SGx.

Forget Credentials

wirelesssgx forget

Delete your saved credentials and network configuration.

What is a TUI?

This application uses a Text User Interface (TUI) - it runs in your terminal but provides a graphical-like experience with:

  • Mouse support
  • Buttons and forms
  • Colored interface
  • Keyboard navigation

Think of it as a GUI that runs in your terminal!

Supported ISPs

  • Singtel - Fully tested and working
  • Starhub - Fully tested and working

Note: M1 and SIMBA are also Wireless@SG operators but their API endpoints are not publicly available for this registration method.

Requirements

  • Python 3.8 or higher
  • Linux with NetworkManager or systemd-networkd
  • Active Singapore mobile number for OTP

Troubleshooting

Common Issues

  1. "Cannot connect to NetworkManager"

    • Ensure NetworkManager is running: sudo systemctl start NetworkManager
  2. "Keyring access denied"

    • Install gnome-keyring or similar: sudo apt install gnome-keyring
  3. "OTP timeout"

    • The application will offer to resend OTP
    • Check your phone number is correct

Manual Network Configuration

If automatic configuration fails, you can manually configure using the displayed credentials:

  1. Open your network settings
  2. Add new WiFi connection
  3. Settings:
    • SSID: Wireless@SGx
    • Security: WPA & WPA2 Enterprise
    • Authentication: PEAP
    • Inner Authentication: MSCHAPv2
    • Username: [displayed username]
    • Password: [displayed password]

Development

Setup Development Environment

git clone https://github.com/siva-sub/wireless-sgx-linux-tui.git
cd wireless-sgx-linux-tui
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[dev]"

Run Tests

pytest

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Based on the original wireless-sg-wifi-for-linux project
  • Uses the Textual framework for the TUI
  • Thanks to the Singapore tech community for reverse engineering efforts

Disclaimer

This is an unofficial tool. Use at your own risk. The authors are not responsible for any misuse or damage.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wirelesssgx-1.0.16.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wirelesssgx-1.0.16-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file wirelesssgx-1.0.16.tar.gz.

File metadata

  • Download URL: wirelesssgx-1.0.16.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for wirelesssgx-1.0.16.tar.gz
Algorithm Hash digest
SHA256 9b83bf9e0c642a63648d0ace078025cf8a616d5c3c672b21f25306d0cb03764e
MD5 efb67ee27d319a48be3d6ef6a72b7c2d
BLAKE2b-256 7ea5e39c11458a25560fcbd372ad567249c123fa18938ad6ce62fe96dde8e9ef

See more details on using hashes here.

File details

Details for the file wirelesssgx-1.0.16-py3-none-any.whl.

File metadata

  • Download URL: wirelesssgx-1.0.16-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for wirelesssgx-1.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 90be5f6cbe4845ab3787643fb722454ec32594308e3b411710b12e7fa65204ae
MD5 eb332e3940397c66fcff69902952d980
BLAKE2b-256 480c7061700aef270060d09e2e29e86f5d42bc830e6277b3d754a7e3c8ba1b69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page