Merge pull request #310 from utix/calendar/improvement

Calendar/improvement
This commit is contained in:
streetturtle 2021-11-20 14:00:00 -05:00 committed by GitHub
commit d5308d3c74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 16 deletions

View File

@ -4,18 +4,28 @@ Calendar widget for Awesome WM - slightly improved version of the `wibox.widget.
## Features ## Features
### Customization
| Name | Default | Description |
|---|---|---|
| theme | `naughty` | The theme to use |
| placement | `top` | The position of the popup |
| radius | 8 | The popup radius |
| start_sunday | false | Start the week on Sunday |
- themes: - themes:
| Name | Screenshot | | Name | Screenshot |
|---|---| |---|---|
| nord (default) | ![nord_theme](./nord.png) | | nord | ![nord_theme](./nord.png) |
| outrun | ![outrun_theme](./outrun.png) | | outrun | ![outrun_theme](./outrun.png) |
| light | ![outrun_theme](./light.png) | | light | ![outrun_theme](./light.png) |
| dark | ![outrun_theme](./dark.png) | | dark | ![outrun_theme](./dark.png) |
| naughty (default) | from local theme | | naughty (default) | from local theme |
- setup widget placement - setup widget placement
top center - in case you clock is centered: top center - in case you clock is centered:
![calendar_top](./calendar_top.png) ![calendar_top](./calendar_top.png)
@ -28,6 +38,10 @@ Calendar widget for Awesome WM - slightly improved version of the `wibox.widget.
![calendar_bottom_right](./calendar_bottom_right.png) ![calendar_bottom_right](./calendar_bottom_right.png)
- setup first day of week
By setting `start_sunday` to true:
![calendar_start_sunday](./calendar_start_sunday.png)
- mouse support: - mouse support:
move to the next and previous month. Using mouse buttons or scroll wheel. move to the next and previous month. Using mouse buttons or scroll wheel.
@ -35,20 +49,20 @@ Calendar widget for Awesome WM - slightly improved version of the `wibox.widget.
You can configure this by specifying the button to move to next/previous. You can configure this by specifying the button to move to next/previous.
Usually these are configured as follows. If you want to use other mouse buttons, you can find their number using `xev`. Usually these are configured as follows. If you want to use other mouse buttons, you can find their number using `xev`.
| number | button | | number | button |
|--------|--------| |--------|---------------|
| 4 | scroll up | | 4 | scroll up |
| 5 | scroll down | | 5 | scroll down |
| 1 | left click | | 1 | left click |
| 2 | right click | | 2 | right click |
| 3 | middles click | | 3 | middles click |
By default `previous_month_button` is 5, `next_month_button` is 4. By default `previous_month_button` is 5, `next_month_button` is 4.
## How to use ## How to use
This widget needs an 'anchor' - another widget which triggers visibility of the calendar. Default `mytextclock` is the perfect candidate! This widget needs an 'anchor' - another widget which triggers visibility of the calendar. Default `mytextclock` is the perfect candidate!
Just after mytextclock is instantiated, create the widget and add the mouse listener to it. Just after mytextclock is instantiated, create the widget and add the mouse listener to it.
```lua ```lua
@ -62,12 +76,13 @@ local cw = calendar_widget()
local cw = calendar_widget({ local cw = calendar_widget({
theme = 'outrun', theme = 'outrun',
placement = 'bottom_right', placement = 'bottom_right',
start_sunday = true,
radius = 8, radius = 8,
-- with customized next/previous (see table above) -- with customized next/previous (see table above)
previous_month_button = 1, previous_month_button = 1,
next_month_button = 3, next_month_button = 3,
}) })
mytextclock:connect_signal("button::press", mytextclock:connect_signal("button::press",
function(_, _, _, button) function(_, _, _, button)
if button == 1 then cw.toggle() end if button == 1 then cw.toggle() end
end) end)

View File

@ -97,6 +97,7 @@ local function worker(user_args)
local radius = args.radius or 8 local radius = args.radius or 8
local next_month_button = args.next_month_button or 4 local next_month_button = args.next_month_button or 4
local previous_month_button = args.previous_month_button or 5 local previous_month_button = args.previous_month_button or 5
local start_sunday = args.start_sunday or false
local styles = {} local styles = {}
local function rounded_shape(size) local function rounded_shape(size)
@ -184,6 +185,7 @@ local function worker(user_args)
font = beautiful.get_font(), font = beautiful.get_font(),
fn_embed = decorate_cell, fn_embed = decorate_cell,
long_weekdays = true, long_weekdays = true,
start_sunday = start_sunday,
widget = wibox.widget.calendar.month widget = wibox.widget.calendar.month
} }