mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-06 07:19:27 -05:00
47 lines
3.2 KiB
QML
47 lines
3.2 KiB
QML
pragma Singleton
|
|
pragma ComponentBehavior: Bound
|
|
|
|
import "root:/modules/common/functions/file_utils.js" as FileUtils
|
|
import Qt.labs.platform
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Hyprland
|
|
|
|
Singleton {
|
|
// XDG Dirs, with "file://"
|
|
readonly property string config: StandardPaths.standardLocations(StandardPaths.ConfigLocation)[0]
|
|
readonly property string state: StandardPaths.standardLocations(StandardPaths.StateLocation)[0]
|
|
readonly property string cache: StandardPaths.standardLocations(StandardPaths.CacheLocation)[0]
|
|
readonly property string pictures: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
|
|
readonly property string downloads: StandardPaths.standardLocations(StandardPaths.DownloadLocation)[0]
|
|
|
|
// Other dirs used by the shell, without "file://"
|
|
property string scriptPath: FileUtils.trimFileProtocol(`${Directories.config}/quickshell/scripts`)
|
|
property string favicons: FileUtils.trimFileProtocol(`${Directories.cache}/media/favicons`)
|
|
property string coverArt: FileUtils.trimFileProtocol(`${Directories.cache}/media/coverart`)
|
|
property string booruPreviews: FileUtils.trimFileProtocol(`${Directories.cache}/media/boorus`)
|
|
property string booruDownloads: FileUtils.trimFileProtocol(Directories.pictures + "/homework")
|
|
property string booruDownloadsNsfw: FileUtils.trimFileProtocol(Directories.pictures + "/homework/🌶️")
|
|
property string latexOutput: FileUtils.trimFileProtocol(`${Directories.cache}/media/latex`)
|
|
property string shellConfig: FileUtils.trimFileProtocol(`${Directories.config}/illogical-impulse`)
|
|
property string shellConfigName: "config.json"
|
|
property string shellConfigPath: `${Directories.shellConfig}/${Directories.shellConfigName}`
|
|
property string todoPath: FileUtils.trimFileProtocol(`${Directories.state}/user/todo.json`)
|
|
property string notificationsPath: FileUtils.trimFileProtocol(`${Directories.cache}/notifications/notifications.json`)
|
|
property string generatedMaterialThemePath: FileUtils.trimFileProtocol(`${Directories.state}/user/generated/colors.json`)
|
|
property string cliphistDecode: FileUtils.trimFileProtocol(`/tmp/quickshell/media/cliphist`)
|
|
property string wallpaperSwitchScriptPath: FileUtils.trimFileProtocol(`${Directories.scriptPath}/colors/switchwall.sh`)
|
|
property string defaultAiPrompts: FileUtils.trimFileProtocol(`${Directories.config}/quickshell/defaults/ai/prompts`)
|
|
property string userAiPrompts: FileUtils.trimFileProtocol(`${Directories.shellConfig}/ai/prompts`)
|
|
// Cleanup on init
|
|
Component.onCompleted: {
|
|
Quickshell.execDetached(["bash", "-c", `mkdir -p '${shellConfig}'`])
|
|
Quickshell.execDetached(["bash", "-c", `mkdir -p '${favicons}'`])
|
|
Quickshell.execDetached(["bash", "-c", `rm -rf '${coverArt}'; mkdir -p '${coverArt}'`])
|
|
Quickshell.execDetached(["bash", "-c", `rm -rf '${booruPreviews}'; mkdir -p '${booruPreviews}'`])
|
|
Quickshell.execDetached(["bash", "-c", `mkdir -p '${booruDownloads}' && mkdir -p '${booruDownloadsNsfw}'`])
|
|
Quickshell.execDetached(["bash", "-c", `rm -rf '${latexOutput}'; mkdir -p '${latexOutput}'`])
|
|
Quickshell.execDetached(["bash", "-c", `rm -rf '${cliphistDecode}'; mkdir -p '${cliphistDecode}'`])
|
|
}
|
|
}
|