diff --git a/cmd/hyprvoice/main.go b/cmd/hyprvoice/main.go index 505c553..f398d7e 100644 --- a/cmd/hyprvoice/main.go +++ b/cmd/hyprvoice/main.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "os" + "os/exec" "strconv" "strings" "time" @@ -141,7 +142,7 @@ func runInteractiveConfig() error { fmt.Println("------------------------------") // OpenAI API Key - fmt.Printf("OpenAI API Key (current: %s): ", maskAPIKey(cfg.Transcription.APIKey)) + fmt.Printf("OpenAI API Key (current: %s, leave empty to use OPENAI_API_KEY env var): ", maskAPIKey(cfg.Transcription.APIKey)) if scanner.Scan() { input := strings.TrimSpace(scanner.Text()) if input != "" { @@ -227,10 +228,21 @@ func runInteractiveConfig() error { fmt.Println("✅ Configuration saved successfully!") fmt.Println() + // Check if service is running + serviceRunning := false + if _, err := exec.Command("systemctl", "--user", "is-active", "--quiet", "hyprvoice.service").CombinedOutput(); err == nil { + serviceRunning = true + } + // Show next steps fmt.Println("🚀 Next Steps:") - fmt.Println("1. Start/restart the daemon: systemctl --user restart hyprvoice.service") - fmt.Println("2. Test voice input: hyprvoice toggle") + if !serviceRunning { + fmt.Println("1. Start the service: systemctl --user start hyprvoice.service") + fmt.Println("2. Test voice input: hyprvoice toggle") + } else { + fmt.Println("1. Restart the service to apply changes: systemctl --user restart hyprvoice.service") + fmt.Println("2. Test voice input: hyprvoice toggle") + } fmt.Println() configPath, _ := config.GetConfigPath() diff --git a/internal/config/config.go b/internal/config/config.go index 9421c7b..2bc809c 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -116,7 +116,7 @@ func (c *Config) Validate() error { apiKey = os.Getenv("OPENAI_API_KEY") } if apiKey == "" { - return fmt.Errorf("OpenAI API key required (set transcription.api_key in config or OPENAI_API_KEY env var)") + return fmt.Errorf("OpenAI API key required: not found in config (transcription.api_key) or environment variable (OPENAI_API_KEY)") } // Validate language code if provided (empty string means auto-detect) diff --git a/packaging/hyprvoice-0.1.0 b/packaging/hyprvoice-0.1.0 deleted file mode 100644 index 393cdcf..0000000 Binary files a/packaging/hyprvoice-0.1.0 and /dev/null differ diff --git a/packaging/hyprvoice.install b/packaging/hyprvoice.install index 956f464..bdddfa7 100644 --- a/packaging/hyprvoice.install +++ b/packaging/hyprvoice.install @@ -1,9 +1,19 @@ post_install() { echo "==> Hyprvoice installation complete!" echo "" - echo " 📋 Next steps (in order):" + + # Auto-enable the service (safe to do during installation) + echo "==> Enabling hyprvoice service..." + if systemctl --user enable hyprvoice.service 2>/dev/null; then + echo " ✅ Service enabled successfully" + else + echo " ⚠️ Service enable failed (you may need to run: systemctl --user enable hyprvoice.service)" + fi + echo "" + + echo " 📋 Next steps:" echo " 1. Configure hyprvoice: hyprvoice configure" - echo " 2. Enable the service: systemctl --user enable --now hyprvoice.service" + echo " 2. Start the service: systemctl --user start hyprvoice.service" echo " 3. Add keybinding to your window manager config" echo "" echo " 🔑 For Hyprland, add to ~/.config/hypr/hyprland.conf:" @@ -16,9 +26,24 @@ post_install() { post_upgrade() { echo "==> Hyprvoice has been upgraded." echo "" - echo " 📋 Next steps:" - echo " 1. Restart the service: systemctl --user restart hyprvoice.service" - echo " 2. Check for new options: hyprvoice configure" + + # Check if service was running before upgrade + was_active=false + if systemctl --user is-active --quiet hyprvoice.service 2>/dev/null; then + was_active=true + echo "==> Service was running, restarting to apply updates..." + if systemctl --user restart hyprvoice.service 2>/dev/null; then + echo " ✅ Service restarted successfully" + else + echo " ⚠️ Service restart failed (you may need to run: systemctl --user restart hyprvoice.service)" + fi + else + echo "==> Service was not running (start with: systemctl --user start hyprvoice.service)" + fi + echo "" + + echo " 📋 Additional steps:" + echo " 1. Check for new configuration options: hyprvoice configure" echo "" }