Add Linux folder picker support using zenity/kdialog#77
Conversation
Implements the Linux folder picker TODO by adding support for: - zenity (GTK-based, common on GNOME/Ubuntu/Fedora) as primary - kdialog (KDE/Plasma) as fallback The implementation: - Tries zenity first with --file-selection --directory flags - Falls back to kdialog --getexistingdirectory if zenity is not found - Returns a clear error message if neither tool is available - Handles user cancellation (exit code 1) correctly for both tools - Uses ENOENT detection to distinguish 'not installed' from real errors - Respects the same DIALOG_TIMEOUT_MS as the macOS implementation - Normalizes output (strips trailing slash) for consistency Addresses the TODO: 'linux (zenity / kdialog)'
…er picker, --no-open precedence Apply fixes from open upstream PRs that apply cleanly to our fork: - AbortSignal (nowork-studio#80, ErnestHysa): wire signal? parameter through pickFolder and pickFolderMac to execFile, enabling clean cancellation of osascript. Also extend to the new Linux execDialog helper. - Linux folder picker (nowork-studio#77, RohithVangalla1): implement pickFolderLinux using zenity (GTK) with kdialog (KDE) fallback, replacing the TODO stub. Linux users can now use the Browse button in the NotFair UI. - --no-open precedence (nowork-studio#92, Osamaali313): extract the auto-open guard in bin/notfair-content-calendar into a _should_auto_open helper that checks --no-open before platform. Fixes macOS/Windows ignoring the flag. Co-authored-by: Claude
…er picker, --no-open precedence Apply fixes from open upstream PRs that apply cleanly to our fork: - AbortSignal (nowork-studio#80, ErnestHysa): wire signal? parameter through pickFolder and pickFolderMac to execFile, enabling clean cancellation of osascript. Also extend to the new Linux execDialog helper. - Linux folder picker (nowork-studio#77, RohithVangalla1): implement pickFolderLinux using zenity (GTK) with kdialog (KDE) fallback, replacing the TODO stub. Linux users can now use the Browse button in the NotFair UI. - --no-open precedence (nowork-studio#92, Osamaali313): extract the auto-open guard in bin/notfair-content-calendar into a _should_auto_open helper that checks --no-open before platform. Fixes macOS/Windows ignoring the flag. Co-authored-by: Claude
The Browse button's native picker now works on Linux desktops: zenity (GTK) first, kdialog (KDE/Plasma) fallback, clear error when neither is installed. Implements the file's standing TODO. Ported from PR #77, which targeted the pre-rename notfair-cmo/ tree; logic unchanged. Co-authored-by: Rohith Vangalla <rohith.vangalla@optum.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HCgSPUk9yU25nyxWrMEwp1
|
Thank you — this is a solid implementation and it's now on One wrinkle prevented merging the PR directly: it was written against Closing this PR since the change is merged in spirit and in code. Thanks again — the Windows |
Summary
Implements the Linux folder picker that was marked as TODO, enabling the
Browse button to work on Linux desktops.
Implementation
kind: "error"is returnedDetails
DIALOG_TIMEOUT_MS(5 min) as the macOS implementationexecDialog()helper to avoid duplication between zenity/kdialog pathsAddresses
TODO in
pick-folder.ts:Type of change