Finally 'fixed' workspaces
This commit is contained in:
parent
9f82974923
commit
75c8aed064
5 changed files with 91 additions and 58 deletions
|
@ -1,5 +1,16 @@
|
|||
[
|
||||
{
|
||||
"custom/workspaces": {
|
||||
"exec": "sh $HOME/.config/waybar/scripts/workspaces",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"markup": "pango",
|
||||
"env": {
|
||||
"NUMBER": "4",
|
||||
"SYMBOLS": ";;;"
|
||||
}
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
|
@ -15,6 +26,7 @@
|
|||
"warning": 30
|
||||
}
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "On ",
|
||||
"format-connected": "{device_alias} ",
|
||||
|
@ -22,36 +34,7 @@
|
|||
"on-click": "blueman-manager",
|
||||
"on-click-right": "sh $HOME/.config/waybar/scripts/toggle_bluetooth"
|
||||
},
|
||||
"cava": {
|
||||
"actions": {
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
"autosens": 1,
|
||||
"bar_delimiter": 0,
|
||||
"bars": 14,
|
||||
"format-icons": [
|
||||
"▁",
|
||||
"▂",
|
||||
"▃",
|
||||
"▄",
|
||||
"▅",
|
||||
"▆",
|
||||
"▇",
|
||||
"█"
|
||||
],
|
||||
"framerate": 30,
|
||||
"higher_cutoff_freq": 10000,
|
||||
"input_delay": 2,
|
||||
"lower_cutoff_freq": 50,
|
||||
"method": "pulse",
|
||||
"monstercat": false,
|
||||
"noise_reduction": 0.77,
|
||||
"reverse": false,
|
||||
"sensitivity": 100,
|
||||
"source": "auto",
|
||||
"stereo": true,
|
||||
"waves": false
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"calendar": {
|
||||
"format": {
|
||||
|
@ -69,15 +52,18 @@
|
|||
"timezone": "Europe/Brussels",
|
||||
"tooltip-format": "<tt>{calendar}</tt>"
|
||||
},
|
||||
|
||||
"cpu":{
|
||||
"format": "{}% "
|
||||
},
|
||||
|
||||
"custom/media": {
|
||||
"escape": true,
|
||||
"exec": "waybar-mpris --autofocus --order 'SYMBOL:ARTIST:TITLE'",
|
||||
"on-click": "waybar-mpris --send toggle",
|
||||
"return-type": "json"
|
||||
},
|
||||
|
||||
"custom/weather": {
|
||||
"exec": "sh $HOME/.dotfiles/scripts/wittr.sh",
|
||||
"format": "{}",
|
||||
|
@ -86,6 +72,7 @@
|
|||
"spacing": 10,
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon} {app_id}",
|
||||
"icon-theme": "McMojave-circle-brown",
|
||||
|
@ -101,16 +88,22 @@
|
|||
"org.kde.dolphin": "dolphin"
|
||||
},
|
||||
},
|
||||
|
||||
"layer": "bottom",
|
||||
|
||||
"height": "28",
|
||||
|
||||
"margin": "5",
|
||||
|
||||
"modules-center": [
|
||||
"custom/workspaces",
|
||||
],
|
||||
|
||||
"modules-left": [
|
||||
"wlr/taskbar"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"cpu",
|
||||
"temperature",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
|
@ -118,20 +111,24 @@
|
|||
"clock",
|
||||
"tray"
|
||||
],
|
||||
|
||||
"network": {
|
||||
"format-disabled": "Off 睊",
|
||||
"format-disconnected": "Disconnected 睊",
|
||||
"format-wifi": "{essid} [{signalStrength}%] 直",
|
||||
"format-wifi": "[{signalStrength}%] 直",
|
||||
"on-click": "kitty -e nmtui",
|
||||
"on-click-right": "$HOME/.config/waybar/scripts/toggle_wifi",
|
||||
"tooltip-format": "{ifname} @ {ipaddr}"
|
||||
"tooltip-format": "{ipaddr} @ {essid}"
|
||||
},
|
||||
|
||||
"output": [
|
||||
"HDMI-A-1",
|
||||
"DP-1",
|
||||
"eDP-1"
|
||||
],
|
||||
|
||||
"position": "top",
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon} ",
|
||||
|
@ -141,11 +138,14 @@
|
|||
],
|
||||
"format-muted": "婢",
|
||||
"on-click": "amixer sset Master toggle",
|
||||
"on-click-right": "pavucontrol",
|
||||
"on-click-right": "kitty -e pulsemixer",
|
||||
"scroll-step": 1
|
||||
},
|
||||
|
||||
"reload_style_on_change": true,
|
||||
|
||||
"spacing": 0,
|
||||
|
||||
"temperature": {
|
||||
"critical-threshold": 90,
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
|
@ -157,6 +157,7 @@
|
|||
""
|
||||
]
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"show-passive-items": true,
|
||||
|
|
0
.config/waybar/scripts/toggle_bluetooth
Normal file → Executable file
0
.config/waybar/scripts/toggle_bluetooth
Normal file → Executable file
0
.config/waybar/scripts/toggle_wifi
Normal file → Executable file
0
.config/waybar/scripts/toggle_wifi
Normal file → Executable file
65
.config/waybar/scripts/workspaces
Normal file → Executable file
65
.config/waybar/scripts/workspaces
Normal file → Executable file
|
@ -1,46 +1,69 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# <config>
|
||||
NUMBER=4
|
||||
SYMBOL_CURRENT=" "
|
||||
SYMBOL_OTHER=" "
|
||||
# Read configuration from environment variables
|
||||
NUMBER=${NUMBER:-4} # Default to 4 if not set
|
||||
SYMBOLS=${SYMBOLS:-";;;"} # Default symbols if not set
|
||||
|
||||
IFS=';' read -r -a CUSTOM_SYMBOLS <<< "$SYMBOLS"
|
||||
|
||||
PIPE=/tmp/workspace
|
||||
WRAP=true
|
||||
# </config>
|
||||
|
||||
# format_line takes the current workspace number [1..N] and prints a string
|
||||
# representing the list of workspaces (e.g. 4 -> "0 0 0 1 0")
|
||||
format_line() {
|
||||
before=`yes $SYMBOL_OTHER 2>/dev/null | head -n $(($1 - 1))`
|
||||
after=`yes $SYMBOL_OTHER 2>/dev/null | head -n $(($NUMBER - $1))`
|
||||
echo $before $SYMBOL_CURRENT $after
|
||||
local current_workspace=$1
|
||||
local output_text="{\"text\": \""
|
||||
|
||||
# Iterate through the workspace symbols
|
||||
for i in $(seq 1 $NUMBER); do
|
||||
local symbol="${CUSTOM_SYMBOLS[$((i-1))]}"
|
||||
|
||||
# Determine the span for the current symbol
|
||||
if (( i == current_workspace )); then
|
||||
output_text+="<span>[$symbol]</span>" # Indicate active workspace
|
||||
else
|
||||
output_text+="<span>$symbol</span>" # Indicate inactive workspace
|
||||
fi
|
||||
|
||||
# Add a separator only if it's not the last element
|
||||
if (( i < NUMBER )); then
|
||||
output_text+="|"
|
||||
fi
|
||||
done
|
||||
|
||||
output_text+="\"}"
|
||||
# Output the JSON object with a "text" field
|
||||
echo "$output_text"
|
||||
}
|
||||
|
||||
# remove an existing pipe and make a new one
|
||||
|
||||
|
||||
# Remove existing pipe and create a new one
|
||||
rm -f $PIPE
|
||||
mkfifo $PIPE
|
||||
|
||||
# print initial state
|
||||
# Print initial state
|
||||
current=1
|
||||
format_line $current
|
||||
|
||||
while true
|
||||
do
|
||||
if read input <$PIPE; then
|
||||
if [ $input == "right" ]; then input=$((current + 1)); fi
|
||||
if [ $input == "left" ]; then input=$((current - 1)); fi
|
||||
# Main loop to handle input and update workspaces
|
||||
while true; do
|
||||
if read -t 0.1 input <$PIPE; then
|
||||
if [ "$input" == "right" ]; then input=$((current + 1)); fi
|
||||
if [ "$input" == "left" ]; then input=$((current - 1)); fi
|
||||
|
||||
if (( $input < 1 )); then
|
||||
if (( input < 1 )); then
|
||||
if [ "$WRAP" == false ]; then continue; fi
|
||||
input=$NUMBER
|
||||
fi
|
||||
if (( $input > $NUMBER )); then
|
||||
if (( input > NUMBER )); then
|
||||
if [ "$WRAP" == false ]; then continue; fi
|
||||
input=1
|
||||
fi
|
||||
if (( $input == $current )); then continue; fi
|
||||
if (( input == current )); then continue; fi
|
||||
|
||||
format_line $input
|
||||
current=$input
|
||||
fi
|
||||
format_line $current
|
||||
|
||||
done
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* General settings */
|
||||
* {
|
||||
font-family: FontAwesome, 'MonoLisa Nerd Font Mono', sans serif;
|
||||
font-size: 11px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
|
@ -19,6 +19,7 @@ window#waybar {
|
|||
#tray,
|
||||
#network,
|
||||
#custom-media,
|
||||
#custom-workspaces,
|
||||
#custom-weather {
|
||||
background-color: #2A2A2A;
|
||||
color: #EDE6DB;
|
||||
|
@ -26,6 +27,7 @@ window#waybar {
|
|||
padding-bottom: 0px;
|
||||
padding-left: 7px;
|
||||
padding-right: 7px;
|
||||
border: 1px solid #C1A550;
|
||||
}
|
||||
|
||||
#battery,
|
||||
|
@ -60,11 +62,12 @@ button {
|
|||
|
||||
#taskbar {
|
||||
background-color: #2A2A2A;
|
||||
border-radius:15px;
|
||||
border-radius:10px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
|
@ -92,3 +95,9 @@ button {
|
|||
min-width: 10px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
#custom-workspaces {
|
||||
font-size:23px;
|
||||
border-radius: 10px;
|
||||
border: 2px solid #C1A550;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue