Skip to content

Awesome-Embedded-Learning-Studio/CFDesktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

280 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CFDesktop

ไธบๅตŒๅ…ฅๅผ่ฎพๅค‡ๆ‰“้€ ็š„็ŽฐไปฃๅŒ– Material Design 3 ๆกŒ้ขๆก†ๆžถ

[License: MIT] [Version: 1.0.0-rc1] [C++23] [Qt 6.8] [CMake] [Documentation]

้กน็›ฎ็ฎ€ไป‹ โ€ข ้กน็›ฎ่ฟ›ๅบฆ โ€ข ๆžถๆž„ๆฆ‚่งˆ โ€ข ๅฟซ้€Ÿๅผ€ๅง‹


้กน็›ฎ็ฎ€ไป‹

CFDesktop ๆ˜ฏไธ€ไธชๅŸบไบŽ Qt6 ็š„ๅตŒๅ…ฅๅผๆกŒ้ขๆก†ๆžถ้กน็›ฎ๏ผŒๆ—จๅœจ่งฃๅ†ณไปฅไธ‹้—ฎ้ข˜๏ผš

่งฃๅ†ณ็š„้—ฎ้ข˜

  • ๅตŒๅ…ฅๅผ่ฎพๅค‡ UI ็ŽฐไปฃๅŒ– - ๆไพ›็ฌฆๅˆ Material Design 3 ่ง„่Œƒ็š„็Žฐไปฃ UI
  • ๆ€ง่ƒฝ่‡ช้€‚ๅบ” - ๆ นๆฎ่ฎพๅค‡็กฌไปถ่ƒฝๅŠ›ๅŠจๆ€่ฐƒๆ•ด UI ๅคๆ‚ๅบฆ๏ผŒไปŽไฝŽ็ซฏ ARM ๅˆฐ้ซ˜ๆ€ง่ƒฝ RK3588 ้ƒฝ่ƒฝๆต็•…่ฟ่กŒ
  • ๅผ€ๅ‘ๆ•ˆ็އไฝŽ - ๆไพ›ๅฎŒๆ•ด็š„ SDK ๅ’Œๆจกๆ‹Ÿๅ™จ๏ผŒ็ฎ€ๅŒ–ๅตŒๅ…ฅๅผ GUI ๅบ”็”จๅผ€ๅ‘
  • ่ทจๅนณๅฐ็งปๆค้šพ - ๆจกๅ—ๅŒ–่ฎพ่ฎก๏ผŒๆ˜“ไบŽ็งปๆคๅˆฐไธๅŒๆžถๆž„ (x86_64/ARM64/ARMhf)

็›ฎๆ ‡็”จๆˆท

  • ๆƒณๅฐ่ฏ•้ƒจ็ฝฒๆ‰€ๆœ‰็ซฏ็ปŸไธ€็š„ๆกŒ้ขๆจกๆ‹Ÿๅ™จ็š„ๅตŒๅ…ฅๅผLinux็ˆฑๅฅฝ่€…
  • Qt ๅบ”็”จๅผ€ๅ‘็ˆฑๅฅฝ่€…๏ผˆๅ˜ฟ๏ผๆƒณๆƒณไธ€ไธชAll Same็š„ๆกŒ้ข๏ผŒๅฏไปฅ่ฟ่กŒๅœจimx6ull๏ผŒrk็ณปๅˆ—็”š่‡ณๆ˜ฏไธŠไฝๆœบ็š„ๆกŒ้ข๏ผ๏ผ‰
  • ๅตŒๅ…ฅๅผ Linux ็ณป็ปŸ้›†ๆˆๅ•†๏ผˆๅนปๆƒณๅผ€ๅง‹.png๏ผ‰

AI Agent ๆ”ฏๆŒ

ๆœฌ้กน็›ฎๅ†…็ฝฎ AI agent ๅไฝœๆ”ฏๆŒ๏ผˆClaude Code ไธŽ Codex CLI๏ผ‰๏ผŒ้กน็›ฎ็บฆๅฎš้›†ไธญๅœจ AGENT.md๏ผˆๅ•ไธ€ๆฅๆบ๏ผŒCLAUDE.md / AGENTS.md ไธบๅ„ๅทฅๅ…ทๅ…ฅๅฃ๏ผ‰ใ€‚ไฝฟ็”จ AI ๆ—ถๆฎๆญคๅฟซ้€Ÿ็†่งฃๆžถๆž„ไธŽ่ง„่Œƒ๏ผ›ไธไฝฟ็”จ AI ๅฏๅฎ‰ๅ…จๅฟฝ็•ฅ AGENT.md / CLAUDE.md / AGENTS.md ไธŽ .claude/ ็›ฎๅฝ•๏ผŒๅฎƒไปฌไธๅฝฑๅ“ๆž„ๅปบใ€‚


