1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-06 05:25:41 -05:00

qmlformat-all script

This commit is contained in:
bbedward
2025-07-17 18:15:35 -04:00
parent 26ad3810b4
commit 70b9a3cff4
14 changed files with 2163 additions and 2037 deletions

View File

@@ -7,85 +7,105 @@ import Quickshell.Io
Singleton {
id: root
property string username: ""
property string fullName: ""
property string profilePicture: ""
property string uptime: ""
property string hostname: ""
property bool profileAvailable: false
Component.onCompleted: {
getUserInfo()
getUptime()
// Update uptime every minute
uptimeTimer.start()
function getUserInfo() {
userInfoProcess.running = true;
}
function getUptime() {
uptimeProcess.running = true;
}
function getProfilePicture() {
profilePictureProcess.running = true;
}
function refreshUserInfo() {
getUserInfo();
getUptime();
getProfilePicture();
}
Component.onCompleted: {
getUserInfo();
getUptime();
// Update uptime every minute
uptimeTimer.start();
}
Timer {
id: uptimeTimer
interval: 60000 // 1 minute
running: false
repeat: true
onTriggered: getUptime()
}
// Get username and full name
Process {
id: userInfoProcess
command: ["bash", "-c", "echo \"$USER|$(getent passwd $USER | cut -d: -f5 | cut -d, -f1)|$(hostname)\""]
running: false
onExited: (exitCode) => {
if (exitCode !== 0) {
console.warn("UserInfoService: Failed to get user info");
root.username = "User";
root.fullName = "User";
root.hostname = "System";
}
}
stdout: StdioCollector {
onStreamFinished: {
const parts = text.trim().split("|")
const parts = text.trim().split("|");
if (parts.length >= 3) {
root.username = parts[0] || ""
root.fullName = parts[1] || parts[0] || ""
root.hostname = parts[2] || ""
console.log("UserInfoService: User info loaded -", root.username, root.fullName, root.hostname)
root.username = parts[0] || "";
root.fullName = parts[1] || parts[0] || "";
root.hostname = parts[2] || "";
console.log("UserInfoService: User info loaded -", root.username, root.fullName, root.hostname);
// Try to find profile picture
getProfilePicture()
getProfilePicture();
}
}
}
onExited: (exitCode) => {
if (exitCode !== 0) {
console.warn("UserInfoService: Failed to get user info")
root.username = "User"
root.fullName = "User"
root.hostname = "System"
}
}
}
// Get system uptime
Process {
id: uptimeProcess
command: ["bash", "-c", "uptime -p | sed 's/up //'"]
running: false
stdout: StdioCollector {
onStreamFinished: {
root.uptime = text.trim() || "Unknown"
console.log("UserInfoService: Uptime updated -", root.uptime)
}
}
onExited: (exitCode) => {
if (exitCode !== 0) {
console.warn("UserInfoService: Failed to get uptime")
root.uptime = "Unknown"
console.warn("UserInfoService: Failed to get uptime");
root.uptime = "Unknown";
}
}
stdout: StdioCollector {
onStreamFinished: {
root.uptime = text.trim() || "Unknown";
console.log("UserInfoService: Uptime updated -", root.uptime);
}
}
}
// Look for profile picture in common locations
Process {
id: profilePictureProcess
command: ["bash", "-c", `
# Try common profile picture locations
for path in \
@@ -104,46 +124,29 @@ Singleton {
echo ""
`]
running: false
onExited: (exitCode) => {
if (exitCode !== 0) {
console.warn("UserInfoService: Failed to find profile picture");
root.profilePicture = "";
root.profileAvailable = false;
}
}
stdout: StdioCollector {
onStreamFinished: {
const path = text.trim()
const path = text.trim();
if (path && path.length > 0) {
root.profilePicture = "file://" + path
root.profileAvailable = true
console.log("UserInfoService: Profile picture found at", path)
root.profilePicture = "file://" + path;
root.profileAvailable = true;
console.log("UserInfoService: Profile picture found at", path);
} else {
root.profilePicture = ""
root.profileAvailable = false
console.log("UserInfoService: No profile picture found, using default avatar")
root.profilePicture = "";
root.profileAvailable = false;
console.log("UserInfoService: No profile picture found, using default avatar");
}
}
}
onExited: (exitCode) => {
if (exitCode !== 0) {
console.warn("UserInfoService: Failed to find profile picture")
root.profilePicture = ""
root.profileAvailable = false
}
}
}
function getUserInfo() {
userInfoProcess.running = true
}
function getUptime() {
uptimeProcess.running = true
}
function getProfilePicture() {
profilePictureProcess.running = true
}
function refreshUserInfo() {
getUserInfo()
getUptime()
getProfilePicture()
}
}
}