diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index 6946c77..654b927 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -71,7 +71,7 @@ PanelWindow { spacing: 8 // TODO: Add bluetooth, network, audio, power, maybe HW monitor - // Network {} + Network {} PowerButton {} } diff --git a/modules/bar/scripts/Network.sh b/modules/bar/scripts/Network.sh new file mode 100755 index 0000000..447278e --- /dev/null +++ b/modules/bar/scripts/Network.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +OUTPUT="$(ip -br link | awk '{print $1, $2}' | grep UP| awk '{print $1}')" + +# echo "$OUTPUT" + +ITYPES=() +IFACES=() + +for IFACE in $OUTPUT; do + case $IFACE in + en*|eth*) TYPE="Ethernet" ;; + wl*|wlan*) TYPE="Wi-Fi" ;; + *) TYPE="Unknown" ;; + esac + ITYPES+=("$TYPE") + IFACES+=("$IFACE") +done + +if printf "%s\n" "${ITYPES[@]}" | grep -qx "Ethernet"; then + echo "󰈀 " +elif printf "%s\n" "${ITYPES[@]}" | grep -qx "Wi-Fi"; then + if [ -x "/usr/bin/nmcli" ]; then + CONNECTION="$(nmcli -f DEVICE,ACTIVE,SSID,SIGNAL dev wifi | grep yes | awk '{print $4}')" + if [[ -z "$CONNECTION" ]]; then + echo "󰤭 " + elif (( CONNECTION > 80 )); then + echo "󰤨 " + elif (( CONNECTION > 60 )); then + echo "󰤥 " + elif (( CONNECTION > 40 )); then + echo "󰤢 " + elif (( CONNECTION > 20 )); then + echo "󰤟 " + else + echo "󰤯 " + fi + else + echo "󰤩 " + fi +else + echo "󰤭 /󱐤 " +fi \ No newline at end of file diff --git a/modules/bar/widgets/Network.qml b/modules/bar/widgets/Network.qml index 8ef0338..8069b1e 100644 --- a/modules/bar/widgets/Network.qml +++ b/modules/bar/widgets/Network.qml @@ -1,26 +1,56 @@ import QtQuick import Quickshell import Quickshell.Hyprland -// import Quickshell.Networking +import Quickshell.Io MouseArea { id: networkButton - width: 30 - height: 28 + width: output.width + 16 + height: bar.height hoverEnabled: true cursorShape: Qt.PointingHandCursor - + + // onClicked: { + // console.log("Wifi Hardware:", Networking.wifiHardwareEnabled) + // console.log("Wifi:", Networking.wifiEnabled) + // console.log("Device Type:", Networking.devices.DeviceType.toString(DeviceType)) + // console.log("Device Type:", Networking.devices.DeviceConnectionState.toString(DeviceConnectionState)) // ??? + // console.log("Device Type:", Networking.devices.toString(NetworkDevice)) + // console.log("Device Type:", Networking.devices.length) + // } + Rectangle { anchors.fill: parent color: networkButton.containsMouse ? "#2a2a2a" : "transparent" radius: 6 + width: output.width + 16 Text { + id: output anchors.centerIn: parent - text: "󰈀 " font.pixelSize: 26 font.family: "Nerd Font" - color: "#ffffff" + color: output.text === "󰤭 /󱐤" ? "#FF0000" : "#00ff00" + } + + Process { + id: networkStatus + command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"] + running: true + + stdout: StdioCollector { + onStreamFinished: { + output.text = this.text.trim() + console.log("networkScript output:", this.text.trim()) + } + } + } + + Timer { + interval: 10000 + running: true + repeat: true + onTriggered: networkStatus.running = true } } } \ No newline at end of file diff --git a/modules/bar/widgets/PowerButton.qml b/modules/bar/widgets/PowerButton.qml index d0630c0..0bfc8cc 100644 --- a/modules/bar/widgets/PowerButton.qml +++ b/modules/bar/widgets/PowerButton.qml @@ -6,7 +6,7 @@ import Quickshell.Io MouseArea { id: powerButton width: 30 - height: 28 + height: bar.height hoverEnabled: true cursorShape: Qt.PointingHandCursor diff --git a/modules/wp/WallpaperPicker.qml b/modules/wp/WallpaperPicker.qml index 6d86957..c9d500d 100644 --- a/modules/wp/WallpaperPicker.qml +++ b/modules/wp/WallpaperPicker.qml @@ -104,7 +104,7 @@ PanelWindow { id: wallpaperProcess command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/wp/set-wallpaper.sh" + " " + model.filePath + " &"] stdout: StdioCollector { - onStreamFinished: console.log(`line read: ${this.text}`) + onStreamFinished: console.log('line read:', this.text) } } diff --git a/modules/wp/WallpaperPickerLoader.qml b/modules/wp/WallpaperPickerLoader.qml index 3b8232f..c39f2b0 100644 --- a/modules/wp/WallpaperPickerLoader.qml +++ b/modules/wp/WallpaperPickerLoader.qml @@ -11,7 +11,7 @@ Item { // container, invisible id: generateThumbs command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/wp/generate-wallpaper-thumbs.sh"] stdout: StdioCollector { - onStreamFinished: console.log(`line read: ${this.text}`) + onStreamFinished: console.log(this.text) } } @@ -26,7 +26,8 @@ Item { // container, invisible description: "Open wallpaper picker" onPressed: { - generateThumbs.startDetached() + // generateThumbs.startDetached() + generateThumbs.running = true wallpaperLoader.active = !wallpaperLoader.active console.log("Pressed Meta+Shift+W (Hyprland global shortcut)") } diff --git a/modules/wp/generate-wallpaper-thumbs.sh b/modules/wp/generate-wallpaper-thumbs.sh index 32c70a4..926176f 100755 --- a/modules/wp/generate-wallpaper-thumbs.sh +++ b/modules/wp/generate-wallpaper-thumbs.sh @@ -17,6 +17,8 @@ mkdir -p "$THUMB_DIR" # Max width/height of the thumbnails MAX_DIM=300 +num=0 + # Process each image for img in "$WALLPAPER_DIR"/*.{jpg,jpeg,png}; do # Skip if no files match @@ -33,8 +35,10 @@ for img in "$WALLPAPER_DIR"/*.{jpg,jpeg,png}; do continue fi + num+=1 + # Generate thumbnail using ImageMagick magick "$img" -resize "${MAX_DIM}x${MAX_DIM}" "$thumb" done -echo "Thumbnails generated in $THUMB_DIR" \ No newline at end of file +echo "$num Thumbnails generated in $THUMB_DIR" \ No newline at end of file diff --git a/modules/wp/set-wallpaper.sh b/modules/wp/set-wallpaper.sh index 9ae2294..318ac1c 100755 --- a/modules/wp/set-wallpaper.sh +++ b/modules/wp/set-wallpaper.sh @@ -53,6 +53,12 @@ if [ ! -d $static_wallpaper_dir ]; then mkdir -p $static_wallpaper_dir; fi +current_wallpaper="$static_wallpaper_dir/current" + +echo "$image" > $current_wallpaper + blurred_wp="$static_wallpaper_dir/blurred.jpg" magick $image -blur $blur $blurred_wp + +echo "test"