Code Monkey home page Code Monkey logo

ichrome's Introduction

iChrome

Build Status Codacy Badge Crowdin devDependency Status twitter

iChrome is a highly customizable, iGoogle homepage replacement extension influenced by Google Now. It includes almost 100 HD themes, over 30 widgets, support for multiple tabs, "OK Google" hotword detection and voice search, internationalization support and almost complete customization.

This is the full source for iChrome except for API secrets which have been replaced with placeholders.

Jump to Section

Setup

[Back To Top]

Follow these steps to run iChrome in Google Chrome as a developer.

  • Open the url chrome://extensions/ in Google Chrome.
  • Click to enable Developer mode so that you see developer options.
  • Click the "Load unpackaged extensions..."
  • Browse to the location where iChrome repo is installed, and select the sub-directory iChrome/app as the extension source.

If you already have iChrome installed from the Google Play store, then remove the extension before doing the above.

Road Map

[Back To Top]

V2.x

  • A real website

V2.2

These are very much in flux, any of them could be postponed or skipped.

iChrome Pro:
  • Prioritized support and suggestions
  • 2 fully synced themes per tab.
  • The ability to create dynamic custom themes (video, slide-shows, time and date dependent) that are hosted on iChrome servers
  • 30 online backups
  • "Parental" controls with the ability to blacklist widgets and lock configurations remotely
  • Possibly maximizable widgets
  • Various widget features including real-time stocks with charts, real-time analytics, more accurate weather, etc.

Contributing

[Back To Top]

If you'd like to contribute, please fork the repo and submit a pull request.

Style Guide

[Back To Top]

  • Code is indented with 4 space tabs, never spaces
  • Double quotes are always used unless the string contains double quotes, such as with HTML
  • Trailing semicolons are always used
  • When multiple variables are being defined at the top of a function they should generally be combined into one var statement
  • Ternary operators are fine especially for string concatenation
  • Performance should always be favored over readability for small snippets. i.e. $(body).append($('<div></div>').attr("data-id", id.split("-")[1])) instead of var elm = $('<div></div>'), id = id.split("-")[1]; elm.attr("data-id", id)....

License

[Back To Top]

iChrome is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Basically, feel free to use the code however you want as long as you give credit. And, if you don't mind please let me know.

ichrome's People

Contributors

amkohn avatar gbasin avatar htdvisser avatar irvinext avatar madiele avatar thinkingmedia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ichrome's Issues

Feature Request: Multiple gmail accounts

Right now iChrome shows a link for gmail on the top bar that points to

https://mail.google.com/mail

A lot of people have multiple gmail accounts. One for personal and one for work. These have different email addresses, but they can easily be accessed following this URL pattern.

https://mail.google.com/mail/u/0
https://mail.google.com/mail/u/1
https://mail.google.com/mail/u/2

The above would be for a user with 3 accounts linked to gmail.

I would like to be able to have my personal and work emails on the top bar. If that's possible?

Thanks,

"migrate my settings" broken

with the V2.1 update, I press "migrate my settings" the button lightens (indicating it was pressed) and nothing happens?
screen shot 2014-05-28 at 9 52 55 pm

Flash content is not dispayed

I tried to add iframe with my favorite clock in SWF format from my site but it doesn't show. I tried to create separate Web page with it (http://rinaldus.ru/clock.html) and inserted to HTML widget, but it also doesn't show. Is avaiable to display flash content with ichrome?

Cannot launch Google Keep

I found out this weird bug with Google Keep on iChrome yesterday. When you click on the button, it does not launch itself. Further investigation reveals that it does not have a href attribute, hence the problem. What's more, its manifest.json does not contain a launch point either. However, launching Google Keep on vanilla new tab works fine. Can you reproduce this issue on your machine?

version: 33.0.1750.29 beta Linux

Load templates from separate files.

Templates have all been placed in the "index.html" creating a large difficult file to manage.

Put each template into it's own file and load from there.

Ugly advertisement at the center of my view

Since a few days ago I'm seeing an ugly advertisement in the first column of my view, just in the middle, screwing up all the layout.

I didn't ask for any PRO feature, and there ain't any new functionality in iChrome, so I guess this is a mistake.

Load requireJS modules into correct context.

Here is a github project that shows how to correctly use requireJS with Google Chrome Extensions.

https://github.com/salsita/chrome-extension-skeleton

I ran into an issue this morning with my own extension trying to get it work with require. Modules were being loaded into the web page's context and not the extensions context.

I'm not sure if this will effect iChrome, because the webpage belongs to iChrome. Anyway, it's probably better to load modules correctly.

Here's the code that fixes the issue. This should be run before require.config in main.js.

(function() {
    var global = this;
    require.load = function (context, moduleName, url) {
        var xhr;
        xhr = new XMLHttpRequest();
        xhr.open("GET", chrome.extension.getURL(url) + '?r=' + new Date().getTime(), true);
        xhr.onreadystatechange = function (e) {
            if (xhr.readyState === 4 && xhr.status === 200) {
                eval.call(global, xhr.responseText + '\n//@ sourceURL=' + url);
                context.completeLoad(moduleName)
            }
        };
        xhr.send(null);
    };
})();

Hacker News widget

Would like to see a hacker news widget that's closer to the HN homepage for order, and includes links to the article and comments.

I've been using the rss widget, but feedly tends to lag, and when I click through on the header, I have to hunt for the articles/comments I thought looked interesting.

Clock widget countdown renders itself non-functional if the clock is supposed to ring while the new tab page isn't open

Steps to reproduce:

Start an alarm with the clock widget (set it at 10 seconds or so)
Navigate to another page. Ensure there are no new tab pages open.
Wait until after the alarm is supposed to go off
When you visit the new tab page again, the clock widget will be gone (replaced with a small block), and it will not be possible to remove it.

Here is a video illustrating the issue using stock unmodified iChrome (current version, 3.0.0.10) with just the clock widget enabled: https://www.youtube.com/watch?v=at8QBJeEu6A

Corrupted calendar options

screenshot from 2015-04-04 21-13-32

There is no option to chose a calender, therefore it only displays "Glass developer hangout [...]"
I guess a picture would serve as a better description...

[Request] Feedly dropdown selector

Hello,
It's a request to add add dropdown menu for feedly to change the channel (shot articles from) on the fly.

If we disable the editing mode we also loose ability to change the feedly channel.

I have lot's of subscription on feedly, which can be harder for me to track in grouped list

May be some where in the red portion.

Thanks

Bookmarks widget

With a recent update the bookmarks widget only displays:
Template "widget.chrome_bookmarks" not found!

Can`t log inn

I try to log inn, but the callback dosn`t work

I get to api.ichro.me/oauth/v1/.......

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.