Added my lemonbar config files.

This commit is contained in:
CroLinuxGamer 2020-12-13 12:51:52 +01:00
parent c397442f3d
commit f40c5304b8
12 changed files with 365 additions and 0 deletions

4
killlemonade Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
killall lemonbar
killall panel-top

8
launchlemonade Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
pkill lemonbar
sleep 0.1
pkill panel-top
sleep 0.1
panel-top

35
lemoncpu Executable file
View File

@ -0,0 +1,35 @@
#!/usr/bin/perl
#
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
#
# Licensed under the terms of the GNU GPL v3, or any later version.
use strict;
use utf8;
use Getopt::Long;
# default values
my $cpu_usage = -1;
my $decimals = $ENV{DECIMALS} // 2;
my $label ="C ";
# Get CPU usage
$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is
open (MPSTAT, 'mpstat 1 1 |') or die;
while (<MPSTAT>) {
if (/^.*\s+(\d+\.\d+)[\s\x00]?$/) {
$cpu_usage = 100 - $1; # 100% - %idle
last;
}
}
close(MPSTAT);
$cpu_usage eq -1 and die 'Can\'t find CPU information';
# Print short_text, full_text
printf "${label}";
printf "%.${decimals}f%%\n", $cpu_usage;
exit 0;

3
lemoncpu-notify Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
notify-send "Biggest cpu hogs:
$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)"

5
lemonlight Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
lightness=$(light -G | sed 's/\.[0-9]*//')
printf "%s\n" "L $lightness%"

3
lemonram-notify Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
notify-send "Biggest memory hogs:
$(ps axch -o cmd:15,%mem --sort=-%mem | head)"

10
lemonsong-status Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
status=$(mpc status | sed -n '/playing/p' | cut -c2-8 | sed 's/^[ \t]*//')
if [ "$status" = "playing" ]; then # If song is playing
printf "%s\n" "S契"
else
printf "%s\n" "S"
fi

14
lemonvol Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
vol=$(pamixer --get-volume)
mute=$(pamixer --get-volume-human)
icon=$(echo "奔")
if [ "$mute" = "muted" ]; then
label=$(printf "mute \n")
else
label=$vol%
fi
printf "%s\n" "V奔 $vol"

30
lemonvol.py Executable file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env python3
from pulsectl import Pulse, PulseLoopStop
import sys
# Adapt to your use-case
sink_id = 0
with Pulse() as pulse:
def callback(ev):
if ev.index == sink_id:
raise PulseLoopStop
try:
pulse.event_mask_set('sink')
pulse.event_callback_set(callback)
last_value = round(pulse.sink_list()[sink_id].volume.value_flat * 100)
last_mute = pulse.sink_list()[sink_id].mute == 1
while True:
pulse.event_listen()
value = round(pulse.sink_list()[sink_id].volume.value_flat * 100)
mute = pulse.sink_list()[sink_id].mute == 1
if value != last_value or mute != last_mute:
if mute:
print('mute')
else:
print(value)
last_value = value
last_mute = mute
sys.stdout.flush()
except:
pass

122
panel-top Executable file
View File

