Show HN: A Raycast-compatible launcher for Linux

(github.com)

184 points | by ByteAtATime 1 day ago

19 comments

  • runjake 1 day ago
    Looks great! Change the name. The Raycast people are going to (initially) ask you to anyway.

    Raycast also runs on Windows now, albeit in beta.

    Other Linux launchers with extensibility:

    KRunner: https://userbase.kde.org/Plasma/Krunner

    Albert: https://albertlauncher.github.io/

    • WD-42 1 day ago
      There is also rofi, wofi, fuzzl, dmenu, and even gnome search providers. No shortage of launchers on Linux, all with varying capabilities.
    • slickytail 15 hours ago
      [dead]
  • a022311 1 day ago
    Awesome work! I've been dreaming of this project myself with a very similar stack (basically React instead of Svelte), but I'm very excited to finally have a Raycast alternative for Linux that has both consistent UI and extension compatibility.

    The most impressive part is probably your age, because this isn't an easy project even for senior devs!

    I haven't tried it yet, but I can't wait to find some time for that.

    I've researched applications like this for Linux quite extensively and I think you might find the following tips of interest: - For the slow extension startup issue you mentioned, consider Deno as a runtime as it has a better sandbox and is faster than Node overall. There may be some compatibility issues, but if I remember correctly most stuff is handled by the special Raycast extension libraries which you implement manually anyway. - I'd consider Numbat [0] for replacing the calculator implementation you have now. As far as I can tell, it should have feature parity with SoulverCore and it's also written in Rust, so interfacing with it should be much easier and won't require the FFI work you're doing now. - Project Gauntlet [1] is another project which has gotten quite close to implementing a full-featured Raycast alternative and might be worth taking inspiration from. It would certainly be very cool if you can make the UI rendering native at some point (although I guess Rust isn't perfect for native UI at the moment [2])

    Keep up the good work!

    [0]: https://github.com/sharkdp/numbat

    [1]: https://github.com/project-gauntlet/gauntlet

    [2]: https://areweguiyet.com/

  • ksynwa 1 day ago
    From wikipedia

    > Raycast is an application launcher and productivity software developed for macOS and by Raycast Technologies Ltd. It offers fast access to applications, dictionaries, files, text snippets, clipboard, and more.[2] Raycast is an alternative to the macOS's built-in Spotlight function, with a richer interface and the option to install extensions, providing additional ways to display varied content.[3]

  • mynegation 1 day ago
    Raycast will either hire you or send you a cease-and-desist order. Either way, I would change the name now.
    • ByteAtATime 1 day ago
      Fair point! I've actually thought about that before; I've tried to be extremely clear in the project's README with a disclaimer that this is a non-commercial hobby project and is not affiliated with the official Raycast team in any way.

      The name is just for identification, as the project's goal is to be a compatible, open-source alternative for the Linux community, a platform they don't currently serve.

      That being said, I'll definitely keep it in mind. Thanks for bringing it up!

      • sangeeth96 1 day ago
        That shouldn't matter. They might even have a Linux version in the works, given they are doing Windows now. They are within their rights to ask you to get rid of it. You also seem to be using their brand assets like the logo. I get your intention and love what you were able to accomplish but if you intend for this to grow, you are better off doing this now.
        • rjzzleep 11 hours ago
          They use react-native, no? One of the main issues is that all react-native implementations are half baked and dead.
          • jamil7 8 hours ago
            The launcher UI is AppKit while the extension APIs allow third-party developers to write them in TS and a React subset. They have a custom renderer for React that turns that into AppKit primatives. So similar in concept but custom and specific to their usecase.
        • ByteAtATime 1 day ago
          That makes sense -- I'll go figure something out, thanks for the explanation!
        • benatkin 22 hours ago
          It should matter that it's a non-commercial hobby project. It's nice to see the light pushback.
        • bigyabai 1 day ago
          > They are within their rights to ask you to get rid of it.

          Only the logo and name. The functionality side should be perfectly fine, there are oodles of precedent for reversing a workable program from someone's commercial API: https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....

          • heavyset_go 23 hours ago
            True, but a cease & desist will likely include the demand that they cease all operations, and they might be willing to fight that in court, possibly seek damages, etc however likely or unlikely it is that it would hold up. They can pay for a few hours of a lawyer's time to intimidate the OP.
          • sangeeth96 1 day ago
            But prolly can still go after if you resemble it closely enough in terms of looks? I get the API point though, thanks.
            • kstrauser 23 hours ago
              Eh, probably not. There are any number of things that look like it. The appearance is the natural outcome of its functionality.
      • rafram 1 day ago
        “Just for identification” is the point — the name Raycast identifies their product, and it’s their trademark. You can’t use it without permission, even with a disclaimer in the readme.
      • kstrauser 23 hours ago
        > The name is just for identification

        That’s precisely what they’d dislike about it. You’d be creating “brand confusion” by using their trademark in your own name. You couldn’t make “My Cola (Recreating Coke)” without getting an expensive and inconvenient letter from their legal team.

        • wlonkly 9 hours ago
          It's worse than that -- "Recreating Raycast" is just the blog post title, the project is called "raycast-linux".
          • rmdashrfv 6 hours ago
            It's also worse than that. It uses the Raycast logo directly in the launcher itself. Which is odd because just above this, OP says:

            "I've actually thought about that before; I've tried to be extremely clear in the project's README with a disclaimer that this is a non-commercial hobby project and is not affiliated with the official Raycast team in any way."

            Clearly a bright kid, but that's quite a fumble. Among my ideas for being extremely clear about not being affiliated with Raycast I would have to say using their name and using their logo together would be the worst way to communicate that.

          • kstrauser 9 hours ago
            Oh dear. Yeah, that’s guaranteed to end badly.

            OP: please do change this ASAP so that the Raycast gang doesn’t protest the really neat project you’ve made!

      • heavyset_go 23 hours ago
        I've had to look into for my own side projects, you don't want to include brand names, trademarks, etc in your own projects' names and you should be very wary about how you use them in your marketing if you choose to do so at all.
      • p0w3n3d 18 hours ago
        I propose cast-a-ray (sounds like castaway and goes along with FOSS wink+tonge-in-cheek style). Or maybe waycast?
        • volemo 15 hours ago
          I'm sorry, but in my accent (speech impairment?) "cast-a-ray" sounds almost like "castrate", so I can't back your naming idea. :P
    • sangeeth96 1 day ago
      As well as the logo used, name references from all other places and even tweaking the looks a bit.
  • jraph 1 day ago
    Another runner which can be extended and runs on Linux is KRunner, the one that comes with KDE. Should this inspire you.
    • kombine 1 day ago
      KRunner is great, has a lot of features including currency and unit conversion. I use it almost exclusively now.
  • Imustaskforhelp 8 hours ago
    211 MB appimage is wild when your premis is linux

    What surprises me here is that tauri is supposedly meant for smaller sizes but it doesn't seem to be the case here.

    Also, this could be better an issue but shoot, here I go. ./raycast-linux_0.1.0_amd64.AppImage WebSocket server listening on ws://127.0.0.1:7265 Starting initial file index build. Spotlight shortcut: HotKey { mods: Modifiers(ALT), key: Space, id: 65598 } [Snippets] Wayland detected, using evdev for snippet expansion. Updating currency rates... Soulver calculator initialized and currency provider has started updating. Could not create default EGL display: EGL_BAD_PARAMETER. Aborting... Successfully updated 175 currency rates.

    Andd it doesn't work.

    I personally use something like dmenu (fuzzel) except with my own scripts and keybinds (hyprland).

  • Sophira 14 hours ago
    The readme suggests that Wayland users should add a udev rule to enable direct keyboard access to the user at the physical console (read: to any process spawned by the user at the physical console).

    My understanding was that a major touted benefit to Wayland was that it prevents processes from being able to read the keyboard when not focused, unlike on X11, making keyloggers and such a thing of the past.

    Doesn't adding a udev rule like this completely bypass that protection?

  • flipcoder 1 day ago
    Nice work but change name asap, pivot to something original
  • imcritic 1 day ago
    I don't really see any value in such combines.

    You want some calculation? Run calc and do the calculation, do you save so much time by replacing the "run calc" step with "open launcher" that it's worth adding more software to your setup?

    • herrherrmann 1 day ago
      Have you ever tried a launcher as powerful as Raycast? I can only recommend it. I use it for quick calculations, currency conversions, file lookups, translations, looking up http status codes, joining meetings, finding emojis, quickly checking my calendar, etc. etc. – so, perhaps a singular function might not warrant a launcher, but the sum of functions and keyboard-centric UI make it very valuable for me in my daily workflows.
    • throwawayffffas 14 hours ago
      The reason I don't use this kind of thing, is the time spent parsing the results.

      If I write teams, I want to get a single result that will be the teams app on my computer.

      I don't want to get a wikipedia entry about teams, a random text document that has "teams" in it, news about microsoft teams, or the price of the latest shitcoin named TEAMS.

      All that does is add cognitive load, regardless of whether the app is the first result, seeing and parsing the other results, takes focus away from the work at hand and contributes to fatigue.

      I have a browser with an omnibox for the internet, search on my file explorer, and find and ag[1] in my terminal.

      Specialized tools for specific jobs.

      [1]. ag is like grep but faster also it's 30% shorter to type than ack the other faster grep alternative.

    • kstrauser 1 day ago
      On a Mac, opening the launcher means pressing cmd-space at any time, getting a popup text entry field, typing "1+2", seeing the answer, and hitting esc to dismiss it. That's the entire workflow for operating a calculator, launching an app, searching Google, locating a file, or whatever. I challenge you to do that operation with a separate app more (or even as) efficiently.

      There are good tools for doing each of those things separately. A good launcher that allows you to do any of them with such trivial overhead is a huge time saver.

      • throwawayffffas 14 hours ago
        The way I do it is, I type python in a new terminal, the terminal emulator is running at all times.

        So, its ctrl-s + c, python, enter, 1 + 2, enter.

        Slightly more work but meh.

        • rafram 11 hours ago
          Sure, but what does Python return if you type in "$100 in EUR" or "10 pounds in kg"?
          • throwawayffffas 10 hours ago
            That's what your browser is for.

            My main problem with that kind of launcher is that if I write "gimp" on my launcher there is only one correct answer, launching gimp. Everything else is just noise.

            The choice to offer all that other functionality detracts from the main one.

            • kstrauser 9 hours ago
              Launchers compete on their smartness. One that didn’t show Gimp as the top result wouldn’t have users very long. You can also turn off the results you don’t like.
    • MisterSandman 1 day ago
      Do you remember the command line command to convert 5:30 IST to PDT? Or convert $70 USD to SGD? Or what 17.3 years in seconds is? Or how many days are between 2024-12-30 and 2025-06-17?

      Raycast can all of do that automatically, and the only shortcut you need to know is Cmd-Space.

      • sublinear 1 day ago
        I just type the same into the browser. Only shortcut is alt-tab or a touchscreen swipe, and it works on any device without installing anything.

        I don't get it either.

        • eviks 18 hours ago
          If you ignore inefficiencies you won't get why the alternative is efficient.

          Of course it's not the only shortcut. First, you might need to press tab several times and also pay attention to pick the right element from the app list (no need to do that with a launcher h

          Then you need to open a new tab not to lose your current one (guess, this one can be avoided with extra config)

          Then you need to wait for the network and hope your query is interpreted correctly by a very general search engine which are increasingly likely to push hallucinations as answers instead (for a calculator plugin you can learn syntax to have guaranteed match)

          • sublinear 17 hours ago
            Not convinced. I challenge you to a duel wtf lmao roflcopter??

            Are we fr splitting hairs now on milliseconds? Yes, and words per minute are a measure of productivity!

            • eviks 17 hours ago
              You'll never be convinced because you continue to distort reality to match your fantasy. Why did you convert seconds into milliseconds? Why did you ignore the non-time-based inefficiency of the workflow?
        • mjmas 17 hours ago
          For search you then have at least 3 roundtrips back and forth to the server, plus processing at either end, which for me is at least 400ms for Google, though ping being 17ms suggests the time is mainly spent on processing at the other end.
    • victorbjorklund 17 hours ago
      I use Alfred which is similar. I can do a lot of things with just the launcher. From small things like typing uuid and getting a uuid to open a dev project and launching all the tools needed for it by just typing p [name] where name is autocompleted. Could I open the terminal and do it there instead? Sure. But that is slower than just getting an instant launcher
    • eviks 18 hours ago
      > do you save so much time by replacing the "run calc" step with "open launcher"

      Yes, of course. The "open launcher" is 1 key press, an action you repeat many times a day. And it has 0 delay.

      Your "run calc" can't beat this fluid UX

    • monooso 1 day ago
      Plenty of people appear to disagree.
    • znort_ 1 day ago
      "write programs that do one thing and do it well. write programs to work together."

      it's sad to see this core principle being increasingly ignored in linux, but i guess that ship sailed a while ago.

      • jraph 1 day ago
        A runner that runs "programs" coming from extensions is about as close to this principle as possible, no?
        • kstrauser 23 hours ago
          I think so. It’s basically an ephemeral, extensible GUI shell.
  • hiyer 20 hours ago
    This is amazing! I was working on something like this myself, but I've not reached anywhere near this level of functionality or polish. Looks like I'll drop it and see if I can contribute to this instead.
  • _seiryuu_ 15 hours ago
    Great work! It's being a bit weird with cosmic shell (the old, gnome-based one), but seems to work pretty well otherwise.
  • ddaletski 14 hours ago
    Nice work. I started working on a similar project too. Maybe I'd better contribute to this one then
  • evertedsphere 22 hours ago
    honey it's 4pm time for your daily frontpage chatgpt readme
  • dkarter 22 hours ago
    Amazing! one of the few reasons keeping me from using Linux as a daily driver is lack of Raycast support. It has become a huge part of how I use my computer.
  • regularjack 1 day ago
    I'm not one to care for age usually, but I think it's worth mentioning that OP is 15 years old. Well done, great work, please keep building and writing.
  • 7e 23 hours ago
    I never liked Raycast over Alfred or Launchbar. They’re trying way too hard to solve non-existent problems and sucking at it.

    That said, Linux app launchers are even worse, so I applaud any attempt to improve that situation.

  • philjackson 15 hours ago
    This is really impressive work.
  • johng 1 day ago
    Amazing work! I love Raycast as well!
  • porridgeraisin 18 hours ago
    I am a big user of launchers. Used fluent search on windows, raycast on my work mac, but used a disparate set of tools on linux till now. This will be great to try.

    I have something to say about the (future? didn't find it in the readme) file search feature.

    Similar to how fluent search can defer to the everything.exe search index, maybe this app can defer to the fsearch search index, which already has lots of users.

    It will save effort and also onboard fsearch users(like me) easily.