1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-07 22:15:38 -05:00

Cleanup some of the backwards compat crap

This commit is contained in:
bbedward
2025-10-08 18:28:46 -04:00
parent 10b7a0875b
commit 6565988952
4 changed files with 146 additions and 206 deletions

View File

@@ -25,7 +25,7 @@ Item {
target: IdleService target: IdleService
function onLockRequested() { function onLockRequested() {
console.log("Lock: Received lock request from IdleService") console.log("Lock: Received lock request from IdleService")
SessionService.lockSession() loader.activeAsync = true
} }
} }

View File

@@ -76,14 +76,15 @@ Singleton {
signal networksUpdated signal networksUpdated
signal connectionChanged signal connectionChanged
property var dmsService: null
property bool subscriptionConnected: false property bool subscriptionConnected: false
readonly property string socketPath: Quickshell.env("DMS_SOCKET") readonly property string socketPath: Quickshell.env("DMS_SOCKET")
Component.onCompleted: { Component.onCompleted: {
root.userPreference = SettingsData.networkPreference root.userPreference = SettingsData.networkPreference
Qt.callLater(initializeDMSConnection) if (socketPath && socketPath.length > 0) {
checkDMSCapabilities()
}
} }
DankSocket { DankSocket {
@@ -133,55 +134,36 @@ Singleton {
console.log("NetworkManagerService: Sent network.subscribe request") console.log("NetworkManagerService: Sent network.subscribe request")
} }
function initializeDMSConnection() { Connections {
try { target: DMSService
console.log("NetworkManagerService: Initializing DMS connection...")
dmsService = Qt.createQmlObject('import QtQuick; import qs.Services; QtObject { property var service: DMSService }', root)
if (dmsService && dmsService.service) {
console.log("NetworkManagerService: DMS service reference created")
checkCapabilities()
dmsService.service.connectionStateChanged.connect(onDMSConnectionStateChanged)
dmsService.service.capabilitiesChanged.connect(onDMSCapabilitiesChanged)
console.log("NetworkManagerService: Callbacks registered, isConnected:", dmsService.service.isConnected, "capabilities:", JSON.stringify(dmsService.service.capabilities))
} else {
console.warn("NetworkManagerService: Failed to get DMS service reference")
}
} catch (e) {
console.warn("NetworkManagerService: Failed to initialize DMS connection:", e)
}
}
function checkCapabilities() { function onConnectionStateChanged() {
if (dmsService && dmsService.service && dmsService.service.isConnected) { if (DMSService.isConnected) {
onDMSConnected() checkDMSCapabilities()
}
}
function onDMSConnectionStateChanged() {
if (dmsService && dmsService.service && dmsService.service.isConnected) {
onDMSConnected()
}
}
function onDMSCapabilitiesChanged() {
console.log("NetworkManagerService: onDMSCapabilitiesChanged called, capabilities:", dmsService ? JSON.stringify(dmsService.service.capabilities) : "no service")
if (dmsService && dmsService.service && dmsService.service.capabilities.includes("network")) {
console.log("NetworkManagerService: Network capability detected!")
networkAvailable = true
if (dmsService.service.isConnected && !stateInitialized) {
console.log("NetworkManagerService: DMS is connected, fetching state and starting subscription socket...")
stateInitialized = true
getState()
subscriptionSocket.connected = true
} }
} }
} }
function onDMSConnected() { Connections {
console.log("NetworkManagerService: onDMSConnected called") target: DMSService
if (dmsService && dmsService.service && dmsService.service.capabilities && dmsService.service.capabilities.length > 0) { enabled: DMSService.isConnected
console.log("NetworkManagerService: Capabilities:", JSON.stringify(dmsService.service.capabilities))
networkAvailable = dmsService.service.capabilities.includes("network") function onCapabilitiesChanged() {
checkDMSCapabilities()
}
}
function checkDMSCapabilities() {
if (!DMSService.isConnected) {
return
}
if (DMSService.capabilities.length === 0) {
return
}
console.log("NetworkManagerService: Capabilities:", JSON.stringify(DMSService.capabilities))
networkAvailable = DMSService.capabilities.includes("network")
console.log("NetworkManagerService: Network available:", networkAvailable) console.log("NetworkManagerService: Network available:", networkAvailable)
if (networkAvailable && !stateInitialized) { if (networkAvailable && !stateInitialized) {
@@ -190,9 +172,6 @@ Singleton {
getState() getState()
subscriptionSocket.connected = true subscriptionSocket.connected = true
} }
} else {
console.log("NetworkManagerService: No capabilities yet or service not ready")
}
} }
function addRef() { function addRef() {
@@ -212,9 +191,9 @@ Singleton {
property bool initialStateFetched: false property bool initialStateFetched: false
function getState() { function getState() {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
dmsService.service.sendRequest("network.getState", null, response => { DMSService.sendRequest("network.getState", null, response => {
if (response.result) { if (response.result) {
updateState(response.result) updateState(response.result)
if (!initialStateFetched && response.result.wifiEnabled && (!response.result.wifiNetworks || response.result.wifiNetworks.length === 0)) { if (!initialStateFetched && response.result.wifiEnabled && (!response.result.wifiNetworks || response.result.wifiNetworks.length === 0)) {
@@ -277,11 +256,11 @@ Singleton {
} }
function scanWifi() { function scanWifi() {
if (!networkAvailable || isScanning || !wifiEnabled || !dmsService || !dmsService.service) return if (!networkAvailable || isScanning || !wifiEnabled) return
console.log("NetworkManagerService: Starting WiFi scan...") console.log("NetworkManagerService: Starting WiFi scan...")
isScanning = true isScanning = true
dmsService.service.sendRequest("network.wifi.scan", null, response => { DMSService.sendRequest("network.wifi.scan", null, response => {
isScanning = false isScanning = false
if (response.error) { if (response.error) {
console.warn("NetworkManagerService: WiFi scan failed:", response.error) console.warn("NetworkManagerService: WiFi scan failed:", response.error)
@@ -297,7 +276,7 @@ Singleton {
} }
function connectToWifi(ssid, password = "", username = "") { function connectToWifi(ssid, password = "", username = "") {
if (!networkAvailable || isConnecting || !dmsService || !dmsService.service) return if (!networkAvailable || isConnecting) return
isConnecting = true isConnecting = true
connectingSSID = ssid connectingSSID = ssid
@@ -308,7 +287,7 @@ Singleton {
if (password) params.password = password if (password) params.password = password
if (username) params.username = username if (username) params.username = username
dmsService.service.sendRequest("network.wifi.connect", params, response => { DMSService.sendRequest("network.wifi.connect", params, response => {
if (response.error) { if (response.error) {
connectionError = response.error connectionError = response.error
lastConnectionError = response.error lastConnectionError = response.error
@@ -338,9 +317,9 @@ Singleton {
} }
function disconnectWifi() { function disconnectWifi() {
if (!networkAvailable || !wifiInterface || !dmsService || !dmsService.service) return if (!networkAvailable || !wifiInterface) return
dmsService.service.sendRequest("network.wifi.disconnect", null, response => { DMSService.sendRequest("network.wifi.disconnect", null, response => {
if (response.error) { if (response.error) {
ToastService.showError("Failed to disconnect WiFi") ToastService.showError("Failed to disconnect WiFi")
} else { } else {
@@ -352,10 +331,10 @@ Singleton {
} }
function forgetWifiNetwork(ssid) { function forgetWifiNetwork(ssid) {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
forgetSSID = ssid forgetSSID = ssid
dmsService.service.sendRequest("network.wifi.forget", { ssid: ssid }, response => { DMSService.sendRequest("network.wifi.forget", { ssid: ssid }, response => {
if (response.error) { if (response.error) {
console.warn("Failed to forget network:", response.error) console.warn("Failed to forget network:", response.error)
} else { } else {
@@ -382,10 +361,10 @@ Singleton {
} }
function toggleWifiRadio() { function toggleWifiRadio() {
if (!networkAvailable || wifiToggling || !dmsService || !dmsService.service) return if (!networkAvailable || wifiToggling) return
wifiToggling = true wifiToggling = true
dmsService.service.sendRequest("network.wifi.toggle", null, response => { DMSService.sendRequest("network.wifi.toggle", null, response => {
wifiToggling = false wifiToggling = false
if (response.error) { if (response.error) {
@@ -398,9 +377,9 @@ Singleton {
} }
function enableWifiDevice() { function enableWifiDevice() {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
dmsService.service.sendRequest("network.wifi.enable", null, response => { DMSService.sendRequest("network.wifi.enable", null, response => {
if (response.error) { if (response.error) {
ToastService.showError("Failed to enable WiFi") ToastService.showError("Failed to enable WiFi")
} else { } else {
@@ -410,14 +389,14 @@ Singleton {
} }
function setNetworkPreference(preference) { function setNetworkPreference(preference) {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
userPreference = preference userPreference = preference
changingPreference = true changingPreference = true
targetPreference = preference targetPreference = preference
SettingsData.setNetworkPreference(preference) SettingsData.setNetworkPreference(preference)
dmsService.service.sendRequest("network.preference.set", { preference: preference }, response => { DMSService.sendRequest("network.preference.set", { preference: preference }, response => {
changingPreference = false changingPreference = false
targetPreference = "" targetPreference = ""
@@ -441,13 +420,13 @@ Singleton {
} }
function toggleNetworkConnection(type) { function toggleNetworkConnection(type) {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
if (type === "ethernet") { if (type === "ethernet") {
if (networkStatus === "ethernet") { if (networkStatus === "ethernet") {
dmsService.service.sendRequest("network.ethernet.disconnect", null, null) DMSService.sendRequest("network.ethernet.disconnect", null, null)
} else { } else {
dmsService.service.sendRequest("network.ethernet.connect", null, null) DMSService.sendRequest("network.ethernet.connect", null, null)
} }
} }
} }
@@ -466,13 +445,13 @@ Singleton {
} }
function fetchNetworkInfo(ssid) { function fetchNetworkInfo(ssid) {
if (!networkAvailable || !dmsService || !dmsService.service) return if (!networkAvailable) return
networkInfoSSID = ssid networkInfoSSID = ssid
networkInfoLoading = true networkInfoLoading = true
networkInfoDetails = "Loading network information..." networkInfoDetails = "Loading network information..."
dmsService.service.sendRequest("network.info", { ssid: ssid }, response => { DMSService.sendRequest("network.info", { ssid: ssid }, response => {
networkInfoLoading = false networkInfoLoading = false
if (response.error) { if (response.error) {

View File

@@ -15,17 +15,18 @@ Singleton {
property bool settingsPortalAvailable: false property bool settingsPortalAvailable: false
property int systemColorScheme: 0 property int systemColorScheme: 0
property var dmsService: null
property bool freedeskAvailable: false property bool freedeskAvailable: false
readonly property string socketPath: Quickshell.env("DMS_SOCKET")
function init() {} function init() {}
function getSystemProfileImage() { function getSystemProfileImage() {
if (freedeskAvailable && dmsService && dmsService.service) { if (freedeskAvailable) {
const username = Quickshell.env("USER") const username = Quickshell.env("USER")
if (!username) return if (!username) return
dmsService.service.sendRequest("freedesktop.accounts.getUserIconFile", { username: username }, response => { DMSService.sendRequest("freedesktop.accounts.getUserIconFile", { username: username }, response => {
if (response.result && response.result.success) { if (response.result && response.result.success) {
const iconFile = response.result.value || "" const iconFile = response.result.value || ""
if (iconFile && iconFile !== "" && iconFile !== "/var/lib/AccountsService/icons/") { if (iconFile && iconFile !== "" && iconFile !== "/var/lib/AccountsService/icons/") {
@@ -51,8 +52,8 @@ Singleton {
return return
} }
if (freedeskAvailable && dmsService && dmsService.service) { if (freedeskAvailable) {
dmsService.service.sendRequest("freedesktop.accounts.getUserIconFile", { username: username }, response => { DMSService.sendRequest("freedesktop.accounts.getUserIconFile", { username: username }, response => {
if (response.result && response.result.success) { if (response.result && response.result.success) {
const icon = response.result.value || "" const icon = response.result.value || ""
if (icon && icon !== "" && icon !== "/var/lib/AccountsService/icons/") { if (icon && icon !== "" && icon !== "/var/lib/AccountsService/icons/") {
@@ -85,8 +86,8 @@ Singleton {
} }
function getSystemColorScheme() { function getSystemColorScheme() {
if (freedeskAvailable && dmsService && dmsService.service) { if (freedeskAvailable) {
dmsService.service.sendRequest("freedesktop.settings.getColorScheme", null, response => { DMSService.sendRequest("freedesktop.settings.getColorScheme", null, response => {
if (response.result) { if (response.result) {
systemColorScheme = response.result.value || 0 systemColorScheme = response.result.value || 0
@@ -134,8 +135,8 @@ Singleton {
function setSystemProfileImage(imagePath) { function setSystemProfileImage(imagePath) {
if (!accountsServiceAvailable) return if (!accountsServiceAvailable) return
if (freedeskAvailable && dmsService && dmsService.service) { if (freedeskAvailable) {
dmsService.service.sendRequest("freedesktop.accounts.setIconFile", { path: imagePath || "" }, response => { DMSService.sendRequest("freedesktop.accounts.setIconFile", { path: imagePath || "" }, response => {
if (response.error) { if (response.error) {
console.warn("PortalService: Failed to set icon file:", response.error) console.warn("PortalService: Failed to set icon file:", response.error)
} else { } else {
@@ -150,65 +151,58 @@ Singleton {
} }
Component.onCompleted: { Component.onCompleted: {
Qt.callLater(initializeDMSConnection) if (socketPath && socketPath.length > 0) {
} checkDMSCapabilities()
function initializeDMSConnection() {
try {
dmsService = Qt.createQmlObject('import QtQuick; import qs.Services; QtObject { property var service: DMSService }', root)
if (dmsService && dmsService.service) {
dmsService.service.connectionStateChanged.connect(onDMSConnectionStateChanged)
dmsService.service.capabilitiesChanged.connect(onDMSCapabilitiesChanged)
if (dmsService.service.isConnected) {
onDMSConnected()
} else { } else {
Qt.callLater(checkFallback) console.log("PortalService: DMS_SOCKET not set, using fallback methods")
}
} else {
Qt.callLater(checkFallback)
}
} catch (e) {
console.warn("PortalService: Failed to initialize DMS connection:", e)
Qt.callLater(checkFallback)
}
}
function checkFallback() {
if (!freedeskAvailable) {
console.log("PortalService: DMS not available, using fallback methods")
checkAccountsServiceFallback() checkAccountsServiceFallback()
checkSettingsPortalFallback() checkSettingsPortalFallback()
} }
} }
function onDMSConnectionStateChanged() { Connections {
if (dmsService && dmsService.service && dmsService.service.isConnected) { target: DMSService
onDMSConnected()
function onConnectionStateChanged() {
if (DMSService.isConnected) {
checkDMSCapabilities()
}
} }
} }
function onDMSCapabilitiesChanged() { Connections {
if (dmsService && dmsService.service && dmsService.service.capabilities.includes("freedesktop")) { target: DMSService
freedeskAvailable = true enabled: DMSService.isConnected
checkAccountsService()
checkSettingsPortal() function onCapabilitiesChanged() {
checkDMSCapabilities()
} }
} }
function onDMSConnected() { function checkDMSCapabilities() {
if (dmsService && dmsService.service && dmsService.service.capabilities && dmsService.service.capabilities.length > 0) { if (!DMSService.isConnected) {
freedeskAvailable = dmsService.service.capabilities.includes("freedesktop") return
}
if (DMSService.capabilities.length === 0) {
return
}
freedeskAvailable = DMSService.capabilities.includes("freedesktop")
if (freedeskAvailable) { if (freedeskAvailable) {
checkAccountsService() checkAccountsService()
checkSettingsPortal() checkSettingsPortal()
} } else {
console.log("PortalService: freedesktop capability not available in DMS, using fallback methods")
checkAccountsServiceFallback()
checkSettingsPortalFallback()
} }
} }
function checkAccountsService() { function checkAccountsService() {
if (!freedeskAvailable || !dmsService || !dmsService.service) return if (!freedeskAvailable) return
dmsService.service.sendRequest("freedesktop.getState", null, response => { DMSService.sendRequest("freedesktop.getState", null, response => {
if (response.result && response.result.accounts) { if (response.result && response.result.accounts) {
accountsServiceAvailable = response.result.accounts.available || false accountsServiceAvailable = response.result.accounts.available || false
if (accountsServiceAvailable) { if (accountsServiceAvailable) {
@@ -219,9 +213,9 @@ Singleton {
} }
function checkSettingsPortal() { function checkSettingsPortal() {
if (!freedeskAvailable || !dmsService || !dmsService.service) return if (!freedeskAvailable) return
dmsService.service.sendRequest("freedesktop.getState", null, response => { DMSService.sendRequest("freedesktop.getState", null, response => {
if (response.result && response.result.settings) { if (response.result && response.result.settings) {
settingsPortalAvailable = response.result.settings.available || false settingsPortalAvailable = response.result.settings.available || false
if (settingsPortalAvailable) { if (settingsPortalAvailable) {

View File

@@ -46,7 +46,6 @@ Singleton {
signal prepareForSleep() signal prepareForSleep()
signal loginctlStateChanged() signal loginctlStateChanged()
property var dmsService: null
property bool subscriptionConnected: false property bool subscriptionConnected: false
property bool stateInitialized: false property bool stateInitialized: false
@@ -62,7 +61,12 @@ Singleton {
detectHibernateProcess.running = true detectHibernateProcess.running = true
detectPrimeRunProcess.running = true detectPrimeRunProcess.running = true
console.log("SessionService: Native inhibitor available:", nativeInhibitorAvailable) console.log("SessionService: Native inhibitor available:", nativeInhibitorAvailable)
Qt.callLater(initializeDMSConnection) if (socketPath && socketPath.length > 0) {
checkDMSCapabilities()
} else {
console.log("SessionService: DMS_SOCKET not set, using fallback")
initFallbackLoginctl()
}
} }
} }
@@ -268,6 +272,25 @@ Singleton {
} }
} }
Connections {
target: DMSService
function onConnectionStateChanged() {
if (DMSService.isConnected) {
checkDMSCapabilities()
}
}
}
Connections {
target: DMSService
enabled: DMSService.isConnected
function onCapabilitiesChanged() {
checkDMSCapabilities()
}
}
DankSocket { DankSocket {
id: subscriptionSocket id: subscriptionSocket
path: root.socketPath path: root.socketPath
@@ -310,76 +333,32 @@ Singleton {
}) })
} }
function initializeDMSConnection() { function checkDMSCapabilities() {
if (!socketPath || socketPath.length === 0) { if (!DMSService.isConnected) {
console.log("SessionService: DMS_SOCKET not set, using fallback")
initFallbackLoginctl()
return return
} }
try { if (DMSService.capabilities.length === 0) {
dmsService = Qt.createQmlObject('import QtQuick; import qs.Services; QtObject { property var service: DMSService }', root) return
if (dmsService && dmsService.service) {
dmsService.service.connectionStateChanged.connect(onDMSConnectionStateChanged)
dmsService.service.capabilitiesChanged.connect(onDMSCapabilitiesChanged)
checkCapabilities()
} else {
console.warn("SessionService: Failed to get DMS service reference, using fallback")
initFallbackLoginctl()
}
} catch (e) {
console.warn("SessionService: Failed to initialize DMS connection, using fallback:", e)
initFallbackLoginctl()
}
} }
function checkCapabilities() { if (DMSService.capabilities.includes("loginctl")) {
if (dmsService && dmsService.service && dmsService.service.isConnected) {
onDMSConnected()
}
}
function onDMSConnectionStateChanged() {
if (dmsService && dmsService.service && dmsService.service.isConnected) {
onDMSConnected()
}
}
function onDMSCapabilitiesChanged() {
if (dmsService && dmsService.service) {
if (dmsService.service.capabilities.includes("loginctl")) {
loginctlAvailable = true loginctlAvailable = true
if (dmsService.service.isConnected && !stateInitialized) { if (!stateInitialized) {
stateInitialized = true stateInitialized = true
getLoginctlState() getLoginctlState()
subscriptionSocket.connected = true subscriptionSocket.connected = true
} }
} else if (dmsService.service.capabilities.length > 0 && !loginctlAvailable) { } else {
console.log("SessionService: loginctl capability not available in DMS, using fallback") console.log("SessionService: loginctl capability not available in DMS, using fallback")
initFallbackLoginctl() initFallbackLoginctl()
} }
} }
}
function onDMSConnected() {
if (dmsService && dmsService.service && dmsService.service.capabilities && dmsService.service.capabilities.length > 0) {
loginctlAvailable = dmsService.service.capabilities.includes("loginctl")
if (loginctlAvailable && !stateInitialized) {
stateInitialized = true
getLoginctlState()
subscriptionSocket.connected = true
} else if (!loginctlAvailable) {
console.log("SessionService: loginctl capability not available in DMS, using fallback")
initFallbackLoginctl()
}
}
}
function getLoginctlState() { function getLoginctlState() {
if (!loginctlAvailable || !dmsService || !dmsService.service) return if (!loginctlAvailable) return
dmsService.service.sendRequest("loginctl.getState", null, response => { DMSService.sendRequest("loginctl.getState", null, response => {
if (response.result) { if (response.result) {
updateLoginctlState(response.result) updateLoginctlState(response.result)
} }
@@ -425,18 +404,6 @@ Singleton {
} }
} }
function lockSession() {
if (loginctlAvailable && dmsService && dmsService.service) {
dmsService.service.sendRequest("loginctl.lock", null, response => {
if (response.error) {
console.warn("SessionService: Failed to lock session:", response.error)
}
})
} else {
lockSessionFallback.running = true
}
}
function initFallbackLoginctl() { function initFallbackLoginctl() {
getSessionPathFallback.running = true getSessionPathFallback.running = true
} }