mirror of
https://github.com/Mastermindzh/dotfiles.git
synced 2025-07-27 04:33:17 +02:00
adding polybar setup
This commit is contained in:
35
config/autorandr/postswitch
Executable file
35
config/autorandr/postswitch
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
move_workspace() {
|
||||
workspace="$1"
|
||||
output="$2"
|
||||
|
||||
i3-msg "[workspace=\"$workspace\"]" move workspace to output "$output"
|
||||
}
|
||||
export -f move_workspace
|
||||
|
||||
# get primary
|
||||
primary=$(xrandr | awk '/ primary / {print $1}')
|
||||
|
||||
declare -a movers=(
|
||||
"1: "
|
||||
"2: "
|
||||
"3: "
|
||||
"4: "
|
||||
"5: "
|
||||
"6: "
|
||||
"7: "
|
||||
"8: "
|
||||
"9: "
|
||||
"10: "
|
||||
# "11: "
|
||||
"12: "
|
||||
"13: "
|
||||
)
|
||||
|
||||
for workspace in "${movers[@]}"; do
|
||||
move_workspace "$workspace" "$primary" &
|
||||
done
|
||||
|
||||
# restart i3.
|
||||
i3-msg restart
|
@@ -1,7 +1,7 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Adwaita-dark
|
||||
gtk-icon-theme-name=Adwaita
|
||||
gtk-font-name=Cantarell 11
|
||||
gtk-icon-theme-name="Papirus-Dark"
|
||||
gtk-font-name="Ubuntu 12"
|
||||
gtk-cursor-theme-name=Adwaita
|
||||
gtk-cursor-theme-size=0
|
||||
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||
|
26
config/polybar/config.ini
Normal file
26
config/polybar/config.ini
Normal file
@@ -0,0 +1,26 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; theme
|
||||
include-file = ~/.config/polybar/themes/main/modules.ini
|
||||
include-file = ~/.config/polybar/themes/main/colors.ini
|
||||
include-file = ~/.config/polybar/themes/main/bars.ini
|
25
config/polybar/launch.sh
Executable file
25
config/polybar/launch.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
killall -q polybar
|
||||
|
||||
# Launch Polybar, using default config location ~/.config/polybar/config.ini
|
||||
PRIMARY=$(xrandr --query | grep -i "connected primary" | cut -d" " -f1)
|
||||
export MONITOR=$PRIMARY
|
||||
polybar -r 2>&1 | tee -a /tmp/polybar.log &
|
||||
|
||||
# show-bar on all monitors
|
||||
# idk whether I like this at the moment, I don't really use external displays unless they are the primary or they are duplicated
|
||||
# if type "xrandr"; then
|
||||
# PRIMARY=$(xrandr --query | grep -i "connected primary" | cut -d" " -f1)
|
||||
# for m in $(xrandr --query | grep -i " connected" | cut -d" " -f1); do
|
||||
# export TRAY_POSITION=none
|
||||
# if [[ $m == "$PRIMARY" ]]; then
|
||||
# TRAY_POSITION=right
|
||||
# fi
|
||||
# export MONITOR=$m
|
||||
# polybar -r 2>&1 | tee -a /tmp/polybar.log &
|
||||
# done
|
||||
# else
|
||||
# polybar -r 2>&1 | tee -a /tmp/polybar.log &
|
||||
# fi
|
||||
disown
|
||||
echo "Polybar launched..."
|
59
config/polybar/scripts/pulse-microphone.sh
Executable file
59
config/polybar/scripts/pulse-microphone.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/sh
|
||||
|
||||
status() {
|
||||
MUTED=$(pacmd list-sources | awk '/\*/,EOF {print}' | awk '/muted/ {print $2; exit}')
|
||||
|
||||
if [ "$MUTED" = "yes" ]; then
|
||||
echo "🙊 muted"
|
||||
else
|
||||
OUTPUT=$(pacmd list-sources | grep "\* index:" -A 7 | grep volume | awk -F/ '{print $2}' | awk -F, '{ print $1 }' | tr -d ' ')
|
||||
echo "🎙️ $OUTPUT"
|
||||
fi
|
||||
}
|
||||
|
||||
listen() {
|
||||
status
|
||||
|
||||
LANG=EN
|
||||
pactl subscribe | while read -r event; do
|
||||
if echo "$event" | grep -q "source" || echo "$event" | grep -q "server"; then
|
||||
status
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
toggle() {
|
||||
MUTED=$(pacmd list-sources | awk '/\*/,EOF {print}' | awk '/muted/ {print $2; exit}')
|
||||
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
|
||||
|
||||
if [ "$MUTED" = "yes" ]; then
|
||||
pactl set-source-mute "$DEFAULT_SOURCE" 0
|
||||
else
|
||||
pactl set-source-mute "$DEFAULT_SOURCE" 1
|
||||
fi
|
||||
}
|
||||
|
||||
increase() {
|
||||
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
|
||||
pactl set-source-volume "$DEFAULT_SOURCE" +5%
|
||||
}
|
||||
|
||||
decrease() {
|
||||
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
|
||||
pactl set-source-volume "$DEFAULT_SOURCE" -5%
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
--toggle)
|
||||
toggle
|
||||
;;
|
||||
--increase)
|
||||
increase
|
||||
;;
|
||||
--decrease)
|
||||
decrease
|
||||
;;
|
||||
*)
|
||||
listen
|
||||
;;
|
||||
esac
|
36
config/polybar/themes/main/bars.ini
Normal file
36
config/polybar/themes/main/bars.ini
Normal file
@@ -0,0 +1,36 @@
|
||||
[bar/main]
|
||||
monitor = ${env:MONITOR:}
|
||||
width = 100%
|
||||
height = 18pt
|
||||
radius = 0
|
||||
padding-right = 0
|
||||
padding-left = 0
|
||||
module-margin = 1
|
||||
separator = |
|
||||
|
||||
; colors
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
border-color = #00000000
|
||||
separator-foreground = ${colors.disabled}
|
||||
|
||||
; modules
|
||||
modules-left = xworkspaces i3
|
||||
modules-center = tidal
|
||||
modules-right = pulseaudio pulseaudio-microphone weather temperature updates ping battery date
|
||||
|
||||
; fonts (fc-list)
|
||||
; offset = height - size / 2 (for vertical center, icons are weird and need to be even numbers)
|
||||
font-0 = Ubuntu regular:style=regular:size=12;3
|
||||
font-1 = FontAwesome:style=Regular;2
|
||||
font-2 = Noto Color Emoji:style=Regular:scale=10;2
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
enable-ipc = true
|
||||
tray-position = ${env:TRAY_POSITION:right}
|
||||
|
||||
wm-restack = i3
|
||||
tray-reparent = true
|
||||
; override-redirect = true
|
11
config/polybar/themes/main/colors.ini
Normal file
11
config/polybar/themes/main/colors.ini
Normal file
@@ -0,0 +1,11 @@
|
||||
[colors]
|
||||
background = #1e1e1e
|
||||
background-alt = #252526
|
||||
foreground = #848484
|
||||
primary = #f6f6f7
|
||||
secondary = #f6f6f7
|
||||
alert = #ef5350
|
||||
disabled = #707880
|
||||
accent = #fff
|
||||
yellow = #ebc034
|
||||
tidal = #00ffff
|
180
config/polybar/themes/main/modules.ini
Normal file
180
config/polybar/themes/main/modules.ini
Normal file
@@ -0,0 +1,180 @@
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
pin-workspaces = true
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colors.background-alt}
|
||||
; label-active-underline= ${colors.primary}
|
||||
label-active-foreground= ${colors.accent}
|
||||
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/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume-prefix = "🔊 "
|
||||
; format-volume-prefix = " "
|
||||
format-volume-prefix-foreground = ${colors.primary}
|
||||
format-volume = <label-volume>
|
||||
|
||||
label-volume = %percentage%%
|
||||
|
||||
|
||||
; label-muted = 🔇 muted
|
||||
label-muted = 🙉 muted
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage_used:2%%
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %Y-%m-%d %H:%M:%S
|
||||
|
||||
format-prefix = "📅 "
|
||||
; format-prefix = " "
|
||||
format-prefix-foreground = ${colors.primary}
|
||||
label =%date%
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
|
||||
base-temperature = 40
|
||||
warn-temperature = 80
|
||||
|
||||
# format-prefix = " "
|
||||
# format-warn-prefix = " "
|
||||
format-prefix = "🌡️"
|
||||
format-warn-prefix = "🌡️"
|
||||
format-prefix-foreground = ${colors.accent}
|
||||
|
||||
label = %temperature-c%
|
||||
format-warn = <label>
|
||||
|
||||
format-warn-foreground = ${colors.alert}
|
||||
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 98
|
||||
time-format = %H:%M
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
label-charging = %percentage%% (%time%)
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
label-discharging = %percentage%% (%time%)
|
||||
|
||||
format-full = <label-full>
|
||||
format-full-prefix = "⚡ "
|
||||
; format-full-prefix = " "
|
||||
format-full-prefix-foreground = #666
|
||||
|
||||
ramp-capacity-0 = ""
|
||||
ramp-capacity-1 = ""
|
||||
ramp-capacity-2 = ""
|
||||
ramp-capacity-3 = ""
|
||||
ramp-capacity-4 = ""
|
||||
ramp-capacity-foreground = ${colors.accent}
|
||||
|
||||
animation-charging-0 = ""
|
||||
animation-charging-1 = ""
|
||||
animation-charging-2 = ""
|
||||
animation-charging-3 = ""
|
||||
animation-charging-4 = ""
|
||||
animation-charging-foreground = ${colors.yellow}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
format = <label>
|
||||
label-maxlen = 75
|
||||
|
||||
[module/updates]
|
||||
type = custom/script
|
||||
interval = 300
|
||||
exec = "checkupdates 2>/dev/null | wc -l"
|
||||
|
||||
format = "<label>"
|
||||
format-prefix = "📥 "
|
||||
; format-prefix = " "
|
||||
format-prefix-foreground = ${colors.accent}
|
||||
label = %output%
|
||||
|
||||
[module/ping]
|
||||
type = custom/script
|
||||
interval = 60
|
||||
exec = "ping -c 3 8.8.8.8 2>/dev/null | tail -1 | awk '{print $4}' | cut -d '/' -f 2 | cut -f1 -d'.'"
|
||||
|
||||
format = "<label>"
|
||||
format-prefix = "📡 "
|
||||
; format-prefix = " "
|
||||
format-prefix-foreground = ${colors.accent}
|
||||
label = %output%
|
||||
click-left = firefox https://speedtest.net
|
||||
|
||||
[module/weather]
|
||||
type = custom/script
|
||||
interval = 900
|
||||
exec = "curl -s wttr.in?format=1"
|
||||
|
||||
format = "<label>"
|
||||
format-prefix-foreground = ${colors.accent}
|
||||
label = %output%
|
||||
click-left = xfce4-terminal -H -e "curl wttr.in"
|
||||
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
index-sort = true
|
||||
format = <label-mode>
|
||||
label-mode = %mode%
|
||||
format-foreground = ${colors.alert}
|
||||
|
||||
[module/tidal]
|
||||
type=custom/script
|
||||
interval = 5
|
||||
; format-prefix="🎵 "
|
||||
format-prefix=" "
|
||||
format-prefix-foreground = ${colors.tidal}
|
||||
format-foreground = ${colors.tidal}
|
||||
format = "<label>"
|
||||
label = %output:0:45:...%
|
||||
exec = "~/.config/i3/scripts/tidal-cli.sh info"
|
||||
click-left = "~/.config/i3/scripts/tidal-cli.sh playpause"
|
||||
scroll-up = "~/.config/i3/scripts/tidal-cli.sh next"
|
||||
scrolldown = "~/.config/i3/scripts/tidal-cli.sh previous"
|
||||
click-right = "~/.config/i3/scripts/tidal-cli.sh songwhip | xclip -selection clipboard"
|
||||
|
||||
[module/pulseaudio-microphone]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/pulse-microphone.sh
|
||||
tail = true
|
||||
click-left = ~/.config/polybar/scripts/pulse-microphone.sh --toggle &
|
||||
scroll-up = ~/.config/polybar/scripts/pulse-microphone.sh --increase &
|
||||
scroll-down = ~/.config/polybar/scripts/pulse-microphone.sh --decrease &
|
Reference in New Issue
Block a user