增加窗口uid并且修复多窗口bug

This commit is contained in:
2026-04-26 13:20:25 +08:00
parent ab91560b6c
commit f26bfbb810
15 changed files with 423 additions and 83 deletions

View File

@@ -5,6 +5,7 @@
"CLEONOS_USER_APP_ARGS": true,
"CLEONOS_USER_APP_BG": true,
"CLEONOS_USER_APP_BMPVIEW": true,
"CLEONOS_USER_APP_BROWSER": true,
"CLEONOS_USER_APP_CAT": true,
"CLEONOS_USER_APP_CD": true,
"CLEONOS_USER_APP_CLEAR": true,
@@ -20,11 +21,14 @@
"CLEONOS_USER_APP_FASTFETCH": true,
"CLEONOS_USER_APP_FDTEST": true,
"CLEONOS_USER_APP_FG": true,
"CLEONOS_USER_APP_FILE_EXPLORER": true,
"CLEONOS_USER_APP_FSSTAT": true,
"CLEONOS_USER_APP_GREP": true,
"CLEONOS_USER_APP_HEAD": true,
"CLEONOS_USER_APP_HELLO": true,
"CLEONOS_USER_APP_HELP": true,
"CLEONOS_USER_APP_HTTPGET": true,
"CLEONOS_USER_APP_IFCONFIG": true,
"CLEONOS_USER_APP_JOBS": true,
"CLEONOS_USER_APP_KBDSTAT": true,
"CLEONOS_USER_APP_KDBG": true,
@@ -38,8 +42,10 @@
"CLEONOS_USER_APP_MKFSFAT32": true,
"CLEONOS_USER_APP_MOUNT": true,
"CLEONOS_USER_APP_MV": true,
"CLEONOS_USER_APP_NSLOOKUP": true,
"CLEONOS_USER_APP_PARTCTL": true,
"CLEONOS_USER_APP_PID": true,
"CLEONOS_USER_APP_PING": true,
"CLEONOS_USER_APP_PROCSTAT": true,
"CLEONOS_USER_APP_PS": true,
"CLEONOS_USER_APP_PWD": true,
@@ -56,13 +62,17 @@
"CLEONOS_USER_APP_STATS": true,
"CLEONOS_USER_APP_SYSSTAT": true,
"CLEONOS_USER_APP_TAIL": true,
"CLEONOS_USER_APP_TASKMGR": true,
"CLEONOS_USER_APP_TASKSTAT": true,
"CLEONOS_USER_APP_TERMINAL": true,
"CLEONOS_USER_APP_TOP": true,
"CLEONOS_USER_APP_TOUCH": true,
"CLEONOS_USER_APP_TTY": true,
"CLEONOS_USER_APP_TTYDRV": true,
"CLEONOS_USER_APP_UNIQ": true,
"CLEONOS_USER_APP_USERSTAT": true,
"CLEONOS_USER_APP_UWM": true,
"CLEONOS_USER_APP_VIM": true,
"CLEONOS_USER_APP_WAIT": true,
"CLEONOS_USER_APP_WAVPLAY": true,
"CLEONOS_USER_APP_WC": true,

View File

@@ -18,19 +18,91 @@
"type": "bool",
"default": true
},
{
"key": "CLEONOS_CLKS_ENABLE_DESKTOP",
"title": "TTY2 Desktop",
"title_zh": "TTY2 桌面",
"description": "Enable desktop compositor tick/update path on TTY2.",
"description_zh": "在 TTY2 启用桌面合成器 tick/更新路径。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_MOUSE"
},
{
"key": "CLEONOS_CLKS_ENABLE_DRIVER_MANAGER",
"title": "Driver Manager",
{
"key": "CLEONOS_CLKS_ENABLE_DESKTOP",
"title": "TTY2 Desktop",
"title_zh": "TTY2 桌面",
"description": "Enable desktop compositor tick/update path on TTY2.",
"description_zh": "在 TTY2 启用桌面合成器 tick/更新路径。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_MOUSE"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_MULTI_RECT_DAMAGE",
"title": "WM Multi-Rect Damage",
"title_zh": "WM 多脏矩形",
"description": "Track several dirty rectangles instead of collapsing every frame into one large region.",
"description_zh": "跟踪多个脏矩形,避免每帧都合并成一个大区域。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_LAYER_CACHE",
"title": "WM Scene Layer Cache",
"title_zh": "WM 场景层缓存",
"description": "Keep a cached scene layer so unchanged background/window pixels do not need full redraw.",
"description_zh": "保留场景层缓存,避免未变化的背景/窗口像素重复重绘。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_FRAME_PACING",
"title": "WM Frame Pacing",
"title_zh": "WM 帧率限制",
"description": "Limit compositor flush rate using timer/TSC pacing to reduce tearing and jitter.",
"description_zh": "使用 timer/TSC 控制合成器刷新率,减少撕裂和抖动。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_STATS_OVERLAY",
"title": "WM FPS/MS Overlay",
"title_zh": "WM FPS/MS 叠加层",
"description": "Draw the compositor FPS/MS box in the bottom-right corner.",
"description_zh": "在右下角绘制合成器 FPS/MS 统计框。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_INPUT_DISPATCH",
"title": "WM Input Dispatch",
"title_zh": "WM 输入事件分发",
"description": "Dispatch mouse and keyboard events to focused kernel windows.",
"description_zh": "将鼠标和键盘事件分发给获得焦点的内核窗口。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP && CLEONOS_CLKS_ENABLE_MOUSE && CLEONOS_CLKS_ENABLE_KEYBOARD",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_WM_REAP_DEAD_OWNERS",
"title": "WM Dead Owner Cleanup",
"title_zh": "WM 死进程窗口回收",
"description": "Automatically destroy windows owned by exited processes.",
"description_zh": "自动销毁已退出进程拥有的窗口。",
"type": "bool",
"default": true,
"depends_on": "CLEONOS_CLKS_ENABLE_DESKTOP",
"group": "Window Manager",
"group_zh": "窗口管理器"
},
{
"key": "CLEONOS_CLKS_ENABLE_DRIVER_MANAGER",
"title": "Driver Manager",
"title_zh": "驱动管理器",
"description": "Initialize kernel ELF driver manager.",
"description_zh": "初始化内核 ELF 驱动管理器。",
@@ -229,18 +301,40 @@
"type": "bool",
"default": true
},
{
"key": "CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG",
"title": "EXEC Serial Logs",
"title_zh": "EXEC 串口日志",
"description": "Print EXEC run/return/path logs to serial output.",
"description_zh": "将 EXEC run/return/path 日志输出到串口。",
"type": "tristate",
"default": "y"
},
{
"key": "CLEONOS_CLKS_ENABLE_SYSCALL_SERIAL_LOG",
"title": "SYSCALL Serial Logs",
{
"key": "CLEONOS_CLKS_ENABLE_EXEC_SERIAL_LOG",
"title": "EXEC Serial Logs",
"title_zh": "EXEC 串口日志",
"description": "Print EXEC run/return/path logs to serial output.",
"description_zh": "将 EXEC run/return/path 日志输出到串口。",
"type": "tristate",
"default": "y"
},
{
"key": "CLEONOS_CLKS_ENABLE_EXEC_CONTEXT_SWITCH_LOG",
"title": "EXEC Context Switch Logs",
"title_zh": "EXEC 上下文切换日志",
"description": "Print cooperative EXEC suspend/resume logs such as EXEC RUN RESUME and RUN SUSPENDED.",
"description_zh": "输出协作式 EXEC 挂起/恢复日志,例如 EXEC RUN RESUME 和 RUN SUSPENDED。",
"type": "bool",
"default": false,
"group": "Logging Controls",
"group_zh": "日志控制"
},
{
"key": "CLEONOS_CLKS_ENABLE_NET_DHCP_CLIENT",
"title": "Network DHCP Client",
"title_zh": "网络 DHCP 客户端",
"description": "Use DHCP to auto-configure IPv4/netmask/gateway/DNS; disable to use fallback QEMU-style static config.",
"description_zh": "使用 DHCP 自动配置 IPv4/掩码/网关/DNS关闭后使用 QEMU 风格 fallback 静态配置。",
"type": "bool",
"default": true,
"group": "Networking",
"group_zh": "网络"
},
{
"key": "CLEONOS_CLKS_ENABLE_SYSCALL_SERIAL_LOG",
"title": "SYSCALL Serial Logs",
"title_zh": "SYSCALL 串口日志",
"description": "Print user syscall CALL/RET trace logs to serial output.",
"description_zh": "将用户态 syscall 的 CALL/RET 跟踪日志输出到串口。",

View File

@@ -9,6 +9,7 @@ set(CLEONOS_USER_APP_APPEND ON CACHE BOOL "append.elf [shell]" FORCE)
set(CLEONOS_USER_APP_ARGS ON CACHE BOOL "args.elf [shell]" FORCE)
set(CLEONOS_USER_APP_BG ON CACHE BOOL "bg.elf [shell]" FORCE)
set(CLEONOS_USER_APP_BMPVIEW ON CACHE BOOL "bmpview.elf [shell]" FORCE)
set(CLEONOS_USER_APP_BROWSER ON CACHE BOOL "browser.elf [shell]" FORCE)
set(CLEONOS_USER_APP_CAT ON CACHE BOOL "cat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_CD ON CACHE BOOL "cd.elf [shell]" FORCE)
set(CLEONOS_USER_APP_CLEAR ON CACHE BOOL "clear.elf [shell]" FORCE)
@@ -23,10 +24,13 @@ set(CLEONOS_USER_APP_EXIT ON CACHE BOOL "exit.elf [shell]" FORCE)
set(CLEONOS_USER_APP_FASTFETCH ON CACHE BOOL "fastfetch.elf [shell]" FORCE)
set(CLEONOS_USER_APP_FDTEST ON CACHE BOOL "fdtest.elf [shell]" FORCE)
set(CLEONOS_USER_APP_FG ON CACHE BOOL "fg.elf [shell]" FORCE)
set(CLEONOS_USER_APP_FILE_EXPLORER ON CACHE BOOL "file_explorer.elf [shell]" FORCE)
set(CLEONOS_USER_APP_FSSTAT ON CACHE BOOL "fsstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_GREP ON CACHE BOOL "grep.elf [shell]" FORCE)
set(CLEONOS_USER_APP_HEAD ON CACHE BOOL "head.elf [shell]" FORCE)
set(CLEONOS_USER_APP_HELP ON CACHE BOOL "help.elf [shell]" FORCE)
set(CLEONOS_USER_APP_HTTPGET ON CACHE BOOL "httpget.elf [shell]" FORCE)
set(CLEONOS_USER_APP_IFCONFIG ON CACHE BOOL "ifconfig.elf [shell]" FORCE)
set(CLEONOS_USER_APP_JOBS ON CACHE BOOL "jobs.elf [shell]" FORCE)
set(CLEONOS_USER_APP_KBDSTAT ON CACHE BOOL "kbdstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_KDBG ON CACHE BOOL "kdbg.elf [shell]" FORCE)
@@ -39,8 +43,10 @@ set(CLEONOS_USER_APP_MKDIR ON CACHE BOOL "mkdir.elf [shell]" FORCE)
set(CLEONOS_USER_APP_MKFSFAT32 ON CACHE BOOL "mkfsfat32.elf [shell]" FORCE)
set(CLEONOS_USER_APP_MOUNT ON CACHE BOOL "mount.elf [shell]" FORCE)
set(CLEONOS_USER_APP_MV ON CACHE BOOL "mv.elf [shell]" FORCE)
set(CLEONOS_USER_APP_NSLOOKUP ON CACHE BOOL "nslookup.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PARTCTL ON CACHE BOOL "partctl.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PID ON CACHE BOOL "pid.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PING ON CACHE BOOL "ping.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PROCSTAT ON CACHE BOOL "procstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PS ON CACHE BOOL "ps.elf [shell]" FORCE)
set(CLEONOS_USER_APP_PWD ON CACHE BOOL "pwd.elf [shell]" FORCE)
@@ -57,12 +63,16 @@ set(CLEONOS_USER_APP_SPIN ON CACHE BOOL "spin.elf [shell]" FORCE)
set(CLEONOS_USER_APP_STATS ON CACHE BOOL "stats.elf [shell]" FORCE)
set(CLEONOS_USER_APP_SYSSTAT ON CACHE BOOL "sysstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TAIL ON CACHE BOOL "tail.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TASKMGR ON CACHE BOOL "taskmgr.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TASKSTAT ON CACHE BOOL "taskstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TERMINAL ON CACHE BOOL "terminal.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TOP ON CACHE BOOL "top.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TOUCH ON CACHE BOOL "touch.elf [shell]" FORCE)
set(CLEONOS_USER_APP_TTY ON CACHE BOOL "tty.elf [shell]" FORCE)
set(CLEONOS_USER_APP_UNIQ ON CACHE BOOL "uniq.elf [shell]" FORCE)
set(CLEONOS_USER_APP_USERSTAT ON CACHE BOOL "userstat.elf [shell]" FORCE)
set(CLEONOS_USER_APP_UWM ON CACHE BOOL "uwm.elf [shell]" FORCE)
set(CLEONOS_USER_APP_VIM ON CACHE BOOL "vim.elf [shell]" FORCE)
set(CLEONOS_USER_APP_WAIT ON CACHE BOOL "wait.elf [shell]" FORCE)
set(CLEONOS_USER_APP_WAVPLAY ON CACHE BOOL "wavplay.elf [shell]" FORCE)
set(CLEONOS_USER_APP_WC ON CACHE BOOL "wc.elf [shell]" FORCE)