้กน็›ฎ่ฟ›ๅบฆ

้กน็›ฎ่ฟ›ๅบฆไปฅ document/status/current.md ไธบๅ”ฏไธ€ไบ‹ๅฎžๆฅๆบใ€‚ไปฅไธ‹ไธบๅฏนๅค–ๆฆ‚่งˆ๏ผŒๅฏ่ƒฝๆปžๅŽ๏ผŒ็ฒพ็กฎ็Šถๆ€่ฏทๆŸฅ้˜…่ฏฅๆ–‡ไปถใ€‚

ๅฝ“ๅ‰็„ฆ็‚น๏ผš่ท‘้€šใ€Œ็œ‹ๅˆฐๆกŒ้ข โ†’ ็‚นๅ›พๆ ‡ โ†’ ๅผ€ๅบ”็”จใ€ๆœ€ๅฐ้—ญ็Žฏใ€‚

  • โœ… base ็กฌไปถๆŽข้’ˆๅฑ‚๏ผˆๅซ HWTier๏ผ‰ๅฎŒๆˆ
  • ๐Ÿšง ui / desktop ๆ ธๅฟƒๅฐฑ็ปช๏ผŒๆœ€ๅฐ้—ญ็ŽฏๆŽงไปถไธŽๅŽ็ซฏๅผ€ๅ‘ไธญ
  • โฌœ ่พ“ๅ…ฅๆŠฝ่ฑกใ€ๆจกๆ‹Ÿๅ™จใ€Wayland / ๅตŒๅ…ฅๅผๅŽ็ซฏๅพ…ๅผ€ๅง‹

ไธ‹ไธ€ๆญฅ่ทฏ็บฟไธŽๅ„ Phase ็ป†่Š‚่ง document/status/current.md๏ผŒๅพ…ๅŠžๆธ…ๅ•่ง document/todo/ใ€‚


ๆžถๆž„ๆฆ‚่งˆ

ๅˆ†ๅฑ‚่ฎพ่ฎก

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Material Widget Layer                         โ”‚
โ”‚  (P0: 7ๆŽงไปถ โœ… | P1: 12ๆŽงไปถ โœ… | P2: 27ๆŽงไปถ โฌœ | P3: 25ๆŽงไปถ โฌœ)    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                    Material Behavior Layer (100%)                โ”‚
โ”‚  StateMachine | RippleHelper | ElevationController | FocusRing   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                     Animation Engine Layer (90%)                 โ”‚
โ”‚  AnimationFactory | Fade/Slide/Scale โœ…                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      Theme Engine Layer (100%)                   โ”‚
โ”‚  ThemeManager | ColorScheme | Typography | Motion | Radius      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                    Math & Utility Layer (100%)                   โ”‚
โ”‚  MathHelper | Color | Easing | Geometry | DevicePixel           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      Desktop Base Layer (85%)                    โ”‚
โ”‚  ConfigStore | Logger | ASCII Art | File Operations | System    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆจกๅ—่ฏดๆ˜Ž

