电脑用久了都懂:桌面图标越堆越满,找程序、搜文件翻半天,Windows 自带的启动栏又简陋。程序员、办公党谁不想要个清爽顺手的桌面启动器?
最近挖到一个开源的 ——GeekDesk,免费、好看、自定义拉满,今天快速聊聊。
✨ 一、它到底是什么?一句话:一款基于 WPF 开发的 Windows 桌面快速启动管理工具,开源免费,GitHub、Gitee 双平台发布,最新版本 2.5.15。
核心定位就仨词:免费、美观、高度自定义。所有功能无付费锁,有需求还能去仓库提 Issue,作者真听劝。
二、它用了哪些技术?1. 技术栈干净
C#WPF 框架 + .NET Framework 4.7.2,UI 基于 HandyControl,原生适配 Windows,轻量不占资源,不拖慢电脑。
2. 流畅度持续优化
开启虚拟化渲染解决卡顿,修复高分屏缩放、UI 假死、鼠标错位等常见 bug,多文件备份机制防配置丢失。
3. 开源可二次修改
代码分层清晰(命令层、视图、工具类、插件模块),懂 C#就能自己改、自己拓展。
4. 原生联动 Everything
2.5.14+ 内置 Everything 联动,毫秒级全盘文件检索,搜索速度吊打系统自带。
三、它能解决什么问题?程序分类快速启动
左侧自定义分组(开发、下载、游戏、聊天…),软件、脚本、文件夹归类收纳,点开面板一键启动,告别满屏图标。
全局呼出,想怎么唤就怎么唤
自定义全局热键、鼠标中键呼出、鼠标跟随模式,面板跟着鼠标弹出来,操作超顺手。
界面随心美化
本地图片做壁纸、毛玻璃背景、透明度圆角全可调、80+ 内置图标还能导阿里图标库,每个程序图标都能单独换。
全盘极速搜索
联动 Everything,输入关键词瞬间匹配全盘文件、文件夹、软件,找资料不用一层层翻磁盘。
定时待办提醒
快捷键新建提醒事项,定时弹窗,工作学习待办不遗漏。
代码示例① 从源码编译运行
# 克隆源码git clone https://gitee.com/dotnetchina/GeekDesk.gitcd GeekDesk# 用 Visual Studio 打开解决方案(.NET Framework 4.7.2)# GeekDesk.sln# 直接编译运行即可# 不想折腾源码的话,直接去 Releases 页面下载最新版(2.5.15)# 运行后:设置全局热键 → 把常用软件分组归类 → 享受秒开② Everything 全盘检索能力(SDK 调用示意)
GeekDesk 内置的毫秒级搜索,底层就是 Everything 引擎。如果你想在自己项目里集成同样的检索能力,可以这样调 Everything SDK(示意,以 Everything 官方 SDK 为准):
// Everything SDK 检索调用示意using System;using System.Runtime.InteropServices;public static EverythingSearch{ // Everything.dll 接口(示意,完整接口见官方 SDK) [DllImport(”Everything64.dll”, CharSet = CharSet.Unicode)] private static extern void Everything_SetSearchW(string search); [DllImport(”Everything64.dll”)] private static extern bool Everything_QueryW(bool bWait); [DllImport(”Everything64.dll”)] private static extern uint Everything_GetNumResults; [DllImport(”Everything64.dll”, CharSet = CharSet.Unicode)] private static extern void Everything_GetResultFullPathNameW(uint index, IntPtr buf, uint size); // 搜索指定关键词,返回前 N 条结果 public static List Search(string keyword, int maxResults = 50) { var results = new List; Everything_SetSearchW(keyword); if (Everything_QueryW(true)) { uint count = Everything_GetNumResults; for (uint i = 0; i < Math.Min(count, (uint)maxResults); i++) { var buf = Marshal.AllocHGlobal(1024 * 2); Everything_GetResultFullPathNameW(i, buf, 1024); results.Add(Marshal.PtrToStringUni(buf)); Marshal.FreeHGlobal(buf); } } return results; }}// 调用示例:全盘搜 ”GeekDesk” 相关文件,毫秒级返回// var files = EverythingSearch.Search(”GeekDesk”);这就是 GeekDesk 搜索快到离谱的原理 —— 不是自己遍历磁盘,而是直接调 Everything 的索引,关键词一敲,结果瞬间出来。
四、写在最后桌面启动器这种工具,天天用,顺手不顺手直接影响心情。GeekDesk 免费开源、颜值在线、还能高度自定义,用下来最大的感受就是:清爽、顺手。
:https://gitee.com/dotnetchina/GeekDesk.git
你的每一份认可,都是我坚持输出优质内容的底气 ✨
技术上有任何疑问、想交流开发思路,随时留下墨宝来往