93 lines
2.8 KiB
QML
93 lines
2.8 KiB
QML
import QtQuick
|
||
import Quickshell.Networking
|
||
import Quickshell.Bluetooth
|
||
import qs.config
|
||
import qs.services
|
||
import qs.modules.quicksettings
|
||
|
||
SettingsPage {
|
||
id: root
|
||
|
||
title: "Network & Devices"
|
||
lede: "Connect graphically—no terminal workflow required."
|
||
|
||
readonly property var wifiDevice: {
|
||
for (const device of Networking.devices.values) {
|
||
if (device.type === DeviceType.Wifi)
|
||
return device;
|
||
}
|
||
return null;
|
||
}
|
||
readonly property var bluetoothAdapter: Bluetooth.defaultAdapter
|
||
|
||
SettingsCard {
|
||
title: "Wi‑Fi"
|
||
subtitle: Networking.wifiEnabled ? "Available networks" : "Wireless networking is off"
|
||
|
||
SettingRow {
|
||
label: "Wi‑Fi"
|
||
detail: root.wifiDevice ? "Managed by NetworkManager" : "No wireless adapter found"
|
||
controlWidth: 48
|
||
|
||
SettingsToggle {
|
||
anchors.right: parent.right
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
checked: Networking.wifiEnabled
|
||
enabled: Networking.wifiHardwareEnabled
|
||
onToggled: value => Networking.wifiEnabled = value
|
||
}
|
||
}
|
||
|
||
WifiList {
|
||
width: parent.width
|
||
device: root.wifiDevice
|
||
active: true
|
||
maxHeight: 240
|
||
}
|
||
|
||
ActionRow {
|
||
label: "Advanced network settings"
|
||
detail: "VPN, wired profiles, DNS, and connection details"
|
||
divider: false
|
||
action: "Open panel"
|
||
onTriggered: SystemSettings.openGnomePanel("network")
|
||
}
|
||
}
|
||
|
||
SettingsCard {
|
||
title: "Bluetooth"
|
||
subtitle: root.bluetoothAdapter?.enabled ? "Nearby and paired devices" : "Bluetooth is off"
|
||
|
||
SettingRow {
|
||
label: "Bluetooth"
|
||
detail: root.bluetoothAdapter ? "Pair and reconnect without leaving Settings" : "No Bluetooth adapter found"
|
||
controlWidth: 48
|
||
|
||
SettingsToggle {
|
||
anchors.right: parent.right
|
||
anchors.verticalCenter: parent.verticalCenter
|
||
checked: root.bluetoothAdapter?.enabled ?? false
|
||
enabled: root.bluetoothAdapter !== null
|
||
onToggled: value => {
|
||
if (root.bluetoothAdapter)
|
||
root.bluetoothAdapter.enabled = value;
|
||
}
|
||
}
|
||
}
|
||
|
||
BluetoothList {
|
||
width: parent.width
|
||
active: true
|
||
maxHeight: 220
|
||
}
|
||
|
||
ActionRow {
|
||
label: "Advanced Bluetooth settings"
|
||
detail: "Device details and system-level options"
|
||
divider: false
|
||
action: "Open panel"
|
||
onTriggered: SystemSettings.openGnomePanel("bluetooth")
|
||
}
|
||
}
|
||
}
|