initial commit
This commit is contained in:
commit
90cff4f16a
59 changed files with 6855 additions and 0 deletions
93
Suckless/slstatus.nix
Normal file
93
Suckless/slstatus.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
# slstatus - suckless status bar
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
# Dynamic icon scripts
|
||||
batteryScript = pkgs.writeShellScript "slstatus-battery" ''
|
||||
perc=$(cat /sys/class/power_supply/BATT/capacity 2>/dev/null || echo "0")
|
||||
status=$(cat /sys/class/power_supply/BATT/status 2>/dev/null || echo "Unknown")
|
||||
|
||||
if [ "$status" = "Charging" ]; then icon=""
|
||||
elif [ "$perc" -ge 90 ]; then icon=""
|
||||
elif [ "$perc" -ge 80 ]; then icon=""
|
||||
elif [ "$perc" -ge 70 ]; then icon=""
|
||||
elif [ "$perc" -ge 60 ]; then icon=""
|
||||
elif [ "$perc" -ge 50 ]; then icon=""
|
||||
elif [ "$perc" -ge 40 ]; then icon=""
|
||||
elif [ "$perc" -ge 30 ]; then icon=""
|
||||
elif [ "$perc" -ge 20 ]; then icon=""
|
||||
elif [ "$perc" -ge 10 ]; then icon=""
|
||||
else icon=""
|
||||
fi
|
||||
|
||||
printf "%s %s%%" "$icon" "$perc"
|
||||
'';
|
||||
|
||||
mouseScript = pkgs.writeShellScript "slstatus-mouse" ''
|
||||
perc=$(cat /sys/class/power_supply/hidpp_battery_0/capacity 2>/dev/null || echo "")
|
||||
[ -z "$perc" ] && exit 0
|
||||
printf " %s%%" "$perc"
|
||||
'';
|
||||
|
||||
volumeScript = pkgs.writeShellScript "slstatus-volume" ''
|
||||
vol=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SINK@ 2>/dev/null)
|
||||
muted=$(echo "$vol" | grep -c MUTED)
|
||||
perc=$(echo "$vol" | awk '{printf "%.0f", $2*100}')
|
||||
|
||||
if [ "$muted" -eq 1 ]; then icon=""
|
||||
elif [ "$perc" -ge 66 ]; then icon=""
|
||||
elif [ "$perc" -ge 33 ]; then icon=""
|
||||
else icon=""
|
||||
fi
|
||||
|
||||
printf "%s %s%%" "$icon" "$perc"
|
||||
'';
|
||||
|
||||
wifiScript = pkgs.writeShellScript "slstatus-wifi" ''
|
||||
essid=$(cat /sys/class/net/wlp2s0/wireless/../uevent 2>/dev/null | grep INTERFACE | cut -d= -f2)
|
||||
essid=$(${pkgs.iw}/bin/iw dev wlp2s0 link 2>/dev/null | grep SSID | awk '{print $2}')
|
||||
[ -z "$essid" ] && exit 0
|
||||
|
||||
perc=$(awk 'NR==3 {printf "%.0f", $3*100/70}' /proc/net/wireless 2>/dev/null || echo "0")
|
||||
|
||||
if [ "$perc" -ge 75 ]; then icon=""
|
||||
elif [ "$perc" -ge 50 ]; then icon=""
|
||||
elif [ "$perc" -ge 25 ]; then icon=""
|
||||
else icon=""
|
||||
fi
|
||||
|
||||
printf "%s %s %s%%" "$icon" "$essid" "$perc"
|
||||
'';
|
||||
|
||||
config = ''
|
||||
/* See LICENSE file for copyright and license details. */
|
||||
|
||||
/* interval between updates (in ms) */
|
||||
const unsigned int interval = 1000;
|
||||
|
||||
/* text to show if no value can be retrieved */
|
||||
static const char unknown_str[] = "";
|
||||
|
||||
/* maximum output string length */
|
||||
#define MAXLEN 512
|
||||
|
||||
static const struct arg args[] = {
|
||||
/* function format argument */
|
||||
{ cpu_freq, " %s/", NULL },
|
||||
{ cpu_perc, "%s%% | ", NULL },
|
||||
{ ram_used, " %s/", NULL },
|
||||
{ ram_perc, "%s%% | ", NULL },
|
||||
{ temp, " %s°C | ", "/sys/class/thermal/thermal_zone0/temp" },
|
||||
{ run_command, "%s | ", "${wifiScript}" },
|
||||
{ run_command, "%s | ", "${volumeScript}" },
|
||||
{ run_command, "%s | ", "${batteryScript}" },
|
||||
{ run_command, "%s | ", "${mouseScript}" },
|
||||
{ datetime, " %s ", "%d/%m %H:%M:%S" },
|
||||
};
|
||||
'';
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
(pkgs.slstatus.override { conf = config; })
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue