mirror of
				https://github.com/Mastermindzh/dotfiles.git
				synced 2025-11-04 02:38:53 +01: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