| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- export type WallpaperType = 'scene' | 'video' | 'web' | 'application'
- export type WallpaperBackend =
- | 'swww'
- | 'swaybg'
- | 'feh'
- | 'xwallpaper'
- | 'gsettings'
- | 'qdbus'
- | 'windows'
- | 'macos'
- | 'auto'
- export type WorkshopQueryType =
- | 'RankedByVote'
- | 'RankedByPublicationDate'
- | 'RankedByTrend'
- | 'RankedByTotalUniqueSubscriptions'
- | 'RankedByTextSearch'
- | 'RankedByLastUpdatedDate'
- export type ContentRating = 'everyone' | 'questionable' | 'mature'
- export interface WallpaperMeta {
- id: string
- title: string
- description?: string
- type: WallpaperType
- contentRating?: ContentRating
- previewUrl?: string
- previewLocal?: string
- localPath?: string
- file?: string
- fileSize?: number
- createdAt: number
- updatedAt: number
- subscribed: boolean
- appliedCount: number
- lastAppliedAt?: number
- authorSteamId?: string
- authorName?: string
- source: 'workshop' | 'local'
- tags: string[]
- categories: string[]
- downloading?: boolean
- }
- export interface WorkshopItem {
- publishedFileId: string
- title: string
- description: string
- previewUrl: string
- creatorSteamId: string
- tags: string[]
- timeCreated: number
- timeUpdated: number
- subscriptions: number
- upvotes: number
- downvotes: number
- isSubscribed: boolean
- }
- export interface WorkshopQueryParams {
- appId?: number
- searchText?: string
- tags?: string[]
- excludedTags?: string[]
- queryType?: WorkshopQueryType
- page?: number
- }
- export interface WorkshopQueryResult {
- items: WorkshopItem[]
- page: number
- totalResults: number
- }
- export interface ApplyWallpaperOptions {
- wallpaperId: string
- displayIndex?: number
- backend?: WallpaperBackend
- }
- export interface DownloadProgressEvent {
- itemId: string
- bytesDownloaded: number
- bytesTotal: number
- percentage: number
- status: 'downloading' | 'completed' | 'error'
- }
- export interface LibraryFilters {
- tags?: string[]
- categories?: string[]
- type?: WallpaperType
- contentRating?: ContentRating
- searchText?: string
- sortBy?: 'title' | 'createdAt' | 'updatedAt' | 'lastApplied' | 'appliedCount' | 'fileSize'
- sortDir?: 'asc' | 'desc'
- }
- export interface WallpaperFolder {
- id: string
- title: string
- items: string[] // workshop IDs
- }
- export interface WallpaperEnvironment {
- displayServer: 'wayland' | 'x11' | 'unknown'
- desktopEnv: 'gnome' | 'kde' | 'hyprland' | 'sway' | 'other'
- availableBackends: WallpaperBackend[]
- recommendedBackend: WallpaperBackend
- linuxWallpaperEngine: LweStatus
- }
- export interface LweStatus {
- installed: boolean
- path?: string
- version?: string
- }
- export type LinuxDistro = 'fedora' | 'arch' | 'debian' | 'unknown'
- export interface LweInstallProgress {
- stage: 'installing-deps' | 'cloning' | 'building' | 'installing' | 'done' | 'error'
- message: string
- percentage: number
- }
|