Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changing System Settings #40

Open
artemilin-2023 opened this issue Jan 25, 2025 · 0 comments
Open

Changing System Settings #40

artemilin-2023 opened this issue Jan 25, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@artemilin-2023
Copy link
Member

Objective

Enable Asya to help users modify essential system settings, such as volume, brightness, and connectivity, through voice or text commands. This feature provides a hands-free, user-friendly way to control system parameters.


Functional Requirements

  1. Adjusting Volume

    • Users can ask Asya to increase, decrease, or mute system volume.
    • Asya should confirm the new volume level after adjustments.
    • Examples:
      • "Asya, increase the volume by 20%."
      • "Asya, mute the sound."
      • "Asya, set the volume to 50%."
  2. Controlling Brightness

    • Users can adjust screen brightness using commands.
    • Asya should handle percentage-based changes or predefined levels (e.g., low, medium, high).
    • Examples:
      • "Asya, decrease the brightness by 10%."
      • "Asya, set the brightness to 70%."
      • "Asya, turn on dark mode."
  3. Managing Connectivity (WiFi and Bluetooth)

    • Users can enable, disable, or check the status of WiFi and Bluetooth.
    • Examples:
      • "Asya, turn on WiFi."
      • "Asya, disable Bluetooth."
      • "Asya, is WiFi connected?"
  4. Activating Modes and Features

    • Users can toggle specific system modes, such as:
      • Do Not Disturb.
      • Airplane Mode.
      • Night Light or Blue Light Filter.
    • Examples:
      • "Asya, turn on 'Do Not Disturb' mode."
      • "Asya, enable Night Light."
  5. Checking System Status

    • Users can ask Asya for current settings.
    • Examples:
      • "Asya, what is the current brightness level?"
      • "Asya, is 'Do Not Disturb' mode active?"

Non-Functional Requirements

  1. Accuracy

    • Asya should reliably interpret user commands and apply changes only to the requested settings.
  2. Performance

    • Changes should be applied promptly (under 2 seconds).
  3. Error Handling

    • If a requested action fails, Asya should notify the user and explain the reason.
    • Example: "I couldn’t adjust the brightness because the external monitor doesn’t support this feature."

Edge Cases

  1. Unsupported Devices

    • If the system or connected devices do not support a feature (e.g., Night Light), Asya should notify the user.
    • Example: "Night Light is not available on this display."
  2. Conflicting Settings

    • Asya should handle conflicting requests gracefully.
    • Example: If the user says, "Turn on Do Not Disturb," and notifications are already silenced, Asya should say: "Do Not Disturb is already active."
  3. Out-of-Range Values

    • If users request an invalid value (e.g., "Set the brightness to 150%"), Asya should limit the input and inform the user.
    • Example: "Brightness can only be set between 0% and 100%. Setting it to the maximum value of 100%."

Technical Implementation

  1. Command Recognition

    • Use NLP to identify system-setting intents and parse user requests accurately.
  2. System Integration

    • Windows: Use APIs like Windows Management Instrumentation (WMI) or native controls for volume, brightness, and connectivity.
    • macOS: Leverage AppleScript or osascript for system settings.
    • Linux: Utilize system commands (e.g., amixer for volume, xrandr for brightness).
  3. Feedback Mechanism

    • Provide audio or visual confirmation after applying changes.
    • Example: "Volume increased to 70%."
  4. Default Parameters

    • Handle incomplete commands by applying defaults.
    • Example: If the user says, "Asya, increase brightness," apply a default increment of 10%.
@artemilin-2023 artemilin-2023 added the enhancement New feature or request label Jan 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant