Snails超级快的模糊搜索框架

应该不完全一样,26 之前也有 make-frame,但没有 child frame。

其实 make-frame 的时候设定 (parent-frame . (window-frame)) 这个参数的时候,Emacs就会给操作系统发送两个窗口关系的消息。

只要这样设定了,这两个窗口就会一起显示一起消失,不会受到 Alt + Tab 的影响。

最新版已经是这样的了。

最新版加入了 snails-candidate-copy 的命令,可以快速拷贝 candidate 到 kill-ring。 并且修正 Alt + Tab 会影响 snails frame 显示的问题。

为啥我在 Alt-Tab下还是能看到 snail 窗口呢?已经升级到最新代码。 还有,每次呼出 snails,窗口都会显示标题栏然后消失。闪烁一下很不爽啊

在snails输入7个字符后(不论输入速度)会显示

Buffer "f283-f159-8faa-9b34-b0ef-9167-0dbf" has a running process; kill it? (y or n)

这是怎么回事

你应该是Mac默认全屏,Mac窗口管理器默认全屏对frame很不友好,按照我FAQ的方式启动全屏吧。

那是因为 snails 会自动把那些已经过期的搜索进程杀掉,具体的原理可以看: Snails架构设计

Don't ask user when snails kill buffer of backend process. · manateelazycat/snails@cf15008 · GitHub 这个补丁已经修复了这个问题

1 个赞

不是全屏哦,是窗口模式。代码五分钟前刚更新的。

emacs

emacs -Q可以试一下吗?

如果还有问题给我报一下issue吧

emacs -Q一样的效果哦

我看到你不是 M-x 来启动snails, 你能详细说一下你的重现步骤吗?

gif 看着太快了

  • Emacs 27.0.50
  • macOS Mojave

希望这次能看清楚了

emacs

看清楚了,看着没问题啊?

我没有搞懂你的问题是啥

alt+Tab 会显示两个Emacs

可能我理解错了,我以为你改成 child 模式,在 alt-tab 中应该看不到。如果还是两个 frame 肯定是能看到的,个人觉得这样不好。

另外这个问题还是有,在双屏的附屏上,snails 窗口巨宽

emacs

(parent-frame . (window-frame)) (skip-taskbar . t)

最新版只有这两个参数,第一个的意思是创建 child frame , 第二个的意思是不再任务栏或者Alt Tab中不显示图标。

你更新看看? 我这边的窗口管理器的 Alt Tab 被我用 lua 重写了,暂时没法测试你的现象。

双屏的问题没有环境,暂时没法测试。

还是会显示,用 posframe 试了下是不会在 alt-tab 中显示窗口的。

@tumashu posframe 用的啥技巧?

skip-taskbar

If non- nil , this tells the window manager to remove the frame’s icon from the taskbar associated with the frame’s display and inhibit switching to the frame’s window via the combination Alt-<TAB>. On MS-Windows, iconifying such a frame will “roll in” its window-system window at the bottom of the desktop. Some window managers may not honor this parameter.

我猜是这个 不过posframe里没设这个 所以也可能是undecoratedno-accept-focus的副作用

override-redirect也可能有这个作用