mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-08-15 18:43:59 +00:00
QuickSettings: editable widgets/button section in the ControlCenter
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
outlined: true
|
||||
text: "Bluetooth"
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
icon: BluetoothService.enabled ? "bluetooth" : "bluetooth-off"
|
||||
onClicked: PanelService.getPanel("bluetoothPanel")?.toggle(this)
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
outlined: true
|
||||
text: IdleInhibitorService.isInhibited ? "Keep-awake" : "Keep-awake"
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
icon: IdleInhibitorService.isInhibited ? "keep-awake-on" : "keep-awake-off"
|
||||
onClicked: IdleInhibitorService.manualToggle()
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
outlined: true
|
||||
enabled: ProgramCheckerService.wlsunsetAvailable
|
||||
text: "Night Light"
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
icon: Settings.data.nightLight.enabled ? (Settings.data.nightLight.forced ? "nightlight-forced" : "nightlight-on") : "nightlight-off"
|
||||
onClicked: {
|
||||
if (!Settings.data.nightLight.enabled) {
|
||||
Settings.data.nightLight.enabled = true
|
||||
Settings.data.nightLight.forced = false
|
||||
} else if (Settings.data.nightLight.enabled && !Settings.data.nightLight.forced) {
|
||||
Settings.data.nightLight.forced = true
|
||||
} else {
|
||||
Settings.data.nightLight.enabled = false
|
||||
Settings.data.nightLight.forced = false
|
||||
}
|
||||
}
|
||||
onRightClicked: {
|
||||
var settingsPanel = PanelService.getPanel("settingsPanel")
|
||||
settingsPanel.requestedTab = SettingsPanel.Tab.Display
|
||||
settingsPanel.open()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Services.UPower
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
// Performance
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
readonly property bool hasPP: PowerProfileService.available
|
||||
|
||||
enabled: hasPP
|
||||
outlined: true
|
||||
text: PowerProfileService.getName()
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
icon: PowerProfileService.getIcon()
|
||||
onClicked: {
|
||||
PowerProfileService.cycleProfile()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
enabled: ProgramCheckerService.gpuScreenRecorderAvailable
|
||||
outlined: true
|
||||
icon: "camera-video"
|
||||
text: "Screen Recorder"
|
||||
fontWeight: Style.fontWeightRegular
|
||||
onClicked: {
|
||||
ScreenRecorderService.toggleRecording()
|
||||
if (!ScreenRecorderService.isRecording) {
|
||||
var panel = PanelService.getPanel("controlCenterPanel")
|
||||
panel?.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
|
||||
enabled: Settings.data.wallpaper.enabled
|
||||
outlined: true
|
||||
icon: "wallpaper-selector"
|
||||
text: "Wallpaper"
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
onClicked: PanelService.getPanel("wallpaperPanel")?.toggle(this)
|
||||
onRightClicked: WallpaperService.setRandomWallpaper()
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
|
||||
NButton {
|
||||
property ShellScreen screen
|
||||
property real scaling: 1.0
|
||||
|
||||
|
||||
outlined: true
|
||||
icon: {
|
||||
try {
|
||||
if (NetworkService.ethernetConnected) {
|
||||
return "ethernet"
|
||||
}
|
||||
let connected = false
|
||||
let signalStrength = 0
|
||||
for (const net in NetworkService.networks) {
|
||||
if (NetworkService.networks[net].connected) {
|
||||
connected = true
|
||||
signalStrength = NetworkService.networks[net].signal
|
||||
break
|
||||
}
|
||||
}
|
||||
return connected ? NetworkService.signalIcon(signalStrength) : "wifi-off"
|
||||
} catch (error) {
|
||||
Logger.error("Wi-Fi", "Error getting icon:", error)
|
||||
return "signal_wifi_bad"
|
||||
}
|
||||
}
|
||||
text: {
|
||||
if (NetworkService.ethernetConnected) {
|
||||
return "Network"
|
||||
}
|
||||
return "Wi-Fi"
|
||||
}
|
||||
fontSize: Style.fontSizeS * scaling
|
||||
fontWeight: Style.fontWeightRegular
|
||||
onClicked: PanelService.getPanel("wifiPanel")?.toggle(this)
|
||||
}
|
||||
Reference in New Issue
Block a user