# Notification Center Widget

## A notification center widget for Awesome Window Manager  

| Screenshot|
| --- |
| ![Screenshot](https://github.com/ilovecookieee/awesome-glorious-widgets/blob/master/screenshots/notif-center.png) |

| Demo |
| --- |
| ![GIF](https://github.com/ilovecookieee/awesome-glorious-widgets/blob/master/screenshots/notif-center.gif) |


# Dependencies:
+ Awesome Window Manager (git master branch)
+ canberra-gtk-play (optional)

# Instructions:  
+ Clone the repo.
+ Just copy the `notif-center` folder to `$HOME/.config/awesome/`. 
+ Then `require` it in your `wibox panel`.  
+ For example, let's put it in the top panel of a default `rc.lua`:

```lua
s.mywibox = awful.wibar({ position = "top", screen = s })
	
-- Add widgets to the wibox
s.mywibox.widget = {
	layout = wibox.layout.align.horizontal,
  { -- Left widgets
  	layout = wibox.layout.fixed.horizontal,
    mylauncher,
    s.mytaglist,
    s.mypromptbox,
  },
  s.mytasklist, -- Middle widget
  { -- Right widgets
  	layout = wibox.layout.fixed.horizontal,
  	mykeyboardlayout,
  	wibox.widget.systray(),
  	mytextclock,
  	s.mylayoutbox,
  	-- Let's put the notification center button after the layoutbox
  	require('notif-center')
  },
}
```
+ After that, it is recommended to add a `request::display` signal listener in your `rc.lua`:
+ Add the snippet below:

```lua
-- request::display signal listener
naughty.connect_signal('request::display', function(n)
    naughty.layout.box {notification = n}
end)
```

+ For `Do not disturb` button to work, add the snippet below to the `request::display` signal listener mentioned above:

```lua
-- We will use `destroy_all_notifications()` instead of `suspend()` because suspending naughty will also suspend the notification-center. It's a hackish way to hide the pop-ups, but hey, it's working.

-- Don't display notification pop-ups when the panel is visible and dont disturb mode is enabled.
if _G.panel_visible or _G.dont_disturb then
  naughty.destroy_all_notifications()
end
```

# Extras
You can also add a system sound effects when there is a new notification by installing `canberra-gtk-play`. Again, after that, add the snippet below inside inside the `request::display` signal.

```lua
-- Add sound effects if it's not do not disturb mode
if not _G.dont_disturb then
  -- Add Sound fx to notif
  -- Depends: canberra-gtk-play
  awful.spawn('canberra-gtk-play -i message', false)
end
```

# Note:  
+ If you have a problem, try to solve it or just open an issue.
+ Putting the widget folder to a different path other than `$HOME/.config/awesome` may cause some issues. It is because there is some hard-coded paths in some of the files. Tinkering it by yourself is recommended. ;)
+ Change the colors of notification panel widget in `$HOME/.config/awesome/notif-center/init.lua`