ๆจกๅ— ่ทฏๅพ„ ๅŠŸ่ƒฝ
้…็ฝฎไธญๅฟƒ desktop/base/config_manager/ ๅ››ๅฑ‚ๅญ˜ๅ‚จ (Temp/App/User/System)ใ€ๅ˜ๆ›ด็›‘ๅฌใ€JSON ๆŒไน…ๅŒ–
ๆ—ฅๅฟ—็ณป็ปŸ desktop/base/logger/ ๅคš็ญ‰็บงๆ—ฅๅฟ—ใ€ๅผ‚ๆญฅๅค„็†ใ€ๅคš Sink ๆ”ฏๆŒ
ๆ–‡ไปถๆ“ไฝœ desktop/base/file_operations/ ่ทจๅนณๅฐๆ–‡ไปถๆ“ไฝœใ€ๆƒ้™็ฎก็†ใ€็›‘ๆŽง
ASCII ่‰บๆœฏ desktop/base/ascii_art/ ๅฏๅŠจ Logo ๆธฒๆŸ“ใ€ASCII ๅ›พๅฝข
็ณป็ปŸๆฃ€ๆต‹ base/system/ CPU/Memory ไฟกๆฏๆฃ€ๆต‹ใ€่ทจๅนณๅฐๆ”ฏๆŒ
่ฎพๅค‡ๆŠฝ่ฑก base/device/ ๆŽงๅˆถๅฐ่ฎพๅค‡ๆŠฝ่ฑกๅฑ‚ใ€็ญ–็•ฅ้“พ
ๅŸบ็ก€ๅทฅๅ…ท base/include/base/ Hashใ€Optionalใ€ScopeGuardใ€Singleton ็ญ‰
UI ๆ ธๅฟƒ ui/core/ Material Design ไธป้ข˜ๅผ•ๆ“Žใ€Token ็ณป็ปŸ
UI ็ป„ไปถ ui/components/ ๅŠจ็”ปๅทฅๅŽ‚ใ€ๅŠจ็”ป็ป„ใ€็ญ–็•ฅๆจกๅผ
UI ๆŽงไปถ ui/widget/material/ Material Design ๆŽงไปถๅฎž็Žฐ

Display Backend

CFDesktop ้€š่ฟ‡ IDisplayServerBackend ๆŽฅๅฃๆŠฝ่ฑกไบ†ไธ‰็งๆ˜พ็คบๆจกๅผ๏ผŒไฝฟ Shellใ€PanelManager ๅ’Œ WindowManager ๅฏไปฅๅœจไธๅŒๅนณๅฐไธŠไธ€่‡ดๅทฅไฝœ๏ผš

  • Client ๆจกๅผ: ไฝœไธบ็Žฐๆœ‰ๆกŒ้ข็Žฏๅขƒๅ†…็š„ๅบ”็”จ่ฟ่กŒ๏ผˆWindowsใ€Linux Gnome/KDE๏ผ‰
  • Compositor ๆจกๅผ: CFDesktop ่‡ช่บซไฝœไธบๆ˜พ็คบๆœๅŠกๅ™จ/ๅˆๆˆๅ™จ็ฎก็†ๅค–้ƒจๅบ”็”จ็ช—ๅฃ๏ผˆX11/Wayland๏ผ‰
  • DirectRender ๆจกๅผ: ็›ดๆŽฅๆธฒๆŸ“ๅˆฐ framebuffer๏ผŒๆ— ้œ€็ช—ๅฃ็ณป็ปŸ๏ผˆๅตŒๅ…ฅๅผ EGLFS/linuxfb๏ผ‰
ๅŽ็ซฏ ็Šถๆ€ ่ฏดๆ˜Ž
Windows ๅŽ็ซฏ 100% Win32 DWM ้›†ๆˆใ€SetWinEventHook ็ช—ๅฃ็ฎก็†
WSL X11 ๅŽ็ซฏ 100% XCB + XWaylandใ€QSocketNotifier ้ฉฑๅŠจ
Wayland ๅˆๆˆๅ™จ 0% ๅพ…ๅฎž็Žฐ
EGLFS / LinuxFB 0% ๅตŒๅ…ฅๅผ็›ด้ฉฑ๏ผŒๅพ…ๅฎž็Žฐ

ๅŽ็ซฏ้€š่ฟ‡ DisplayServerBackendFactory ๅทฅๅŽ‚ๅœจๅฏๅŠจๆ—ถ่‡ชๅŠจ้€‰ๆ‹ฉๅนณๅฐๅฎž็Žฐใ€‚

ๆŠ€ๆœฏๆ ˆ

  • ่ฏญ่จ€: C++23
  • ๆก†ๆžถ: Qt 6.8.3
  • ๆž„ๅปบ: CMake 3.16+, Ninja
  • ๆต‹่ฏ•: Google Test
  • ๆ–‡ๆกฃ: VitePress + Doxygen

ๅฟซ้€Ÿๅผ€ๅง‹

ๅ‰็ฝฎ่ฆๆฑ‚

  • C++23 ็ผ–่ฏ‘ๅ™จ (LLVM/Clang ๆˆ– GCC)
  • CMake 3.16+
  • Qt 6.8+

ๆž„ๅปบ้กน็›ฎ

# ๅ…‹้š†ไป“ๅบ“
git clone https://github.com/Awesome-Embedded-Learning-Studio/CFDesktop
cd CFDesktop

# Windows ๅฟซ้€Ÿๆž„ๅปบ
.\scripts\build_helpers\windows_fast_develop_build.ps1

# Linux ๅฟซ้€Ÿๆž„ๅปบ
./scripts/build_helpers/linux_fast_develop_build.sh

่ฟ่กŒ็คบไพ‹

# ่ฟ่กŒ Material Gallery (ๆŸฅ็œ‹ๆ‰€ๆœ‰ UI ็ป„ไปถ)
.\out\build_deploy\bin\material_gallery.exe

# ่ฟ่กŒไธป้ข˜ๅฎšๅˆถ็คบไพ‹
.\out\build_deploy\bin\material_theme_customizer.exe

ๅผ€ๅ‘็Žฏๅขƒ้…็ฝฎ

้กน็›ฎไฝฟ็”จ VSCode + Clangd ไฝœไธบๆŽจ่ๅผ€ๅ‘็Žฏๅขƒ๏ผŒ้ฆ–ๆฌกๆž„ๅปบๅŽไผš่‡ชๅŠจ็”Ÿๆˆ้…็ฝฎๆ–‡ไปถใ€‚

่ฏฆ็ป†้…็ฝฎ่ฏดๆ˜Ž: document/development/README.md


ๅฎŒๆ•ดๆ–‡ๆกฃ

๐Ÿ“š ้กน็›ฎๆ–‡ๆกฃ็ซ™: https://awesome-embedded-learning-studio.github.io/CFDesktop/

ๆœฌๅœฐ้ข„่งˆๆ–‡ๆกฃ:

pnpm install
pnpm dev
pnpm build

ๅผ€ๅ‘ๆ–‡ๆกฃ

ๆ–‡ๆกฃ ่ฏดๆ˜Ž ้“พๆŽฅ
ๅผ€ๅ‘็Žฏๅขƒ่ฎพ็ฝฎ ๅ‰็ฝฎ่ฆๆฑ‚ใ€ๅฟซ้€Ÿๅผ€ๅง‹ใ€ๆž„ๅปบ็ณป็ปŸ development/
ๅฝ“ๅ‰็Šถๆ€ ๅผ€ๅ‘้‡ๅฏไบ‹ๅฎžๆบ status/current
UI ๆก†ๆžถๆ–‡ๆกฃ Material Design ๅฎž็Žฐๆžถๆž„ HandBook/ui/
AI ่พ…ๅŠฉๅผ€ๅ‘ ้€š็”จ AI ๅไฝœๆŒ‡ๅ— development/ai-assistant-guide

่ฎพ่ฎกๆ–‡ๆกฃ

ๆ–‡ๆกฃ ่ฏดๆ˜Ž ้“พๆŽฅ
ๅทฅ็จ‹้ชจๆžถ่ฎพ่ฎก ้กน็›ฎๅŸบ็ก€่ฎพๆ–ฝไธŽ็Žฏๅขƒ้…็ฝฎ design_stage/00_phase0_project_skeleton.md
Base ๅบ“่ฎพ่ฎก ๅŸบ็ก€ๅบ“่ฎพ่ฎกไธŽๅฎž็Žฐ design_stage/02_phase2_base_library.md
UI ๆก†ๆžถ่ฎพ่ฎก Material Design ๅˆ†ๅฑ‚ๆžถๆž„ HandBook/ui/architecture/

TODO ่ทŸ่ธช


่ดก็Œฎ

ๆฌข่ฟŽ่ดก็Œฎไปฃ็ ใ€ๆŠฅๅ‘Š้—ฎ้ข˜ๆˆ–ๆๅ‡บๅปบ่ฎฎ๏ผ

่ฏทๆŸฅ็œ‹ document/todo/ ไบ†่งฃๅฝ“ๅ‰ๅผ€ๅ‘ไปปๅŠกๅ’Œไผ˜ๅ…ˆ็บงใ€‚


่ฎธๅฏ่ฏ

ๆœฌ้กน็›ฎ้‡‡็”จ MIT ๅผ€ๆบ่ฎธๅฏ่ฏใ€‚


ๅพˆๆ—ฉๅฐฑๅƒๅšไธ€ไธช้…ท้…ท็š„็ปŸไธ€ๆกŒ้ข๏ผŒ็Žฐๅœจ๏ผŒ็ปˆไบŽๅฏไปฅๅฐ่ฏ•ๅผ€ๅง‹ไบ†๏ผ

About

This is a Repo that Desktop can be deployed on Any Embedded Device enable to run Qt

Topics

Resources

License

Stars

8 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors