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!
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
-
Launch the application:
wirelesssgx
Or if you prefer:
python -m wirelesssgx
-
Choose your action:
- New Registration: For first-time users
- Retrieve Existing: If you already have an account
- Auto-Connect: If you have saved credentials
-
Enter your details:
- Phone number (8-digit Singapore mobile, e.g., 9XXXXXXX)
- Date of birth (DDMMYYYY format)
- Select your ISP (Singtel/Starhub)
-
Enter OTP:
- Check your SMS for the OTP
- Enter it in the application
-
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
-
"Cannot connect to NetworkManager"
- Ensure NetworkManager is running:
sudo systemctl start NetworkManager
- Ensure NetworkManager is running:
-
"Keyring access denied"
- Install gnome-keyring or similar:
sudo apt install gnome-keyring
- Install gnome-keyring or similar:
-
"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:
- Open your network settings
- Add new WiFi connection
- Settings:
- SSID:
Wireless@SGx - Security: WPA & WPA2 Enterprise
- Authentication: PEAP
- Inner Authentication: MSCHAPv2
- Username: [displayed username]
- Password: [displayed password]
- SSID:
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b83bf9e0c642a63648d0ace078025cf8a616d5c3c672b21f25306d0cb03764e
|
|
| MD5 |
efb67ee27d319a48be3d6ef6a72b7c2d
|
|
| BLAKE2b-256 |
7ea5e39c11458a25560fcbd372ad567249c123fa18938ad6ce62fe96dde8e9ef
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90be5f6cbe4845ab3787643fb722454ec32594308e3b411710b12e7fa65204ae
|
|
| MD5 |
eb332e3940397c66fcff69902952d980
|
|
| BLAKE2b-256 |
480c7061700aef270060d09e2e29e86f5d42bc830e6277b3d754a7e3c8ba1b69
|