Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jamesdaniels
Created September 21, 2015 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jamesdaniels/55abdb26f6b1ff4f7969 to your computer and use it in GitHub Desktop.
Save jamesdaniels/55abdb26f6b1ff4f7969 to your computer and use it in GitHub Desktop.
/* This is a FluidApp userscript for Google Inbox for Mac.
Includes options for total badge count and unread badge count.
1) You need the paid version of FluidApp (http://fluidapp.com/)
2) Point Fluid to https://inbox.google.com (I recommend the icon from here: https://medium.com/@chrismessina/create-an-icon-for-google-inbox-in-your-dock-ed269312e3bc)
3) Set the user-agent to Chrome
4) Go to window -> userscript and add click the plus sign under the first table (on the left). Name the item 'Inbox'.
5) In the second table (on the right) click the plus and type in "*inbox.google.com*".
6) Paste the contents of this document into the script area below that.
7) Configure badge count (for total or unread only) in the code below.
8) Refresh your FluidApp. (CMD + R)
Some Caveats:
- This doesn't update the badge unless it's looking at the inbox.
- The workaround is to only show the badge count when the inbox tab is active, otherwise it shows '?' as a reminder on other tabs (snoozed, etc).
- No idea how well this works with more than one tab open.
TODO: Update count on item removal / read.
*/
window.fluid.dockBadge = '';
setTimeout(updateBadge, 5000);
setInterval(updateBadge, 5000);
function updateBadge() {
// Inbox title will always be the first item in the D4 Class. It's shown and unshown depending on the selected folder (snoozed, etc)
var inboxTabSpan = document.getElementsByClassName('fv')[0].getElementsByTagName('span')[0];
var inboxTabTitle = inboxTabSpan.getAttribute('title');
var inboxTabStyle = inboxTabSpan.getAttribute('style');
if (inboxTabStyle === 'display: none;') {
// Inbox hidden.
window.fluid.dockBadge = '?';
} else {
//Check for Inbox Zero
var inboxZero = document.getElementsByClassName('j');
if (inboxZero.length >= 1) {
window.fluid.dockBadge = '';
} else {
// Inbox visible
var unreadEmails = document.getElementsByClassName('ss');
var totalEmails = document.getElementsByClassName('scroll-list-item');
var unreadNonGroupedEmails = document.querySelectorAll('[jsinstance*="#gmail"] .ss');
var count = unreadNonGroupedEmails.length;
/////////////////////////////
if (count >= 1) {
window.fluid.dockBadge = count;
} else {
window.fluid.dockBadge = '';
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment