Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scoop Desktop

基于 Wails v2 + Go + Vue 3 的 Windows Scoop 桌面客户端,提供更接近原生应用的图形化包管理体验。

预览

仪表盘

Dashboard

已安装包

Installed packages

搜索安装

Search

搜索结果示例

Search example

Bucket 管理

Buckets

内置终端

Terminal

设置

Settings

功能特性

  • 原生桌面布局:无边框窗口、自定义标题栏、启动加载遮罩、侧边栏导航、底部状态区 GitHub 入口
  • 仪表盘:展示已安装包 / Bucket / 可更新数量,支持一键更新全部、清理旧版本、导出包列表、查看系统信息
  • 已安装包管理:支持搜索过滤、按 Bucket 筛选、按包名/版本排序、查看包详情、更新、卸载
  • 搜索安装:支持仓库搜索、快速安装输入、热门软件快捷安装、安装输出实时查看
  • Bucket 管理:支持查看已添加 Bucket、添加官方 Bucket、添加自定义 Git 仓库、移除 Bucket
  • 终端:支持执行 Scoop / PowerShell 命令、快捷命令、分组输出、复制输出、命令历史
  • 设置:支持 Scoop 安装检测、Scoop 自更新、诊断检查、代理配置、执行策略检查、缓存清理
  • 实时输出流:安装、更新、清理等操作通过事件流实时推送到前端
  • 浏览器开发模式:未连接 Wails Runtime 时自动使用 mock 数据,前端页面可独立开发

技术栈

层级 技术
桌面框架 Wails v2
后端 Go 1.21
前端 Vue 3 + Composition API
状态管理 Pinia
路由 Vue Router 4
构建 Vite 5
样式 纯 CSS 变量

项目结构

scoop-desktop/
├── app.go                     # Go 后端:Scoop / PowerShell 命令执行与解析
├── main.go                    # Wails 入口与窗口配置
├── wails.json                 # Wails 配置
├── go.mod
├── docs/
│   └── snapshot/              # README 截图资源
└── frontend/
    ├── index.html
    ├── package.json
    ├── vite.config.js
    ├── wailsjs/               # Wails 自动生成绑定
    └── src/
        ├── App.vue            # 主布局、标题栏、侧边栏、启动遮罩
        ├── main.js            # Vue 入口
        ├── wails.js           # 前后端桥接层 + 浏览器模式 mock
        ├── assets/
        │   └── main.css       # 全局样式
        ├── stores/
        │   └── scoop.js       # Pinia 状态与业务操作
        └── views/
            ├── Dashboard.vue
            ├── Packages.vue
            ├── Search.vue
            ├── Buckets.vue
            ├── Terminal.vue
            └── Settings.vue

页面说明

Dashboard

  • 启动时聚合读取 Scoop 状态、版本、统计数据、Bucket
  • 展示安装总数、可更新数量、Bucket 数量与运行状态
  • 支持更新全部、清理旧版本、跳转搜索页、导出安装列表
  • 展示系统信息与最近终端输出

Packages

  • 拉取并展示已安装软件包
  • 过滤无效数据,并按 name + bucket 去重
  • 支持包详情查看、单包更新、批量更新、卸载确认

Search

  • 支持 scoop search 检索仓库包
  • 支持直接输入包名安装
  • 提供热门软件快捷安装入口
  • 安装过程实时输出到终端区域

Buckets

  • 支持读取已添加 Bucket 与官方 Bucket 列表
  • 支持一键添加官方 Bucket
  • 支持手动输入名称与 Git URL 添加自定义 Bucket
  • 支持移除 Bucket,并保留来自该 Bucket 的已安装软件

Terminal

  • 支持执行自定义命令
  • 内置常用 Scoop 快捷命令
  • 输出按命令分组显示,便于追踪每次执行结果
  • 支持复制全部输出与查看命令历史

Settings

  • 展示 Scoop 安装状态、版本、目录、上次更新时间
  • 支持安装 Scoop、更新 Scoop、诊断检查、清理旧版本
  • 支持代理配置、PowerShell 执行策略检查/设置
  • 提供缓存清理入口

后端能力

app.go 暴露了桌面端核心能力,包括:

  • GetStartupState():启动阶段一次返回是否安装、Scoop 版本、统计信息、Bucket 列表
  • CheckScoopInstalled() / GetScoopVersion()
  • GetInstalledPackages() / SearchPackages() / GetPackageInfo()
  • InstallPackage() / UninstallPackage() / UpdatePackage() / UpdateAllPackages()
  • GetBuckets() / GetKnownBuckets() / AddBucket() / RemoveBucket()
  • GetScoopConfig() / SetScoopProxy() / CleanupScoop() / ScoopStatus()
  • GetSystemInfo() / ExportPackageList() / RunCommand()

常规 Scoop 命令优先直接调用 scoop 进程,PowerShell 主要用于终端页、自定义脚本命令与系统信息采集;执行时使用隐藏窗口参数,避免弹出控制台窗口。

前后端桥接

frontend/src/wails.js 提供统一桥接层:

  • Wails 环境 下调用 window.go.main.App.*
  • 浏览器 / 前端开发模式 下返回 mock 数据
  • 统一封装窗口控制、外部链接打开、基础 API 调用

这让前端页面在没有完整桌面运行时也能独立开发和预览。

快速开始

前置要求

  • Windows
  • Go 1.21+
  • Node.js 18+
  • Wails CLI v2
go install github.com/wailsapp/wails/v2/cmd/wails@latest

安装依赖

cd frontend && npm install && cd ..

开发模式

wails dev

构建

wails build

默认输出位置:

build/bin/scoop.exe

设计风格

  • 深色终端感界面
  • 主色为电子青,辅色包含绿色、琥珀色、红色状态提示
  • 无第三方 UI 组件库,界面样式全部基于 CSS 变量手写
  • 左下角状态区显示 GitHub、应用版本、Scoop 版本与当前时间

About

基于 Wails v2 + Go + Vue 3 的 Windows Scoop 桌面客户端,提供更接近原生应用的图形化包管理体验。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages