diff --git a/home/wm/waybar/default.nix b/home/wm/waybar/default.nix index 3016161..d635b54 100644 --- a/home/wm/waybar/default.nix +++ b/home/wm/waybar/default.nix @@ -24,6 +24,7 @@ ]; modules-center = [ "hyprland/window" ]; modules-right = [ + "custom/icestats" "pulseaudio" "backlight" "network" @@ -38,6 +39,14 @@ max-length = 10; }; + "custom/icestats" = { + exec = ./src/ice_fetch.sh; + exec-if = ./src/ice_presence.sh; + interval = 1; + tooltip = false; + return-type = "json"; + }; + memory = { interval = 30; format = " {}%"; diff --git a/home/wm/waybar/src/ice_fetch.sh b/home/wm/waybar/src/ice_fetch.sh new file mode 100755 index 0000000..01cc0b1 --- /dev/null +++ b/home/wm/waybar/src/ice_fetch.sh @@ -0,0 +1,23 @@ +# Fetch the JSON data from the API +data=$(curl -s https://iceportal.de/api1/rs/status) + +# Extract the speed value +speed=$(echo "$data" | jq -r '.speed') + +# Check if the speed value is empty +if [ -z "$speed" ]; then + echo "{\"text\": \"N/A\", \"alt\": \"Speed data not available\", \"tooltip\": \"\", \"class\": \"unavailable\", \"percentage\": 0}" + exit 1 +fi + +# Create the JSON object +text="${speed} km/h" +alt="Current speed" +tooltip="Current speed of the train" +class="icestats" +percentage=0 + +json_output="{\"text\": \"${text}\", \"alt\": \"${alt}\", \"tooltip\": \"${tooltip}\", \"class\": \"${class}\", \"percentage\": ${percentage}}" + +# Print the JSON object +echo "$json_output" diff --git a/home/wm/waybar/src/ice_presence.sh b/home/wm/waybar/src/ice_presence.sh new file mode 100755 index 0000000..07425bf --- /dev/null +++ b/home/wm/waybar/src/ice_presence.sh @@ -0,0 +1,6 @@ +SSID=$(iwconfig wlp1s0 | grep ESSID | sed -e 's/.*ESSID:"\(.*\)"/\1/' | xargs) +if [[ $SSID == "WIFIonICE" ]]; then + exit 0 +else + exit 1 +fi diff --git a/home/wm/waybar/waybar.css b/home/wm/waybar/waybar.css index db9c50f..0f0707a 100644 --- a/home/wm/waybar/waybar.css +++ b/home/wm/waybar/waybar.css @@ -65,6 +65,7 @@ #network, #pulseaudio, #temperature, +#icestats, #tray { padding-left: 10px; padding-right: 10px; diff --git a/modules/utils/gnome.nix b/modules/utils/gnome.nix new file mode 100644 index 0000000..2a8af33 --- /dev/null +++ b/modules/utils/gnome.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: +{ + services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + + # From https://discourse.nixos.org/t/enable-wayland-on-gnome-kde/39412 + services.xserver = { + # Required for DE to launch. + enable = true; + displayManager = { + gdm = { + enable = true; + wayland = true; + }; + }; + # Enable Desktop Environment. + desktopManager.gnome.enable = true; + # Exclude default X11 packages I don't want. + excludePackages = with pkgs; [ xterm ]; + }; + +}