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.17.tar.gz (23.7 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.17-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wirelesssgx-1.0.17.tar.gz
  • Upload date:
  • Size: 23.7 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.17.tar.gz
Algorithm Hash digest
SHA256 d385955a97d831645ce67a7a6bb6f7f81da6032ea27cf27ed097ef14d4cf9612
MD5 adf585d864da6feaab6fa25cc9977242
BLAKE2b-256 0800e0bdd6d2724e5bf0e6538d9e1c59e9b6493303f2e895d584e853f00c16fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wirelesssgx-1.0.17-py3-none-any.whl
  • Upload date:
  • Size: 27.8 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.17-py3-none-any.whl
Algorithm Hash digest
SHA256 e02ea987e933d8b02329489cdafab7223c8ef3f0077de18522931eff8b3e474a
MD5 a57c3870320b90c52e00fd5947fc757b
BLAKE2b-256 f984d313114301344259a9ca8722e60682f9e2de2b046785930bceee0f69ddcf

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