Add power profile and fan strategy waybar modules - scripts/power-profile.sh: waybar module + wofi menu for powerprofilesctl - scripts/fan-profile.sh: waybar module + wofi menu for fw-fanctrl - waybar/config.jsonc: add custom/power-profile and custom/fan-profile modules - waybar/style.css: add padding and class colors for new modules - packages.txt: add power-profiles-daemon and fw-fanctrl - install.sh: symlink new scripts to ~/.local/bin
This commit is contained in:
@@ -30,6 +30,8 @@ echo "==> Installing scripts"
|
|||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
ln -sf "$(pwd)/scripts/powermenu.sh" ~/.local/bin/powermenu
|
ln -sf "$(pwd)/scripts/powermenu.sh" ~/.local/bin/powermenu
|
||||||
ln -sf "$(pwd)/scripts/clipboard.sh" ~/.local/bin/clipboard-picker
|
ln -sf "$(pwd)/scripts/clipboard.sh" ~/.local/bin/clipboard-picker
|
||||||
|
ln -sf "$(pwd)/scripts/power-profile.sh" ~/.local/bin/power-profile
|
||||||
|
ln -sf "$(pwd)/scripts/fan-profile.sh" ~/.local/bin/fan-profile
|
||||||
|
|
||||||
echo "==> Enabling systemd user services"
|
echo "==> Enabling systemd user services"
|
||||||
mkdir -p ~/.config/systemd/user
|
mkdir -p ~/.config/systemd/user
|
||||||
|
|||||||
@@ -33,4 +33,6 @@ zathura-pdf-mupdf
|
|||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
file-roller
|
file-roller
|
||||||
xwayland-satellite
|
xwayland-satellite
|
||||||
|
power-profiles-daemon
|
||||||
|
fw-fanctrl
|
||||||
|
|
||||||
|
|||||||
Executable
+33
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$1" = "--menu" ]; then
|
||||||
|
CHOICE=$(fw-fanctrl print list 2>/dev/null \
|
||||||
|
| grep "^-" \
|
||||||
|
| sed 's/^- //' \
|
||||||
|
| wofi --dmenu \
|
||||||
|
--prompt "Fan Strategy:" \
|
||||||
|
--width 260 \
|
||||||
|
--height 300 \
|
||||||
|
--hide-scroll \
|
||||||
|
--no-actions \
|
||||||
|
--insensitive)
|
||||||
|
[ -n "$CHOICE" ] && fw-fanctrl use "$CHOICE" && pkill -RTMIN+9 waybar
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
OUTPUT=$(fw-fanctrl print 2>/dev/null)
|
||||||
|
CURRENT=$(echo "$OUTPUT" | awk -F"'" '/^Strategy:/{print $2}')
|
||||||
|
SPEED=$(echo "$OUTPUT" | awk '/^Speed:/{print $2}')
|
||||||
|
|
||||||
|
case "$CURRENT" in
|
||||||
|
laziest|deaf) ICON=""; LEVEL="silent" ;;
|
||||||
|
lazy) ICON=""; LEVEL="quiet" ;;
|
||||||
|
medium) ICON=""; LEVEL="medium" ;;
|
||||||
|
agile) ICON=""; LEVEL="agile" ;;
|
||||||
|
very-agile) ICON=""; LEVEL="fast" ;;
|
||||||
|
aeolus) ICON=""; LEVEL="max" ;;
|
||||||
|
*) ICON=""; LEVEL="$CURRENT" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf '{"text": "%s %s", "tooltip": "Fan strategy: %s\\nSpeed: %s\\nClick to change", "class": "%s"}\n' \
|
||||||
|
"$ICON" "$CURRENT" "$CURRENT" "$SPEED" "$LEVEL"
|
||||||
Executable
+26
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$1" = "--menu" ]; then
|
||||||
|
CHOICE=$(printf " performance\n balanced\n power-saver" \
|
||||||
|
| wofi --dmenu \
|
||||||
|
--prompt "Power Profile:" \
|
||||||
|
--width 260 \
|
||||||
|
--height 160 \
|
||||||
|
--hide-scroll \
|
||||||
|
--no-actions \
|
||||||
|
--insensitive \
|
||||||
|
| awk '{print $NF}')
|
||||||
|
[ -n "$CHOICE" ] && powerprofilesctl set "$CHOICE" && pkill -RTMIN+8 waybar
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT=$(powerprofilesctl get)
|
||||||
|
case "$CURRENT" in
|
||||||
|
performance) ICON="" ;;
|
||||||
|
balanced) ICON="" ;;
|
||||||
|
power-saver) ICON="" ;;
|
||||||
|
*) ICON="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf '{"text": "%s %s", "tooltip": "Power profile: %s\\nClick to change", "class": "%s"}\n' \
|
||||||
|
"$ICON" "$CURRENT" "$CURRENT" "$CURRENT"
|
||||||
+17
-1
@@ -5,7 +5,23 @@
|
|||||||
|
|
||||||
"modules-left": ["niri/workspaces"],
|
"modules-left": ["niri/workspaces"],
|
||||||
"modules-center": ["clock"],
|
"modules-center": ["clock"],
|
||||||
"modules-right": ["pulseaudio", "network", "battery", "tray"],
|
"modules-right": ["custom/power-profile", "custom/fan-profile", "pulseaudio", "network", "battery", "tray"],
|
||||||
|
|
||||||
|
"custom/power-profile": {
|
||||||
|
"exec": "~/.local/bin/power-profile",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 30,
|
||||||
|
"signal": 8,
|
||||||
|
"on-click": "~/.local/bin/power-profile --menu"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/fan-profile": {
|
||||||
|
"exec": "~/.local/bin/fan-profile",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 5,
|
||||||
|
"signal": 9,
|
||||||
|
"on-click": "~/.local/bin/fan-profile --menu"
|
||||||
|
},
|
||||||
|
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": "{:%a %b %d %H:%M}"
|
"format": "{:%a %b %d %H:%M}"
|
||||||
|
|||||||
+10
-1
@@ -17,10 +17,19 @@ window#waybar {
|
|||||||
color: #81a2be;
|
color: #81a2be;
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock, #battery, #network, #pulseaudio {
|
#clock, #battery, #network, #pulseaudio,
|
||||||
|
#custom-power-profile, #custom-fan-profile {
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#custom-power-profile.performance {
|
||||||
|
color: #f0c674;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power-profile.power-saver {
|
||||||
|
color: #b5bd68;
|
||||||
|
}
|
||||||
|
|
||||||
#battery.warning {
|
#battery.warning {
|
||||||
color: #f0c674;
|
color: #f0c674;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user