summaryrefslogtreecommitdiff
path: root/bar.lua
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2024-10-18 21:49:17 -0500
committerTim Keller <tjk@tjkeller.xyz>2024-10-18 21:49:17 -0500
commit923eb46350b1102749eb05cd2120c96cc6a715d0 (patch)
tree811da20b4195d4b5c65c8ac0090982a4a23f6a7d /bar.lua
downloadawesome-923eb46350b1102749eb05cd2120c96cc6a715d0.tar.xz
awesome-923eb46350b1102749eb05cd2120c96cc6a715d0.zip
initial commit
Diffstat (limited to 'bar.lua')
-rw-r--r--bar.lua154
1 files changed, 154 insertions, 0 deletions
diff --git a/bar.lua b/bar.lua
new file mode 100644
index 0000000..c03466e
--- /dev/null
+++ b/bar.lua
@@ -0,0 +1,154 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+
+-- load widgets
+--local mylauncher = require("widgets.button")
+local widget_cpu_usage = require("widgets.cpu")
+local widget_ram_usage = require("widgets.ram")
+local widget_temperature = require("widgets.temperature")
+local widget_battery = require("widgets.battery")
+local classiclayoutbox = require("widgets.classiclayouts")
+local volume_control = require("widgets.pavolctld")
+local widget_volume = volume_control.textbox
+
+-- store widgets here
+local spacing = 8
+local separator = { widget = wibox.widget.separator, opacity = 0 }
+
+local widgets = {
+ spacing = spacing, -- constant
+ layoutlist = wibox.widget {
+ layout = wibox.layout.fixed.horizontal,
+ buttons = layout_buttons,
+ wibox.container.margin(
+ classiclayoutbox(s),
+ spacing, spacing, 0, 0
+ ),
+ },
+ taglist = function(s) return awful.widget.taglist {
+ screen = s,
+ filter = awful.widget.taglist.filter.noempty,
+ buttons = taglist_buttons,
+ } end,
+ tasklist = function(s) return wibox.widget {
+ layout = wibox.layout.align.horizontal,
+ expand = "outside",
+ separator,
+ awful.widget.tasklist {
+ screen = s,
+ filter = awful.widget.tasklist.filter.focused,
+ buttons = tasklist_buttons,
+ widget_template = {
+ id = "text_role",
+ widget = wibox.widget.textbox,
+ align = "center",
+ },
+ },
+ separator,
+ } end,
+ textclock = wibox.widget.textclock("%A, %B %e, %-I:%M %p"),
+ cpu = wibox.widget {
+ layout = wibox.layout.fixed.horizontal,
+ wibox.widget.textbox "CPU: ",
+ widget_cpu_usage,
+ wibox.widget.textbox "% ",
+ widget_temperature "/sys/class/hwmon/hwmon2/temp1_input",
+ wibox.widget.textbox "°",
+ },
+ ram = {
+ layout = wibox.layout.fixed.horizontal,
+ wibox.widget.textbox "RAM: ",
+ widget_ram_usage,
+ wibox.widget.textbox "%",
+ },
+ vol = {
+ layout = wibox.layout.fixed.horizontal,
+ buttons = volume_buttons,
+ wibox.widget.textbox "VOL: ",
+ widget_volume,
+ wibox.widget.textbox "%",
+ },
+ bat = {
+ layout = wibox.layout.fixed.horizontal,
+ buttons = volume_buttons,
+ wibox.widget.textbox "BAT: ",
+ widget_battery,
+ },
+}
+
+-- left widget group func
+function widgets.left_widgets(s) return wibox.widget {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = spacing,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ widgets.layoutlist,
+ widgets.taglist(s),
+ },
+ widgets.tasklist(s),
+} end
+
+-- miggle widget group func
+function widgets.middle_widgets(s) return wibox.widget {
+ layout = wibox.layout.fixed.horizontal,
+ widgets.textclock,
+} end
+
+-- right widget group func
+function widgets.right_widgets(s) return wibox.widget {
+ layout = wibox.layout.fixed.horizontal,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = spacing,
+ widgets.cpu,
+ widgets.ram,
+ widgets.vol,
+ widgets.bat,
+ },
+ {
+ widget = wibox.widget.separator,
+ opacity = 0,
+ forced_width = spacing
+ },
+ --mylauncher,
+} end
+
+-- create a wibox for each screen and add it
+awful.screen.connect_for_each_screen(function (s)
+ awful.tag({"1", "2", "3", "4", "5", "6", "7", "8", "9"}, s, awful.layout.layouts[1])
+ s.mypromptbox = awful.widget.prompt()
+
+ -- create the wibox
+ s.mywibox = awful.wibar({ position = "top", screen = s })
+
+ -- add widgets to the wibox
+ s.mywibox:setup {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ spacing = spacing,
+ widgets.left_widgets(s),
+ widgets.middle_widgets(s),
+ widgets.right_widgets(s),
+ }
+end)
+
+---- signal for changing tasklist filter based on layout
+---- DOESNT WORK TODO
+--local naughty = require("naughty")
+--s:connect_signal("property::layout", function()
+-- naughty.notify({
+-- title = "Hello, AwesomeWM!",
+-- text = "This is a notification.",
+-- timeout = 5, -- Timeout in seconds
+-- position = "top_right" -- Position on the screen
+-- })
+-- if awful.layout.get(s) == awful.layout.suit.max then
+-- s.mytasklist.filter = awful.widget.tasklist.filter.currenttags
+-- else
+-- s.mytasklist.filter = awful.widget.tasklist.filter.focused
+-- end
+--end
+--)
+
+return widgets