Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Integrate Fig with Windows聽#35

Description

@brendanfalk

Fig currently works on macOS only. We will build a port that integrates with Windows soon.

Please subscribe to this issue to get an update when Fig's autocomplete integration with the Window is ready 馃槃

Activity

  1. changed the title [-][INTEGRATION] Integrate Fig with Windows[/-] [+]Integrate Fig with Windows[/+] on Apr 8, 2021
  2. SJanJan commented on Sep 30, 2021

    @SJanJan

    super work

  3. jacobra19 commented on Nov 12, 2021

    @jacobra19

    Commenting to get updates - it's really useful, I hope to see a Windows release soon!

    you could just click on the 'watch' button at the top

  4. felix-berlin commented on Dec 5, 2021

    @felix-berlin

    I can hardly wait!

  5. ayr-ton commented on Dec 15, 2021

    @ayr-ton

    Maybe the best approach for this one is trying to write an app like https://github.com/microsoft/terminal/tree/main/samples that consumes the new Windows Console APIs.
    Support for zsh/bash/fish first via WSL and Windows Console APIs could be a good MVP. Powershell in MVP 2.

  6. mschrage commented on Jan 19, 2022

    @mschrage
    Member

    Hey everyone! Thank you for your patience. We are super excited about bringing Fig to Windows, but there is lots of work to do before this is possible.

    There are at least 7 core functions that need to be built out in order for us to release autocomplete to Windows.

    1. We need to be able to determine the location of the cursor in a 3rd party app.

    This seems possible using Microsoft Active Accessibility APIs.

    Other Resources

    1. We need to be able to determine what you've typed in the terminal

    This means porting our pseudoterminal layer (figterm) to Window. We need to do some research to understand how this should work on a non-UNIX system.
    See ConPTY

    1. We need to do IPC between our CLI tools and our GUI app. On macOS (and Linux) we use UNIX domain sockets. I am not sure about the equivalent on Windows.

    2. We need to be able to position a 'floating' window overlay on top of 3rd party applications.

    3. We need intercept certain keystrokes to prevent them from being handled by the shell. This can be implemented at the OS level or potentially at the pseudoterminal level.

    4. We need to port over the Fig.js API to Windows. This is the subsystem that links our TypeScript autocomplete engine with native OS functionality.

    5. We need to install our shell integrations. This entails research & experimentation with how shells work on Windows. eg. What is the difference between Cygwin, MSYS/MinGW, git bash and WSL? Which should we support? Where are bashrc and bash_profile equivalents located?

    See "How can I use a bash-like shell on Windows" for more details.
    Also: "Launching a daemon from WSL"

    If you have any insight on how to solve these challenges, please comment below or join our #cross-platform channel on Discord. 鉂わ笍

  7. levrik commented on Jan 20, 2022

    @levrik

    @mschrage
    I think UNIX domain sockets are available on Windows: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
    I don't know if the implementation is more complete nowadays or if it's still lacking the missing features mentioned in the linked article. I also don't know which features you need so the implementation might be enough for your usecase.

  8. BasixKOR commented on Jan 20, 2022

    @BasixKOR

    I think winpty could be a great starting point for pseudo-console implementation. It is known to work well with other UNIX-like software as well.

  9. ntindle commented on Jan 21, 2022

    @ntindle

    Regarding #1 in the list above, it may be worthwhile to add native support to windows terminal rather than have it be an accessibility hack

  10. mschrage commented on Jan 25, 2022

    @mschrage
    Member

    @levrik I didn't know about that Windows had added support for AF_UNIX socket networking. That's awesome.

    @BasixKOR I will look into winpty! Our pseudoterminal is written in Rust, so we'll need to figure the right approach / library.

    @ntindle does Windows Terminal have support for GUI plugins like Fig? If you have any links to documentation on this or thoughts on how to implement native support, please let me know.

  11. digeomel commented on Jan 28, 2022

    @digeomel

    I understand that Windows terminal support is not done yet, but I'm a bit confused about vscode on Windows, because your README writes that it works on vscode terminal. I assume it only works on vscode terminal on MacOS, right?

  12. RyKilleen commented on Jan 28, 2022

    @RyKilleen

    Here's the master feature list for extensions on Windows Terminal.

    microsoft/terminal#4000

    As far as I can tell, the command palette is fully extensible but doesn't provide the sort of inline support you're probably looking for. They seem very open to feature requests though

  13. pcgeek86 commented on Jan 31, 2022

    @pcgeek86

    The "Hyper" terminal from Vercel runs on Windows as well as MacOS. It'd be great to see Fig work with Hyper on Windows 11, at least, even if Windows Terminal integration doesn't work yet.

  14. mschrage commented on Jan 31, 2022

    @mschrage
    Member

    @digeomel that's exactly right. Fig supports VSCode, but only on macOS.

    @pcgeek86 Same thing for Hyper.

  15. 14 remaining items

  16. florian-lefebvre commented on Mar 23, 2022

    @florian-lefebvre

    @levrik Looking at the executable icon, it's a tauri app (https://github.com/tauri-apps/tauri) so yes it's built with Rust.

  17. mschrage commented on Mar 23, 2022

    @mschrage
    Member

    Good eye @florian-lefebvre!

    @levrik To answer your question: yes, we use Rust! 馃

  18. levrik commented on Mar 24, 2022

    @levrik

    @mschrage And few hours later I received your newsletter mentioning usage of Rust for at least your CLI 馃槄

  19. MichaelBell commented on Mar 31, 2022

    @MichaelBell

    Fig looks very interesting, would be great to see this working with PuTTY on Windows too.

  20. haltcase commented on Apr 1, 2022

    @haltcase

    Could we please keep the comments here limited to the issue and move other comments to a discussion? I'd like to stay connected with progress to Fig coming to Windows, but notifications like these last few can be very noisy.

  21. deleted a comment from ntindle on Apr 1, 2022
  22. deleted a comment from DefinitelyADev on Apr 1, 2022
  23. deleted a comment from incubusnb on Apr 1, 2022
  24. sasial-dev commented on Apr 2, 2022

    @sasial-dev

    Could we lock this issue to the fig team only (for updates) and then create a discussion post for this issue for discussion on it?

  25. mschrage commented on Apr 2, 2022

    @mschrage
    Member

    Good idea @sasial-dev and thanks for moving the conversation in a more constructive direction @haltcase.

    I鈥檒l lock this issue for now.

  26. locked and limited conversation to collaborators on Apr 2, 2022
  27. mschrage commented on Apr 19, 2022

    @mschrage
    Member

    The team just hit another milestone!

    windows_demo.mp4

    This is a really rough version of autocomplete running on Windows. Still more work to be done, but we're getting there! 馃檶

  28. pinned this issue on Jun 22, 2022
  29. sullivan-sean commented on Jun 29, 2022

    @sullivan-sean

    We're rolling out a closed alpha/prototype of Fig on Windows to a few users in the next week or so -- if you're on Windows and interested in getting early access, fill out the typeform here: https://withfig.typeform.com/to/n58Z7ciy

  30. unpinned this issue on Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:integration-requestRequest for an intergration with an existing tool

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions