Security News
Supply Chain Attack Detected in Solana's web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Count inbox emails using Gmail API or Gnome Online Accounts (limited support)
mongars
will take an email account as configured in Gnome Online account
(only oauth based email account is supported) or via the GMAIL API and will
output how many unread emails you have in there.
You need to generate a OAUTH credentials.json via the google API console.
When it's done using pass you need to insert it in your pass store:
pass insert -m google/$EMAIL.mail.credential
INSERT YOUR CREDENTIALS HERE
Run mongars
on your terminal for the first time with the flag --gauth
and
your $EMAIL
as argument:
mongars --gauth $EMAIL
It will print a URL to open in your web browser and start the google Oauth flow
to allow it to access to read your email on your $EMAIL
account. It stores and
refresh the temporary token in ~/.cache/mongars/token.$EMAIL.json
.
You can define the pass key to other values by defining the flags
--gauth-pass-cred-key
. If you want to use the same credentials for multiple
emails you would want to define this flag to the same value to both pass key
path.
If you want you can as well redefine the --gauth-pass-token-file
somewhere else.
You will have notification on new email if you have the notify-send
command installed. The notifications include an Open and Archive option,
the Open is limited to a search because the Gmail interface don't have direct links support.
You can customize the template and the command with the
--notify-command-template
flag the default is:
notify-send -i "{icon}" "{sender}" "{subject}"
The variables supported are icon
, sender
, subject
and snippet
are replaced with the values from the email.
You can output a markdown formatted (optionally) with gum
if you pass the
option -M/--show-markdown
You can output as json for waybar with -J/--show-json
and it will show a
tooltip of your last 5 message and subject snippet.
We are generally just quiet and don't output anything if there is an error,
just use -v
to see the error.
You just need to specify the email to check as an argument i.e:
mongars john.snow@gmail.com
By default it will output the number of messages from your mailbox with an icon of different colours if there is unread message or not.
The INBOX
folder is the default folder, if you would like to count another folder you can specify the -m
option to it :
mongars -m Label1 john.snow@gmail.com
You can further customize the colour output which uses lemonbar formatting with :
--icon
: the glyph icon default to
--icon-color-unreads
: the color when unreads, default to a yellow #ffd700
set this to empty if you don't want any color formatting.--icon-color-normal
: the normal colors. (no default)By default if you have no mail it will output a 0 unless you specify the flag --no-mail-no-zero
If you don't want any icons you can simply use the --no-icon
and it will just output the number.
This currently only support oauth2 based accounts, imap account with username, password are not currently supported (patch welcome but you probably want to use something more secure).
I only tested it with Google/Gmail accounts (enterprise and personal) so let me know if it works or not on other oauth2 based email accounts.
You can install this from aur with your aurhelper, like yay :
yay -S mongars
With pip from pypip - https://pypi.org/project/mongars/
pip install --user mongars
(make sure $HOME/.local/bin is in your PATH)
Checkout this repository, install uv and run it with :
uv sync
uv run mongars [ARGS]
If you run this outside of gnome environement (ie: from a windows manager), you have to configure the accounts first in Gnone Online Account settings from gnome and then you can use it from your windows manager.
From your window manager start scripts or somewhere else you need to make sure to run the goa-daemon, for example on arch the path is /usr/lib/goa-daemon
and from your startup script you will do :
/usr/lib/goa-daemon --replace &
different distros may have a different path, see also this bugzilla bug #1340203)
You can easily integrate this with Polybar :
[module/email]
type = custom/script
exec = mongars email@gmail.com
interval = 30
click-left = xdg-open https://mail.google.com/
exec-if = grep -q email@gmail.com ~/.config/goa-1.0/accounts.conf 2>/dev/null && ping -c1 mail.google.com
"custom/email": {
"format": " {} ",
"interval": 15,
"exec": "mongars email@gmail.com --no-mail-no-zero --no-icon",
"on-click": "xdg-open https://mail.google.com"
},
and you can style it in style.css
file :
#custom-email {
color: #b22222;
}
The gauth method support output to json, here is an example integrating it:
{
"custom/email-work": {
"format": "{} ",
"return-type": "json",
"tooltip": "true",
"tooltip-format": "{tooltip}",
"interval": 15,
"exec": "uv run mongars --gauth myemail@gmail.com -J",
"on-click-middle": "kitty -T \"Email for myemail@gmail.com\" bash -c \"mongars --gauth myemail@gmail.com -M|less -R\"",
"on-click": "xdg-open https://mail.google.com/"
}
}
© 2021 Chmouel Boudjnah (@chmouel) - https://chmouel.com
FAQs
Show unread emails in INBOX using Gmail Api or Gnome Online Accounts
We found that mongars demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.