mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-09 15:05:39 -05:00
qmlformat-all script
This commit is contained in:
@@ -7,92 +7,37 @@ import Quickshell.Io
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
|
||||
property bool niriAvailable: false
|
||||
property string focusedAppId: ""
|
||||
property string focusedAppName: ""
|
||||
property string focusedWindowTitle: ""
|
||||
property int focusedWindowId: -1
|
||||
|
||||
Component.onCompleted: {
|
||||
// Use the availability from NiriWorkspaceService to avoid duplicate checks
|
||||
root.niriAvailable = NiriWorkspaceService.niriAvailable
|
||||
|
||||
// Connect to workspace service events
|
||||
NiriWorkspaceService.onNiriAvailableChanged.connect(() => {
|
||||
root.niriAvailable = NiriWorkspaceService.niriAvailable
|
||||
if (root.niriAvailable) {
|
||||
loadInitialFocusedWindow()
|
||||
}
|
||||
})
|
||||
|
||||
if (root.niriAvailable) {
|
||||
loadInitialFocusedWindow()
|
||||
}
|
||||
}
|
||||
|
||||
// Listen to window focus changes from NiriWorkspaceService
|
||||
Connections {
|
||||
target: NiriWorkspaceService
|
||||
function onFocusedWindowIdChanged() {
|
||||
root.focusedWindowId = parseInt(NiriWorkspaceService.focusedWindowId) || -1
|
||||
updateFocusedWindowData()
|
||||
}
|
||||
function onFocusedWindowTitleChanged() {
|
||||
root.focusedWindowTitle = NiriWorkspaceService.focusedWindowTitle
|
||||
}
|
||||
}
|
||||
|
||||
// Process to get focused window info
|
||||
Process {
|
||||
id: focusedWindowQuery
|
||||
command: ["niri", "msg", "--json", "focused-window"]
|
||||
running: false
|
||||
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
if (text && text.trim()) {
|
||||
try {
|
||||
const windowData = JSON.parse(text.trim())
|
||||
root.focusedAppId = windowData.app_id || ""
|
||||
root.focusedWindowTitle = windowData.title || ""
|
||||
root.focusedAppName = getDisplayName(windowData.app_id || "")
|
||||
root.focusedWindowId = parseInt(windowData.id) || -1
|
||||
} catch (e) {
|
||||
console.warn("FocusedWindowService: Failed to parse focused window data:", e)
|
||||
clearFocusedWindow()
|
||||
}
|
||||
} else {
|
||||
clearFocusedWindow()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function loadInitialFocusedWindow() {
|
||||
if (root.niriAvailable) {
|
||||
focusedWindowQuery.running = true
|
||||
}
|
||||
if (root.niriAvailable)
|
||||
focusedWindowQuery.running = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function updateFocusedWindowData() {
|
||||
if (root.niriAvailable && root.focusedWindowId !== -1) {
|
||||
focusedWindowQuery.running = true
|
||||
} else {
|
||||
clearFocusedWindow()
|
||||
}
|
||||
if (root.niriAvailable && root.focusedWindowId !== -1)
|
||||
focusedWindowQuery.running = true;
|
||||
else
|
||||
clearFocusedWindow();
|
||||
}
|
||||
|
||||
|
||||
function clearFocusedWindow() {
|
||||
root.focusedAppId = ""
|
||||
root.focusedAppName = ""
|
||||
root.focusedWindowTitle = ""
|
||||
root.focusedAppId = "";
|
||||
root.focusedAppName = "";
|
||||
root.focusedWindowTitle = "";
|
||||
}
|
||||
|
||||
|
||||
// Convert app_id to a more user-friendly display name
|
||||
function getDisplayName(appId) {
|
||||
if (!appId) return ""
|
||||
|
||||
if (!appId)
|
||||
return "";
|
||||
|
||||
// Common app_id to display name mappings
|
||||
const appNames = {
|
||||
"com.mitchellh.ghostty": "Ghostty",
|
||||
@@ -113,22 +58,74 @@ Singleton {
|
||||
"discord": "Discord",
|
||||
"slack": "Slack",
|
||||
"zoom": "Zoom"
|
||||
}
|
||||
|
||||
};
|
||||
// Return mapped name or clean up the app_id
|
||||
if (appNames[appId]) {
|
||||
return appNames[appId]
|
||||
}
|
||||
|
||||
if (appNames[appId])
|
||||
return appNames[appId];
|
||||
|
||||
// Try to extract a clean name from the app_id
|
||||
// Remove common prefixes and make first letter uppercase
|
||||
let cleanName = appId
|
||||
.replace(/^(org\.|com\.|net\.|io\.)/, '')
|
||||
.replace(/\./g, ' ')
|
||||
.split(' ')
|
||||
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
||||
.join(' ')
|
||||
|
||||
return cleanName
|
||||
let cleanName = appId.replace(/^(org\.|com\.|net\.|io\.)/, '').replace(/\./g, ' ').split(' ').map((word) => {
|
||||
return word.charAt(0).toUpperCase() + word.slice(1);
|
||||
}).join(' ');
|
||||
return cleanName;
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
// Use the availability from NiriWorkspaceService to avoid duplicate checks
|
||||
root.niriAvailable = NiriWorkspaceService.niriAvailable;
|
||||
// Connect to workspace service events
|
||||
NiriWorkspaceService.onNiriAvailableChanged.connect(() => {
|
||||
root.niriAvailable = NiriWorkspaceService.niriAvailable;
|
||||
if (root.niriAvailable)
|
||||
loadInitialFocusedWindow();
|
||||
|
||||
});
|
||||
if (root.niriAvailable)
|
||||
loadInitialFocusedWindow();
|
||||
|
||||
}
|
||||
|
||||
// Listen to window focus changes from NiriWorkspaceService
|
||||
Connections {
|
||||
function onFocusedWindowIdChanged() {
|
||||
root.focusedWindowId = parseInt(NiriWorkspaceService.focusedWindowId) || -1;
|
||||
updateFocusedWindowData();
|
||||
}
|
||||
|
||||
function onFocusedWindowTitleChanged() {
|
||||
root.focusedWindowTitle = NiriWorkspaceService.focusedWindowTitle;
|
||||
}
|
||||
|
||||
target: NiriWorkspaceService
|
||||
}
|
||||
|
||||
// Process to get focused window info
|
||||
Process {
|
||||
id: focusedWindowQuery
|
||||
|
||||
command: ["niri", "msg", "--json", "focused-window"]
|
||||
running: false
|
||||
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
if (text && text.trim()) {
|
||||
try {
|
||||
const windowData = JSON.parse(text.trim());
|
||||
root.focusedAppId = windowData.app_id || "";
|
||||
root.focusedWindowTitle = windowData.title || "";
|
||||
root.focusedAppName = getDisplayName(windowData.app_id || "");
|
||||
root.focusedWindowId = parseInt(windowData.id) || -1;
|
||||
} catch (e) {
|
||||
console.warn("FocusedWindowService: Failed to parse focused window data:", e);
|
||||
clearFocusedWindow();
|
||||
}
|
||||
} else {
|
||||
clearFocusedWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user