@ -0,0 +1,122 @@
#!/bin/sh
PANEL_FIFO=/tmp/panel-top-fifo
PANEL_HEIGHT=18
PANEL_FONT_FAMILY="JetBrains Mono Medium"
ICON_FONT2="IPAGothic"
ICON_FONT="SauceCodePro Nerd Font Mono"
# setup
if [ $(pgrep -cx panel-top) -gt 1 ] ; then
printf "%s\n" "The panel is already running." >&2
exit 1
fi
trap 'trap - TERM; kill 0' INT TERM QUIT EXIT
[ -e "$PANEL_FIFO" ] && rm "$PANEL_FIFO"
mkfifo "$PANEL_FIFO"
bspc subscribe report > "$PANEL_FIFO" &
# find out how to make this scroll
xtitle -sf 'X%s\n\n' -t 30 > "$PANEL_FIFO" &
# time and date
while true;
do
echo "D$(date '+%d.%m.%Y %H:%M:%S')"
sleep 1
done > "$PANEL_FIFO" &
# battery
while true;
do
for battery in /sys/class/power_supply/BAT?
do
mode=$(cat "$battery"/status)
percent=$(cat "$battery"/capacity)
symbol=""
if [ "$mode" = "Discharging" ]; then
symbol=''
elif [ "$mode" = "Charging" ]; then
symbol=''
else
symbol=''
fi
echo "B$symbol $percent%"
done
sleep 10
done > "$PANEL_FIFO" &
# backlight
lemonlight > "$PANEL_FIFO" &
# cpu temp
while true;
do
temp=$(sensors | awk '/^Tdie:/ {print $2}')
echo "T $temp"
sleep 10
done > "$PANEL_FIFO" &
# wifi
while true;
do
for wifi in /sys/class/net/w*
do
state=$(cat "$wifi"/operstate)
if [ "$state" = "up" ]; then # if connected
echo "N直  "
else
echo "N睊  "
fi
done
sleep 5
done > "$PANEL_FIFO" &
# volume
# initial volume
lemonvol > "$PANEL_FIFO" &
# python volume watcher
lemonvol.py > "$PANEL_FIFO" &
# ram
while true;
do
mem=$(free -h --mega | awk '/^Mem:/ {print $3 "/" $2}')
printf "%s\n" "R $mem"
sleep 10
done > "$PANEL_FIFO" &
# cpu
while true;
do
lemoncpu > "$PANEL_FIFO"
sleep 5
done > "$PANEL_FIFO" &
# mpc song status
lemonsong-status > "$PANEL_FIFO" &
# mpc playing song
while true
do
song=$(mpc current)
printf "%s\n" "M $song" > "$PANEL_FIFO"
mpc idle player > /dev/null 2>&1
done &
. panel_colors
cat "$PANEL_FIFO" | panel_bar-top | lemonbar -g x$PANEL_HEIGHT -o -1 -f "$PANEL_FONT_FAMILY"-8 -f "$ICON_FONT"-9 -f "$ICON_FONT2"-7 -F "$COLOR_FOREGROUND" -B "$COLOR_BACKGROUND" -u 2 | sh &
sleep 1
xdo above -t $(xdo id -n root) $(xdo id -n lemonbar)
wait

106
panel_bar-top Executable file
View File

@ -0,0 +1,106 @@
#!/bin/sh
. panel_colors
num_mon=$(bspc query -M | wc -l)
PADDING=" "
SEP="|"
while read -r line ; do
case $line in
R*)
#ram output
ram="%{U$COLOR_UNDERLINE}%{+u}%{A:lemonram-notify:}${line#?}%{A}%{-u}$PADDING"
;;
C*)
#cpu output
cpu="%{U$COLOR_UNDERLINE}%{+u}%{A:lemoncpu-notify:}${line#?}%{A}%{-u}$PADDING"
;;
S*)
# mpc song status
state="%{F$COLOR_OCCUPIED_UNDERLINE}${line#?}%{F-}$PADDING"
;;
M*)
# mpc current song
song="%{F$COLOR_OCCUPIED_UNDERLINE}${line#?}%{F-}$PADDING"
;;
X*)
# xtitle output
title="$PADDING%{F$COLOR_TITLE}${line#?}%{F-}"
;;
D*)
#time and date output
date="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}"
;;
B*)
# battery output
batt="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}$PADDING"
;;
L*)
# backlight output
light="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}$PADDING"
;;
T*)
# cpu temperature
temp="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}$PADDING"
;;
N*)
# wifi output
wifi="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}$PADDING"
;;
V*)
# volume output
vol="%{U$COLOR_UNDERLINE}%{+u}${line#?}%{-u}$PADDING"
;;
W*)
# bspwm internal state
wm_infos=""
IFS=':'
set -- ${line#?}
while [ $# -gt 0 ] ; do
item=$1
name=${item#?}
case $item in
M*)
# active monitor
if [ $num_mon -gt 1 ] ; then
wm_infos="$wm_infos $SEP%{F$COLOR_ACTIVE_MONITOR_FG}%{B$COLOR_FOCUSED_OCCUPIED_FG}$PADDING${name}$PADDING%{B-}%{F-} "
fi
;;
m*)
# inactive monitor
if [ $num_mon -gt 1 ] ; then
wm_infos="$wm_infos $SEP%{F$COLOR_INACTIVE_MONITOR_FG}%{B$COLOR_INACTIVE_MONITOR_BG}$PADDING${name}$PADDING%{B-}%{F-} "
fi
;;
O*)
# focused occupied desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_FOCUSED_OCCUPIED_FG}%{B$COLOR_FOCUSED_OCCUPIED_BG}%{U$COLOR_UNDERLINE}%{+u}$PADDING${name}$PADDING%{-u}%{B-}%{F-}"
;;
F*)
# focused free desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_FOCUSED_FREE_FG}%{B$COLOR_FOCUSED_FREE_BG}%{U$COLOR_UNDERLINE}%{+u}$PADDING${name}$PADDING%{-u}%{B-}%{F-}"
;;
U*)
# focused urgent desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_FOCUSED_URGENT_FG}%{B$COLOR_FOCUSED_URGENT_BG}%{U$COLOR_UNDERLINE}%{+u}$PADDING${name}$PADDING%{-u}%{B-}%{F-}"
;;
o*)
# occupied desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_OCCUPIED_FG}%{B$COLOR_OCCUPIED_BG}%{A:bspc desktop -f ${name}:}%{U$COLOR_OCCUPIED_UNDERLINE}%{+u}$PADDING${name}$PADDING%{-u}%{A}%{B-}%{F-}"
;;
f*)
# free desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_FREE_FG}%{B$COLOR_FREE_BG}%{A:bspc desktop -f ${name}:}$PADDING${name}$PADDING%{A}%{B-}%{F-}"
;;
u*)
# urgent desktop
wm_infos="${wm_infos}$SEP%{F$COLOR_URGENT_FG}%{B$COLOR_URGENT_BG}$PADDING${name}$PADDING%{B-}%{F-}"
;;
esac
shift
done
;;
esac
printf "%s\n" "%{l}${wm_infos}${SEP}${title}%{c}${song}${state}%{r}${temp}${cpu}${ram}${wifi}${vol}${light}${batt}${date}"
done

25
panel_colors Executable file
View File

@ -0,0 +1,25 @@
#!/bin/sh
COLOR_FOREGROUND="#d8dee9"
COLOR_BACKGROUND="#2e3440"
COLOR_FOCUSED_OCCUPIED_BG="#3b4252"
COLOR_FOCUSED_OCCUPIED_FG="#d8dee9"
COLOR_ACTIVE_MONITOR_FG="#d8dee9"
COLOR_ACTIVE_MONITOR_BG="#3b4252"
COLOR_INACTIVE_MONITOR_FG="#d8dee9"
COLOR_INACTIVE_MONITOR_BG="#2e3440"
COLOR_FOCUSED_OCCUPIED_FG="#d8dee9"
COLOR_FOCUSED_OCCUPIED_BG="#3b4252"
COLOR_FOCUSED_FREE_FG="#d8dee9"
COLOR_FOCUSED_FREE_BG="#3b4252"
COLOR_FOCUSED_URGENT_FG="#2e3440"
COLOR_FOCUSED_URGENT_BG="#bf616a"
COLOR_OCCUPIED_FG="#d8dee9"
COLOR_OCCUPIED_BG="#2e3440"
COLOR_FREE_FG="#d8dee9"
COLOR_FREE_BG="#2e3440"
COLOR_URGENT_FG="#3b4252"
COLOR_URGENT_BG="#bf616a"
COLOR_UNDERLINE="#a3be8c"
COLOR_TITLE="#ebcb8b"
COLOR_OCCUPIED_UNDERLINE="#88c0d0"