fix conflicts

This commit is contained in:
Pavel Makhov 2019-05-03 15:23:12 -04:00
commit f77df95810
11 changed files with 348 additions and 151 deletions

View File

@ -2,6 +2,29 @@
This widget represents current brightness level: ![Brightness widget](./br-wid-1.png) This widget represents current brightness level: ![Brightness widget](./br-wid-1.png)
## Customization
It is possible to customize widget by providing a table with all or some of the following config parameters:
| Name | Default | Description |
|---|---|---|
| `get_brightness_cmd` | `light -G` | Get current screen brightness |
| `inc_brightness_cmd` | `light -A 5` | Increase brightness |
| `dec_brightness_cmd` | `light -U 5`| Decrease brightness |
| `path_to_icon` | `/usr/share/icons/Arc/status/symbolic/display-brightness-symbolic.svg` | Path to the icon |
| `font` | `Play 9` | Font |
### Example:
```lua
brightness_widget({
get_brightness_cmd = 'xbacklight -get',
inc_brightness_cmd = 'xbacklight -inc 5',
dec_brightness_cmd = 'xbacklight -dec 5'
})
```
## Installation ## Installation
First you need to get the current brightness level. There are two options: First you need to get the current brightness level. There are two options:
@ -29,8 +52,6 @@ First you need to get the current brightness level. There are two options:
49.18 49.18
``` ```
Depending on the chosen option change `GET_BRIGHTNESS_CMD` variable in **brightness.lua**.
Then clone this repo under **~/.config/awesome/**: Then clone this repo under **~/.config/awesome/**:
```bash ```bash
@ -50,7 +71,15 @@ s.mytasklist, -- Middle widget
{ -- Right widgets { -- Right widgets
layout = wibox.layout.fixed.horizontal, layout = wibox.layout.fixed.horizontal,
... ...
brightness_widget, -- default
brightness_widget(),
-- or customized
brightness_widget({
get_brightness_cmd = 'xbacklight -get',
inc_brightness_cmd = 'xbacklight -inc 5',
dec_brightness_cmd = 'xbacklight -dec 5'
})
}
... ...
``` ```

View File

@ -5,7 +5,7 @@
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightness-widget -- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightness-widget
-- @author Pavel Makhov -- @author Pavel Makhov
-- @copyright 2017 Pavel Makhov -- @copyright 2017-2019 Pavel Makhov
------------------------------------------------- -------------------------------------------------
local wibox = require("wibox") local wibox = require("wibox")
@ -17,36 +17,55 @@ local GET_BRIGHTNESS_CMD = "light -G" -- "xbacklight -get"
local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5" local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5"
local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5" local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5"
local brightness_text = wibox.widget.textbox() local widget = {}
brightness_text:set_font('Play 9')
local brightness_icon = wibox.widget { local function worker(args)
{
image = PATH_TO_ICON,
resize = false,
widget = wibox.widget.imagebox,
},
top = 3,
widget = wibox.container.margin
}
local brightness_widget = wibox.widget { local args = args or {}
brightness_icon,
brightness_text,
layout = wibox.layout.fixed.horizontal,
}
local update_widget = function(widget, stdout, stderr, exitreason, exitcode) local get_brightness_cmd = args.get_brightness_cmd or GET_BRIGHTNESS_CMD
local brightness_level = tonumber(string.format("%.0f", stdout)) local inc_brightness_cmd = args.inc_brightness_cmd or INC_BRIGHTNESS_CMD
widget:set_text(" " .. brightness_level .. "%") local dec_brightness_cmd = args.dec_brightness_cmd or DEC_BRIGHTNESS_CMD
end, local path_to_icon = args.path_to_icon or PATH_TO_ICON
local font = args.font or 'Play 9'
brightness_widget:connect_signal("button::press", function(_,_,_,button) local brightness_text = wibox.widget.textbox()
if (button == 4) then spawn(INC_BRIGHTNESS_CMD, false) brightness_text:set_font(font)
elseif (button == 5) then spawn(DEC_BRIGHTNESS_CMD, false)
end
end)
watch(GET_BRIGHTNESS_CMD, 1, update_widget, brightness_text) local brightness_icon = wibox.widget {
{
image = path_to_icon,
resize = false,
widget = wibox.widget.imagebox,
},
top = 3,
widget = wibox.container.margin
}
return brightness_widget widget = wibox.widget {
brightness_icon,
brightness_text,
layout = wibox.layout.fixed.horizontal,
}
local update_widget = function(widget, stdout, _, _, _)
local brightness_level = tonumber(string.format("%.0f", stdout))
widget:set_text(" " .. brightness_level .. "%")
end,
widget:connect_signal("button::press", function(_, _, _, button)
if (button == 4) then
spawn(inc_brightness_cmd, false)
elseif (button == 5) then
spawn(dec_brightness_cmd, false)
end
end)
watch(get_brightness_cmd, 1, update_widget, brightness_text)
return widget
end
return setmetatable(widget, { __call = function(_, ...)
return worker(...)
end })

View File

@ -1,12 +1,32 @@
# Brightness widget # Brightness widget
![Brightness widget](./br-wid-1.png) This widget represents current brightness level: ![Brightness widget](./br-wid-1.png)
## Customization
It is possible to customize widget by providing a table with all or some of the following config parameters:
| Name | Default | Description |
|---|---|---|
| `get_brightness_cmd` | `light -G` | Get current screen brightness |
| `inc_brightness_cmd` | `light -A 5` | Increase brightness |
| `dec_brightness_cmd` | `light -U 5`| Decrease brightness |
| `path_to_icon` | `/usr/share/icons/Arc/status/symbolic/display-brightness-symbolic.svg` | Path to the icon |
### Example:
```lua
brightnessarc_widget({
get_brightness_cmd = 'xbacklight -get',
inc_brightness_cmd = 'xbacklight -inc 5',
dec_brightness_cmd = 'xbacklight -dec 5'
})
```
This widget represents current brightness level.
## Installation ## Installation
Firstly you need to get the current brightness level. There are two options: First you need to get the current brightness level. There are two options:
- using `xbacklight` command (depending on your video card (I guess) it may or may not work) - using `xbacklight` command (depending on your video card (I guess) it may or may not work)
@ -30,19 +50,36 @@ Firstly you need to get the current brightness level. There are two options:
light -G light -G
49.18 49.18
``` ```
Depending on the chosen option change `GET_BRIGHTNESS_CMD` variable in **brightness.lua**.
Then in **rc.lua** add the import on top of the file and then add widget to the wibox: Then clone this repo under **~/.config/awesome/**:
```bash
git clone https://github.com/streetturtle/awesome-wm-widgets.git ~/.config/awesome/
```
Require widget at the beginning of **rc.lua**:
```lua ```lua
require("awesome-wm-widgets.brightness-widget.brightness") local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness")
... ```
-- Add widgets to the wibox
s.mywibox:setup { Add widget to the tasklist:
...
{ -- Right widgets ```lua
... s.mytasklist, -- Middle widget
brightness_widget { -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
-- default
brightnessarc_widget(),
-- or customized
brightnessarc_widget({
get_brightness_cmd = 'xbacklight -get',
inc_brightness_cmd = 'xbacklight -inc 5',
dec_brightness_cmd = 'xbacklight -dec 5'
})
}
...
``` ```
## Controls ## Controls

View File

@ -2,7 +2,7 @@
-- Brightness Widget for Awesome Window Manager -- Brightness Widget for Awesome Window Manager
-- Shows the brightness level of the laptop display -- Shows the brightness level of the laptop display
-- More details could be found here: -- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightnessarc-widget -- https://github.com/streetturtle/awesome-wm-widgets/tree/master/widget-widget
-- @author Pavel Makhov -- @author Pavel Makhov
-- @copyright 2019 Pavel Makhov -- @copyright 2019 Pavel Makhov
@ -17,38 +17,56 @@ local GET_BRIGHTNESS_CMD = "light -G" -- "xbacklight -get"
local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5" local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5"
local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5" local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5"
local icon = { local widget = {}
id = "icon",
image = PATH_TO_ICON,
resize = true,
widget = wibox.widget.imagebox,
}
local brightnessarc = wibox.widget { local function worker(args)
icon,
max_value = 1,
thickness = 2,
start_angle = 4.71238898, -- 2pi*3/4
forced_height = 18,
forced_width = 18,
bg = "#ffffff11",
paddings = 2,
widget = wibox.container.arcchart
}
local update_widget = function(widget, stdout) local args = args or {}
local brightness_level = string.match(stdout, "(%d?%d?%d?)")
brightness_level = tonumber(string.format("% 3d", brightness_level))
widget.value = brightness_level / 100; local get_brightness_cmd = args.get_brightness_cmd or GET_BRIGHTNESS_CMD
end, local inc_brightness_cmd = args.inc_brightness_cmd or INC_BRIGHTNESS_CMD
local dec_brightness_cmd = args.dec_brightness_cmd or DEC_BRIGHTNESS_CMD
local path_to_icon = args.path_to_icon or PATH_TO_ICON
brightnessarc:connect_signal("button::press", function(_, _, _, button) local icon = {
if (button == 4) then spawn(INC_BRIGHTNESS_CMD, false) id = "icon",
elseif (button == 5) then spawn(DEC_BRIGHTNESS_CMD, false) image = path_to_icon,
end resize = true,
end) widget = wibox.widget.imagebox,
}
watch(GET_BRIGHTNESS_CMD, 1, update_widget, brightnessarc) widget = wibox.widget {
icon,
max_value = 1,
thickness = 2,
start_angle = 4.71238898, -- 2pi*3/4
forced_height = 18,
forced_width = 18,
bg = "#ffffff11",
paddings = 2,
widget = wibox.container.arcchart
}
return brightnessarc local update_widget = function(widget, stdout)
local brightness_level = string.match(stdout, "(%d?%d?%d?)")
brightness_level = tonumber(string.format("% 3d", brightness_level))
widget.value = brightness_level / 100;
end,
widget:connect_signal("button::press", function(_, _, _, button)
if (button == 4) then
spawn(inc_brightness_cmd, false)
elseif (button == 5) then
spawn(dec_brightness_cmd, false)
end
end)
watch(get_brightness_cmd, 1, update_widget, widget)
return widget
end
return setmetatable(widget, { __call = function(_, ...)
return worker(...)
end })

View File

@ -111,7 +111,7 @@ mpdarc:connect_signal("mouse::leave", function() naughty.destroy(notification) e
watch(GET_MPD_CMD, 1, update_graphic, mpdarc) watch(GET_MPD_CMD, 1, update_graphic, mpdarc)
local mpdarc_widget = { local mpdarc_widget = wibox.widget{
mpdarc_icon_widget, mpdarc_icon_widget,
mpdarc_current_song_widget, mpdarc_current_song_widget,
layout = wibox.layout.align.horizontal, layout = wibox.layout.align.horizontal,

View File

@ -2,7 +2,43 @@
Almost the same as [volumebar widget](https://github.com/streetturtle/awesome-wm-widgets/tree/master/volumebar-widget), but using arcchart: Almost the same as [volumebar widget](https://github.com/streetturtle/awesome-wm-widgets/tree/master/volumebar-widget), but using arcchart:
![screenshot]({{'/assets/img/screenshots/volumearc-widget.gif' | relative_url }}){:.center-image} ![screenshot](out.gif)
Supports
- scroll up - increase volume,
- scroll down - decrease volume,
- left click - mute/unmute.
## Customization
It is possible to customize widget by providing a table with all or some of the following config parameters:
| Name | Default | Description |
|---|---|---|
| `main_color` | `beautiful.fg_normal` | Color of the arc |
| `mute_color` | `beautiful.fg_urgent` | Color of the arc when mute |
| `path_to_icon` | /usr/share/icons/Arc/status/symbolic/audio-volume-muted-symbolic.svg | Path to the icon |
| `thickness` | 2 | The arc thickness |
| `height` | `beautiful.fg_normal` | Widget height |
| `get_volume_cmd` | `amixer -D pulse sget Master` | Get current volume level |
| `inc_volume_cmd` | `amixer -D pulse sset Master 5%+` | Increase volume level |
| `dec_volume_cmd` | `amixer -D pulse sset Master 5%-` | Descrease volume level |
| `tog_volume_cmd` | `amixer -D pulse sset Master toggle` | Mute / unmute |
### Example:
```lua
volumearc_widget({
main_color = '#af13f7',
mute_color = '#ff0000',
thickness = 5,
height = 25
})
```
Above config results in following widget:
![custom](./custom.png)
## Installation ## Installation
@ -14,27 +50,13 @@ Almost the same as [volumebar widget](https://github.com/streetturtle/awesome-wm
1. Require volumearc widget at the beginning of **rc.lua**: 1. Require volumearc widget at the beginning of **rc.lua**:
```lua ```lua
local volumearc_widget = require("awesome-wm-widgets.volumearc-widget.volumearc") require("volumearc")
``` ...
s.mytasklist, -- Middle widget
1. Add widget to the tasklist: { -- Right widgets
layout = wibox.layout.fixed.horizontal,
```lua ...
s.mytasklist, -- Middle widget volumearc_widget,
{ -- Right widgets ...
layout = wibox.layout.fixed.horizontal, ```
...
--[[default]]
volumearc_widget(),
--[[or customized]]
volumearc_widget({
main_color = '#0000ff',
mute_color = '#ff0000',
path_to_icon = '/usr/share/icons/Arc/actions/symbolic/view-grid-symbolic.svg',
thickness = 5,
height = 25
}),
...
```

BIN
volumearc-widget/custom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -27,8 +27,8 @@ local function worker(args)
local args = args or {} local args = args or {}
local main_color = args.main_color or beautiful.widget_main_color local main_color = args.main_color or beautiful.fg_color
local mute_color = args.mute_color or beautiful.widget_red local mute_color = args.mute_color or beautiful.fg_urgent
local path_to_icon = args.path_to_icon or PATH_TO_ICON local path_to_icon = args.path_to_icon or PATH_TO_ICON
local thickness = args.thickness or 2 local thickness = args.thickness or 2
local height = args.height or 18 local height = args.height or 18
@ -38,7 +38,6 @@ local function worker(args)
local dec_volume_cmd = args.dec_volume_cmd or DEC_VOLUME_CMD local dec_volume_cmd = args.dec_volume_cmd or DEC_VOLUME_CMD
local tog_volume_cmd = args.tog_volume_cmd or TOG_VOLUME_CMD local tog_volume_cmd = args.tog_volume_cmd or TOG_VOLUME_CMD
local icon = { local icon = {
id = "icon", id = "icon",
image = path_to_icon, image = path_to_icon,
@ -59,8 +58,8 @@ local function worker(args)
} }
local update_graphic = function(widget, stdout, _, _, _) local update_graphic = function(widget, stdout, _, _, _)
local mute = string.match(stdout, "%[(o%D%D?)%]") local mute = string.match(stdout, "%[(o%D%D?)%]") -- \[(o\D\D?)\] - [on] or [off]
local volume = string.match(stdout, "(%d?%d?%d)%%") local volume = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%)
volume = tonumber(string.format("% 3d", volume)) volume = tonumber(string.format("% 3d", volume))
widget.value = volume / 100; widget.value = volume / 100;

View File

@ -9,21 +9,75 @@ Supports
- scroll down - decrease volume, - scroll down - decrease volume,
- left click - mute/unmute. - left click - mute/unmute.
## Installation ## Customization
Clone repo, include widget and use it in **rc.lua**:
It is possible to customize widget by providing a table with all or some of the following config parameters:
| Name | Default | Description |
|---|---|---|
| `main_color` | `beautiful.fg_normal` | Color of the bar |
| `mute_color` | `beautiful.fg_urgent` | Color of the bar when mute |
| `width` | 50 | The bar width |
| `shape` | `bar` | [gears.shape](https://awesomewm.org/doc/api/libraries/gears.shape.html), could be `octogon`, `hexagon`, `powerline`, etc |
| `margin` | `10` | Top and bottom margin (if your wibar is 22 px high, bar will be 2 px (22 - 2*10)) |
| `get_volume_cmd` | `amixer -D pulse sget Master` | Get current volume level |
| `inc_volume_cmd` | `amixer -D pulse sset Master 5%+` | Increase volume level |
| `dec_volume_cmd` | `amixer -D pulse sset Master 5%-` | Descrease volume level |
| `tog_volume_cmd` | `amixer -D pulse sset Master toggle` | Mute / unmute |
### Example:
```lua ```lua
local volumebar_widget = require("awesome-wm-widgets.volumebar-widget.volumebar") volumebar_widget({
... main_color = '#af13f7',
s.mytasklist, -- Middle widget mute_color = '#ff0000',
{ -- Right widgets width = 80,
layout = wibox.layout.fixed.horizontal, shape = 'rounded_bar',
... margins = 8
volumebar_widget, })
...
``` ```
Above config results in following widget:
![custom](./custom.png)
## Installation
1. Clone this repo under **~/.config/awesome/**
```bash
git clone https://github.com/streetturtle/awesome-wm-widgets.git ~/.config/awesome/
```
1. Require volumebar widget at the beginning of **rc.lua**:
```lua
local volumebar_widget = require("awesome-wm-widgets.volumebar-widget.volumebar")
```
1. Add widget to the tasklist:
```lua
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
--[[default]]
volumebar_widget(),
--[[or customized]]
volumebar_widget({
main_color = '#af13f7',
mute_color = '#ff0000',
width = 80,
shape = 'rounded_bar', -- octogon, hexagon, powerline, etc
-- bar's height = wibar's height minus 2x margins
margins = 8
}),
...
```
## Troubleshooting ## Troubleshooting
If the bar is not showing up, try to decrease top or bottom margin - widget uses hardcoded margins for vertical alignment, so if your wibox is too small then bar is simply hidden by the margins. If the bar is not showing up, try to decrease top or bottom margin - widget uses hardcoded margins for vertical alignment, so if your wibox is too small then bar is simply hidden by the margins.

BIN
volumebar-widget/custom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -9,6 +9,7 @@
------------------------------------------------- -------------------------------------------------
local awful = require("awful") local awful = require("awful")
local beautiful = require("beautiful")
local gears = require("gears") local gears = require("gears")
local spawn = require("awful.spawn") local spawn = require("awful.spawn")
local watch = require("awful.widget.watch") local watch = require("awful.widget.watch")
@ -19,48 +20,66 @@ local INC_VOLUME_CMD = 'amixer -D pulse sset Master 5%+'
local DEC_VOLUME_CMD = 'amixer -D pulse sset Master 5%-' local DEC_VOLUME_CMD = 'amixer -D pulse sset Master 5%-'
local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle' local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle'
local bar_color = "#74aeab" local widget = {}
local mute_color = "#ff0000"
local background_color = "#3a3a3a"
local volumebar_widget = wibox.widget { local function worker(args)
max_value = 1,
forced_width = 50,
paddings = 0,
border_width = 0.5,
color = bar_color,
background_color = background_color,
shape = gears.shape.bar,
clip = true,
margins = {
top = 10,
bottom = 10,
},
widget = wibox.widget.progressbar
}
local update_graphic = function(widget, stdout, _, _, _) local args = args or {}
local mute = string.match(stdout, "%[(o%D%D?)%]")
local volume = string.match(stdout, "(%d?%d?%d)%%")
volume = tonumber(string.format("% 3d", volume))
widget.value = volume / 100; local main_color = args.main_color or beautiful.fg_normal
widget.color = mute == "off" and mute_color local mute_color = args.mute_color or beautiful.fg_urgent
or bar_color local width = args.width or 50
local shape = args.shape or 'bar'
local margins = args.margins or 10
end local get_volume_cmd = args.get_volume_cmd or GET_VOLUME_CMD
local inc_volume_cmd = args.inc_volume_cmd or INC_VOLUME_CMD
local dec_volume_cmd = args.dec_volume_cmd or DEC_VOLUME_CMD
local tog_volume_cmd = args.tog_volume_cmd or TOG_VOLUME_CMD
local volumebar_widget = wibox.widget {
max_value = 1,
forced_width = width,
color = main_color,
background_color = '#ffffff11',
shape = gears.shape[shape],
margins = {
top = margins,
bottom = margins,
},
widget = wibox.widget.progressbar
}
local update_graphic = function(widget, stdout, _, _, _)
local mute = string.match(stdout, "%[(o%D%D?)%]") -- \[(o\D\D?)\] - [on] or [off]
local volume = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%)
volume = tonumber(string.format("% 3d", volume))
widget.value = volume / 100;
widget.color = mute == "off"
and mute_color
or main_color
volumebar_widget:connect_signal("button::press", function(_,_,_,button)
if (button == 4) then awful.spawn(INC_VOLUME_CMD)
elseif (button == 5) then awful.spawn(DEC_VOLUME_CMD)
elseif (button == 1) then awful.spawn(TOG_VOLUME_CMD)
end end
spawn.easy_async(GET_VOLUME_CMD, function(stdout, stderr, exitreason, exitcode) volumebar_widget:connect_signal("button::press", function(_, _, _, button)
update_graphic(volumebar_widget, stdout, stderr, exitreason, exitcode) if (button == 4) then
awful.spawn(inc_volume_cmd)
elseif (button == 5) then
awful.spawn(dec_volume_cmd)
elseif (button == 1) then
awful.spawn(tog_volume_cmd)
end
spawn.easy_async(get_volume_cmd, function(stdout, stderr, exitreason, exitcode)
update_graphic(volumebar_widget, stdout, stderr, exitreason, exitcode)
end)
end) end)
end)
watch(GET_VOLUME_CMD, 1, update_graphic, volumebar_widget) watch(get_volume_cmd, 1, update_graphic, volumebar_widget)
return volumebar_widget
end
return setmetatable(widget, { __call = function(_, ...) return worker(...) end })
return volumebar_widget