YSC 的频道
新的关键词 IsZachMenuDWMAttributeSet ,可能跟 Win11 的圆角菜单有关。
其中两个
DwmSetWindowAttribute 参数对应的是 WCA_PART_COLOR 和 WCA_CORNER_STYLE。https://github.com/microsoft/cascadia-code/releases/tag/v2106.17
Cascadia Code 发布了新版本,终于把之前扭曲的斜体改成了较为正常的样式。
Cascadia Code 发布了新版本,终于把之前扭曲的斜体改成了较为正常的样式。
GitHub
Release Cascadia Code 2106.17 · microsoft/cascadia-code
Features
Arabic (and Urdu) support added (design by Mohamad Dakak) (#84)
See the Arabic features PDF for the exciting new Arabic ligature
functionality used in Cascadia Code that gives the font ...
Arabic (and Urdu) support added (design by Mohamad Dakak) (#84)
See the Arabic features PDF for the exciting new Arabic ligature
functionality used in Cascadia Code that gives the font ...
MIUI 12 自带的桌面可以通过修改 secure settings 中
在 adb shell 或者有 root 权限的终端中执行
里面需要写包名和 activity 名称,可以使用 Activity Launcher 等工具看到。
理论上可以写个 app 来管理图标隐藏,但是需要用 adb 授予 WRITE_SECURE_SETTINGS 权限。
miui_home_hide_app_list 来隐藏应用图标。我似乎是没看到启动器本身提供隐藏图标的选项。在 adb shell 或者有 root 权限的终端中执行
settings get secure miui_home_hide_app_list 可以读取其中的数据,是 JSON 格式。里面需要写包名和 activity 名称,可以使用 Activity Launcher 等工具看到。
理论上可以写个 app 来管理图标隐藏,但是需要用 adb 授予 WRITE_SECURE_SETTINGS 权限。
YSC 的频道
MIUI 12 自带的桌面可以通过修改 secure settings 中 miui_home_hide_app_list 来隐藏应用图标。我似乎是没看到启动器本身提供隐藏图标的选项。 在 adb shell 或者有 root 权限的终端中执行 settings get secure miui_home_hide_app_list 可以读取其中的数据,是 JSON 格式。 里面需要写包名和 activity 名称,可以使用 Activity Launcher 等工具看到。 理论上可以写个 app 来管理图标隐藏,但是需要用…
经指正,MIUI有自带隐藏应用的功能,只是藏得很深,同时自带的隐藏功能不能隐藏系统应用。
#FontMod v3.0 版本已发布。
https://github.com/ysc3839/FontMod/releases/tag/v3.0
加入了 ARM 和 ARM64 架构支持。
支持修改 GDI+ 字体。
有个关于默认配置文件的 bug,将会尽快修复。
https://github.com/ysc3839/FontMod/releases/tag/v3.0
加入了 ARM 和 ARM64 架构支持。
支持修改 GDI+ 字体。
有个关于默认配置文件的 bug,将会尽快修复。
GitHub
Release v3.0 · ysc3839/FontMod
Added ARM and ARM64 architecture support.
Supports modify GDI+ font.
There's a bug with the default config file. I will fix it soon.
Supports modify GDI+ font.
There's a bug with the default config file. I will fix it soon.
冷知识:Windows XP SP0 可以使用 ExitWindowsEx API 关机但不断电。SP1 改为了只要硬件支持就会断电。
经过搜索得知,Win11 中仍然保留了这个画面,可以在组策略中开启。
经过搜索得知,Win11 中仍然保留了这个画面,可以在组策略中开启。
看到有人在问有没有 Windows 下的 Notch Simulator,于是想到了 Windows 下窗口置顶的问题。
传统的 WS_EX_TOPMOST 还是会被别的 top most 窗口挡住,而且像任务管理器,开始菜单还是能在其之上。
曾经个人调查过背后的原因,是从 Win8 开始引入了 Window Band 的功能,任务管理器或开始菜单把它们自己设置到了更高层次的 Band 上,于是能比 top most 更 top。具体可见这篇文章。
其中一种显示在上层的方法是使用 UIAccess,但是这要求应用程序有签名,且还要放到 Program Files 文件夹中。于是我就想到了上述文章提到的方法。
其中一种方法是使用 CreateWindowInBand,这个函数会检查进程的签名,所以实际实现只能注入DLL进去,在目标进程里面创建窗口。
还有一种方法是 SetWindowBand,不过文章作者的说法是需要注入 explorer,hook SetWindowBand,然后打开开始菜单,会触发 hook SetWindowBand 的函数,此时才可以成功调用 SetWindowBand,还说不知道内部的工作流程。
于是我开始逆向,发现 twinui.pcshell.dll 在调用 SetWindowBand 之前都会调用 EnableIAMAccess,去掉 EnableIAMAccess 后 SetWindowBand 就失败了。EnableIAMAccess 需要传递一个 key 进去,而这个 key 是在之前调用 AcquireIAMKey 获取的,于是尝试注入进 explorer 调用 AcquireIAMKey,发现失败了。
因为 AcquireIAMKey 是直接调用 NtUserAcquireIAMKey system call,百思不得其解之下,我尝试逆向 win32kfull.sys,看看内部的实现逻辑,发现限制了只能获取一次,而且这个 key 是在调用 SetShellWindowEx 的时候才会生成。
也就是说,explorer 启动时先调用了 SetShellWindowEx,然后 twinui.pcshell.dll 调用 AcquireIAMKey 获取到 key,后续就没人能再获取了。而 SetShellWindowEx 在当前 shell 进程还在运行时是不能再次调用的。
所以说要实现随意调用 SetWindowBand,只能结束当前的 explorer 进程,启动新的 explorer 进程并注入 DLL,hook NtUserAcquireIAMKey 获取到 key。
传统的 WS_EX_TOPMOST 还是会被别的 top most 窗口挡住,而且像任务管理器,开始菜单还是能在其之上。
曾经个人调查过背后的原因,是从 Win8 开始引入了 Window Band 的功能,任务管理器或开始菜单把它们自己设置到了更高层次的 Band 上,于是能比 top most 更 top。具体可见这篇文章。
其中一种显示在上层的方法是使用 UIAccess,但是这要求应用程序有签名,且还要放到 Program Files 文件夹中。于是我就想到了上述文章提到的方法。
其中一种方法是使用 CreateWindowInBand,这个函数会检查进程的签名,所以实际实现只能注入DLL进去,在目标进程里面创建窗口。
还有一种方法是 SetWindowBand,不过文章作者的说法是需要注入 explorer,hook SetWindowBand,然后打开开始菜单,会触发 hook SetWindowBand 的函数,此时才可以成功调用 SetWindowBand,还说不知道内部的工作流程。
于是我开始逆向,发现 twinui.pcshell.dll 在调用 SetWindowBand 之前都会调用 EnableIAMAccess,去掉 EnableIAMAccess 后 SetWindowBand 就失败了。EnableIAMAccess 需要传递一个 key 进去,而这个 key 是在之前调用 AcquireIAMKey 获取的,于是尝试注入进 explorer 调用 AcquireIAMKey,发现失败了。
因为 AcquireIAMKey 是直接调用 NtUserAcquireIAMKey system call,百思不得其解之下,我尝试逆向 win32kfull.sys,看看内部的实现逻辑,发现限制了只能获取一次,而且这个 key 是在调用 SetShellWindowEx 的时候才会生成。
也就是说,explorer 启动时先调用了 SetShellWindowEx,然后 twinui.pcshell.dll 调用 AcquireIAMKey 获取到 key,后续就没人能再获取了。而 SetShellWindowEx 在当前 shell 进程还在运行时是不能再次调用的。
所以说要实现随意调用 SetWindowBand,只能结束当前的 explorer 进程,启动新的 explorer 进程并注入 DLL,hook NtUserAcquireIAMKey 获取到 key。
GitHub
GitHub - megabitsenmzq/Notch-Simulator: Pretend you have the latest MacBook Pro!
Pretend you have the latest MacBook Pro! Contribute to megabitsenmzq/Notch-Simulator development by creating an account on GitHub.
Forwarded from 乌鸦观察
#AudioPlaybackConnector with Win11 style 已验证可行。
比较可惜的是连接窗口因为用了系统提供的DevicePicker,在 Win11 中还是 Win10 的风格,所以要完全实现 Win11 风格的话就得自己实现设备选择界面了。
比较可惜的是连接窗口因为用了系统提供的DevicePicker,在 Win11 中还是 Win10 的风格,所以要完全实现 Win11 风格的话就得自己实现设备选择界面了。
SingleExeXamlIsland 已发布。该项目演示了如何实现单 exe 文件调用 XAML Island 及 WinUI 2,详情请看 README。
GitHub
GitHub - ysc3839/SingleExeXamlIsland
Contribute to ysc3839/SingleExeXamlIsland development by creating an account on GitHub.
今天把msys2的shell换成了zsh,安装了Oh My Zsh以及zsh-autosuggestions和zsh-syntax-highlighting这两个插件,主题使用的是powerlevel10k
个人不推荐使用其他主题,因为其他主题读取git信息时是启动新进程获取的,在Windows下很慢。而powerlevel10k是在后台运行gitstatusd进程,速度极快!而且powerlevel10k还有异步加载插件的功能,可以缩短启动到可输入命令的时间。
这套配置在Windows下速度也是挺快的,感觉上比我多年前 (也许现在变快了?但我不用了) 用的Oh My Posh还要快。
个人不推荐使用其他主题,因为其他主题读取git信息时是启动新进程获取的,在Windows下很慢。而powerlevel10k是在后台运行gitstatusd进程,速度极快!而且powerlevel10k还有异步加载插件的功能,可以缩短启动到可输入命令的时间。
这套配置在Windows下速度也是挺快的,感觉上比我多年前 (也许现在变快了?但我不用了) 用的Oh My Posh还要快。
GitHub
GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration.…
🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, pyth...
YSC 的频道
今天把msys2的shell换成了zsh,安装了Oh My Zsh以及zsh-autosuggestions和zsh-syntax-highlighting这两个插件,主题使用的是powerlevel10k 个人不推荐使用其他主题,因为其他主题读取git信息时是启动新进程获取的,在Windows下很慢。而powerlevel10k是在后台运行gitstatusd进程,速度极快!而且powerlevel10k还有异步加载插件的功能,可以缩短启动到可输入命令的时间。 这套配置在Windows下速度也是挺快的,感觉上比我多年前…
顺带一提,刚刚简单试了下最新的Oh My Posh,感觉变快了很多,喜欢PowerShell的朋友也可以试试。
start-ssh-pageant.sh
567 B
刚刚写了个msys2启动ssh-pageant的脚本,主要是因为两个问题:
一是ConEmu会等待当前控制台下所有进程退出了才关闭标签页。因此直接启动的话,在退出shell时因为ssh-pageant没有退出,标签页就不会关闭,只有脱离当前控制台才能实现真正的后台运行。
二是ssh-pageant在sock file存在时会尝试连接,如果此时进程不存在了就要等几秒超时,通过脚本提前检测PID对应的进程是否存在可以缓解此问题。(不能100%解决,因为PID可能被复用了)
使用方法:在
一是ConEmu会等待当前控制台下所有进程退出了才关闭标签页。因此直接启动的话,在退出shell时因为ssh-pageant没有退出,标签页就不会关闭,只有脱离当前控制台才能实现真正的后台运行。
二是ssh-pageant在sock file存在时会尝试连接,如果此时进程不存在了就要等几秒超时,通过脚本提前检测PID对应的进程是否存在可以缓解此问题。(不能100%解决,因为PID可能被复用了)
使用方法:在
~/.bashrc (Bash) 或 ~/.zshrc (Zsh) 中加入 source /path/to/start-ssh-pageant.sh (/path/to为start-ssh-pageant.sh所在位置)