Fluid 0.7 Released with JS API for Dock and Growl

Fluid 0.7 is out with a JavaScript Console, a JavaScript API for dock badges and Growl notifications and some bug fixes.

I need to document this much better, but it’s late, so here’s what the JS API looks like:

  • window.fluid.setDockBadge(”10″);
  • window.fluid.showGrowlNotification({
    title: “title”,
    description: “description”,
    priority: 1,
    sticky: false
    });

Oh… and some slightly bad news… all of your previous preferences, browsing history, and download history for each SSB will be lost again with this upgrade… sorry, I needed to reorganize a few things… there’s a reason this is a beta.

Speaking of betas… as of version 0.7, Fluid is not longer set to expire in March. Fluid is now Free as in Beer but still closed source. For the foreseeable future, this is how Fluid will be licensed. I reserve the right to change this at any point in the future to another model… but this much is certain, 0.7 (at least) will forever be free beer.

68 Responses to “Fluid 0.7 Released with JS API for Dock and Growl”

  1. Adam Says:

    Hi,

    Great work on this update as ever, just wondered if you still had custom styles still in the pipeline? Currently it is my only remaining feature request.

    Many thanks for making this freeware.

  2. Dan Webb Says:

    Excellent work. The JS API is potentially really powerful. I was just wondering if there is any way of getting Fluid to work with something like GreaseKit so we can hack in hooks to the API for existing apps like GMail? I’ve got GreaseKit installed but it doesn’t seem to be enabled for my fluid apps.

    Cheers!

  3. Dan Webb Says:

    Apologies…just needed to enable it. Looking forward to seeing what I can do with this! Thanks.

  4. Dave Says:

    Thanks for the update. Does this bring us any closer to dock notification for Campfire?

  5. Jeffrey Hardy Says:

    @Dave: now that there’s a JS API for badges, it means that authors of software like Campfire can write their own hooks.

  6. Sam Stephenson Says:

    Thanks Todd!

    Dave: I’ve just committed Fluid badge support for Campfire. We’ll deploy it this evening.

  7. Clint Ecker Says:

    Awesome Todd! Nice meeting you at Macworld!

  8. Chad Pytel Says:

    @Dan: I’m successfully using GreaseKit on fluid apps. You need to make sure manage applications and then add the individual application.

  9. Eric Says:

    Having some difficulty with Google Reader.

    1) Going full screen loses keyboard focus

    2) Badge does not update when you read items

    3) using ‘v’ to view items ends up with a second google reader window

    4) If you are fullscreen and attempt to view you end up with two windows that are essentially impossible to navigate away from ( command-tab and force close don’t seem to work ).

    Some of these are probably tweaks in how fluid interacts with google reader and the javascript that will need to somehow be patched to “do the right thing”. I’ll check out GreaseKit to see if it has the appropriate tools to do the markup.

  10. Ryan Pratt Says:

    Todd, Great product loving it! Any way to control window? I am using java on open now but cant control anything but size and location without a window. open. I would love to adjust window on launch.

  11. Todd Says:

    @Adam: Yes, user stylehseets are definitely on the radar. I will try to get this in for 1.0.

    @Dave: Yes, the JS API added in 0.7 allows webapp devs like 37signals to set Dock badges and show growl notifications as appropriate for their app. Additionally, end users don’t have to wait for those webapp devs who are less agile than the wonderful guys at 37signals ;0]… users can install GreaseKit now, and leverage the JS API themselves or dig into the voluminous collection of Greasemonkey scripts on userscripts.org. As of 0.7, GreaseKit is Fluid’s tool for user scripting. GreaseKit is open source, and in the future I may try to take some of the GreaseKit code and integrate it a little more tightly into Fluid so that there’s no SMBL plugin or extra download/install required. I definitely want to stick with supporting Greasemonkey scripts tho… why reinent the wheel?

    @Sam: that is truly rad!

    @Clint: very nice meeting you and Jacqui too!! It was a very ‘celebrity-sighting’ moment for me ;0].

    @Eric: thanks for the bug reports! I really need to get a Bugzilla install up or something.

    1. I can’t seem to fix this… fullscreen support is new in leopard… might be a leo bug. I’ll look into it.
    2. In general, the custom Dock badge “unread count” support Fluid offers now is very hackish, flakey, and not really reliable. The plan is to move all custom site-specific functionality (like dock badges, menus, etc) to public, open source JS Scripts that use the JS API. Think TextMate’s Bundle community. That way, everyone can help out in creating and improving Dock support for any webapp. There’s no way I can keep up or meet everyone’s needs myself. Look for this before 1.0.
    3. Is that not expected behavior? That’s what Safari does… I don’t want to attempt to change the default behavior there.
    4. Fullscreen in Fluid really needs some work. It’s pretty half-assed at the moment.

    @Ryan: …come again?

  12. Eric Says:

    Todd, thanks for the feedback.

    2) I would try and integrate this with greasekit since you would have a ready community to pull from. I’m already trying to work up a “google reader in fluid” greasekit script.

    3) I’ll explain better. I end up with 2 fluid windows ( either reader or blank based on the preference page ) and a Safari window with the link from the RSS page ( 3 in total ). So for every item I view I end up with another “fluid” window. So it’s something with the way that reader is opening windows.

    Another suggestion. For the default icon you might want to scrape the site for the WebClip bookmark icon. It should provide a much cleaner icon.

  13. TSA Says:

    Is there any way to disable the popup blocking? Sites like the Hulu.com video player have been returning a “you browser is blocking this popup…” message when trying to break out their pop-out video player. It worked in a previous version of Fluid, but the last few have blocked it.

  14. Eric Says:

    Ooops… missed that part. Yay greasekit!

  15. Dave Says:

    Sam - thanks for the badge update for Campfire, it works great. Just one issue–when the badge appears, the icon (in my case a custom icon) turns into a low-res version.

  16. Derek Says:

    Fluid - fantastic idea. Been wanting something like this for some time for Gmail, but this is a brilliant implementation.

    One thought for the future - would be very cool if there was some capacity to either set multiple tabs on open (or have it restore state on startup). I tend to set up a sort of “Google workspace” (iGoogle/Gmail/Calendar) with three tabs and being able to just open up into that would be fantastic.

    Phenomenal little app - thank you very much for writing it.

  17. Eric Says:

    Ah,ha!

    Todd, it appears that Reader ( and possibly other js based apps ) using window.open will cause a second fluid/webkit window to open and then your code intervenes and sends the URL to safari. I made a greasekit script that changes the ‘v’ to do a location.href=item and it works as I would expect it to now without the extra fluid window.

  18. Dave Says:

    ^ Ignore my icon comment above, I just had to reimport it in a new instance, and it’s fine.

  19. Ryan Pratt Says:

    Sorry Todd.

    I would like to be able to spec the size and details of the first window that fluid opens.

    I am currently only able to spec the size and location of the window. I would very much like to get ride of the ability to resize the window.

    I hope this makes sense.

  20. stephen Says:

    Todd –

    Great work/idea on Fluid. I’ve just started using it for Fluid and Remember the Milk. I’m so particular about how my Camino windows and tabs lineup–Fluid helps me to simplify that by taking RTM and Gmail out of the normal usage of my browser.

    Is there a place/way to leave comments/suggestions/feedback? I hope I just didn’t miss a link…

    Thanks,

    sbh

  21. stephen Says:

    * Correction to comment 20 above — I use it for “Gmail and Remember the Milk”, not “Fluid and Remember the Milk.”

  22. Dave Says:

    I’m not sure if this is a Fluid or Campfire issue, but the Campfire dock badge seems to intermittently stop working. It will appear correctly for a while, then stop for a while, then appear again. I’ve tested all manner of window layering/visibility, but there’s no clear pattern.

  23. Richard Soderberg Says:

    This is the first OS X browser I’ve found that correctly does fullscreen support on Leopard. Thanks!

    Three bugs to report:

    (1) In fullscreen mode, JavaScript dialog boxes are hidden but still given keyboard focus. To demonstrate, click a javascript:window.alert(1) link while in fullscreen mode.

    (2) Gmail external links open an empty popup window and assign it focus. The popup ignores the browser tabs and the “bring to front” preference setting.

    (3) Gmail external links open an empty popup window that should be closed automatically. If window.open() is called on an external link, then it could be autoclosed to keep the UI clean.

  24. Garbrand Says:

    Great app Todd, we’re really loving it at eBuddy.

    One thing we’d like to do though is be able to fill in or get rid of the text in the “About…” section of a Fluid App.

    Other than that, awesome work! We like it a lot more then Prism / XUL Runner.

  25. Ivan Andrus Says:

    I’ll give it one last try. Perhaps my comments are being rejected because they have funny looking URLs in them. Anyway…

    I set the URL to localhost port 8000 (for a Sage server that I have running there) But the app that I create tacks a .com onto the end after the slash. needless to say this causes problems which I can’t fix. The Config.plist contains the right URL.

    Hope you get this and thanks for the wonderful application,
    Ivan

  26. dustin Says:

    first off, thanks for the great app. i encountered a problem right away when trying to create an ssb. my user account is not admin and when trying to create an ssb to be stored in my apps folder it gave me a permission denied error. took me a second to figure out that it’s not prompting for authentication to save to the application folder… may be something to include in the next release.

  27. Ruud Says:

    Great app! I love it!

    I have one little problem. When I click a link that opens a PDF-document I get the following error:

    Reason : Operation could not be completed. (WebKitErrorDomain error 204.)

    Is it possible to fix this? I would really want to have PDF-support built-in.

  28. Rick Martinez Says:

    The app would be ridiculously amazing if it was open source.

  29. tim Says:

    is anyone successfully able to have mailto’s you click in safari go to the gmail app you have created, and open a compose? i just get a blank window with nothing happening. also, when i click on my google calendar in the gmail app i created, it opens a new windows, rather than a tab… that would be perfect if i could get it in a tab. also, i just submitted an icon for freshbooks.com to the flickr group. thanks!

  30. Chad Pytel Says:

    I’ve also switched from using pyro to using fluid for campfire, full-time. I’ve also been successfully using greasekit to hack additional functionality into campfire (growl when someone says your name).

    After hacking and using, I have a few suggestions for more scriptability - some of which it sounds like you have in mind already.

    * Bundle the ability to have user scripts right into FluidInstance, and store them in the application’s directory so that we can bundle and distribute them
    * Provide a javascript method to open a new tab
    * Provide a javascript method to add menu items, which, in turn, call javascript
    * Make the growl notifications clickable to get to the application, preferably the tab which originated the growl

    Overall, Fluid is great, and thanks for the hard work on it.

  31. Ullrich Says:

    Hey,
    I love this for my Netvibes. But would even love it more if it would support badge information for this site. :)

  32. nilez Says:

    Just my 2 cents … if you don’t opensource this project, someone else will make a clone and open it. It’s just one of those things, you’ve made something that is directly in the path of opensource - it’ll happen, inevitably. Just my 2 cents.

  33. andreas Says:

    nilez: ever heard of prism? hehe…

  34. NiKo Says:

    Nice ! Simple question : is it possible to package Fluid apps in a standard DMG image ?

    If so, how ? Thanks !

  35. Jared Says:

    Is there a way to turn off the status bar for a given site? I find the status bar to be mostly useful for seeing what domain links will take me to… but if I’m stuck inside one web app / domain it is unnecessary. I think this would be a lovely preference. Thanks for making Fluid.

  36. Eric Says:

    Been using it for a while now… pretty slick. Here is my rundown of issues.

    1) Badge/site support need to be more modular ( I know you are working on it )

    2) The javascript open/blank window issue. This can be fixed with some GreaseKit fu, I posted a link earlier in the discussion, but your anti-spam code probably ate it.

    3) Fullscreen needs work.

    4) Ways to customize what mime/file types an “app” accepts. I would love to be able to click on a .torrent file and have it auto-open in my web torrent frontend.

    5) Current RSS integration works ok, but if I click on an RSS when Google Reader is not already open it doesn’t work. Probably something minor, possibly an interaction with the GreaseKit auto-accept reader patch I have.

    Cheers

  37. Ricky Irvine Says:

    Oh my word, this software is fantastic! Having Basecamp and Gmail icons in my dock is a lifesaver. THANKS.

    When I click on outgoing links in Gmail, it respects my default browser settings, but it opens a blank window in Fluid.

    Also, when I download a file it’d be good to auto open the file (or have option to) and auto close the download window.

    Again, THANKS for the radical software!

  38. Lennert Dorman Says:

    Love this app!

    But do have a question. In our office we would like to use it for Zimbra’s Messaging System and that’s working fine. To make this more secure we would like to use https. When I try using Fluid with https it comes back with an error: “Load Failed Reason : bad server certificate.”

    Are you planning that in a future version Fluid will support https?

  39. Chad Pytel Says:

    @Lennert - it does support https, this is because you have an invalid/self-signed certificate on your Zimbra server.

    You need to fix the SSL certificate, or a believe you can edit the certificate trusts in OS X to always trust that certificate and then it might work for fluid.

  40. Rod Says:

    Be great of the GMail Dock Badge would work with hosted domains. I’m sure you’ve thought of it.

    Nice work.

  41. Håvard Pedersen Says:

    Do you have any plans for allowing CSS “overrides”? I noticed GMail.app containing a default.css. I tried creating one in GReader.app, but that didn’t work. :(

  42. Prism vs Fluid: Local Web Application Management on Mac OS X at Josh Kim dot Org Says:

    [...] A lot of great things in the horizon… but it’s too bad it isn’t open sourced (See Post Here). I’d love to start messing around with the [...]

  43. Chris Bailey Says:

    First, great job! Second, what would make this truly great for me (and I’m guessing others), is if the cookie store, and other such things was separate from regular Safari/WebKit. I ask, because for developers or testers, it’d be great to be able to have multiple “browsers” open to the same site, but logged in to different accounts. Sure, I can start spawning a Safari, a Firefox, a Camino, etc, etc., but that breaks down quickly. If I could just create multiple Fluid apps that were set to facebook.com, and then be able to login individually to each Fluid app and have it maintain that separately, that’d rock.

    Also, while I don’t mean to take away from Fluid, for a really great stand-alone GMail reader on the Mac, I’d highly recommend Mailplane, which ties into Gmail specifically, providing some really nice UI enhancements, as well as allowing for multiple accounts and easily switching amongst them. http://mailplaneapp.com/

    And lastly, I have no prob with the lack of open source. I don’t really see how making it open source will make it rock (as opposed to suck) as one person said, because it already does rock. Sure, it’d be nice, and if it were, I might be able to go add the feature I’m asking for above, but it certainly won’t stop me from using Fluid.

  44. Håvard Pedersen Says:

    Never mind my last post, I got my custom CSS to work. :) Though I’m guessing it’ll be overwritten by the next instance update…

    On the other hand, the Google Reader dock badge never enters 0 (or disappears). It’s updated as I read news (counting down), but when I reach zero it stays at “1″. :( OS X 10.5.1

  45. dulfun Says:

    GREAT APP. Thank you!

  46. Simon Says:

    Thanks so much for Fluid! I try out many of the indie mac apps and I must admit they’re mostly short lived. I’m keeping Fluid.

  47. schmidetzki Says:

    Blilliant Software.
    However it seems not to work for “local” url-s without a TLD name. I use the url http://localhost:8080/start and Fluid tries to open http://localhost:8080/start.com - adding the .com by itself.

  48. Chad Pytel Says:

    Also, another javascript note. It appears that window.close() currently causes the entire fluid window to close. However, if this is in a tab, it’d be helpful if it just caused the tab to close.

  49. Shrop Says:

    This app is really great.. Man I have tried doing this kind of thing in several kludgy ways in the past. Great to have a truly separate browser for web apps. I am using it with meebo.

    I am sure you have been asked this or have a solution possibly that I have missed.. Is there a way to save your web app login/password so it is autosubmitted. Basically, I would like to start the Fluid created app and have it log right in (optionally of course).

    Thanks!
    Shrop

  50. Jamie Phelps Says:

    I’m having problems with some of my Fluid apps that I log into with OpenID, specifically Backpack but I suspect this would be the case for others as well. When I enter my OpenID to log in, I am redirected to my OpenID provider as I expect. But, when I log in, the OpenID provider’s site opens in Safari rather than redirecting me to Basecamp.

    Ideally, I’d like to see a way to enter OpenID’s in Fluid’s preferences. Then, when a site requests OpenID auth, then my Fluid app would prompt me for which one to use and I log in. Done. Barring this, though, is there a way to capture this redirect thing so that I can log into Backpack?

    If it helps, here are my details.

    OpenID Provider: ClaimID
    Problem site: {myaccount}.backpackit.com
    Note: I’m using my own domain as my OpenID which redirects to ClaimID.

  51. daniel Says:

    eric, could you post that greasekit script for google reader? I’d love it

  52. Dan Says:

    Awesome, awesome awesome.

    One small bug: on sites with counters (gmail, google reader), the counter in the Dock does not go to zero when the counter goes to zero, it stays at whatever # of unreads or new before it went to nothing. (Does that make sense?)

  53. Milton Says:

    Fluid rocks!

    Related to Ruud’s Jan 27th comment, I too am having issues with a “WebKitErrorDomain error 204″ but not related to PDFs. I get it when I try to download PBS NerdTV shows http://www.pbs.org/cringely/nerdtv/shows/

  54. Zelnox Says:

    Hmm, probably doing something wrong, because I’m not seeing the unread counter for Gmail. ;_;

  55. Tom Says:

    Why only for Leopard?

  56. Niclas Nilsson Says:

    Great work!

    Is there or will there be any way to use it together with (the highly addictive) 1Password?

    Kind regards
    Niclas

  57. Rudro Says:

    Hi!
    This is a great app! However, I would like to report a few minor problems with it.
    The message in the title bar does not update. For e.g, if my gmail application starts out with 2 new messages, the title reads ‘Inbox(2)’ for the entire session, or ‘loading…’ for some other sessions, etc. It would be nice if this was corrected in a future version. Another improvement would be including a contextual menu item to open a link in the default main browser and stopping the appearance of a blank window if I click on links outside the domain and have set the preferences to not open links outside the current domain inside the app.
    Best,
    Rudro

  58. toni Says:

    Hi there!

    Fantastic app, I can finally replace Mail by GMail (which interface I prefer) in Fluid and have it in a separate app.

    Still cannot see unread counter in the dock though, the same as Zelnox user above.

    I’m using Leopard 10.5.2.

    Can I ask GreaseKit support for a future release? It would be great :-)

    Regards and congratulations! Fantastic work!

  59. daniel Says:

    greasekit actually works. you just need to assign it to your fluid instance.

    i too am having the google reader bug when pressing ‘v’. Eric says he has fixed it in a greasekit script.

  60. Tim Harper Says:

    I posted a GreaseKit script for message growl notifications for Campfire. Shows the contents of the message, instead of a window saying you have unread messages, allowing you to not have to open campfire!

    http://userscripts.org/scripts/show/22891

    It’s there, if you’d like to use it. Installation instructions on the page. Verified working on MacOSX 10.5.2, Safari 3.0.4, Fluid 0.7, and GreaseKit 1.4.

    Thanks for fluid, Todd!

  61. Alexis Brion Says:

    Hey, this is a fantastic application! I love it!

    I’m only having problems with GMail, it seems that it wants to load but it doesn’t. Which URL are you guys using? I use calendar.google.com

    Thanks!

  62. Alexis Brion Says:

    Sorry, I should say, I’m using leopard + firefox (last versions).

    Thanks!

  63. Bjorn Says:

    Hi,

    Today I’ve created a CakePHP helper, so creating notifications in your own CakePHP application becomes a piece of cake. :)

    You can download the helper at my website: http://bjornpost.com/text/2008/fluid-helper-for-cakephp/

    Enjoy!

    Ps.: Fantastic app! (though one little feature request: can you make a function to hide the status bar?)

  64. Ben Lowery Says:

    wow, this is great! i’m trying to add in the right call on bloglines, but window.fluid.setDockBadge(”10″) doesn’t seem to have any effect. Any thoughts on what might be wrong?

  65. Matt Says:

    I’d kill for text entry box spellcheck support :P

  66. MiraN Says:

    Can a proxy be set up for each webapp?

  67. Andrew A Says:

    I’m having a hard time getting the badges to show up on my apps. Is there something special about getting them to work?

    Is there another app required for them to work? (i.e. Apple Dev Kit, WebKit, etc.) Thanks in advance.

  68. Filip Tepper Says:

    Todd,

    Thanks for a your hard work on Fluid, it’s really great!

    I just posted a little fix for Google Reader’s script:
    http://userscripts.org/scripts/show/23422

    It clears the dock badge when all the items are read.

Leave a Reply