From 2e143eff4fbd5f5b4f8c217a0f3e6104235a9408 Mon Sep 17 00:00:00 2001 From: elenapan Date: Sun, 27 Sep 2020 00:47:04 +0300 Subject: [PATCH] Add microphone overlay desktop element --- .../awesome/elemental/microphone_overlay.lua | 40 +++++++++++++++++++ config/awesome/rc.lua | 2 + 2 files changed, 42 insertions(+) create mode 100644 config/awesome/elemental/microphone_overlay.lua diff --git a/config/awesome/elemental/microphone_overlay.lua b/config/awesome/elemental/microphone_overlay.lua new file mode 100644 index 0000000..d827135 --- /dev/null +++ b/config/awesome/elemental/microphone_overlay.lua @@ -0,0 +1,40 @@ +local awful = require("awful") +local wibox = require("wibox") +local beautiful = require("beautiful") +local helpers = require("helpers") + +local microphone_icon = "" +local muted_color = x.color8 +local active_color = x.color1 + +local microphone_overlay = wibox({ + bg = x.color0.."99", + width = dpi(60), + height = dpi(60), + visible = false, + ontop = true, + type = "dock", + input_passthrough = true, + shape = helpers.rrect(beautiful.border_radius), +}) + +awful.placement.bottom_right(microphone_overlay, { margins = beautiful.useless_gap * 2 }) + +local indicator = wibox.widget { + font = "icomoon 20", + align = "center", + valign = "center", + widget = wibox.widget.textbox(microphone_icon) +} + +microphone_overlay:setup { + widget = indicator +} + +awesome.connect_signal("evil::microphone", function(muted) + indicator.markup = helpers.colorize_text(microphone_icon, muted and muted_color or active_color) +end) + +function microphone_overlay_toggle() + microphone_overlay.visible = not microphone_overlay.visible +end diff --git a/config/awesome/rc.lua b/config/awesome/rc.lua index d25f47c..eca3f38 100644 --- a/config/awesome/rc.lua +++ b/config/awesome/rc.lua @@ -228,6 +228,8 @@ lock_screen.init() require("elemental.app_drawer") -- Window switcher require("elemental.window_switcher") +-- Toggle-able microphone overlay +require("elemental.microphone_overlay") -- >> Daemons -- Most widgets that display system/external info depend on evil.