nate-parrott / Flashlight

The missing Spotlight plugin system
http://flashlight.nateparrott.com
Other
5.39k stars 411 forks source link

The Future of Flashlight #537

Open nate-parrott opened 8 years ago

nate-parrott commented 8 years ago

Hacking Spotlight is impossible in 10.11. [1]

That's disappointing, but it's also a great opportunity to think about the future of Flashlight.

Even when Flashlight didn't do that much, it was still useful because it was a complement to all of Spotlight's existing features. But now Flashlight's grown up — it has hundreds of features built by a great community. I think it's useful enough to survive as a standalone app — a fresher, more open-source take on all the standalone launcher apps we love. [2]

I still won't be able to work on Flashlight for a couple more weeks, so here's a challenge for all of you:

Figure out what Flashlight can be once it's independent of Spotlight. And help me build it. [3]

[1] Apple's new "rootless" security system blocks code injection into system processes. Technically you can disable rootless – but I'll have to agree with the TotalFinder devs that it doesn't make sense to ask ordinary users to do this. And these security restrictions will only get tighter in the future – it doesn't make sense to build a product around circumventing them.

[2] Obviously we'll need to add things like app launching and file search, which Spotlight did for us. And we'll need to build a new UI. But that'll be fun.

[3] If you've got ideas, create issues for them and tag them with the future label. If you've got prototypes of standalone Flashlight UIs, add it in a new branch and submit a pull request with it.

hufufuf commented 8 years ago

More exactly, it seems that you need to disable the rootless security only to install SIMBL. Once it is installed, you can enable rootless again. And enable/disable SIMBL plugins as before. See here : https://github.com/norio-nomura/EasySIMBL/issues/26#issuecomment-117028426

So it could be an acceptable think for power users. But I understand it's not easy to ask each user to do something like this just to install a software.

So, your proposition to built a new software from the ground with the best of spotlight and flashlight is great ! I just want something simple, clean (unlike Alfred, Launchbar & Cie) for which I can write easily some little plugins

Sajonara commented 8 years ago

As an "external" Software, there already is a similar solution: Quicksilver. It's source code is available at https://github.com/quicksilver/Quicksilver and it is extendable via plugins. I used Flashlight though, because it was very convenient not to have to use a separate program. Maybe one can think of extending Quicksilver or start a similar project from scratch.

orbitly commented 8 years ago

I've tried using both Quicksilver and Alfred, they're just not nearly as good as Flashlight injected into Spotlight was. I understand the need to appeal to average users, but disabling SIP in the recovery partition is not hard.

The new app should definitely use the same two column layout with immediate information as spotlight. Suggested websites would be nice, iTunes music library search would be great too. These are the things that stop me from wanting to use Alfred.

Thank you!

brandonhorst commented 8 years ago

You guys may want to look into Lacona. It is an extensible command runner with a powerful but simple NLP engine. Commands will be open source JavaScript, and it has its own UI.

Should be able to do everything Flashlight can do, but support more natural syntax.

It's on Kickstarter now. And I wrote it, so sorry for the shameless self-plug.

Link: https://www.kickstarter.com/projects/2102999333/lacona-natural-language-commands-for-your-mac Command-building info: https://github.com/lacona/kickstarter-nerd-details

yashendra2797 commented 8 years ago

I love Nate's work, but I have to agree with the community. I loved Flashlight since it was integrated with Spotlight. While I would love to see what Nate has planned, I'm afraid I may not use flashlight if it is made into a standalone app. There are many others which do the same work. The beauty of Flashlight was in its simplicity.

evrial commented 8 years ago

Have you asked Apple about opening Spotlight API to external plugins? Why they prohibit such idea?

xremix commented 8 years ago

@nate-parrott thanks for your kind words and sharing your opinion on the future of Flashlight.

If it's the case, that only the installation of SIMBL requires to disable rootless, I'd love to have a solution where the plugins could work with both, A solution that integrates with spotlight (for power user) as well as a separate tool with an own UI. They could both use the same plugins as well as the plugin manager. Any thoughts on this?

sohocoke commented 8 years ago

As a launcher addict since the days when LauchBar was the only game in town, and having extensively used Quicksilver, Alfred over many years, I have to agree with the opinions already cited that having another launcher app is a big downside.

Would it be at all possible to re-implement the current hop-on-spotlight behaviour by using the Accessibility API to get updates on what the user's entering, then neatly clobber Spotlight output with Flashlight output? It would be a cool hack if it can work.

bmehling commented 8 years ago

Generally agreeing w/ other posters. I was a long-time quicksilver, then alfred (and now again) user. I really liked having a single search/launcher -- Flashlight's integration into Spotlight is a pretty killer feature.

Perhaps @xremix 's idea of universal plugin support between a standalone launcher and a version we have to hack into spotlight is the way to go?

xremix commented 8 years ago

I'd love to see such a solution. But it would require more effort of the community so we would need more people that commit with us.

Bisewski commented 8 years ago

I agree with was said: Flashlight is awesome because it's simple and is almost invisible. It just works, like a OS X feature. There's nothing like CMD+Space and voilà! Since I setup Flashlight, I changed (for very best) the way I do almost my daily tasks in front of my Mac. And don't have it anymore, is very sad :(

I think @xremix is right. I guess there is a lot of power user who love Flashlight, and run some Terminal line is not a problem for most of them. These can keep using Flashlight via Spotlight. The others, would have a standalone app.

I'm here for what you need. Count with me.

wilmoore commented 8 years ago

Honestly, this is really a tool that should be built-in. Flashlight as it used to work is so seamless. I am a paid user of Alfred and I have to say, once I tried Flashlight, I completely uninstalled Alfred (no offense to the Alfred developers -- it's great at what it does, but the approach is similar to other products which is not as seamless as Flashlight).

I think that if Flashlight goes in the direction of the other launchers, there is little (besides a good ecosystem of plugins and that it is open-source) to differentiate. Sure, free is nice, but Let's be honest; for OSX users, free is generally not a deal-breaker.

Perhaps if it goes to a full standalone app, I'd still stick with Flashlight, but then again, I've paid for Alfred so perhaps I just stick with that. I'm not 100% sure, but keep in mind, when Flashlight was working, I was 100% sure that I'd be sticking with Flashlight and I was regretting that I had paid for Alfred.

I hope this opinion helps your decision somehow @nate-parrott.

lanzafame commented 8 years ago

@nate-parrott I don't know if you have already tried or whether it is even possible but have you approached Apple about an 'official' work around? I agree with the above stated responses, that the integration into Spotlight is what made Flashlight better of all the options. But yeah just a suggestion.

acaloiaro commented 8 years ago

I'm neither a Flashlight user (I was hoping to be, but alas, The Captain said no), nor have I developed against the Core Spotlight Framework—so bear with my naïvety. However, Apple's Core Spotlight Framework seems to provide the necessary hooks. The implementation may be convoluted in that a standalone Flashlight app would create files to be indexed by Spotlight, and NSUserActivity would allow one to navigate from Spotlight into specific Flashlight states/navigation points. Is this workflow too convoluted? By all means, punch some holes in this suggestion. Cheers.

[edit] It may also be worth noting that I was looking into Flashlight because, as of El Capitan Beta 7, Dashboard is disabled by default, signaling an upcoming Dashboard sunset. I was hoping to offset some of my Dashboard use with Flashlight (I know I can re-enable Dashboard); unfortunately the first sign of a Dashboard sunset coincides with Flashlight no longer working with El Capitan. There may be others who find themselves in the same boat as me.

xdissent commented 8 years ago

@acaloiaro that's iOS though, right? AFAIK there's no OS X equivalent.

acaloiaro commented 8 years ago

@xdissent You're right, I hadn't noticed the URL. However, I think the general approach still applies:

1) Create Metadata Attributes 2) Create a Flashlight Importer 3) Provide a Quick Look for Flashlight files

The next step would be to determine whether or not one can extract additional information from the query when displaying Quick Look result in Spotlight. So, for example, when one types "weather in New York", a Quick Look showing the Weather file populated with weather data for New York is displayed in Spotlight.

tobsn commented 8 years ago

So why did Lacona fail its kickstarter funding and why did nate not support it?

brandonhorst commented 8 years ago

Lacona dev here. I did reach out to Nate (via email) to consider Lacona as a possible successor, and never got a response. But, of course, that's perfectly fine.Lacona is a different project with different goals.

Lacona failed it's kickstarter but development is going to continue, and I believe there is a place for both Lacona and Flashlight in the future.

tobsn commented 8 years ago

@brandonhorst if you set up a donation button... that might be a good idea :)

Nxt3 commented 8 years ago

I would definitely like to see where Lacona and Flashlight goes. The two would be great together. Lacona already has a fantastic UI concept; it's definitely something to build off of.

@brandonhorst Also, this is the first time I've heard of Lacona. If you did happen to want people (myself included) to throw more money at you--give us a PayPal address or something. I'd happily give you some money for the continuation of Lacona; I'm sure others would as well.

brandonhorst commented 8 years ago

@Nxt3 @tobsn thanks, guys! I appreciate the kind words. I did add donation buttons to the website, but I'm not going to push for donations much until I actually release something - I want to make sure I keep everything on the up and up.

This isn't the place to talk about this, though. If you have questions, you can bring them here: https://github.com/lacona/www.lacona.io/issues/3

suokun commented 8 years ago

Why not join Apple spotlight team. Your work is so great and you can make spotlight much stronger based on flashlight.

TP18 commented 8 years ago

He has joined Apple

Sent from my iPhone

On 22 Sep 2015, at 00:54, Tony notifications@github.com wrote:

Why not join Apple spotlight team. Your work is so great and you can make spotlight much stronger based on flashlight.

— Reply to this email directly or view it on GitHub.

suokun commented 8 years ago

Cool, maybe we can expect more functionalities as Flashlight in Spotlight in the future.

orbitly commented 8 years ago

He was at Apple for a summer internship, that's why he couldn't work on hacky software over the summer. Should be over by now.

MrLoh commented 8 years ago

It seems like Total Spaces has found a way to disable System Integrity Protection, so they can still alter the Dock app. Not sure wether Flashlight has the same issue and could have a similar fix, and even if so it would be very dirty, but maybe it's an inspiration to someone.

Nxt3 commented 8 years ago

@MrLoh We already know how to disable System Integrity. It's not hidden; it's a known way of disabling it. Nate is saying that it isn't worth asking everyone to disable SIP to use software.

tsimmons commented 8 years ago

Apparently Bartender 2 has found a way around it without requiring the end-user to do anything special (perhaps the installer does the SIP magic behind the scenes?) Has anyone looked into what Surtees Studios is doing to accomplish their El Capitan compatibility?

Edit: On second look, it appears they are abandoning their Spotlight integration; but are still able to control System menu items. Hrm.

Nxt3 commented 8 years ago

@tsimmons Bartender had Spotlight integration? I'm interested in how they accomplished being able to control the system icons without disabling SIP too.

sadokx commented 8 years ago

Just found out about Flashlight, and was disappointed it no longer works on my mac. Having a separate app is useless, I'm sorry. I think the answer is simple: Transition Flashlight into a power-user app. That way we can disable the security issue and move on with our lives. I guess Flashlight is mostly used by power users anyway.

PS Is there a way to make Flashlight work currently? How to disable the security issues?

orbitly commented 8 years ago

I think most of the people here would be fine with disabling SIP to use Flashlight. We haven't had SIP for the past 15 years of OS X, why is it suddenly essential?

RF18 commented 8 years ago

Firstly, thanks Nate for this amazing app you've developed. Honestly it has changed my productivity at work immensely-hard not to go a day without relying on this. Kinda bummed apple doesn't realize how ingenious this little tweak is and that they haven't taken any steps in producing similar results but again i'm not expecting much from their side.

So i tried some of the solutions above - I tried disabling csrutil (debug only at first and than the whole thing) but the simbl would still not inject into the app (it was saying the spotlight version/ flashlight app is not compatible). I read that someone tried changing the source code to add the new spotlight version but it didn't help.

Anybody else find a way to get flashlight running up in 10.11 or i guess i'll just revert back to 10.10.5 or whatever the yosemite latest was. (El capitan really doesn't seem to be worth the update so far)

Thanks guys for any inputs

MrLoh commented 8 years ago

Bartender also asks you to turn off SIP and if you want to change any Apple App Icons you will also have to turn it off. Seing how many things don't work without SIP, I'm pretty sure most powerusers will turn off SIP. I will, I've lived without it for the past and will survive without it for now. Obviously there are other things that need to be adapted for Flashlight to work under El Capitan, but I don't think that not many people will turn off SIP, no everage Joe is using Flashlight anyways.

MrLoh commented 8 years ago

Sorry, you're right Bartender 2 has found another way. That sounds promising. I'd really like to get back to using Flashlight. But it seems the main issue is figuring out what else changed. Sadly I have no experience with Mac App Development, but I'd be glad to help in any way, if someone takse the lead.

norlin commented 8 years ago

AFAIK, Installer can modify system files (when installing Apple-signed packages), no? Have you tried to contact them to move Flashlight into official OSX App?

(There was already similar questions above, but no answer from @nate-parrott... )

qinyuhang commented 8 years ago

hey! I think make it official app is a great idea!

发自我的 iPhone

在 2015年10月2日,16:07,Alexey notifications@github.com 写道:

AFAIK, Installer can modify system files (when installing Apple-signed packages), no? Have you tried to contact them to move Flashlight into official OSX App?

(There was already similar questions above, but no answer from @nate-parrott... )

— Reply to this email directly or view it on GitHub.

wdanilo commented 8 years ago

I was using Flashlight also just BECAUSE it was integrated into Spotlight. I do not will use yet another "launcher - like" app, when spotlight is developed in the right direction (natural language recognition etc). Flashlight was amazing because of its integration. I think Apple will do something with the new system integrity protection, because a lot of apps suffer form it, including really good ones like totalspaces, total finder or flashlight. Anyway, going into yet another standalone app is just wrong.

norlin commented 8 years ago

@wdanilo That's for sure! I just mentioned it will be good to have the same (I'm talking about functionality/integration/etc) Flashlight packed into "official App" package with install via App Store.

hgpt commented 8 years ago

I'm so sad that the project turned out to be abandoned with the introduction of OS X El Capitan. I really don't care if I'll have to disable SIP to make it work. I survived 15 years without SIP and had no problem at all. From my point of view Flashlight was used mostly by power users anyway, so abandoning the project because of regular users not being able to deal with disabling SIP it's not a point. When it comes to Flashlight being developed as a standalone app, that's another bad idea if you ask me. The beauty of Flashlight, apart from the many plugins, was Spotlight integration! Many of us are loving this app (or loved it) for the Spotlight integration. Standalone app may prove to be a mistake. Now, has any of you managed to make Flashlight work with OS X El Capitan? I miss my trusty Flashlight so so much. :( P.S: Thanks Nate for all the work that you did! We really appreciate it! Where is that donate button?

brechtm commented 8 years ago

Personally I also see little value in a stand-alone app. An official plugin interface in Spotlight by Apple would be ideal, but I'm not sure if this could ever materialize.

If you're interested in getting Flashlight working on El Capitan, please see issue #545.

mesqueeb commented 8 years ago

We don't want a standalone app. You've got alfred for that. We don't mind turning the SIP off, can someone please relaunch this with similar instructions to Bartender 1?

evindor commented 8 years ago

Just discovered Flashlight today, it's brilliant! Please please please, reanimate this project for El Capitan, the hassle with disabling SIP for installation is nothing compared to how much time Flashlight can save you on a daily basis.

xremix commented 8 years ago

Really interesting that some many are interested in a Flashlight that works with the native Spotlight and don't hesitate to disable SIP. I'd love to see Flashlight running again, as it improved my daily work and I spent a lot of time in building plugins. So far I can't imagine that Apple would open the Spotlight for that sort of plugins, but please disabuse myself :) What I really would be interested is if it's really the average Flashlight user who is speaking here, or if most of the people talking here are the power users because they are using github and contribute with their opinion, or if most normal users just don't manifest their opinion here (just look at the weather plugin, there seem to be more than 74k users).

Also I'd love to Nates current opinion after all these responses came in.

I personally feel more and more that a Spotlight extension is the best way to go, instead of building a new clone of all these products that are already out there.

wdanilo commented 8 years ago

I can only vote for 4 other people I know, that do NOT use github and red to use Flashlight - they've already doable SIP to use TotalFinder and TotalSpaces, being "average" users. To be honest with you, SIP in its current form is just wrong and I'm sure it will be changed in the future. Additional Flashlight would be a very good point for Apple to change SIP policy. And one more thing - if somebody is using Flashlight, he is a some-kind of power-user and such power users is more than you can think of! :D

jdahdah commented 8 years ago

My 2ct, for what it's worth: you're basically taking the only thing that made Flashlight unique and throwing it out of the window. We don't need another Quicksilver or Alfred or Launchbar or Lacona. We need a more powerful, real Spotlight, and that's the whole reason for Flashlight's existence. I understand that you have looked into all of the technical possibilities and that this situation is Apple's fault, but rather than building yet-another-launcher-app (as great as it might be), I would rather see all of this valuable energy go into lobbying Apple to build a decent plugin system into Spotlight itself. I like their lightweight, privacy-friendly approach to Content Blockers and believe that they are now more open than ever to these kinds of extensions.

norlin commented 8 years ago

My suggestion was not to make it "standalone" app, rather just to "pack" existing behaviour into official app package, with using official Installer features to extend Spotlight. (i'm still not sure it's possible, but i have seen Installer could bypass SIP).

pencilcheck commented 8 years ago

It's sad to see spotlight coming to an end. Standalone app loses the beauty of simplicity. But why can't spotlight just be another Alfred? Alfred makes it very easy to rebind the key binding to start working like apple spotlight. If spotlight is making a standalone app, a UI that resembles the original spotlight is a must, then integration comes second, plugins third.

brechtm commented 8 years ago

Perhaps a good compromise would be to create a stand-alone Flashlight that hands control over to Spotlight if none of the enabled plugins are triggered.

Suppose I have the Remind Me and Google Translate plugins installed. The stand-alone Flashlight should be configured to pop up on Spotlight's usual hotkey, say Cmd+Space. Spotlight's hotkey needs to be changed to something else, say Ctrl+Cmd+Space. If I now press Cmd+Space, Flashlight's window pops up and I can enter some commands:

Feedback welcome... I'm a little worried that some keypresses might get lost when handing over control to Spotlight. Except for that, this should be fairly simple to implement.

Here's a basic proof of concept using Python and atomac. You need to add the terminal application that calls python to the Accessibility apps in System Preferences / Security & Privacy for this to work.

from atomac import getAppRefByBundleId
from atomac.AXKeyCodeConstants import COMMAND

STRING = "Hello Spotlight!"

spotlight = getAppRefByBundleId('com.apple.Spotlight')
spotlight.sendGlobalKeyWithModifiers(' ', [COMMAND])
search_window, = spotlight.windows()
text_field = search_window.findFirst(AXRole='AXTextField')
text_field.AXValue = STRING

I would still prefer to have Flashlight fully integrated in Spotlight, provided this is possible by installing Flashlight with SIP disabled (and enabling it again after installation), but the suggested approach would be more robust against future moves by Apple.

alpha-ninja commented 8 years ago

how about this: opening flashlight triggers spotlight, but flashlight is displayed over the spotlight text field. Then, as the user types, flashlight might display its own suggestions/actions. If none exist, the text field from flashlight stays, but spotlight receives the text typed into flashlight.

orbitly commented 8 years ago

As it seems Nate has abandoned this project, to any software developers, I'm sure plenty of people here would pay good money for a working fork on 10.11, even if we have to disable SIP.