Skip to content

feat: enhanced WiFi popup with macOS-style controls#103

Open
bottlebrushes wants to merge 9 commits intomocki-toki:mainfrom
bottlebrushes:feature/enhanced-wifi-popup
Open

feat: enhanced WiFi popup with macOS-style controls#103
bottlebrushes wants to merge 9 commits intomocki-toki:mainfrom
bottlebrushes:feature/enhanced-wifi-popup

Conversation

@bottlebrushes
Copy link
Copy Markdown

Summary

Enhanced the WiFi/Network popup with macOS-style controls and network management features.

Features

  • WiFi toggle switch at the top
  • "Known Network" section showing connected network
  • Expandable "Other Networks" section with available networks
  • Network scanning functionality to discover nearby networks
  • "Wi-Fi Settings..." button to open System Preferences
  • Fixed width (280px) for consistent appearance
  • Matches macOS Control Center style

Test plan

  • Click network widget to open popup
  • Verify WiFi toggle works
  • Verify connected network shows in "Known Network" section
  • Expand "Other Networks" and verify available networks appear
  • Click "Wi-Fi Settings..." to verify it opens System Preferences

🤖 Generated with Claude Code

bottlebrushes and others added 9 commits January 3, 2026 14:03
…aying

Replace aggressive 0.3s AppleScript polling with DistributedNotificationCenter
observers for instant media updates.

Changes:
- Listen to Spotify (`com.spotify.client.PlaybackStateChanged`) and
  Apple Music (`com.apple.Music.playerInfo`) notifications
- Only poll every 1s for position updates (progress bar) when playing
- Fetch track info on-demand when notifications fire
- Add initial fetch on startup to populate current state

This significantly reduces CPU usage and provides instant UI updates
when track changes or playback state changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WeatherWidget displaying current temperature and weather icon
- Use Open-Meteo free API (no API key required)
- Dynamic SF Symbols based on weather conditions (sun, clouds, rain, snow, etc.)
- Location-based weather with CoreLocation
- Click to open macOS Weather dropdown
- Add SystemUIHelper for triggering system UI elements
- Add required entitlements for location and network access

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace polling-based space monitoring with event-driven updates:
- Add SpaceEvent enum and EventBasedSpacesProvider protocol
- Implement Unix socket listener in YabaiProvider
- Update SpacesViewModel to handle space events reactively

Yabai signals now send events to /tmp/barik-yabai.sock for instant updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WeatherPopup matching Barik's dark theme style
- Show location name, current temp, condition, high/low
- Display hourly forecast with icons and precipitation %
- Add "Open Weather" button to launch macOS Weather app
- Extend WeatherManager with hourly data and location name via geocoding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Run initial space fetch asynchronously in startObserving()
- Run refreshSpaces() on background queue
- Dispatch results back to main thread for UI updates
- Fixes SwiftUI AttributeGraph crash from blocking main thread

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add `click-action` config option to TimeWidget
- Supports "calendar" (default) or "notification-center"
- When set to "notification-center", clicking time opens macOS Notification Center

Usage in config.toml:
```toml
[widgets.default.time]
click-action = "notification-center"
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add `click-action` config option to TimeWidget ("calendar" or "notification-center")
- Request Accessibility permission before opening Notification Center
- System prompts user to grant permission if not already allowed

Usage:
```toml
[widgets.default.time]
click-action = "notification-center"
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed from SOCK_DGRAM to SOCK_STREAM for nc -U compatibility
- Added listen() and accept() for stream socket handling
- Fixes event-based space subscription not receiving messages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WiFi toggle switch at the top
- Show connected network in "Known Network" section
- Add expandable "Other Networks" section with available networks
- Add network scanning functionality
- Add "Wi-Fi Settings..." button to open System Preferences
- Fixed width to 280px for consistent appearance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant