making awesome more awesome
This commit is contained in:
parent
0a7fe89729
commit
3643ba277e
361 changed files with 41182 additions and 26 deletions
141
awesome/widget/window-effects/blur-strength-slider.lua
Normal file
141
awesome/widget/window-effects/blur-strength-slider.lua
Normal file
|
@ -0,0 +1,141 @@
|
|||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
|
||||
local start_up = true
|
||||
|
||||
local icons = require('theme.icons')
|
||||
|
||||
local slider = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'blur_strength_slider',
|
||||
bar_shape = gears.shape.rounded_rect,
|
||||
bar_height = dpi(2),
|
||||
bar_color = '#ffffff20',
|
||||
bar_active_color = '#f2f2f2EE',
|
||||
handle_color = '#ffffff',
|
||||
handle_shape = gears.shape.circle,
|
||||
handle_width = dpi(15),
|
||||
handle_border_color = '#00000012',
|
||||
handle_border_width = dpi(1),
|
||||
maximum = 100,
|
||||
widget = wibox.widget.slider,
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
local blur_slider = slider.blur_strength_slider
|
||||
|
||||
|
||||
local update_slider_value = function()
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[bash -c "
|
||||
grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
|
||||
awk 'NR==1 {print $3}' | tr -d ';'
|
||||
"]],
|
||||
function(stdout, stderr)
|
||||
local strength = stdout:match('%d+')
|
||||
blur_strength = tonumber(strength) / 20 * 100
|
||||
blur_slider:set_value(tonumber(blur_strength))
|
||||
start_up = false
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
update_slider_value()
|
||||
|
||||
local adjust_blur = function(power)
|
||||
|
||||
awful.spawn.with_shell(
|
||||
[[bash -c "
|
||||
sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
|
||||
$HOME/.config/awesome/configuration/picom.conf
|
||||
"]]
|
||||
)
|
||||
end
|
||||
|
||||
blur_slider:connect_signal(
|
||||
'property::value',
|
||||
function()
|
||||
if not start_up then
|
||||
strength = blur_slider:get_value() / 50 * 10
|
||||
adjust_blur(strength)
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
-- Adjust slider value to change blur strength
|
||||
awesome.connect_signal(
|
||||
'widget::blur:increase',
|
||||
function()
|
||||
|
||||
-- On startup, the slider.value returns nil so...
|
||||
if blur_slider:get_value() == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local blur_value = blur_slider:get_value() + 10
|
||||
|
||||
-- No more than 100!
|
||||
if blur_value > 100 then
|
||||
blur_slider:set_value(100)
|
||||
return
|
||||
end
|
||||
|
||||
blur_slider:set_value(blur_value)
|
||||
end
|
||||
)
|
||||
|
||||
-- Decrease blur
|
||||
awesome.connect_signal(
|
||||
'widget::blur:decrease',
|
||||
function()
|
||||
|
||||
-- On startup, the slider.value returns nil so...
|
||||
if blur_slider:get_value() == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local blur_value = blur_slider:get_value() - 10
|
||||
|
||||
-- No negatives!
|
||||
if blur_value < 0 then
|
||||
blur_slider:set_value(0)
|
||||
return
|
||||
end
|
||||
|
||||
blur_slider:set_value(blur_value)
|
||||
end
|
||||
)
|
||||
|
||||
local blur_slider_setting = wibox.widget {
|
||||
{
|
||||
{
|
||||
{
|
||||
image = icons.effects,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
slider,
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return blur_slider_setting
|
Loading…
Add table
Add a link
Reference in a new issue