polybar: Add initial config and bluetooth module

This commit is contained in:
Joseph Ferano 2023-08-19 18:19:08 +07:00
parent eb66005800
commit 3d620bd862
2 changed files with 244 additions and 0 deletions

194
.config/polybar/config.ini Normal file
View File

@ -0,0 +1,194 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
; If you need to restart in place, run this command;
; polybar-msg cmd restart
;==========================================================
[colors]
background = #282A2E
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
alert = #A54242
disabled = #707880
[bar/example]
width = 100%
height = 20pt
radius = 6
; dpi = 96
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3pt
border-size = 7pt
border-color = #00000000
padding-left = 0
padding-right = 1
module-margin = 1
separator = |
separator-foreground = ${colors.disabled}
; font-0 = BigBlueTermPlus Nerd Font:style=Regular:size=14;4
; font-0 = Inconsolata LGC Nerd Font:style=Regular:size=14;4
font-0 = JetBrainsMono Nerd Font;2
modules-left = xworkspaces xwindow
modules-right = pulseaudio xkeyboard bt filesystem memory cpu wlan date
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
; tray-position = right
; wm-restack = generic
; wm-restack = bspwm
; wm-restack = i3
; override-redirect = true
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
label-layout = %layout%
label-layout-foreground = ${colors.primary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}DSK%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
; label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
label-connected = %{F#F0C674}%ifname%%{F-} %essid%
; [module/eth]
; inherit = network-base
; interface-type = wired
; label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
[module/date]
type = internal/date
interval = 1
time = %H:%M
date = %a %b %y
date-alt = %a %b %y - %Y-%m-%d
time-alt = %H:%M:%S
; label = %date%
; label-foreground = ${colors.primary}
; Available tokens:
; %date%
; %time%
; Default: %date%
label = %date% %time%
format = 🕓 <label>
; label-font = 3
; ; label-foreground = #9A32DB
[module/bt]
type = custom/script
exec = ~/.config/polybar/system-bluetooth-bluetoothctl.sh
tail = true
click-left = ~/.config/polybar/system-bluetooth-bluetoothctl.sh --toggle &
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini

View File

@ -0,0 +1,50 @@
#!/bin/sh
bluetooth_print() {
bluetoothctl | while read -r REPLY; do
if [ "$(systemctl is-active "bluetooth.service")" = "active" ]; then
if bluetoothctl show | grep -q "Powered: yes"; then
device_info=$(bluetoothctl info "$device")
if echo "$device_info" | grep -q "Connected: yes"; then
device_alias=$(echo "$device_info" | grep "Alias" | cut -d ' ' -f 2-)
echo "%{F#669acc} %{F#C5C8C6}$device_alias"
else
printf ''
fi
printf '\n'
else
echo "󰂲"
fi
else
echo "󰂲 N/A"
fi
done
}
bluetooth_toggle() {
if bluetoothctl show | grep -q "Powered: no"; then
bluetoothctl power on >> /dev/null
sleep 1
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
echo "$devices_paired" | while read -r line; do
bluetoothctl connect "$line" >> /dev/null
done
else
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
echo "$devices_paired" | while read -r line; do
bluetoothctl disconnect "$line" >> /dev/null
done
bluetoothctl power off >> /dev/null
fi
}
case "$1" in
--toggle)
bluetooth_toggle
;;
*)
bluetooth_print
;;
esac