mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2026-04-24 03:50:24 +10:00
95 lines
3.0 KiB
Markdown
95 lines
3.0 KiB
Markdown
## Usage
|
|
|
|
[Read here.](https://github.com/copycat-killer/lain/wiki/Widgets#usage)
|
|
|
|
### Description
|
|
|
|
Shows mails count fetching over IMAP.
|
|
|
|
```lua
|
|
local myimap = lain.widget.imap(args)
|
|
```
|
|
|
|
New mails are notified like this:
|
|
|
|
+--------------------------------------------+
|
|
| +---+ |
|
|
| |\ /| donald@disney.org has 3 new messages |
|
|
| +---+ |
|
|
+--------------------------------------------+
|
|
|
|
## Input table
|
|
|
|
Required parameters are:
|
|
|
|
Variable | Meaning | Type
|
|
--- | --- | ---
|
|
`server` | Mail server | string
|
|
`mail` | User mail | string
|
|
`password` | User password | string
|
|
|
|
while the optional are:
|
|
|
|
Variable | Meaning | Type | Default
|
|
--- | --- | --- | ---
|
|
`port` | IMAP port | number | 993
|
|
`timeout` | Refresh timeout seconds | number | 60
|
|
`is_plain` | Define whether `password` is a plain password (true) or a command that retrieves it (false) | boolean | false
|
|
`followtag` | Notification behaviour | boolean | false
|
|
`notify` | Show notification popups | string | "on"
|
|
`settings` | User settings | function | empty function
|
|
|
|
The reason why `is_plain` is false by default is to discourage the habit of storing passwords in plain.
|
|
|
|
So, you can set your password in plain like this:
|
|
|
|
```lua
|
|
myimapcheck = lain.widget.imap({
|
|
is_plain = true,
|
|
password = "mymailpassword",
|
|
-- [...]
|
|
})
|
|
```
|
|
|
|
and you'll have the same security provided by `~/.netrc`.
|
|
|
|
**Or you can use a password manager**, like [spm](https://notabug.org/kl3/spm) or [pass](https://www.passwordstore.org):
|
|
|
|
```lua
|
|
myimapcheck = lain.widget.imap({
|
|
password = function()
|
|
-- return the output of "spm show mymail"
|
|
end,
|
|
-- [...]
|
|
})
|
|
```
|
|
|
|
When `is_plain == false` (default), `password` can be either a string, a table or a function: the widget will execute it asynchronously in the first two cases.
|
|
|
|
`settings` can use the value `mailcount`, an integer greater or equal to zero, and can modify `mail_notification_preset` table, which will be the preset for the naughty notifications. Check [here](https://awesomewm.org/apidoc/libraries/naughty.html#notify) for the list of variables it can contain. Default definition:
|
|
|
|
```lua
|
|
mail_notification _preset = {
|
|
icon = lain/icons/mail.png,
|
|
position = "top_left"
|
|
}
|
|
```
|
|
|
|
Note that `mailcount` is 0 either if there are no new mails or credentials are invalid, so make sure you get the right settings.
|
|
|
|
In multiple screen setups, the default behaviour is to show a visual notification pop-up window on the first screen. By setting `followtag` to `true` it will be shown on the currently focused tag screen.
|
|
|
|
You can have multiple instances of this widget at the same time.
|
|
|
|
## Output table
|
|
|
|
Variable | Meaning | Type
|
|
--- | --- | ---
|
|
`widget` | The widget | `wibox.widget.textbox`
|
|
`update` | Update `widget` | function
|
|
`timer` | The widget timer | [`gears.timer`](https://awesomewm.org/doc/api/classes/gears.timer.html)
|
|
|
|
The `update` function can be used to refresh the widget before `timeout` expires.
|
|
|
|
You can use `timer` to start/stop the widget as you like.
|