From 100127778884c73a001ae9665f30563a9cdb67ee Mon Sep 17 00:00:00 2001 From: Sakooooo <78461130+Sakooooo@users.noreply.github.com> Date: Mon, 3 Jul 2023 18:22:49 +0400 Subject: [PATCH] add polybar --- config/polybar/config.ini | 212 +++++++++++++++++++++++++++++ config/polybar/pipewire-polybar.sh | 32 +++++ config/polybar/startpolybar | 4 + 3 files changed, 248 insertions(+) create mode 100644 config/polybar/config.ini create mode 100755 config/polybar/pipewire-polybar.sh create mode 100755 config/polybar/startpolybar diff --git a/config/polybar/config.ini b/config/polybar/config.ini new file mode 100644 index 00000000..1abd6153 --- /dev/null +++ b/config/polybar/config.ini @@ -0,0 +1,212 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +background = #282A2E +background-alt = #373B41 +foreground = #C5C8C6 +primary = #F0C674 +secondary = #8ABEB7 +alert = #A54242 +disabled = #707880 + +[bar/mainbar] +width = 100% +height = 24pt +; radius = 6 + +; dpi = 79 + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3pt + +;border-size = 4pt +;border-color = ${colors.background} + +padding-left = 0 +padding-right = 1 + +module-margin = 1 + +separator = | +separator-foreground = ${colors.disabled} + +font-0 = JetBrainsMono ;2 + +modules-left = xworkspaces xwindow +modules-right = battery pipewire 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/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / + +label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%% + +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.disabled} + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +; sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +[module/pipewire] +type = custom/script +exec = /home/sako/.config/polybar/pipewire-polybar.sh +interval = 3 +click-right = exec pavucontrol & +click-left = /home/sako/.config/polybar/pipewire-polybar.sh --mute & +scroll-up = /home/sako/.config/polybar/pipewire-polybar.sh --up & +scroll-down = /home/sako/.config/polybar/pipewire-polybar.sh --down & + +[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/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 = +format-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% + +[module/eth] +inherit = network-base +interface-type = wired +label-connected = %{F#F0C674}%ifname%%{F-} %local_ip% + +[module/date] +type = internal/date +interval = 1 + +date = %H:%M +date-alt = %Y-%m-%d %H:%M:%S + +label = %date% +label-foreground = ${colors.primary} + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +; Default: 100 +full-at = 99 + +; format-low once this charge percentage is reached +; Default: 10 +; New in version 3.6.0 +low-at = 5 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = BAT1 +adapter = ACAD + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 5 + +[settings] +screenchange-reload = true +pseudo-transparency = true + +; vim:ft=dosini diff --git a/config/polybar/pipewire-polybar.sh b/config/polybar/pipewire-polybar.sh new file mode 100755 index 00000000..42d09bcc --- /dev/null +++ b/config/polybar/pipewire-polybar.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +getDefaultSink() { + defaultSink=$(pactl info | awk -F : '/Default Sink:/{print $2}') + description=$(pactl list sinks | sed -n "/${defaultSink}/,/Description/s/^\s*Description: \(.*\)/\1/p") + echo "${description}" +} + +getDefaultSource() { + defaultSource=$(pactl info | awk -F : '/Default Source:/{print $2}') + description=$(pactl list sources | sed -n "/${defaultSource}/,/Description/s/^\s*Description: \(.*\)/\1/p") + echo "${description}" +} + +VOLUME=$(pamixer --get-volume-human) +SINK=$(getDefaultSink) +SOURCE=$(getDefaultSource) + +case $1 in + "--up") + pamixer --increase 10 + ;; + "--down") + pamixer --decrease 10 + ;; + "--mute") + pamixer --toggle-mute + ;; + *) + #echo "Source: ${SOURCE} | Sink: ${VOLUME} ${SINK}" + echo "VOL: ${VOLUME}" +esac diff --git a/config/polybar/startpolybar b/config/polybar/startpolybar new file mode 100755 index 00000000..a6f1fbe7 --- /dev/null +++ b/config/polybar/startpolybar @@ -0,0 +1,4 @@ +#!/bin/sh + +killall -q polybar +polybar