# ndd **Repository Path**: dddpeter/notepad-- ## Basic Information - **Project Name**: ndd - **Description**: notepad--是一个国产跨平台、轻量级的文本编辑器,是替换notepad++的一种选择。其内置强大的代码对比功能,让你丢掉付费的beyond compare。 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1958 - **Created**: 2025-10-27 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Notepad-- (Enhanced Fork) [中文](README.md) | [English](README_EN.md) > 本项目 fork 自 [原 Notepad-- 项目](https://gitee.com/cxasm/notepad--) 并进行了大量改进 ## 项目简介 Notepad-- 是使用 C++ 编写的轻量级文本编辑器,简称 ndd,可以支持 Windows/Mac/Linux 操作系统平台。 本 fork 版本是**完全开源版本**,针对跨平台兼容性、高分屏支持、现代桌面环境等方面进行了全面优化。 ## ✨ 本 Fork 版本的核心改进 ### 🍎 macOS 完整支持 - ✅ **应用正确打包**:修复编译成终端程序问题,添加 MACOSX_BUNDLE 配置 - ✅ **应用图标配置**:正确配置 mac.icns 图标和 Info.plist - ✅ **Fusion 现代样式**:提供跨平台统一的现代界面 - ✅ **自动部署**:集成 macdeployqt 到 CMake POST_BUILD 钩子,make 自动打包 - ✅ **Retina 显示器支持**:完美支持高分辨率显示 ### 🎨 完善的暗色模式 - ✅ **QPalette 调色板**:完整的暗色模式调色板配置(不使用 QSS) - ✅ **所有控件适配**:所有界面控件在暗色模式下正确显示 - ✅ **系统主题跟随**:自动检测并跟随 macOS/Windows/Linux 系统主题 - ✅ **智能主题切换**:暗色模式使用 Choco 主题,亮色模式使用默认主题 ### 🐧 Wayland/GNOME 稳定性增强 - ✅ **防止闪退**:QT_WAYLAND_FORCE_DPI=physical 等关键配置 - ✅ **GNOME 特定修复**:禁用着色器缓存,防止 GNOME 桌面崩溃 - ✅ **单实例修复**:修复 Wayland 下程序无法启动的问题 - ✅ **线程安全**:使用 QMutex 和 QMetaObject::invokeMethod 确保线程安全 - ✅ **自动平台适配**:自动检测 Wayland/X11 平台并适配 - ✅ **稳定性保障**: - 禁用原生菜单栏(AA_DontUseNativeMenuBar) - 禁用原生控件兄弟(AA_DontCreateNativeWidgetSiblings) - 禁用着色器磁盘缓存(AA_DisableShaderDiskCache) ### 📺 4K/8K 高分屏完整支持 - ✅ **分数缩放**:完整支持 125%、150%、175%、200%、250%、300% 缩放 - ✅ **PassThrough 策略**:使用 HighDpiScaleFactorRoundingPolicy::PassThrough - ✅ **混合 DPI**:支持多显示器混合 DPI 环境 - ✅ **自动 DPI 检测**:自动检测并适配显示器 DPI - ✅ **清晰渲染**:文本和图标在任何缩放下都保持清晰 ### 📝 系统默认编辑器 - ✅ **Linux 配置**:desktop 文件 InitialPreference=9 高优先级 - ✅ **macOS 配置**:Info.plist 完整文件类型关联,LSHandlerRank=Default - ✅ **文件类型支持**:支持 80+ 种文本和代码文件类型 - ✅ **一键设置**:提供 install-default-editor.sh 自动配置脚本 ### 📝 Markdown 预览功能 - ✅ **实时预览**:支持 Markdown 文件(.md)的实时预览 - ✅ **自动打开**:打开 .md 文件时自动显示预览窗口,除非用户主动关闭 - ✅ **状态记忆**:记住每个文件的预览开关状态 - ✅ **美化样式**:现代化的预览样式,支持高DPI显示 - ✅ **完整支持**:支持标题、列表、代码块、表格、链接等所有 Markdown 语法 - ✅ **高DPI适配**:完美支持4K/8K高分辨率屏幕(100%-300%缩放) ### 🔧 其他改进 - ✅ **完全开源**:移除注册和捐赠相关代码 - ✅ **构建优化**:CMake 配置优化,一键编译和打包 - ✅ **错误诊断**:完善的错误日志,便于问题诊断 ## 📥 下载安装 ### 最新版本 **项目地址**: [https://gitee.com/dddpeter/notepad--](https://gitee.com/dddpeter/notepad--) **问题反馈**: [Issues](https://gitee.com/dddpeter/notepad--/issues) ### 编译安装 #### Ubuntu/Debian **方式1: DEB包(推荐 - 使用系统Qt库)** ```bash # 安装依赖 sudo apt-get install qtbase5-dev qt5-qmake qtbase5-dev-tools \ libqt5printsupport5 libqt5xmlpatterns5-dev # 编译 cd how_build cmake -B build -DCMAKE_BUILD_TYPE=Release cd build && make -j$(nproc) # 安装到用户目录(默认: ~/.local/bin/NotePad--) make install # 或打包DEB(约2MB,需要系统Qt库) cpack -D BUILD_DEB_PACKAGE=ON # 设置为默认编辑器(可选) cd ../scripts ./install-default-editor.sh ``` **方式2: AppImage(包含Qt库 - 便携版)** ```bash # 一键构建AppImage(约60MB,包含所有Qt库) cd how_build ./build_appimage.sh # 运行 chmod +x build_appimage/*.AppImage ./build_appimage/*.AppImage ``` **特性**: - ✅ 完整 Wayland 和 X11 支持 - ✅ 防止 GNOME 崩溃 - ✅ 4K/8K 显示器支持(分数缩放) - ✅ 系统主题自动跟随 - ✅ AppImage 包含所有 Qt 库,无需安装依赖 #### macOS ```bash # 安装依赖 brew install cmake qt@5 # 一键构建(推荐,自动打包Qt库) cd how_build ./build_macos.sh # 或手动构建并安装到用户目录(推荐) cd how_build # 方法1:显式指定用户目录 cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$HOME/Applications" # 方法2:使用默认配置(自动使用 ~/Applications) # cmake -B build -DCMAKE_BUILD_TYPE=Release cd build && make -j$(sysctl -n hw.ncpu) # 自动运行 macdeployqt # 安装到用户目录(默认: ~/Applications/NotePad--.app,无需管理员权限) make install # 或创建DMG安装镜像(可选) cd build && cpack ``` **特性**: - ✅ 自动部署 Qt 框架到 .app(macdeployqt) - ✅ 所有 Qt 库打包在应用内,无需额外安装 - ✅ 正确的 .app 包(非终端应用) - ✅ 应用图标和文件关联 - ✅ 系统主题自动跟随 - ✅ Retina 显示器支持 #### Arch Linux ```bash yay -S notepad---git ``` 详细编译说明见: - `how_build/linux开源编译及下载说明.txt` - `docs/WAYLAND_IMPROVEMENTS.md` ## 🤝 问题反馈 在本项目的 [Issues](https://gitee.com/dddpeter/notepad--/issues) 页面提交 ## 📚 文档 - `README_CHANGES.md` - 详细改进说明 - `docs/PACKAGING_GUIDE.md` - 打包指南(包含Qt库打包说明) - `docs/WAYLAND_IMPROVEMENTS.md` - Wayland 支持文档 - `docs/GTK_THEME_INTEGRATION.md` - GTK 主题集成文档 - `docs/QT6_MIGRATION_GUIDE.md` - Qt6 迁移指南 - `docs/maintenance/` - 维护文档和变更日志 - `scripts/README.md` - 维护脚本使用说明 ## 🔧 项目配置 ### .gitignore 配置 项目已配置完善的 `.gitignore` 文件,包含以下内容: - 编译生成的文件(.o, .exe, .app, .dll 等) - Qt 相关临时文件(moc_*, ui_*, qrc_* 等) - IDE 配置文件(.vs/, .vscode/, .idea/ 等) - 系统临时文件(.DS_Store, Thumbs.db 等) - 构建目录和缓存文件 - 根目录临时文件(保留有组织的目录中的文件) 详细的忽略规则请查看 [`.gitignore`](.gitignore) 文件。 ## 📜 开源协议 本项目采用 GPL-2.0-or-later 许可证。详见 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 感谢 [原 Notepad-- 项目](https://gitee.com/cxasm/notepad--) 的作者和贡献者 ## 效果预览 **Windows 效果图:** ![输入图片说明](png/0828.png) ![输入图片说明](png/20240105.png) ![文件对比](png/6.png) **MacOS 效果图:** ![输入图片说明](png/010501.png) ![输入图片说明](png/010502.png) ![输入图片说明](010503.png) **Redhat7.x 效果图:** ![输入图片说明](png/010505.png) **UOS 深度 效果图:** ![输入图片说明](png/0809.png) **银河麒麟 开源openkylin amd x64 效果图:** ![输入图片说明](png/kinly01.png) ![输入图片说明](png/kinly02.png) ![输入图片说明](png/kinly03.png)