diff --git a/Modules/Bar/Widgets/WiFi.qml b/Modules/Bar/Widgets/WiFi.qml index 83b4689..193eae7 100644 --- a/Modules/Bar/Widgets/WiFi.qml +++ b/Modules/Bar/Widgets/WiFi.qml @@ -27,6 +27,7 @@ NIconButton { icon: { try { + if (NetworkService.ethernet) return "lan" let connected = false let signalStrength = 0 for (const net in NetworkService.networks) { @@ -36,10 +37,10 @@ NIconButton { break } } - return connected ? NetworkService.signalIcon(signalStrength) : "wifi" + return connected ? NetworkService.signalIcon(signalStrength) : "wifi_find" } catch (error) { Logger.error("WiFi", "Error getting icon:", error) - return "wifi" + return "signal_wifi_bad" } } tooltipText: "WiFi Networks" diff --git a/Services/NetworkService.qml b/Services/NetworkService.qml index 65378f0..43e31e7 100644 --- a/Services/NetworkService.qml +++ b/Services/NetworkService.qml @@ -16,6 +16,7 @@ Singleton { property string detectedInterface: "" property string lastConnectedNetwork: "" property bool isLoading: false + property bool ethernet: false Component.onCompleted: { Logger.log("Network", "Service started") @@ -43,6 +44,7 @@ Singleton { function refreshNetworks() { isLoading = true + checkEthernet.running = true existingNetwork.running = true } @@ -415,6 +417,24 @@ Singleton { } } } + + property Process checkEthernet: Process { + id: checkEthernet + running: false + command: ["nmcli", "-t", "-f", "DEVICE,TYPE,STATE", "device"] + stdout: StdioCollector { + onStreamFinished: { + var lines = text.split("\n") + for (var i = 0; i < lines.length; ++i) { + var parts = lines[i].split(":") + if (parts[1] === "ethernet" && parts[2] === "connected") { + root.ethernet = true + break + } + } + } + } + } property Process addConnectionProcess: Process { id: addConnectionProcess diff --git a/Services/ScreenRecorderService.qml b/Services/ScreenRecorderService.qml index 03560e7..57f66d9 100644 --- a/Services/ScreenRecorderService.qml +++ b/Services/ScreenRecorderService.qml @@ -30,8 +30,19 @@ Singleton { videoDir += "/" } outputPath = videoDir + filename - var command = `gpu-screen-recorder -w ${settings.videoSource} -f ${settings.frameRate} -ac ${settings.audioCodec} -k ${settings.videoCodec} -a ${settings.audioSource} -q ${settings.quality} -cursor ${settings.showCursor ? "yes" : "no"} -cr ${settings.colorRange} -o ${outputPath}` - + var flags = `-w ${settings.videoSource} -f ${settings.frameRate} -ac ${settings.audioCodec} -k ${settings.videoCodec} -a ${settings.audioSource} -q ${settings.quality} -cursor ${settings.showCursor ? "yes" : "no"} -cr ${settings.colorRange} -o ${outputPath}` + var command = ` + _gpuscreenrecorder_flatpak_installed() { + flatpak list --app | grep -q "com.dec05eba.gpu_screen_recorder" + } + if command -v gpu-screen-recorder >/dev/null 2>&1; then + gpu-screen-recorder ${flags} + elif command -v flatpak >/dev/null 2>&1 && _gpuscreenrecorder_flatpak_installed; then + flatpak run --command=gpu-screen-recorder --file-forwarding com.dec05eba.gpu_screen_recorder ${flags} + else + notify-send "gpu-screen-recorder not installed!" -u critical + fi`; + //Logger.log("ScreenRecorder", command) Quickshell.execDetached(["sh", "-c", command]) Logger.log("ScreenRecorder", "Started recording")