The module architecture was incorrectly constructed as:
linux-x86_64-0.27
But Enlightenment expects:
linux-gnu-x86_64-0.27.1
Changes:
- Detect system ABI (gnu/musl) via features.h header check
- Use full Enlightenment version instead of just major.minor
- Correct architecture format: <system>-<abi>-<cpu>-<version>
This ensures the module installs to the correct directory that
Enlightenment will find when loading modules.
Also updated Gentoo ebuild to set S variable for correct source
directory extraction (git archives extract to 'eiwd' not 'eiwd-0.1.0').
Added comprehensive theming and configuration support:
Core Changes:
- Created data/theme.edc with Edje theme groups for gadget states
(disconnected, connecting, connected, error) with color-coded icons
- Implemented signal-based theme updates (e,state,* signals)
- Created e_mod_config.c with full configuration dialog
- Added i18n support structure (po/ directory)
Configuration Dialog:
- Auto-connect to known networks toggle
- Show hidden networks toggle
- Signal refresh interval slider (1-60s)
- Adapter selection UI (for multi-adapter systems)
- Saves via e_config_save_queue()
Theme Integration:
- Gadget loads e-module-iwd.edj theme file
- Falls back to simple colored rectangles if theme missing
- State changes emit Edje signals to theme
- Signal strength indicator support
Build System:
- Updated data/meson.build to compile theme with edje_cc
- Added i18n framework with po/meson.build
- Created meson_options.txt with nls option
- Added po/POTFILES.in for translatable strings
Module Statistics:
- Module size: 232KB (includes config dialog + theme loading)
- Theme file: 11KB (e-module-iwd.edj)
- Total lines of code: ~3,500+
- New files: 5 (theme.edc, e_mod_config.c, 3 i18n files)
API Compatibility:
- Fixed E_Container deprecation (E 0.27+ uses NULL)
- Updated e_iwd_config_show() signature
- Proper edje_object_file_get() usage with output parameters
The gadget now has professional theme support with visual state
feedback. Configuration can be accessed through standard E module
settings. i18n framework ready for translations.
🎨 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Phase 1: Build System & Module Skeleton
- Set up Meson build system with EFL dependencies
- Created module entry point with e_modapi_init/shutdown/save
- Implemented configuration system using EET
- Added module.desktop metadata file
- Configured proper installation paths
Phase 2: D-Bus Layer (iwd Backend)
- Implemented D-Bus connection management to net.connman.iwd
- Created device abstraction layer (iwd_device.c) for Wi-Fi interfaces
- Created network abstraction layer (iwd_network.c) for access points
- Implemented D-Bus agent for passphrase requests (iwd_agent.c)
- Added ObjectManager support for device/network discovery
- Implemented daemon restart detection and reconnection
- Property change signal handling for devices and networks
Features:
- Connects to system D-Bus and iwd daemon
- Discovers wireless devices and networks via ObjectManager
- Monitors iwd daemon availability (handles restart)
- Agent registered for WPA/WPA2/WPA3 authentication
- Signal-driven updates (no polling)
Files created: 16 source/header files
Build status: Compiles successfully with gcc 15.2.1
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>