Signed-off-by: fbt <fbt@fleshless.org>
This commit is contained in:
Jack L. Frost 2019-05-15 11:50:16 +03:00
parent 32a0422f7f
commit 8544bb8cd4
4 changed files with 24 additions and 20 deletions

View File

@ -9,8 +9,7 @@ class BspwmTaskbar < Worker
if line == "" if line == ""
self.write "" self.write ""
else else
tmpl = Template.new(@my_config['begin'] + line + @my_config['end']) self.write @my_config['begin'] + line + @my_config['end']
self.write tmpl.render(@config, nil)
end end
end end
end end

View File

@ -11,9 +11,9 @@ class ModMemory < Worker
used_part = 100 - (mem["MemAvailable:"]/(mem["MemTotal:"]/100)) used_part = 100 - (mem["MemAvailable:"]/(mem["MemTotal:"]/100))
if used_part < @my_config['crit_value'] if used_part > @my_config['crit_value']
fg_colour = @my_config['crit_colour'] fg_colour = @my_config['crit_colour']
elsif used_part < @my_config['warn_value'] elsif used_part > @my_config['warn_value']
fg_colour = @my_config['warn_colour'] fg_colour = @my_config['warn_colour']
else else
fg_colour = @my_config['ok_colour'] fg_colour = @my_config['ok_colour']

View File

@ -81,16 +81,21 @@ module Modules
end end
end end
class Template class Panel
attr_accessor :modData
def initialize(template) def initialize(template)
@modData = {}
@template = template @template = template
end end
def render(config, data) def render
@config = config panel = @template
@panel_data = data @modData.each do |modName, modData|
panel = panel.gsub(/@{#{modName}}/, modData)
end
return ERB.new(@template).result(binding()) return panel
end end
end end
@ -107,7 +112,6 @@ def get_x_dims()
return `xrandr`.scan(/current (\d+) x (\d+)/).flatten return `xrandr`.scan(/current (\d+) x (\d+)/).flatten
end end
require 'erb'
require 'yaml' require 'yaml'
require 'optparse' require 'optparse'
@ -182,6 +186,7 @@ lemonbar_cmd = [
printf("Launching lemonbar as:\n %s\n", lemonbar_cmd.join(" ")) printf("Launching lemonbar as:\n %s\n", lemonbar_cmd.join(" "))
p = Panel.new(config['format'])
IO.popen(lemonbar_cmd, "w+") do |pipe_lb| IO.popen(lemonbar_cmd, "w+") do |pipe_lb|
pipe_lb.sync = true pipe_lb.sync = true
@ -189,9 +194,8 @@ IO.popen(lemonbar_cmd, "w+") do |pipe_lb|
pipe_r.each do |line| pipe_r.each do |line|
mod_name, data = line.chomp.split("\0") mod_name, data = line.chomp.split("\0")
panel_data[mod_name] = data data ||= ""
p.modData[mod_name] = data
t = Template.new(config['format']) pipe_lb.printf("%s\n", p.render())
pipe_lb.printf("%s\n", t.render(config, panel_data))
end end
end end

View File

@ -13,7 +13,7 @@ modules:
- load_average - load_average
- network - network
- memory - memory
format: "<%= @panel_data['bspwm_pager'] %><%= @panel_data['bspwm_taskbar'] %>%{r}%{F<%= @config['colours']['bg_focused'] %>} %{F-}%{B<%= @config['colours']['bg_focused'] %>} LA: <%= @panel_data['load_average'] %> Mem (used): <%= @panel_data['memory'] %>% Internet: <%= @panel_data['network'] %> Warp: <%= @panel_data['warp'] %> <%= @panel_data['date'] %> %{B-}" format: "@{bspwm_pager}@{bspwm_taskbar}%{r}%{F#467EC2} %{F-}%{B#467EC2} LA: @{load_average} Mem (used): @{memory} Internet: @{network} Warp: @{warp} XNT: @{xnt} @{date} %{B-}"
colours: colours:
fg: '#f9f9f9' fg: '#f9f9f9'
fg_focused: '#f9f9f9' fg_focused: '#f9f9f9'
@ -30,10 +30,11 @@ mod:
#monitors: #monitors:
# - "main" # - "main"
blacklist: blacklist:
-h -0
-p
bspwm_taskbar: bspwm_taskbar:
begin: "%{F<%= @config['colours']['bg'] %>}%{B<%= @config['colours']['bg_focused'] %>}%{F-} " begin: "%{F#001f1f1f}%{B#467EC2}%{F-} "
end: "%{F<%= @config['colours']['bg_focused'] %>} %{B-} " end: "%{F#467EC2} %{B-} "
date: date:
format: '%A, %Y.%m.%d %H:%M:%S' format: '%A, %Y.%m.%d %H:%M:%S'
load_average: load_average:
@ -70,5 +71,5 @@ mod:
ok_colour: "#00FF00" ok_colour: "#00FF00"
warn_colour: "#FFFF00" warn_colour: "#FFFF00"
crit_colour: "#FF0000" crit_colour: "#FF0000"
warn_value: 25 warn_value: 75
crit_value: 10 crit_value: 90